mirror of
https://github.com/netbirdio/gvisor.git
synced 2026-05-22 17:12:49 -07:00
Reduce timer churn in NUD
PiperOrigin-RevId: 438852403
This commit is contained in:
committed by
gVisor bot
parent
eb7434349c
commit
f48ef67985
@@ -592,13 +592,13 @@ func (e *neighborEntry) handleConfirmationLocked(linkAddr tcpip.LinkAddress, fla
|
||||
// Precondition: e.mu MUST be locked.
|
||||
func (e *neighborEntry) handleUpperLevelConfirmationLocked() {
|
||||
switch e.mu.neigh.State {
|
||||
case Reachable, Stale, Delay, Probe:
|
||||
wasReachable := e.mu.neigh.State == Reachable
|
||||
// Set state to Reachable again to refresh timers.
|
||||
case Stale, Delay, Probe:
|
||||
e.setStateLocked(Reachable)
|
||||
if !wasReachable {
|
||||
e.dispatchChangeEventLocked()
|
||||
}
|
||||
e.dispatchChangeEventLocked()
|
||||
|
||||
case Reachable:
|
||||
// Avoid setStateLocked; Timer.Reset is cheaper.
|
||||
e.mu.timer.timer.Reset(e.nudState.ReachableTime())
|
||||
|
||||
case Unknown, Incomplete, Unreachable, Static:
|
||||
// Do nothing
|
||||
|
||||
Reference in New Issue
Block a user