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