1#ifndef XT_HMARK_H_
2#define XT_HMARK_H_
3
4#include <linux/types.h>
5
6enum {
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
25union 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
38struct 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