]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blob - include/uapi/linux/netfilter/xt_policy.h
Merge tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux
[mirror_ubuntu-bionic-kernel.git] / include / uapi / linux / netfilter / xt_policy.h
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/types.h>
6 #include <linux/in.h>
7 #include <linux/in6.h>
8
9 #define XT_POLICY_MAX_ELEM 4
10
11 enum xt_policy_flags {
12 XT_POLICY_MATCH_IN = 0x1,
13 XT_POLICY_MATCH_OUT = 0x2,
14 XT_POLICY_MATCH_NONE = 0x4,
15 XT_POLICY_MATCH_STRICT = 0x8,
16 };
17
18 enum xt_policy_modes {
19 XT_POLICY_MODE_TRANSPORT,
20 XT_POLICY_MODE_TUNNEL
21 };
22
23 struct xt_policy_spec {
24 __u8 saddr:1,
25 daddr:1,
26 proto:1,
27 mode:1,
28 spi:1,
29 reqid:1;
30 };
31
32 #ifndef __KERNEL__
33 union xt_policy_addr {
34 struct in_addr a4;
35 struct in6_addr a6;
36 };
37 #endif
38
39 struct xt_policy_elem {
40 union {
41 #ifdef __KERNEL__
42 struct {
43 union nf_inet_addr saddr;
44 union nf_inet_addr smask;
45 union nf_inet_addr daddr;
46 union nf_inet_addr dmask;
47 };
48 #else
49 struct {
50 union xt_policy_addr saddr;
51 union xt_policy_addr smask;
52 union xt_policy_addr daddr;
53 union xt_policy_addr dmask;
54 };
55 #endif
56 };
57 __be32 spi;
58 __u32 reqid;
59 __u8 proto;
60 __u8 mode;
61
62 struct xt_policy_spec match;
63 struct xt_policy_spec invert;
64 };
65
66 struct xt_policy_info {
67 struct xt_policy_elem pol[XT_POLICY_MAX_ELEM];
68 __u16 flags;
69 __u16 len;
70 };
71
72 #endif /* _XT_POLICY_H */