File Index
Files and directories
Sign in
FILE

xt_policy.h

File preview with syntax highlighting.

linux-6.19.14/include/uapi/linux/netfilter/xt_policy.h C
 1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
 2#ifndef _XT_POLICY_H
 3#define _XT_POLICY_H
 4
 5#include <linux/netfilter.h>
 6#include <linux/types.h>
 7#include <linux/in.h>
 8#include <linux/in6.h>
 9
10#define XT_POLICY_MAX_ELEM	4
11
12enum xt_policy_flags {
13	XT_POLICY_MATCH_IN	= 0x1,
14	XT_POLICY_MATCH_OUT	= 0x2,
15	XT_POLICY_MATCH_NONE	= 0x4,
16	XT_POLICY_MATCH_STRICT	= 0x8,
17};
18
19enum xt_policy_modes {
20	XT_POLICY_MODE_TRANSPORT,
21	XT_POLICY_MODE_TUNNEL
22};
23
24struct xt_policy_spec {
25	__u8	saddr:1,
26			daddr:1,
27			proto:1,
28			mode:1,
29			spi:1,
30			reqid:1;
31};
32
33#ifndef __KERNEL__
34union xt_policy_addr {
35	struct in_addr	a4;
36	struct in6_addr	a6;
37};
38#endif
39
40struct xt_policy_elem {
41	union {
42#ifdef __KERNEL__
43		struct {
44			union nf_inet_addr saddr;
45			union nf_inet_addr smask;
46			union nf_inet_addr daddr;
47			union nf_inet_addr dmask;
48		};
49#else
50		struct {
51			union xt_policy_addr saddr;
52			union xt_policy_addr smask;
53			union xt_policy_addr daddr;
54			union xt_policy_addr dmask;
55		};
56#endif
57	};
58	__be32			spi;
59	__u32		reqid;
60	__u8		proto;
61	__u8		mode;
62
63	struct xt_policy_spec	match;
64	struct xt_policy_spec	invert;
65};
66
67struct xt_policy_info {
68	struct xt_policy_elem pol[XT_POLICY_MAX_ELEM];
69	__u16 flags;
70	__u16 len;
71};
72
73#endif /* _XT_POLICY_H */
~/ Read-only file preview.