1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2 #ifndef _XT_CT_H
3 #define _XT_CT_H
4 
5 #include <linux/types.h>
6 
7 enum {
8 	XT_CT_NOTRACK		= 1 << 0,
9 	XT_CT_NOTRACK_ALIAS	= 1 << 1,
10 	XT_CT_ZONE_DIR_ORIG	= 1 << 2,
11 	XT_CT_ZONE_DIR_REPL	= 1 << 3,
12 	XT_CT_ZONE_MARK		= 1 << 4,
13 
14 	XT_CT_MASK		= XT_CT_NOTRACK | XT_CT_NOTRACK_ALIAS |
15 				  XT_CT_ZONE_DIR_ORIG | XT_CT_ZONE_DIR_REPL |
16 				  XT_CT_ZONE_MARK,
17 };
18 
19 struct xt_ct_target_info {
20 	uint16_t flags;
21 	uint16_t zone;
22 	uint32_t ct_events;
23 	uint32_t exp_events;
24 	char helper[16];
25 
26 	/* Used internally by the kernel */
27 	struct nf_conn	*ct __attribute__((aligned(8)));
28 };
29 
30 struct xt_ct_target_info_v1 {
31 	uint16_t flags;
32 	uint16_t zone;
33 	uint32_t ct_events;
34 	uint32_t exp_events;
35 	char helper[16];
36 	char timeout[32];
37 
38 	/* Used internally by the kernel */
39 	struct nf_conn	*ct __attribute__((aligned(8)));
40 };
41 
42 #endif /* _XT_CT_H */
43