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
Simon Law c18ba4470b
ipn/ipnlocal: add traffic steering support to exit-node suggestions (#16527)
When `tailscale exit-node suggest` contacts the LocalAPI for a
suggested exit node, the client consults its netmap for peers that
contain the `suggest-exit-node` peercap. It currently uses a series of
heuristics to determine the exit node to suggest.

When the `traffic-steering` feature flag is enabled on its tailnet,
the client will defer to Control’s priority scores for a particular
peer. These scores, in `tailcfg.Hostinfo.Location.Priority`, were
historically only used for Mullvad exit nodes, but they have now been
extended to score any peer that could host a redundant resource.

Client capability version 119 is the earliest client that understands
these traffic steering scores. Control tells the client to switch to
rely on these scores by adding `tailcfg.NodeAttrTrafficSteering` to
its `AllCaps`.

Updates tailscale/corp#29966

Signed-off-by: Simon Law <sfllaw@tailscale.com>
5 months ago
..
auditlog ipn/ipnext: remove some interface indirection to add hooks 7 months ago
conffile ipn/conffile: don't depend on hujson on iOS/Android 1 year ago
desktop ipn/ipnext: remove some interface indirection to add hooks 7 months ago
ipnauth ipn/{ipnauth,ipnlocal,localapi}: make EditPrefs return an error if changing exit node is restricted by policy 5 months ago
ipnext ipn/ipnlocal: make GetExt work earlier, before extension init 7 months ago
ipnlocal ipn/ipnlocal: add traffic steering support to exit-node suggestions (#16527) 5 months ago
ipnserver ipn: add missing entries for OpenBSD 6 months ago
ipnstate cmd/tailscale, ipn/ipnstate, wgengine/magicsock: update ping output for peer relay (#16515) 5 months ago
lapitest ipn/ipn{server,test}: extract the LocalAPI test client and server into ipntest 7 months ago
localapi ipn/localapi: do not break client on event marshalling errors (#16503) 5 months ago
policy ipn,tailconfig: clean up unreleased and removed app connector service 2 years ago
store ipn/store: make StateStore.All optional (#16409) 5 months ago
backend.go ipn: add watch opt to include actions in health messages 6 months ago
conf.go ipn: ensure that conffile is source of truth for advertised services. (#15361) 9 months ago
doc.go ipn: generate LoginProfileView and use it instead of *LoginProfile where appropriate 10 months ago
ipn_clone.go cmd/tailscale/cli,ipn,ipn/ipnlocal: add AutoExitNode preference for automatic exit node selection 5 months ago
ipn_test.go all: do not depend on the testing package 2 years ago
ipn_view.go cmd/tailscale/cli,ipn,ipn/ipnlocal: add AutoExitNode preference for automatic exit node selection 5 months ago
prefs.go ipn: move ParseAutoExitNodeID from ipn/ipnlocal to ipn 5 months ago
prefs_test.go ipn: move ParseAutoExitNodeID from ipn/ipnlocal to ipn 5 months ago
serve.go tailcfg: add ServiceName 10 months ago
serve_test.go scripts/check_license_headers.sh: delete, rewrite as a Go test 6 months ago
store.go tailcfg: report StateEncrypted in Hostinfo (#16434) 5 months ago
store_test.go ipn/store: automatically migrate between plaintext and encrypted state (#16318) 5 months ago