Merge release-20201109.0-112-gf90ab60a8 (automated)

This commit is contained in:
gVisor bot 2020-11-24 22:25:59 +00:00
commit 4dc3fa9c2e
3 changed files with 14 additions and 4 deletions

View File

@ -24,9 +24,16 @@ import (
const neighborCacheSize = 512 // max entries per interface
// NeighborStats holds metrics for the neighbor table.
type NeighborStats struct {
// FailedEntryLookups counts the number of lookups performed on an entry in
// Failed state.
FailedEntryLookups *tcpip.StatCounter
}
// neighborCache maps IP addresses to link addresses. It uses the Least
// Recently Used (LRU) eviction strategy to implement a bounded cache for
// dynmically acquired entries. It contains the state machine and configuration
// dynamically acquired entries. It contains the state machine and configuration
// for running Neighbor Unreachability Detection (NUD).
//
// There are two types of entries in the neighbor cache:

View File

@ -347,9 +347,10 @@ func (e *neighborEntry) handlePacketQueuedLocked(localAddr tcpip.Address) {
e.setStateLocked(Delay)
e.dispatchChangeEventLocked()
case Incomplete, Reachable, Delay, Probe, Static, Failed:
case Incomplete, Reachable, Delay, Probe, Static:
// Do nothing
case Failed:
e.nic.stats.Neighbor.FailedEntryLookups.Increment()
default:
panic(fmt.Sprintf("Invalid cache entry state: %s", e.neigh.State))
}

View File

@ -60,12 +60,14 @@ type NIC struct {
}
}
// NICStats includes transmitted and received stats.
// NICStats hold statistics for a NIC.
type NICStats struct {
Tx DirectionStats
Rx DirectionStats
DisabledRx DirectionStats
Neighbor NeighborStats
}
func makeNICStats() NICStats {