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/ipn/ipnlocal
Maisem Ali 6fecc16c3b ipn/ipnlocal: do not process old status messages received out of order
When `setWgengineStatus` is invoked concurrently from multiple
goroutines, it is possible that the call invoked with a newer status is
processed before a call with an older status. e.g. a status that has
endpoints might be followed by a status without endpoints. This causes
unnecessary work in the engine and can result in packet loss.

This patch adds an `AsOf time.Time` field to the status to specifiy when the
status was calculated, which later allows `setWgengineStatus` to ignore
any status messages it receives that are older than the one it has
already processed.

Updates tailscale/corp#2579

Signed-off-by: Maisem Ali <maisem@tailscale.com>
2 years ago
..
dnsconfig_test.go ipnlocal, net/{dns,tsaddr,tstun}, wgengine: support MagicDNS on IPv6 2 years ago
local.go ipn/ipnlocal: do not process old status messages received out of order 2 years ago
local_test.go ipn/store: add common package for instantiating ipn.StateStores 2 years ago
loglines_test.go ipn/store: add common package for instantiating ipn.StateStores 2 years ago
peerapi.go all: use any instead of interface{} 2 years ago
peerapi_h2c.go ipn/ipnlocal: add HTTP/2 h2c server support to peerapi on non-mobile platforms 3 years ago
peerapi_macios_ext.go net/tsdial: move macOS/iOS peerapi sockopt logic from LocalBackend 3 years ago
peerapi_test.go ipn/ipnlocal: run peerapi even if Taildrop storage not configured 3 years ago
ssh.go all: use any instead of interface{} 2 years ago
ssh_stub.go ssh: make it build on darwin 2 years ago
ssh_test.go ipn/ipnlocal: generate tailscaled-owned SSH keys as needed 2 years ago
state_test.go ipn/ipnlocal: do not process old status messages received out of order 2 years ago