1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2 #ifndef _XT_ADDRTYPE_H
3 #define _XT_ADDRTYPE_H
4 
5 #include <linux/types.h>
6 
7 enum {
8 	XT_ADDRTYPE_INVERT_SOURCE	= 0x0001,
9 	XT_ADDRTYPE_INVERT_DEST		= 0x0002,
10 	XT_ADDRTYPE_LIMIT_IFACE_IN	= 0x0004,
11 	XT_ADDRTYPE_LIMIT_IFACE_OUT	= 0x0008,
12 };
13 
14 
15 /* rtn_type enum values from rtnetlink.h, but shifted */
16 enum {
17 	XT_ADDRTYPE_UNSPEC = 1 << 0,
18 	XT_ADDRTYPE_UNICAST = 1 << 1,	/* 1 << RTN_UNICAST */
19 	XT_ADDRTYPE_LOCAL  = 1 << 2,	/* 1 << RTN_LOCAL, etc */
20 	XT_ADDRTYPE_BROADCAST = 1 << 3,
21 	XT_ADDRTYPE_ANYCAST = 1 << 4,
22 	XT_ADDRTYPE_MULTICAST = 1 << 5,
23 	XT_ADDRTYPE_BLACKHOLE = 1 << 6,
24 	XT_ADDRTYPE_UNREACHABLE = 1 << 7,
25 	XT_ADDRTYPE_PROHIBIT = 1 << 8,
26 	XT_ADDRTYPE_THROW = 1 << 9,
27 	XT_ADDRTYPE_NAT = 1 << 10,
28 	XT_ADDRTYPE_XRESOLVE = 1 << 11,
29 };
30 
31 struct xt_addrtype_info_v1 {
32 	uint16_t	source;		/* source-type mask */
33 	uint16_t	dest;		/* dest-type mask */
34 	uint32_t	flags;
35 };
36 
37 /* revision 0 */
38 struct xt_addrtype_info {
39 	uint16_t	source;		/* source-type mask */
40 	uint16_t	dest;		/* dest-type mask */
41 	uint32_t	invert_source;
42 	uint32_t	invert_dest;
43 };
44 
45 #endif
46