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
Jonathan Nobels 3e89068792
net/netmon, wgengine/userspace: purge ChangeDelta.Major and address TODOs (#17823)
updates tailscale/corp#33891

Addresses several older the TODO's in netmon.  This removes the 
Major flag precomputes the ChangeDelta state, rather than making
consumers of ChangeDeltas sort that out themselves.   We're also seeing
a lot of ChangeDelta's being flagged as "Major" when they are
not interesting, triggering rebinds in wgengine that are not needed.  This
cleans that up and adds a host of additional tests.

The dependencies are cleaned, notably removing dependency on netmon
itself for calculating what is interesting, and what is not.  This includes letting
individual platforms set a bespoke global "IsInterestingInterface"
function.  This is only used on Darwin.

RebindRequired now roughly follows how "Major" was historically
calculated but includes some additional checks for various
uninteresting events such as changes in interface addresses that
shouldn't trigger a rebind.  This significantly reduces thrashing (by
roughly half on Darwin clients which switching between nics).   The individual
values that we roll  into RebindRequired are also exposed so that
components consuming netmap.ChangeDelta can ask more
targeted questions.

Signed-off-by: Jonathan Nobels <jonathan@tailscale.com>
4 weeks ago
..
testdata ipn/ipnlocal: fix the path for writing cert files (#7203) 3 years ago
breaktcp_darwin.go cmd/tailscale: add debug commands to break connections 2 years ago
breaktcp_linux.go cmd/tailscale: add debug commands to break connections 2 years ago
bus.go ipn/local: add the suggested exit node to the ipn bus (#16748) 5 months ago
bus_test.go ipn/ipnlocal: add IPN Bus NotifyRateLimit watch bit NotifyRateLimit 1 year ago
c2n.go types/netmap: remove PrivateKey from NetworkMap 2 months ago
c2n_pprof.go ipn/ipnlocal, engine: avoid runtime/pprof with two usages of ts_omit_debug 3 months ago
c2n_test.go types/netmap,*: remove some redundant fields from NetMap 2 months ago
captiveportal.go feature/featuretags: add build tag to remove captive portal detection 4 months ago
cert.go syncs: add Mutex/RWMutex alias/wrappers for future mutex debugging 2 months ago
cert_disabled.go feature/featuretags, all: add ts_omit_acme to disable TLS cert support 4 months ago
cert_test.go ipn/ipnlocal, envknob: make it possible to configure the cert client to act in read-only mode (#15250) 10 months ago
dnsconfig_test.go types/netmap,*: remove some redundant fields from NetMap 2 months ago
drive.go ipn/ipnlocal: fix panic in driveTransport on network error 2 months ago
drive_test.go ipn/ipnlocal: fix panic in driveTransport on network error 2 months ago
drive_tomove.go feature/drive: start factoring out Taildrive, add ts_omit_drive build tag 4 months ago
expiry.go ipn/ipnlocal: use eventbus.SubscribeFunc in expiryManager 3 months ago
expiry_test.go control/controlclient: introduce eventbus messages instead of callbacks (#16956) 4 months ago
extension_host.go ipn/ipnlocal: make GetExt work earlier, before extension init 8 months ago
extension_host_test.go health,ipn/ipnlocal: introduce eventbus in heath.Tracker (#17085) 4 months ago
hwattest.go Revert "control/controlclient: back out HW key attestation (#17664)" (#17732) 2 months ago
local.go net/netmon, wgengine/userspace: purge ChangeDelta.Major and address TODOs (#17823) 4 weeks ago
local_test.go ipn/ipnlocal: don't panic if there are no suitable exit nodes 2 months ago
loglines_test.go health,ipn/ipnlocal: introduce eventbus in heath.Tracker (#17085) 4 months ago
netstack.go ipn/ipnlocal: move last unconditional gvisor import, complete ts_omit_netstack support 4 months ago
network-lock.go cmd/tailscale/cli: stabilise the output of `tailscale lock status --json` 1 month ago
network-lock_test.go tstest/integration: add integration test for Tailnet Lock 2 months ago
node_backend.go types/netmap,*: remove some redundant fields from NetMap 2 months ago
node_backend_test.go ipn/ipnlocal: introduce the concept of client-side-reachability (#17367) 3 months ago
peerapi.go net/netmon, wgengine/userspace: purge ChangeDelta.Major and address TODOs (#17823) 4 weeks ago
peerapi_drive.go feature/drive: start factoring out Taildrive, add ts_omit_drive build tag 4 months ago
peerapi_macios_ext.go net/netmon, wgengine/userspace: purge ChangeDelta.Major and address TODOs (#17823) 4 weeks ago
peerapi_test.go ipn/ipnlocal: fix another racy test (#17472) 3 months ago
prefs_metrics.go feature/featuretags: add features for c2n, peerapi, advertise/use routes/exit nodes 3 months ago
profiles.go types/netmap: remove PrivateKey from NetworkMap 2 months ago
profiles_notwindows.go ipn/ipnlocal: refactor and cleanup profileManager 1 year ago
profiles_test.go ipn{,/local},cmd/tailscale: add "sync" flag and pref to disable control map poll 2 months ago
profiles_windows.go ipn/ipnlocal: refactor and cleanup profileManager 1 year ago
serve.go net/netmon, wgengine/userspace: purge ChangeDelta.Major and address TODOs (#17823) 4 weeks ago
serve_disabled.go all: add ts_omit_serve, start making tailscale serve/funnel be modular 4 months ago
serve_test.go ipn/ipnlocal: add validations when setting serve config (#17950) 2 months ago
serve_unix_test.go cmd/tailscale,ipn: add Unix socket support for serve 1 month ago
ssh.go ipn/ipnlocal: fix a case where ts_omit_ssh was still linking in x/crypto/ssh 4 months ago
ssh_stub.go ipn/ipnlocal: fix a case where ts_omit_ssh was still linking in x/crypto/ssh 4 months ago
ssh_test.go health,ipn/ipnlocal: introduce eventbus in heath.Tracker (#17085) 4 months ago
state_test.go ipn/ipnlocal: add peer API endpoints to Hostinfo on initial client creation (#17851) 1 month ago
tailnetlock_disabled.go all: add ts_omit_tailnetlock as a start of making it build-time modular 4 months ago
web_client.go util/backoff: rename logtail/backoff package to util/backoff 4 months ago
web_client_stub.go derp/derpserver: split off derp.Server out of derp into its own package 4 months ago