You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tailscale/wgengine/magicsock
James Tucker e1c7e9b736 wgengine/magicsock: improve endpoint selection for WireGuard peers with rx time
If we don't have the ICMP hint available, such as on Android, we can use
the signal of rx traffic to bias toward a particular endpoint.

We don't want to stick to a particular endpoint for a very long time
without any signals, so the sticky time is reduced to 1 second, which is
large enough to avoid excessive packet reordering in the common case,
but should be small enough that either rx provides a strong signal, or
we rotate in a user-interactive schedule to another endpoint, improving
the feel of failover to other endpoints.

Updates #8999

Co-authored-by: Charlotte Brandhorst-Satzkorn <charlotte@tailscale.com>

Signed-off-by: James Tucker <james@tailscale.com>
Signed-off-by: Charlotte Brandhorst-Satzkorn <charlotte@tailscale.com>
1 year ago
..
batching_conn.go wgengine/magicsock: factor out more separable parts 1 year ago
blockforever_conn.go wgengine/magicsock: factor out more separable parts 1 year ago
debughttp.go types/netmap, all: use read-only tailcfg.NodeView in NetworkMap 1 year ago
debugknobs.go magicsock: set the don't fragment sockopt (#8715) 1 year ago
debugknobs_stubs.go magicsock: set the don't fragment sockopt (#8715) 1 year ago
derp.go wgengine/magicsock: improve endpoint selection for WireGuard peers with rx time 1 year ago
discopingpurpose_string.go all: update copyright and license headers 2 years ago
dontfrag_darwin.go magicsock: set the don't fragment sockopt (#8715) 1 year ago
dontfrag_default.go magicsock: set the don't fragment sockopt (#8715) 1 year ago
dontfrag_linux.go magicsock: set the don't fragment sockopt (#8715) 1 year ago
endpoint.go wgengine/magicsock: improve endpoint selection for WireGuard peers with rx time 1 year ago
endpoint_default.go wgengine/magicsock: clear out endpoint statistics when it becomes bad 1 year ago
endpoint_js.go wgengine/magicsock: clear out endpoint statistics when it becomes bad 1 year ago
endpoint_tracker.go wgengine/magicsock: only cache N most recent endpoints per-Addr 1 year ago
endpoint_tracker_test.go wgengine/magicsock: only cache N most recent endpoints per-Addr 1 year ago
magicsock.go wgengine/magicsock: improve endpoint selection for WireGuard peers with rx time 1 year ago
magicsock_default.go wgengine/magicsock: delete unused stuff 1 year ago
magicsock_linux.go wgengine/magicsock: clarify a log message is a warning, not an error 1 year ago
magicsock_test.go wgengine/magicsock: improve endpoint selection for WireGuard peers with rx time 1 year ago
magicsock_unix_test.go all: update copyright and license headers 2 years ago
peermap.go wgengine/magicsock: factor out peerMap into separate file 1 year ago
rebinding_conn.go wgengine/magicsock: factor out more separable parts 1 year ago