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
8enum {
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
27union 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
40struct 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