Documentation ¶
Overview ¶
Package controlknobs contains client options configurable from control which can be turned on or off. The ability to turn options on and off is for incrementally adding features in.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Knobs ¶ added in v1.50.0
type Knobs struct { // DisableUPnP indicates whether to attempt UPnP mapping. DisableUPnP atomic.Bool // DisableDRPO is whether control says to disable the // DERP route optimization (Issue 150). DisableDRPO atomic.Bool // KeepFullWGConfig is whether we should disable the lazy wireguard // programming and instead give WireGuard the full netmap always, even for // idle peers. KeepFullWGConfig atomic.Bool // RandomizeClientPort is whether control says we should randomize // the client port. RandomizeClientPort atomic.Bool // OneCGNAT is whether the the node should make one big CGNAT route // in the OS rather than one /32 per peer. OneCGNAT syncs.AtomicValue[opt.Bool] // ForceBackgroundSTUN forces netcheck STUN queries to keep // running in magicsock, even when idle. ForceBackgroundSTUN atomic.Bool // DisableDeltaUpdates is whether the node should not process // incremental (delta) netmap updates and should treat all netmap // changes as "full" ones as tailscaled did in 1.48.x and earlier. DisableDeltaUpdates atomic.Bool // PeerMTUEnable is whether the node should do peer path MTU discovery. PeerMTUEnable atomic.Bool // DisableDNSForwarderTCPRetries is whether the DNS forwarder should // skip retrying truncated queries over TCP. DisableDNSForwarderTCPRetries atomic.Bool // SilentDisco is whether the node should suppress disco heartbeats to its // peers. SilentDisco atomic.Bool // LinuxForceIPTables is whether the node should use iptables for Linux // netfiltering, unless overridden by the user. LinuxForceIPTables atomic.Bool // LinuxForceNfTables is whether the node should use nftables for Linux // netfiltering, unless overridden by the user. LinuxForceNfTables atomic.Bool // SeamlessKeyRenewal is whether to enable the alpha functionality of // renewing node keys without breaking connections. // http://go/seamless-key-renewal SeamlessKeyRenewal atomic.Bool // ProbeUDPLifetime is whether the node should probe UDP path lifetime on // the tail end of an active direct connection in magicsock. ProbeUDPLifetime atomic.Bool }
Knobs is the set of knobs that the control plane's coordination server can adjust at runtime.
func (*Knobs) AsDebugJSON ¶ added in v1.50.0
AsDebugJSON returns k as something that can be marshalled with json.Marshal for debug.
func (*Knobs) UpdateFromNodeAttributes ¶ added in v1.50.0
func (k *Knobs) UpdateFromNodeAttributes(selfNodeAttrs []tailcfg.NodeCapability, capMap tailcfg.NodeCapMap)
UpdateFromNodeAttributes updates k (if non-nil) based on the provided self node attributes (Node.Capabilities).
Click to show internal directories.
Click to hide internal directories.