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