1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2 #ifndef XT_HMARK_H_
3 #define XT_HMARK_H_
4 
5 #include <linux/types.h>
6 #include <linux/netfilter.h>
7 
8 enum {
9 	XT_HMARK_SADDR_MASK,
10 	XT_HMARK_DADDR_MASK,
11 	XT_HMARK_SPI,
12 	XT_HMARK_SPI_MASK,
13 	XT_HMARK_SPORT,
14 	XT_HMARK_DPORT,
15 	XT_HMARK_SPORT_MASK,
16 	XT_HMARK_DPORT_MASK,
17 	XT_HMARK_PROTO_MASK,
18 	XT_HMARK_RND,
19 	XT_HMARK_MODULUS,
20 	XT_HMARK_OFFSET,
21 	XT_HMARK_CT,
22 	XT_HMARK_METHOD_L3,
23 	XT_HMARK_METHOD_L3_4,
24 };
25 #define XT_HMARK_FLAG(flag)	(1 << flag)
26 
27 union hmark_ports {
28 	struct {
29 		__u16	src;
30 		__u16	dst;
31 	} p16;
32 	struct {
33 		__be16	src;
34 		__be16	dst;
35 	} b16;
36 	__u32	v32;
37 	__be32	b32;
38 };
39 
40 struct xt_hmark_info {
41 	union nf_inet_addr	src_mask;
42 	union nf_inet_addr	dst_mask;
43 	union hmark_ports	port_mask;
44 	union hmark_ports	port_set;
45 	__u32			flags;
46 	__u16			proto_mask;
47 	__u32			hashrnd;
48 	__u32			hmodulus;
49 	__u32			hoffset;	/* Mark offset to start from */
50 };
51 
52 #endif /* XT_HMARK_H_ */
53