tailscale/wgengine
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>
2023-08-22 15:39:08 -07:00
..
bench types/netmap, all: use read-only tailcfg.NodeView in NetworkMap 2023-08-18 20:04:35 -07:00
capture various: add golangci-lint, fix issues (#7905) 2023-04-17 18:38:24 -04:00
filter all: import x/exp/maps as xmaps to distinguish from Go 1.21 "maps" 2023-08-17 09:54:18 -07:00
magicsock wgengine/magicsock: improve endpoint selection for WireGuard peers with rx time 2023-08-22 15:39:08 -07:00
netlog wgengine/netlog: fix nil pointer dereference in logtail (#8598) 2023-07-13 08:54:29 -07:00
netstack types/netmap, all: make NetworkMap.SelfNode a tailcfg.NodeView 2023-08-21 13:34:49 -07:00
router wgengine/router: fall back and set iptables as default again 2023-08-18 16:33:06 -04:00
wgcfg types/netmap, all: make NetworkMap.SelfNode a tailcfg.NodeView 2023-08-21 13:34:49 -07:00
wgint all: update copyright and license headers 2023-01-27 15:36:29 -08:00
wglog all: update copyright and license headers 2023-01-27 15:36:29 -08:00
winnet all: update copyright and license headers 2023-01-27 15:36:29 -08:00
mem_ios.go all: update copyright and license headers 2023-01-27 15:36:29 -08:00
pendopen.go types/netmap, all: use read-only tailcfg.NodeView in NetworkMap 2023-08-18 20:04:35 -07:00
userspace_ext_test.go tsd: add package with System type to unify subsystem init, discovery 2023-05-04 14:21:59 -07:00
userspace_test.go types/netmap, all: use read-only tailcfg.NodeView in NetworkMap 2023-08-18 20:04:35 -07:00
userspace.go types/netmap: remove redundant Netmap.Hostinfo 2023-08-22 09:54:02 -07:00
watchdog_js.go all: update copyright and license headers 2023-01-27 15:36:29 -08:00
watchdog_test.go all: update copyright and license headers 2023-01-27 15:36:29 -08:00
watchdog.go all: remove some Debug fields, NetworkMap.Debug, Reconfig Debug arg 2023-08-17 19:04:30 -07:00
wgengine.go types/netmap, all: use read-only tailcfg.NodeView in NetworkMap 2023-08-18 20:04:35 -07:00