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