Warning: This file is not a C or C++ file. It does not have highlighting.
1 | /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ |
---|---|
2 | #ifndef _XT_SET_H |
3 | #define _XT_SET_H |
4 | |
5 | #include <linux/types.h> |
6 | #include <linux/netfilter/ipset/ip_set.h> |
7 | |
8 | /* Revision 0 interface: backward compatible with netfilter/iptables */ |
9 | |
10 | /* |
11 | * Option flags for kernel operations (xt_set_info_v0) |
12 | */ |
13 | #define IPSET_SRC 0x01 /* Source match/add */ |
14 | #define IPSET_DST 0x02 /* Destination match/add */ |
15 | #define IPSET_MATCH_INV 0x04 /* Inverse matching */ |
16 | |
17 | struct xt_set_info_v0 { |
18 | ip_set_id_t index; |
19 | union { |
20 | __u32 flags[IPSET_DIM_MAX + 1]; |
21 | struct { |
22 | __u32 __flags[IPSET_DIM_MAX]; |
23 | __u8 dim; |
24 | __u8 flags; |
25 | } compat; |
26 | } u; |
27 | }; |
28 | |
29 | /* match and target infos */ |
30 | struct xt_set_info_match_v0 { |
31 | struct xt_set_info_v0 match_set; |
32 | }; |
33 | |
34 | struct xt_set_info_target_v0 { |
35 | struct xt_set_info_v0 add_set; |
36 | struct xt_set_info_v0 del_set; |
37 | }; |
38 | |
39 | /* Revision 1 match and target */ |
40 | |
41 | struct xt_set_info { |
42 | ip_set_id_t index; |
43 | __u8 dim; |
44 | __u8 flags; |
45 | }; |
46 | |
47 | /* match and target infos */ |
48 | struct xt_set_info_match_v1 { |
49 | struct xt_set_info match_set; |
50 | }; |
51 | |
52 | struct xt_set_info_target_v1 { |
53 | struct xt_set_info add_set; |
54 | struct xt_set_info del_set; |
55 | }; |
56 | |
57 | /* Revision 2 target */ |
58 | |
59 | struct xt_set_info_target_v2 { |
60 | struct xt_set_info add_set; |
61 | struct xt_set_info del_set; |
62 | __u32 flags; |
63 | __u32 timeout; |
64 | }; |
65 | |
66 | /* Revision 3 match */ |
67 | |
68 | struct xt_set_info_match_v3 { |
69 | struct xt_set_info match_set; |
70 | struct ip_set_counter_match0 packets; |
71 | struct ip_set_counter_match0 bytes; |
72 | __u32 flags; |
73 | }; |
74 | |
75 | /* Revision 3 target */ |
76 | |
77 | struct xt_set_info_target_v3 { |
78 | struct xt_set_info add_set; |
79 | struct xt_set_info del_set; |
80 | struct xt_set_info map_set; |
81 | __u32 flags; |
82 | __u32 timeout; |
83 | }; |
84 | |
85 | /* Revision 4 match */ |
86 | |
87 | struct xt_set_info_match_v4 { |
88 | struct xt_set_info match_set; |
89 | struct ip_set_counter_match packets; |
90 | struct ip_set_counter_match bytes; |
91 | __u32 flags; |
92 | }; |
93 | |
94 | #endif /*_XT_SET_H*/ |
95 |
Warning: This file is not a C or C++ file. It does not have highlighting.