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>
10 months ago
..
batching_conn.go wgengine/magicsock: factor out more separable parts 11 months ago
blockforever_conn.go wgengine/magicsock: factor out more separable parts 11 months ago
debughttp.go types/netmap, all: use read-only tailcfg.NodeView in NetworkMap 10 months ago
debugknobs.go magicsock: set the don't fragment sockopt (#8715) 11 months ago
debugknobs_stubs.go magicsock: set the don't fragment sockopt (#8715) 11 months ago
derp.go wgengine/magicsock: improve endpoint selection for WireGuard peers with rx time 10 months ago
discopingpurpose_string.go all: update copyright and license headers 1 year ago
dontfrag_darwin.go magicsock: set the don't fragment sockopt (#8715) 11 months ago
dontfrag_default.go magicsock: set the don't fragment sockopt (#8715) 11 months ago
dontfrag_linux.go magicsock: set the don't fragment sockopt (#8715) 11 months ago
endpoint.go wgengine/magicsock: improve endpoint selection for WireGuard peers with rx time 10 months ago
endpoint_default.go wgengine/magicsock: clear out endpoint statistics when it becomes bad 10 months ago
endpoint_js.go wgengine/magicsock: clear out endpoint statistics when it becomes bad 10 months ago
endpoint_tracker.go wgengine/magicsock: only cache N most recent endpoints per-Addr 11 months ago
endpoint_tracker_test.go wgengine/magicsock: only cache N most recent endpoints per-Addr 11 months ago
magicsock.go wgengine/magicsock: improve endpoint selection for WireGuard peers with rx time 10 months ago
magicsock_default.go wgengine/magicsock: delete unused stuff 11 months 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 10 months ago
magicsock_unix_test.go all: update copyright and license headers 1 year ago
peermap.go wgengine/magicsock: factor out peerMap into separate file 11 months ago
rebinding_conn.go wgengine/magicsock: factor out more separable parts 11 months ago