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