core: add stat to track unresolved discards in neighbor cache
in __neigh_event_send, if we have a neighbour entry which is in NUD_INCOMPLETE state, we enqueue any outbound frames to that neighbour to the neighbours arp_queue, which is default capped to a length of 3 skbs. If that queue exceeds its set length, it will drop an skb on the queue to enqueue the newly arrived skb. This results in a drop for which we have no statistics incremented. This patch adds an unresolved_discards stat to /proc/net/stat/ndisc_cache to track these lost frames. Signed-off-by: Neil Horman <nhorman@tuxdriver.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
ed88098e25
commit
9a6d276e85
@@ -75,7 +75,7 @@ struct neigh_statistics
|
||||
unsigned long destroys; /* number of destroyed neighs */
|
||||
unsigned long hash_grows; /* number of hash resizes */
|
||||
|
||||
unsigned long res_failed; /* nomber of failed resolutions */
|
||||
unsigned long res_failed; /* number of failed resolutions */
|
||||
|
||||
unsigned long lookups; /* number of lookups */
|
||||
unsigned long hits; /* number of hits (among lookups) */
|
||||
@@ -85,6 +85,8 @@ struct neigh_statistics
|
||||
|
||||
unsigned long periodic_gc_runs; /* number of periodic GC runs */
|
||||
unsigned long forced_gc_runs; /* number of forced GC runs */
|
||||
|
||||
unsigned long unres_discards; /* number of unresolved drops */
|
||||
};
|
||||
|
||||
#define NEIGH_CACHE_STAT_INC(tbl, field) \
|
||||
|
Reference in New Issue
Block a user