tailscale/ipn/ipnlocal
Brad Fitzpatrick 72ca0cae4b wgengine/wgcfg,wgengine,ipn/ipnlocal: remove Peers from wgcfg.Config
The wireguard-go device now learns its peer set solely from the live
per-peer config source that LocalBackend installs with
Engine.SetPeerConfigFunc, backed by the route manager. Peers are
created lazily on first packet and converged per peer with
Engine.SyncDevicePeer, so the full-peer-list snapshot in wgcfg.Config
and the diff-and-reconfigure machinery around it (wgcfg.Peer,
ReconfigDevice, and the engine's full device sync in
maybeReconfigWireguardLocked) are dead weight: they duplicated state
that the route manager already owns and forced every netmap change to
rebuild and rehash the entire peer list.

Delete the Peers field and the Peer type from wgcfg, along with
ReconfigDevice and maybeReconfigWireguardLocked. Engine.Reconfig no
longer does any device peer work; it only manages the private key,
addresses, and the non-peer subsystems. Full-netmap application converges the device by
syncing exactly the peers whose routes the route manager reports as
changed or removed.

Updates #12542

Change-Id: Ic776e42cfaa5be6b9329b3d381d5cbde17d7078b
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2026-07-14 19:57:59 -04:00
..
ipnlocaltest ipn/ipnlocal, feature/acme: move most remaining cert code into feature/acme 2026-06-29 12:57:22 -07:00
netmapcache ipn/ipnlocal: update netmap cache after peer deltas are applied (#20111) 2026-06-12 09:41:00 -07:00
testdata ipn/ipnlocal: fix the path for writing cert files (#7203) 2023-02-07 14:34:04 -08:00
breaktcp_darwin.go all: apply go fix 2026-07-10 17:39:16 -07: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 ipn/ipnlocal: add wireguard session state metrics + publish on IPN bus 2026-06-15 11:41:18 -07:00
bus.go ipn/{ipn,ipnlocal}: add per-user policy snapshots to IPN bus (#20135) 2026-06-30 12:44:29 -07: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, feature/acme: move most remaining cert code into feature/acme 2026-06-29 12:57:22 -07:00
c2n.go cmd/tailscale, ipn, feature/remoteconfig: add remote-config support 2026-07-07 12:10:34 -07:00
captiveportal.go all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
cert.go ipn/localapi,client/local: honour Retry-After on cert rate-limit (#20315) 2026-07-08 13:34:40 +01:00
diskcache_test.go ipn/ipnlocal/netmapcache: add UpdateSelfOnly method (#19818) 2026-05-20 16:29:04 -07:00
diskcache.go ipn/ipnlocal: remove logs for peer delta cache updates (#20145) 2026-06-15 10:00:03 -07:00
dnsconfig_test.go ipn/ipnlocal,net/dns/resolver: serve MagicDNS names from live indexes 2026-07-14 07:26:41 -07:00
drive_test.go ipn/ipnlocal, drive: stop using netmap.NetworkMap in Taildrive too 2026-06-23 10:41:50 -07:00
drive_tomove.go all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
drive.go ipn/ipnlocal, drive: stop using netmap.NetworkMap in Taildrive too 2026-06-23 10:41:50 -07: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: fix reporting of active ipnext extensions 2026-07-01 15:35:06 -07:00
fortest.go ipn/ipnlocal, feature/acme: move most remaining cert code into feature/acme 2026-06-29 12:57:22 -07:00
hwattest.go all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
local_test.go wgengine/wgcfg,wgengine,ipn/ipnlocal: remove Peers from wgcfg.Config 2026-07-14 19:57:59 -04:00
local.go wgengine/wgcfg,wgengine,ipn/ipnlocal: remove Peers from wgcfg.Config 2026-07-14 19:57:59 -04:00
loglines_test.go ipn/ipnlocal: consolidate test-only LocalBackend methods behind ForTest 2026-06-27 16:11:42 -07:00
netstack.go types/ptr: deprecate ptr.To, use Go 1.26 new 2026-03-05 20:13:18 -08:00
node_backend_test.go wgengine/wgcfg,wgengine,ipn/ipnlocal: remove Peers from wgcfg.Config 2026-07-14 19:57:59 -04:00
node_backend.go wgengine/wgcfg,wgengine,ipn/ipnlocal: remove Peers from wgcfg.Config 2026-07-14 19:57:59 -04: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 ipn/ipnlocal, feature/conn25: add hook for accepting PeerAPI DNS 2026-06-29 16:33:33 -04: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 ipn/ipnlocal: sort profiles by date created when possible (#20223) 2026-06-30 09:01:32 -04:00
profiles_windows.go all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
profiles.go ipn/ipnlocal: sort profiles by date created when possible (#20223) 2026-06-30 09:01:32 -04:00
resolve_test.go net/tsdial, ipn/ipnlocal: stop using netmap.NetworkMap in Dialer 2026-06-24 13:14:45 -07:00
resolve.go ipn/ipnlocal,net/dns/resolver: serve MagicDNS names from live indexes 2026-07-14 07:26:41 -07:00
routecheck_disabled.go ipn/ipnlocal: use routecheck reports to make exit node suggestions 2026-07-02 20:26:27 -07:00
routecheck_enabled.go ipn/ipnlocal: use routecheck reports to make exit node suggestions 2026-07-02 20:26:27 -07:00
serve_disabled.go ipn/ipnlocal, feature/acme: move most remaining cert code into feature/acme 2026-06-29 12:57:22 -07:00
serve_metrics_test.go ipn/ipnlocal: add metrics for inbound and outbound bytes on Serve connections (#19991) 2026-06-12 05:49:00 -05:00
serve_test.go ipn/ipnlocal: update getServeHandler path handling on malformed url (#20431) 2026-07-13 15:15:44 -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 ipn/ipnlocal: update getServeHandler path handling on malformed url (#20431) 2026-07-13 15:15:44 -07:00
state_test.go wgengine/wgcfg,wgengine,ipn/ipnlocal: remove Peers from wgcfg.Config 2026-07-14 19:57:59 -04:00
tailnet-lock_test.go ipn/ipnlocal: consolidate test-only LocalBackend methods behind ForTest 2026-06-27 16:11:42 -07:00
tailnet-lock.go ipn/ipnlocal: consolidate test-only LocalBackend methods behind ForTest 2026-06-27 16:11:42 -07:00
tailnetlock_disabled.go ipn/ipnlocal, types/netmap, tsnet: filter unsigned peers on delta path 2026-06-23 08:12:36 -07:00
watchdog_test.go ipn/ipnlocal: add back a watchdog after earlier removal from engine 2026-06-02 11:57:12 -07:00
watchdog.go wgengine: add Engine.ProbeLocks, drop PeerForIP lock-probe overload 2026-06-23 12:02:49 -07:00
web_client_stub.go ipn/ipnlocal: add webclient support for tvOS (#20256) 2026-06-26 08:58:23 -04:00
web_client.go ipn/ipnlocal: add webclient support for tvOS (#20256) 2026-06-26 08:58:23 -04:00