xt_statistic.h revision 350661a6eb089f3e54e67e022db9e16ea280499f
1ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#ifndef _XT_STATISTIC_H
2ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#define _XT_STATISTIC_H
3ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
4ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#include <linux/types.h>
5ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
6ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruenum xt_statistic_mode {
7ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru	XT_STATISTIC_MODE_RANDOM,
8ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru	XT_STATISTIC_MODE_NTH,
9ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru	__XT_STATISTIC_MODE_MAX
10ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru};
11ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#define XT_STATISTIC_MODE_MAX (__XT_STATISTIC_MODE_MAX - 1)
12ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
13ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruenum xt_statistic_flags {
14ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru	XT_STATISTIC_INVERT		= 0x1,
15ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru};
16ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#define XT_STATISTIC_MASK		0x1
17ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
18ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querustruct xt_statistic_priv;
19ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
20ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querustruct xt_statistic_info {
21ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru	__u16			mode;
22ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru	__u16			flags;
23ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru	union {
24ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru		struct {
25ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru			__u32	probability;
26ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru		} random;
27ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru		struct {
28ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru			__u32	every;
29ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru			__u32	packet;
30ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru			__u32	count; /* unused */
31ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru		} nth;
32ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru	} u;
33ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru	struct xt_statistic_priv *master __attribute__((aligned(8)));
34ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru};
35ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
36ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#endif /* _XT_STATISTIC_H */
37ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru