tailscale/ipn/ipnlocal
James Tucker 21695cdbf8
Some checks failed
checklocks / checklocks (push) Has been cancelled
CodeQL / Analyze (go) (push) Has been cancelled
Dockerfile build / deploy (push) Has been cancelled
natlab-integrationtest / natlab-integrationtest (push) Has been cancelled
CI / gomod-cache (push) Has been cancelled
CI / fuzz (push) Has been cancelled
tailscale.com/cmd/vet / vet (push) Has been cancelled
CI / race-root-integration (1/4) (push) Has been cancelled
CI / race-root-integration (2/4) (push) Has been cancelled
CI / race-root-integration (3/4) (push) Has been cancelled
CI / race-root-integration (4/4) (push) Has been cancelled
CI / test (-race, amd64, 1/3) (push) Has been cancelled
CI / test (-race, amd64, 2/3) (push) Has been cancelled
CI / test (-race, amd64, 3/3) (push) Has been cancelled
CI / test (386) (push) Has been cancelled
CI / test (amd64) (push) Has been cancelled
CI / Windows (${{ matrix.name || matrix.shard}}) (win-bench, benchmarks) (push) Has been cancelled
CI / Windows (${{ matrix.name || matrix.shard}}) (win-shard-1-2, 1/2) (push) Has been cancelled
CI / Windows (${{ matrix.name || matrix.shard}}) (win-shard-2-2, 2/2) (push) Has been cancelled
CI / macos (push) Has been cancelled
CI / privileged (push) Has been cancelled
CI / vm (push) Has been cancelled
CI / cross (386, linux) (push) Has been cancelled
CI / cross (amd64, darwin) (push) Has been cancelled
CI / cross (amd64, freebsd) (push) Has been cancelled
CI / cross (amd64, openbsd) (push) Has been cancelled
CI / cross (amd64, windows) (push) Has been cancelled
CI / cross (arm, 5, linux) (push) Has been cancelled
CI / cross (arm, 7, linux) (push) Has been cancelled
CI / cross (arm64, darwin) (push) Has been cancelled
CI / cross (arm64, linux) (push) Has been cancelled
CI / cross (arm64, windows) (push) Has been cancelled
CI / cross (loong64, linux) (push) Has been cancelled
CI / ios (push) Has been cancelled
CI / crossmin (amd64, illumos) (push) Has been cancelled
CI / crossmin (amd64, plan9) (push) Has been cancelled
CI / crossmin (amd64, solaris) (push) Has been cancelled
CI / crossmin (ppc64, aix) (push) Has been cancelled
CI / android (push) Has been cancelled
CI / wasm (push) Has been cancelled
CI / tailscale_go (push) Has been cancelled
CI / depaware (push) Has been cancelled
CI / go_generate (push) Has been cancelled
CI / make_tidy (push) Has been cancelled
CI / licenses (push) Has been cancelled
CI / staticcheck (${{ matrix.name }}) (--with-tags-all=darwin, arm64, darwin, macOS) (push) Has been cancelled
CI / staticcheck (${{ matrix.name }}) (--with-tags-all=linux, amd64, linux, Linux) (push) Has been cancelled
CI / staticcheck (${{ matrix.name }}) (--with-tags-all=windows, amd64, windows, Windows) (push) Has been cancelled
CI / staticcheck (${{ matrix.name }}) (--without-tags-any=windows,darwin,linux --shard=1/4, amd64, linux, Portable (1/4)) (push) Has been cancelled
CI / staticcheck (${{ matrix.name }}) (--without-tags-any=windows,darwin,linux --shard=2/4, amd64, linux, Portable (2/4)) (push) Has been cancelled
CI / staticcheck (${{ matrix.name }}) (--without-tags-any=windows,darwin,linux --shard=3/4, amd64, linux, Portable (3/4)) (push) Has been cancelled
CI / staticcheck (${{ matrix.name }}) (--without-tags-any=windows,darwin,linux --shard=4/4, amd64, linux, Portable (4/4)) (push) Has been cancelled
CI / notify_slack (push) Has been cancelled
CI / merge_blocker (push) Has been cancelled
CI / check_mergeability_strict (push) Has been cancelled
CI / check_mergeability (push) Has been cancelled
ipn/ipnlocal,net/netmon: make frequent darkwake more efficient
Investigating battery costs on a busy tailnet I noticed a large number
of nodes regularly reconnecting to control and DERP. In one case I was
able to analyze closely `pmset` reported the every-minute wake-ups being
triggered by bluetooth. The node was by side effect reconnecting to
control constantly, and this was at times visible to peers as well.

