This commit is contained in:
bluepython508 committed 2026-10-22 12:27:19 +01:00
1 parent 3530afb854
commit 6903fcff27
2146 files changed
+112256 -190703

No files matched your search

+12 -1
View File
@@ -1,4 +1,4 @@
// Copyright (c) Tailscale Inc & AUTHORS
// Copyright (c) Tailscale Inc & contributors
// SPDX-License-Identifier: BSD-3-Clause
package netmon
@@ -150,6 +150,17 @@ func (m *darwinRouteMon) skipInterfaceAddrMessage(msg *route.InterfaceAddrMessag
}
func (m *darwinRouteMon) skipRouteMessage(msg *route.RouteMessage) bool {
// RTM_MISS fires on every failed route lookup (no matching entry in the
// routing table). It scales with traffic volume, not network-state
// changes, and is never the leading signal for a topology change: route
// withdrawals emit RTM_DELETE synchronously before any subsequent lookup
// can miss. Letting these through causes netmon to report spurious
// link changes, which trigger a re-STUN/netcheck loop when a probe
// destination is unreachable (e.g. IPv6 DERP probes on a network with
// no IPv6 default route), as each failed probe emits another RTM_MISS.
if msg.Type == unix.RTM_MISS {
return true
}
if ip := ipOfAddr(addrType(msg.Addrs, unix.RTAX_DST)); ip.IsLinkLocalUnicast() {
// Skip those like:
// dst = fe80::b476:66ff:fe30:c8f6%15