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
Nick Khyl e07c1573f6 ipn/ipnlocal: do not reset the netmap and packet filter in (*LocalBackend).Start()
Resetting LocalBackend's netmap without also unconfiguring wgengine to reset routes, DNS, and the killswitch
firewall rules may cause connectivity issues until a new netmap is received.

In some cases, such as when bootstrap DNS servers are inaccessible due to network restrictions or other reasons,
or if the control plane is experiencing issues, this can result in a complete loss of connectivity until the user disconnects
and reconnects to Tailscale.

As LocalBackend handles state resets in (*LocalBackend).resetForProfileChangeLockedOnEntry(), and this includes
resetting the netmap, resetting the current netmap in (*LocalBackend).Start() is not necessary.
Moreover, it's harmful if (*LocalBackend).Start() is called more than once for the same profile.

In this PR, we update resetForProfileChangeLockedOnEntry() to reset the packet filter and remove
the redundant resetting of the netmap and packet filter from Start(). We also update the state machine
tests and revise comments that became inaccurate due to previous test updates.

Updates tailscale/corp#27173

Signed-off-by: Nick Khyl <nickk@tailscale.com>
10 months ago
..
auditlog control/controlclient, ipn: add client audit logging (#14950) 10 months ago
conffile ipn/conffile: don't depend on hujson on iOS/Android 1 year ago
desktop various: keep tailscale connected when Always On mode is enabled on Windows 11 months ago
ipnauth control/controlclient, ipn: add client audit logging (#14950) 10 months ago
ipnlocal ipn/ipnlocal: do not reset the netmap and packet filter in (*LocalBackend).Start() 10 months ago
ipnserver various: keep tailscale connected when Always On mode is enabled on Windows 11 months ago
ipnstate ipn: update AddPeer to include TaildropTarget (#15091) 10 months ago
localapi ipn/{ipnserver,localapi},tsnet: use ipnauth.Self as the actor in tsnet localapi handlers 11 months ago
policy ipn,tailconfig: clean up unreleased and removed app connector service 2 years ago
store cmd/k8s-operator: configure proxies for HA Ingress to run in cert share mode (#15308) 10 months ago
backend.go ipn: declare NotifyWatchOpt consts without using iota 1 year ago
conf.go ipn: ensure that conffile is source of truth for advertised services. (#15361) 10 months ago
doc.go ipn: generate LoginProfileView and use it instead of *LoginProfile where appropriate 11 months ago
ipn_clone.go ipn: generate LoginProfileView and use it instead of *LoginProfile where appropriate 11 months ago
ipn_test.go all: do not depend on the testing package 2 years ago
ipn_view.go ipn: generate LoginProfileView and use it instead of *LoginProfile where appropriate 11 months ago
prefs.go cmd/tailscale,ipn,tailcfg: add `tailscale advertise` subcommand behind envknob (#13734) 1 year ago
prefs_test.go types/persist: remove Persist.LegacyFrontendPrivateMachineKey 11 months ago
serve.go tailcfg: add ServiceName 12 months ago
serve_test.go ipn: [serve] warn that foreground funnel won't work if shields are up (#14685) 12 months ago
store.go ipn: add comment about thread-safety to StateStore 2 years ago
store_test.go ipn: avoid useless no-op WriteState calls 2 years ago