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
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
..
ipnlocal ipn/ipnlocal: do not process old status messages received out of order 2 years ago
ipnserver all: use any instead of interface{} 2 years ago
ipnstate ipn/ipnstate: put SSH Host Keys in ipnstate.PeerStatus 2 years ago
localapi client/tailscale, cmd/tailscale, localapi: add 'tailscale nc' 2 years ago
policy ipn/policy: treat DNS service as interesting so it's not filtered out 3 years ago
store ipn/store: [TestNewStore] do not use an empty file 2 years ago
backend.go ipn: use key.NodePublic instead of tailcfg.NodeKey 3 years ago
doc.go Move Linux client & common packages into a public repo. 4 years ago
fake_test.go ipn{,/ipnlocal}, cmd/tailscale/cli: don't check pref reverts on initial up 3 years ago
handle.go ipn: another controlplane synonym 3 years ago
message.go ipn: don't log IPN messages that may contain an authkey. 3 years ago
message_test.go all: use any instead of interface{} 2 years ago
prefs.go all: use any instead of interface{} 2 years ago
prefs_clone.go wgengine/netstack: add an SSH server experiment 2 years ago
prefs_test.go cmd/tailscale/cli, ipn: move exit node IP parsing and validation from cli into prefs. 2 years ago
store.go ipn/store: add common package for instantiating ipn.StateStores 2 years ago