mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-24 13:44:26 -04:00
[XFRM]: Define packet dropping statistics.
This statistics is shown factor dropped by transformation at /proc/net/xfrm_stat for developer. It is a counter designed from current transformation source code and defined as linux private MIB. See Documentation/networking/xfrm_proc.txt for the detail. Signed-off-by: Masahide NAKAMURA <nakam@linux-ipv6.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
9473e1f631
commit
558f82ef6e
7 changed files with 246 additions and 0 deletions
|
|
@ -217,4 +217,35 @@ enum
|
|||
__LINUX_MIB_MAX
|
||||
};
|
||||
|
||||
/* linux Xfrm mib definitions */
|
||||
enum
|
||||
{
|
||||
LINUX_MIB_XFRMNUM = 0,
|
||||
LINUX_MIB_XFRMINERROR, /* XfrmInError */
|
||||
LINUX_MIB_XFRMINBUFFERERROR, /* XfrmInBufferError */
|
||||
LINUX_MIB_XFRMINHDRERROR, /* XfrmInHdrError */
|
||||
LINUX_MIB_XFRMINNOSTATES, /* XfrmInNoStates */
|
||||
LINUX_MIB_XFRMINSTATEPROTOERROR, /* XfrmInStateProtoError */
|
||||
LINUX_MIB_XFRMINSTATEMODEERROR, /* XfrmInStateModeError */
|
||||
LINUX_MIB_XFRMINSEQOUTOFWINDOW, /* XfrmInSeqOutOfWindow */
|
||||
LINUX_MIB_XFRMINSTATEEXPIRED, /* XfrmInStateExpired */
|
||||
LINUX_MIB_XFRMINSTATEMISMATCH, /* XfrmInStateMismatch */
|
||||
LINUX_MIB_XFRMINSTATEINVALID, /* XfrmInStateInvalid */
|
||||
LINUX_MIB_XFRMINTMPLMISMATCH, /* XfrmInTmplMismatch */
|
||||
LINUX_MIB_XFRMINNOPOLS, /* XfrmInNoPols */
|
||||
LINUX_MIB_XFRMINPOLBLOCK, /* XfrmInPolBlock */
|
||||
LINUX_MIB_XFRMINPOLERROR, /* XfrmInPolError */
|
||||
LINUX_MIB_XFRMOUTERROR, /* XfrmOutError */
|
||||
LINUX_MIB_XFRMOUTBUNDLEGENERROR, /* XfrmOutBundleGenError */
|
||||
LINUX_MIB_XFRMOUTBUNDLECHECKERROR, /* XfrmOutBundleCheckError */
|
||||
LINUX_MIB_XFRMOUTNOSTATES, /* XfrmOutNoStates */
|
||||
LINUX_MIB_XFRMOUTSTATEPROTOERROR, /* XfrmOutStateProtoError */
|
||||
LINUX_MIB_XFRMOUTSTATEMODEERROR, /* XfrmOutStateModeError */
|
||||
LINUX_MIB_XFRMOUTSTATEEXPIRED, /* XfrmOutStateExpired */
|
||||
LINUX_MIB_XFRMOUTPOLBLOCK, /* XfrmOutPolBlock */
|
||||
LINUX_MIB_XFRMOUTPOLDEAD, /* XfrmOutPolDead */
|
||||
LINUX_MIB_XFRMOUTPOLERROR, /* XfrmOutPolError */
|
||||
__LINUX_MIB_XFRMMAX
|
||||
};
|
||||
|
||||
#endif /* _LINUX_SNMP_H */
|
||||
|
|
|
|||
|
|
@ -118,6 +118,11 @@ struct linux_mib {
|
|||
unsigned long mibs[LINUX_MIB_MAX];
|
||||
};
|
||||
|
||||
/* Linux Xfrm */
|
||||
#define LINUX_MIB_XFRMMAX __LINUX_MIB_XFRMMAX
|
||||
struct linux_xfrm_mib {
|
||||
unsigned long mibs[LINUX_MIB_XFRMMAX];
|
||||
};
|
||||
|
||||
/*
|
||||
* FIXME: On x86 and some other CPUs the split into user and softirq parts
|
||||
|
|
|
|||
|
|
@ -19,6 +19,9 @@
|
|||
#include <net/route.h>
|
||||
#include <net/ipv6.h>
|
||||
#include <net/ip6_fib.h>
|
||||
#ifdef CONFIG_XFRM_STATISTICS
|
||||
#include <net/snmp.h>
|
||||
#endif
|
||||
|
||||
#define XFRM_PROTO_ESP 50
|
||||
#define XFRM_PROTO_AH 51
|
||||
|
|
@ -34,6 +37,17 @@
|
|||
#define MODULE_ALIAS_XFRM_TYPE(family, proto) \
|
||||
MODULE_ALIAS("xfrm-type-" __stringify(family) "-" __stringify(proto))
|
||||
|
||||
#ifdef CONFIG_XFRM_STATISTICS
|
||||
DECLARE_SNMP_STAT(struct linux_xfrm_mib, xfrm_statistics);
|
||||
#define XFRM_INC_STATS(field) SNMP_INC_STATS(xfrm_statistics, field)
|
||||
#define XFRM_INC_STATS_BH(field) SNMP_INC_STATS_BH(xfrm_statistics, field)
|
||||
#define XFRM_INC_STATS_USER(field) SNMP_INC_STATS_USER(xfrm_statistics, field)
|
||||
#else
|
||||
#define XFRM_INC_STATS(field)
|
||||
#define XFRM_INC_STATS_BH(field)
|
||||
#define XFRM_INC_STATS_USER(field)
|
||||
#endif
|
||||
|
||||
extern struct sock *xfrm_nl;
|
||||
extern u32 sysctl_xfrm_aevent_etime;
|
||||
extern u32 sysctl_xfrm_aevent_rseqth;
|
||||
|
|
@ -1139,6 +1153,10 @@ static inline void xfrm6_fini(void)
|
|||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_XFRM_STATISTICS
|
||||
extern int xfrm_proc_init(void);
|
||||
#endif
|
||||
|
||||
extern int xfrm_state_walk(u8 proto, int (*func)(struct xfrm_state *, int, void*), void *);
|
||||
extern struct xfrm_state *xfrm_state_alloc(void);
|
||||
extern struct xfrm_state *xfrm_state_find(xfrm_address_t *daddr, xfrm_address_t *saddr,
|
||||
|
|
|
|||
Loading…
Reference in a new issue