In the past we used to send back anything up to 900 bytes of the packet in the ICMPv6 Packet Too Big response, whereas now we seemingly only send back 40 bytes.
It turns out that sending back only the 40 bytes of IPv6 headers isn't enough for most operating systems to positively ID the flow to reduce the MTU. This PR updates it so that we can send up to 512 bytes instead (900 is probably excessive) — that should leave plenty of room for any number of IPv6 extension headers and the next protocol headers and some of the payload.
This seems to fix the problem in my testing.
* Restore `uptime`, `bytes_sent` and `bytes_recvd` to the admin API for peers
* Wrap conn in Yggdrasil instead, so not necessary to do so in Ironwood
* Shuffle struct for alignment
* Revert "Revert Wireguard update"
This reverts commit 03a5cce5bb.
Signed-off-by: R4SAS <r4sas@i2pmail.org>
* [win] update installer build script
Signed-off-by: R4SAS <r4sas@i2pmail.org>
* [appveyor] use golang 1.17.3 for building
Signed-off-by: R4SAS <r4sas@i2pmail.org>
* [appveyor] use golang 1.17.5 for building
Signed-off-by: R4SAS <r4sas@i2pmail.org>
* test script
Signed-off-by: R4SAS <r4sas@i2pmail.org>
* test msi and semver scripts
Signed-off-by: R4SAS <r4sas@i2pmail.org>
Co-authored-by: Neil Alexander <neilalexander@users.noreply.github.com>
* Move yggdrasilctl responses to separate functions
* Move yggdrasilctl request switch to separate function
* Add empty lines
* Create struct CmdLine for yggdrasilctl
* Move yggdrasilctl command line parsing to separate func
* Turn struct CmdLine into CmdLineEnv
* Rename func parseCmdLine to parseFlagsAndArgs
* Move yggdrasilctl endpoint setting logic into separate func
* Function to create yggdrasilctl CmdLineEnv
* Reorder code
* Move struct fields into lines
* Turn yggdrasilctl CmdLineEnv funcs to methods
* Move yggdrasilctl connection code to separate func
* Rename functions
* Move yggdrasilctl command line env to separate mod
* Move yggdrasilctl command line env to main mod
* Run goimports
Co-authored-by: Neil Alexander <neilalexander@users.noreply.github.com>
This makes src/address.AddrForKey preallocate 32 bytes before starting
the address derivation. As benches in syg_go show, reallocating temp
takes 20% of the function runtime.