Commit e956a95
authored
fix(net/netmon): skip RTM_MISS route messages on Darwin (#113)
On Darwin, the AF_ROUTE socket delivers RTM_MISS on every failed
route lookup. When a STUN probe targets an IPv6 address with no
route (common on machines without global v6 connectivity), each
probe generates an RTM_MISS that netmon treats as a LinkChange.
The LinkChange triggers ReSTUN, which fires another probe, creating
a self-sustaining loop (~1.3 events/s vs the normal ~1/30s cadence).
RTM_MISS is emitted from the route lookup path, not the table
mutation path. Route withdrawals always emit RTM_DELETE before any
subsequent lookup can miss, so RTM_MISS is never the leading signal
for a real topology change. Every mature BSD route-socket consumer
(bird, dhcpcd, frr) ignores it for table-change purposes.1 parent d5fe431 commit e956a95
1 file changed
Lines changed: 12 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
132 | 132 | | |
133 | 133 | | |
134 | 134 | | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
135 | 147 | | |
136 | 148 | | |
137 | 149 | | |
| |||
0 commit comments