diff options
author | Neil Horman <nhorman@tuxdriver.com> | 2008-07-16 23:50:49 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-07-16 23:50:49 -0400 |
commit | 9a6d276e85aa3d8f308fc5e8de6892daeb60ae5f (patch) | |
tree | f61e1ad988a037745794fb23004d5bf2f247800f /include/net/neighbour.h | |
parent | ed88098e25d77bef3b2ad8c9d8e2ebf454d9ccbf (diff) |
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>
Diffstat (limited to 'include/net/neighbour.h')
-rw-r--r-- | include/net/neighbour.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/include/net/neighbour.h b/include/net/neighbour.h index dc420fecafb9..aa4b708654a4 100644 --- a/include/net/neighbour.h +++ b/include/net/neighbour.h | |||
@@ -75,7 +75,7 @@ struct neigh_statistics | |||
75 | unsigned long destroys; /* number of destroyed neighs */ | 75 | unsigned long destroys; /* number of destroyed neighs */ |
76 | unsigned long hash_grows; /* number of hash resizes */ | 76 | unsigned long hash_grows; /* number of hash resizes */ |
77 | 77 | ||
78 | unsigned long res_failed; /* nomber of failed resolutions */ | 78 | unsigned long res_failed; /* number of failed resolutions */ |
79 | 79 | ||
80 | unsigned long lookups; /* number of lookups */ | 80 | unsigned long lookups; /* number of lookups */ |
81 | unsigned long hits; /* number of hits (among lookups) */ | 81 | unsigned long hits; /* number of hits (among lookups) */ |
@@ -85,6 +85,8 @@ struct neigh_statistics | |||
85 | 85 | ||
86 | unsigned long periodic_gc_runs; /* number of periodic GC runs */ | 86 | unsigned long periodic_gc_runs; /* number of periodic GC runs */ |
87 | unsigned long forced_gc_runs; /* number of forced GC runs */ | 87 | unsigned long forced_gc_runs; /* number of forced GC runs */ |
88 | |||
89 | unsigned long unres_discards; /* number of unresolved drops */ | ||
88 | }; | 90 | }; |
89 | 91 | ||
90 | #define NEIGH_CACHE_STAT_INC(tbl, field) \ | 92 | #define NEIGH_CACHE_STAT_INC(tbl, field) \ |