Commit | Line | Data |
---|---|---|
c4b88513 PM |
1 | #ifndef _XT_POLICY_H |
2 | #define _XT_POLICY_H | |
3 | ||
60c195c7 | 4 | #include <linux/types.h> |
1ffad83d MR |
5 | #include <linux/in.h> |
6 | #include <linux/in6.h> | |
60c195c7 | 7 | |
c4b88513 PM |
8 | #define XT_POLICY_MAX_ELEM 4 |
9 | ||
d94d9fee | 10 | enum xt_policy_flags { |
c4b88513 PM |
11 | XT_POLICY_MATCH_IN = 0x1, |
12 | XT_POLICY_MATCH_OUT = 0x2, | |
13 | XT_POLICY_MATCH_NONE = 0x4, | |
14 | XT_POLICY_MATCH_STRICT = 0x8, | |
15 | }; | |
16 | ||
d94d9fee | 17 | enum xt_policy_modes { |
c4b88513 PM |
18 | XT_POLICY_MODE_TRANSPORT, |
19 | XT_POLICY_MODE_TUNNEL | |
20 | }; | |
21 | ||
d94d9fee | 22 | struct xt_policy_spec { |
60c195c7 | 23 | __u8 saddr:1, |
c4b88513 PM |
24 | daddr:1, |
25 | proto:1, | |
26 | mode:1, | |
27 | spi:1, | |
28 | reqid:1; | |
29 | }; | |
30 | ||
917b6fbd | 31 | #ifndef __KERNEL__ |
d94d9fee | 32 | union xt_policy_addr { |
c4b88513 PM |
33 | struct in_addr a4; |
34 | struct in6_addr a6; | |
35 | }; | |
917b6fbd | 36 | #endif |
c4b88513 | 37 | |
d94d9fee | 38 | struct xt_policy_elem { |
917b6fbd JE |
39 | union { |
40 | #ifdef __KERNEL__ | |
41 | struct { | |
42 | union nf_inet_addr saddr; | |
43 | union nf_inet_addr smask; | |
44 | union nf_inet_addr daddr; | |
45 | union nf_inet_addr dmask; | |
46 | }; | |
47 | #else | |
48 | struct { | |
49 | union xt_policy_addr saddr; | |
50 | union xt_policy_addr smask; | |
51 | union xt_policy_addr daddr; | |
52 | union xt_policy_addr dmask; | |
53 | }; | |
54 | #endif | |
55 | }; | |
98a4a861 | 56 | __be32 spi; |
60c195c7 AB |
57 | __u32 reqid; |
58 | __u8 proto; | |
59 | __u8 mode; | |
c4b88513 PM |
60 | |
61 | struct xt_policy_spec match; | |
62 | struct xt_policy_spec invert; | |
63 | }; | |
64 | ||
d94d9fee | 65 | struct xt_policy_info { |
c4b88513 | 66 | struct xt_policy_elem pol[XT_POLICY_MAX_ELEM]; |
60c195c7 AB |
67 | __u16 flags; |
68 | __u16 len; | |
c4b88513 PM |
69 | }; |
70 | ||
71 | #endif /* _XT_POLICY_H */ |