Three changes here improve the situation:
- Short time jumps (less than 10 minutes) no longer produce "major
  network change" events, and so do not trigger full rebind/reconnect.
- Many "incidental" fields on interfaces are ignored, like MTU, flags
  and so on - if the route is still good, the rest should be manageable.
- Additional log output will provide more detail about the cause of
  major network change events.

Updates #3363

Signed-off-by: James Tucker <james@tailscale.com>
2026-04-06 15:46:51 -07:00
..
netmapcache all: use Go 1.26 things, run most gofix modernizers 2026-03-06 13:32:03 -08:00
testdata ipn/ipnlocal: fix the path for writing cert files (#7203) 2023-02-07 14:34:04 -08:00
breaktcp_darwin.go all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
breaktcp_linux.go all: use Go 1.26 things, run most gofix modernizers 2026-03-06 13:32:03 -08:00
bus_test.go all: use Go 1.26 things, run most gofix modernizers 2026-03-06 13:32:03 -08:00
bus.go all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
c2n_pprof.go all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
c2n_test.go ipn/ipnlocal: add health.Tracker to tests where it was warning in CI 2026-04-05 20:20:07 -07:00
c2n.go ipn/ipnlocal, feature/ssh: move SSH code out of LocalBackend to feature 2026-03-10 17:27:17 -07:00
captiveportal.go all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
cert_disabled.go all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
cert_test.go cmd/vet: add subtestnames analyzer; fix all existing violations 2026-04-05 15:52:51 -07:00
cert.go ipn/ipnlocal, cmd/tailscale: use wildcard. prefix for cert filenames (#18748) 2026-02-18 11:54:09 -05:00
diskcache.go client,cmd/tailscale,ipn/{ipnlocal,localapi}: add debug CLI command to clear netmap caches (#19213) 2026-04-02 12:06:39 -07:00
dnsconfig_test.go net/dns, ipn/local: skip health warnings in dns forwarder when accept-dns is false (#18572) 2026-02-10 09:29:14 -05:00
drive_test.go all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
drive_tomove.go all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
drive.go all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
expiry_test.go all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
expiry.go all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
extension_host_test.go ipn/{ipnext,ipnlocal}: expose authReconfig in ipnext.Host as AuthReconfigAsync 2026-03-20 17:29:11 -04:00
extension_host.go ipn/ipnlocal: debounce extra enqueues in ExtensionHost.AuthReconfigAsync 2026-03-25 09:11:15 -04:00
hwattest.go all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
local_test.go ipn/ipnlocal: add health.Tracker to tests where it was warning in CI 2026-04-05 20:20:07 -07:00
local.go ipn/ipnlocal,net/netmon: make frequent darkwake more efficient 2026-04-06 15:46:51 -07:00
loglines_test.go all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
netstack.go types/ptr: deprecate ptr.To, use Go 1.26 new 2026-03-05 20:13:18 -08:00
network-lock_test.go ipn/ipnlocal: add health.Tracker to tests where it was warning in CI 2026-04-05 20:20:07 -07:00
network-lock.go tka: refer consistently to "DisablementValues" 2026-04-01 19:09:22 +01:00
node_backend_test.go types/ptr: deprecate ptr.To, use Go 1.26 new 2026-03-05 20:13:18 -08:00
node_backend.go ipn/ipnlocal: add a map for node public key to node ID lookups (#19051) 2026-03-23 10:23:28 -07:00
peerapi_drive.go all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
peerapi_macios_ext.go all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
peerapi_test.go all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
peerapi.go all: use Go 1.26 things, run most gofix modernizers 2026-03-06 13:32:03 -08:00
prefs_metrics.go all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
profiles_notwindows.go all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
profiles_test.go all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
profiles_windows.go all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
profiles.go tailcfg: reintroduce UserProfile.Groups 2026-03-09 11:08:45 +00:00
serve_disabled.go all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
serve_test.go ipn/ipnlocal: add health.Tracker to tests where it was warning in CI 2026-04-05 20:20:07 -07:00
serve_unix_test.go cmd/vet: add subtestnames analyzer; fix all existing violations 2026-04-05 15:52:51 -07:00
serve.go all: use Go 1.26 things, run most gofix modernizers 2026-03-06 13:32:03 -08:00
state_test.go control,health,ipn: move IP forwarding check to health tracker (#19007) 2026-03-18 16:24:12 -04:00
tailnetlock_disabled.go all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
web_client_stub.go all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
web_client.go all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00