Commit 9472c9ef645d03ea823801d7716e658aeaf894e4

Authored by Masahide NAKAMURA
Committed by David S. Miller
1 parent 5255dc6e14

[XFRM]: Fix statistics.

o Outbound sequence number overflow error status
  is counted as XfrmOutStateSeqError.
o Additionaly, it changes inbound sequence number replay
  error name from XfrmInSeqOutOfWindow to XfrmInStateSeqError
  to apply name scheme above.
o Inbound IPv4 UDP encapsuling type mismatch error is wrongly
  mapped to XfrmInStateInvalid then this patch fiex the error
  to XfrmInStateMismatch.

Signed-off-by: Masahide NAKAMURA <nakam@linux-ipv6.org>
Signed-off-by: David S. Miller <davem@davemloft.net>

Showing 5 changed files with 13 additions and 6 deletions Side-by-side Diff

Documentation/networking/xfrm_proc.txt
... ... @@ -26,8 +26,9 @@
26 26 e.g. SA key is wrong
27 27 XfrmInStateModeError:
28 28 Transformation mode specific error
29   -XfrmInSeqOutOfWindow:
30   - Sequence out of window
  29 +XfrmInStateSeqError:
  30 + Sequence error
  31 + i.e. Sequence number is out of window
31 32 XfrmInStateExpired:
32 33 State is expired
33 34 XfrmInStateMismatch:
... ... @@ -60,6 +61,9 @@
60 61 Transformation protocol specific error
61 62 XfrmOutStateModeError:
62 63 Transformation mode specific error
  64 +XfrmOutStateSeqError:
  65 + Sequence error
  66 + i.e. Sequence number overflow
63 67 XfrmOutStateExpired:
64 68 State is expired
65 69 XfrmOutPolBlock:
include/linux/snmp.h
... ... @@ -227,7 +227,7 @@
227 227 LINUX_MIB_XFRMINNOSTATES, /* XfrmInNoStates */
228 228 LINUX_MIB_XFRMINSTATEPROTOERROR, /* XfrmInStateProtoError */
229 229 LINUX_MIB_XFRMINSTATEMODEERROR, /* XfrmInStateModeError */
230   - LINUX_MIB_XFRMINSEQOUTOFWINDOW, /* XfrmInSeqOutOfWindow */
  230 + LINUX_MIB_XFRMINSTATESEQERROR, /* XfrmInStateSeqError */
231 231 LINUX_MIB_XFRMINSTATEEXPIRED, /* XfrmInStateExpired */
232 232 LINUX_MIB_XFRMINSTATEMISMATCH, /* XfrmInStateMismatch */
233 233 LINUX_MIB_XFRMINSTATEINVALID, /* XfrmInStateInvalid */
... ... @@ -241,6 +241,7 @@
241 241 LINUX_MIB_XFRMOUTNOSTATES, /* XfrmOutNoStates */
242 242 LINUX_MIB_XFRMOUTSTATEPROTOERROR, /* XfrmOutStateProtoError */
243 243 LINUX_MIB_XFRMOUTSTATEMODEERROR, /* XfrmOutStateModeError */
  244 + LINUX_MIB_XFRMOUTSTATESEQERROR, /* XfrmOutStateSeqError */
244 245 LINUX_MIB_XFRMOUTSTATEEXPIRED, /* XfrmOutStateExpired */
245 246 LINUX_MIB_XFRMOUTPOLBLOCK, /* XfrmOutPolBlock */
246 247 LINUX_MIB_XFRMOUTPOLDEAD, /* XfrmOutPolDead */
net/xfrm/xfrm_input.c
... ... @@ -159,12 +159,12 @@
159 159 }
160 160  
161 161 if ((x->encap ? x->encap->encap_type : 0) != encap_type) {
162   - XFRM_INC_STATS(LINUX_MIB_XFRMINSTATEINVALID);
  162 + XFRM_INC_STATS(LINUX_MIB_XFRMINSTATEMISMATCH);
163 163 goto drop_unlock;
164 164 }
165 165  
166 166 if (x->props.replay_window && xfrm_replay_check(x, skb, seq)) {
167   - XFRM_INC_STATS(LINUX_MIB_XFRMINSEQOUTOFWINDOW);
  167 + XFRM_INC_STATS(LINUX_MIB_XFRMINSTATESEQERROR);
168 168 goto drop_unlock;
169 169 }
170 170  
net/xfrm/xfrm_output.c
... ... @@ -64,6 +64,7 @@
64 64 if (x->type->flags & XFRM_TYPE_REPLAY_PROT) {
65 65 XFRM_SKB_CB(skb)->seq = ++x->replay.oseq;
66 66 if (unlikely(x->replay.oseq == 0)) {
  67 + XFRM_INC_STATS(LINUX_MIB_XFRMOUTSTATESEQERROR);
67 68 x->replay.oseq--;
68 69 xfrm_audit_state_replay_overflow(x, skb);
69 70 err = -EOVERFLOW;
net/xfrm/xfrm_proc.c
... ... @@ -22,7 +22,7 @@
22 22 SNMP_MIB_ITEM("XfrmInNoStates", LINUX_MIB_XFRMINNOSTATES),
23 23 SNMP_MIB_ITEM("XfrmInStateProtoError", LINUX_MIB_XFRMINSTATEPROTOERROR),
24 24 SNMP_MIB_ITEM("XfrmInStateModeError", LINUX_MIB_XFRMINSTATEMODEERROR),
25   - SNMP_MIB_ITEM("XfrmInSeqOutOfWindow", LINUX_MIB_XFRMINSEQOUTOFWINDOW),
  25 + SNMP_MIB_ITEM("XfrmInStateSeqError", LINUX_MIB_XFRMINSTATESEQERROR),
26 26 SNMP_MIB_ITEM("XfrmInStateExpired", LINUX_MIB_XFRMINSTATEEXPIRED),
27 27 SNMP_MIB_ITEM("XfrmInStateMismatch", LINUX_MIB_XFRMINSTATEMISMATCH),
28 28 SNMP_MIB_ITEM("XfrmInStateInvalid", LINUX_MIB_XFRMINSTATEINVALID),
... ... @@ -36,6 +36,7 @@
36 36 SNMP_MIB_ITEM("XfrmOutNoStates", LINUX_MIB_XFRMOUTNOSTATES),
37 37 SNMP_MIB_ITEM("XfrmOutStateProtoError", LINUX_MIB_XFRMOUTSTATEPROTOERROR),
38 38 SNMP_MIB_ITEM("XfrmOutStateModeError", LINUX_MIB_XFRMOUTSTATEMODEERROR),
  39 + SNMP_MIB_ITEM("XfrmOutStateSeqError", LINUX_MIB_XFRMOUTSTATESEQERROR),
39 40 SNMP_MIB_ITEM("XfrmOutStateExpired", LINUX_MIB_XFRMOUTSTATEEXPIRED),
40 41 SNMP_MIB_ITEM("XfrmOutPolBlock", LINUX_MIB_XFRMOUTPOLBLOCK),
41 42 SNMP_MIB_ITEM("XfrmOutPolDead", LINUX_MIB_XFRMOUTPOLDEAD),