diff options
author | David Howells <dhowells@redhat.com> | 2012-10-09 04:48:56 -0400 |
---|---|---|
committer | David Howells <dhowells@redhat.com> | 2012-10-09 04:48:56 -0400 |
commit | 8922082ae6cd2783789e83ae9c67ffcbe5a2f4e1 (patch) | |
tree | 7b2b6598a0ddc7dbe6ebcc89f900366e5a748541 | |
parent | a82014149becc68695e7f1d62a8cc1e4ae062318 (diff) |
UAPI: (Scripted) Disintegrate include/linux/netfilter_arp
Signed-off-by: David Howells <dhowells@redhat.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Michael Kerrisk <mtk.manpages@gmail.com>
Acked-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Acked-by: Dave Jones <davej@redhat.com>
-rw-r--r-- | include/linux/netfilter_arp/Kbuild | 2 | ||||
-rw-r--r-- | include/linux/netfilter_arp/arp_tables.h | 200 | ||||
-rw-r--r-- | include/uapi/linux/netfilter_arp/Kbuild | 2 | ||||
-rw-r--r-- | include/uapi/linux/netfilter_arp/arp_tables.h | 206 | ||||
-rw-r--r-- | include/uapi/linux/netfilter_arp/arpt_mangle.h (renamed from include/linux/netfilter_arp/arpt_mangle.h) | 0 |
5 files changed, 209 insertions, 201 deletions
diff --git a/include/linux/netfilter_arp/Kbuild b/include/linux/netfilter_arp/Kbuild index b27439c71037..e69de29bb2d1 100644 --- a/include/linux/netfilter_arp/Kbuild +++ b/include/linux/netfilter_arp/Kbuild | |||
@@ -1,2 +0,0 @@ | |||
1 | header-y += arp_tables.h | ||
2 | header-y += arpt_mangle.h | ||
diff --git a/include/linux/netfilter_arp/arp_tables.h b/include/linux/netfilter_arp/arp_tables.h index e08565d45178..cfb7191e6efa 100644 --- a/include/linux/netfilter_arp/arp_tables.h +++ b/include/linux/netfilter_arp/arp_tables.h | |||
@@ -5,211 +5,14 @@ | |||
5 | * network byte order. | 5 | * network byte order. |
6 | * flags are stored in host byte order (of course). | 6 | * flags are stored in host byte order (of course). |
7 | */ | 7 | */ |
8 | |||
9 | #ifndef _ARPTABLES_H | 8 | #ifndef _ARPTABLES_H |
10 | #define _ARPTABLES_H | 9 | #define _ARPTABLES_H |
11 | 10 | ||
12 | #ifdef __KERNEL__ | ||
13 | #include <linux/if.h> | 11 | #include <linux/if.h> |
14 | #include <linux/in.h> | 12 | #include <linux/in.h> |
15 | #include <linux/if_arp.h> | 13 | #include <linux/if_arp.h> |
16 | #include <linux/skbuff.h> | 14 | #include <linux/skbuff.h> |
17 | #endif | 15 | #include <uapi/linux/netfilter_arp/arp_tables.h> |
18 | #include <linux/types.h> | ||
19 | #include <linux/compiler.h> | ||
20 | #include <linux/netfilter_arp.h> | ||
21 | |||
22 | #include <linux/netfilter/x_tables.h> | ||
23 | |||
24 | #ifndef __KERNEL__ | ||
25 | #define ARPT_FUNCTION_MAXNAMELEN XT_FUNCTION_MAXNAMELEN | ||
26 | #define ARPT_TABLE_MAXNAMELEN XT_TABLE_MAXNAMELEN | ||
27 | #define arpt_entry_target xt_entry_target | ||
28 | #define arpt_standard_target xt_standard_target | ||
29 | #define arpt_error_target xt_error_target | ||
30 | #define ARPT_CONTINUE XT_CONTINUE | ||
31 | #define ARPT_RETURN XT_RETURN | ||
32 | #define arpt_counters_info xt_counters_info | ||
33 | #define arpt_counters xt_counters | ||
34 | #define ARPT_STANDARD_TARGET XT_STANDARD_TARGET | ||
35 | #define ARPT_ERROR_TARGET XT_ERROR_TARGET | ||
36 | #define ARPT_ENTRY_ITERATE(entries, size, fn, args...) \ | ||
37 | XT_ENTRY_ITERATE(struct arpt_entry, entries, size, fn, ## args) | ||
38 | #endif | ||
39 | |||
40 | #define ARPT_DEV_ADDR_LEN_MAX 16 | ||
41 | |||
42 | struct arpt_devaddr_info { | ||
43 | char addr[ARPT_DEV_ADDR_LEN_MAX]; | ||
44 | char mask[ARPT_DEV_ADDR_LEN_MAX]; | ||
45 | }; | ||
46 | |||
47 | /* Yes, Virginia, you have to zero the padding. */ | ||
48 | struct arpt_arp { | ||
49 | /* Source and target IP addr */ | ||
50 | struct in_addr src, tgt; | ||
51 | /* Mask for src and target IP addr */ | ||
52 | struct in_addr smsk, tmsk; | ||
53 | |||
54 | /* Device hw address length, src+target device addresses */ | ||
55 | __u8 arhln, arhln_mask; | ||
56 | struct arpt_devaddr_info src_devaddr; | ||
57 | struct arpt_devaddr_info tgt_devaddr; | ||
58 | |||
59 | /* ARP operation code. */ | ||
60 | __be16 arpop, arpop_mask; | ||
61 | |||
62 | /* ARP hardware address and protocol address format. */ | ||
63 | __be16 arhrd, arhrd_mask; | ||
64 | __be16 arpro, arpro_mask; | ||
65 | |||
66 | /* The protocol address length is only accepted if it is 4 | ||
67 | * so there is no use in offering a way to do filtering on it. | ||
68 | */ | ||
69 | |||
70 | char iniface[IFNAMSIZ], outiface[IFNAMSIZ]; | ||
71 | unsigned char iniface_mask[IFNAMSIZ], outiface_mask[IFNAMSIZ]; | ||
72 | |||
73 | /* Flags word */ | ||
74 | __u8 flags; | ||
75 | /* Inverse flags */ | ||
76 | __u16 invflags; | ||
77 | }; | ||
78 | |||
79 | /* Values for "flag" field in struct arpt_ip (general arp structure). | ||
80 | * No flags defined yet. | ||
81 | */ | ||
82 | #define ARPT_F_MASK 0x00 /* All possible flag bits mask. */ | ||
83 | |||
84 | /* Values for "inv" field in struct arpt_arp. */ | ||
85 | #define ARPT_INV_VIA_IN 0x0001 /* Invert the sense of IN IFACE. */ | ||
86 | #define ARPT_INV_VIA_OUT 0x0002 /* Invert the sense of OUT IFACE */ | ||
87 | #define ARPT_INV_SRCIP 0x0004 /* Invert the sense of SRC IP. */ | ||
88 | #define ARPT_INV_TGTIP 0x0008 /* Invert the sense of TGT IP. */ | ||
89 | #define ARPT_INV_SRCDEVADDR 0x0010 /* Invert the sense of SRC DEV ADDR. */ | ||
90 | #define ARPT_INV_TGTDEVADDR 0x0020 /* Invert the sense of TGT DEV ADDR. */ | ||
91 | #define ARPT_INV_ARPOP 0x0040 /* Invert the sense of ARP OP. */ | ||
92 | #define ARPT_INV_ARPHRD 0x0080 /* Invert the sense of ARP HRD. */ | ||
93 | #define ARPT_INV_ARPPRO 0x0100 /* Invert the sense of ARP PRO. */ | ||
94 | #define ARPT_INV_ARPHLN 0x0200 /* Invert the sense of ARP HLN. */ | ||
95 | #define ARPT_INV_MASK 0x03FF /* All possible flag bits mask. */ | ||
96 | |||
97 | /* This structure defines each of the firewall rules. Consists of 3 | ||
98 | parts which are 1) general ARP header stuff 2) match specific | ||
99 | stuff 3) the target to perform if the rule matches */ | ||
100 | struct arpt_entry | ||
101 | { | ||
102 | struct arpt_arp arp; | ||
103 | |||
104 | /* Size of arpt_entry + matches */ | ||
105 | __u16 target_offset; | ||
106 | /* Size of arpt_entry + matches + target */ | ||
107 | __u16 next_offset; | ||
108 | |||
109 | /* Back pointer */ | ||
110 | unsigned int comefrom; | ||
111 | |||
112 | /* Packet and byte counters. */ | ||
113 | struct xt_counters counters; | ||
114 | |||
115 | /* The matches (if any), then the target. */ | ||
116 | unsigned char elems[0]; | ||
117 | }; | ||
118 | |||
119 | /* | ||
120 | * New IP firewall options for [gs]etsockopt at the RAW IP level. | ||
121 | * Unlike BSD Linux inherits IP options so you don't have to use a raw | ||
122 | * socket for this. Instead we check rights in the calls. | ||
123 | * | ||
124 | * ATTENTION: check linux/in.h before adding new number here. | ||
125 | */ | ||
126 | #define ARPT_BASE_CTL 96 | ||
127 | |||
128 | #define ARPT_SO_SET_REPLACE (ARPT_BASE_CTL) | ||
129 | #define ARPT_SO_SET_ADD_COUNTERS (ARPT_BASE_CTL + 1) | ||
130 | #define ARPT_SO_SET_MAX ARPT_SO_SET_ADD_COUNTERS | ||
131 | |||
132 | #define ARPT_SO_GET_INFO (ARPT_BASE_CTL) | ||
133 | #define ARPT_SO_GET_ENTRIES (ARPT_BASE_CTL + 1) | ||
134 | /* #define ARPT_SO_GET_REVISION_MATCH (APRT_BASE_CTL + 2) */ | ||
135 | #define ARPT_SO_GET_REVISION_TARGET (ARPT_BASE_CTL + 3) | ||
136 | #define ARPT_SO_GET_MAX (ARPT_SO_GET_REVISION_TARGET) | ||
137 | |||
138 | /* The argument to ARPT_SO_GET_INFO */ | ||
139 | struct arpt_getinfo { | ||
140 | /* Which table: caller fills this in. */ | ||
141 | char name[XT_TABLE_MAXNAMELEN]; | ||
142 | |||
143 | /* Kernel fills these in. */ | ||
144 | /* Which hook entry points are valid: bitmask */ | ||
145 | unsigned int valid_hooks; | ||
146 | |||
147 | /* Hook entry points: one per netfilter hook. */ | ||
148 | unsigned int hook_entry[NF_ARP_NUMHOOKS]; | ||
149 | |||
150 | /* Underflow points. */ | ||
151 | unsigned int underflow[NF_ARP_NUMHOOKS]; | ||
152 | |||
153 | /* Number of entries */ | ||
154 | unsigned int num_entries; | ||
155 | |||
156 | /* Size of entries. */ | ||
157 | unsigned int size; | ||
158 | }; | ||
159 | |||
160 | /* The argument to ARPT_SO_SET_REPLACE. */ | ||
161 | struct arpt_replace { | ||
162 | /* Which table. */ | ||
163 | char name[XT_TABLE_MAXNAMELEN]; | ||
164 | |||
165 | /* Which hook entry points are valid: bitmask. You can't | ||
166 | change this. */ | ||
167 | unsigned int valid_hooks; | ||
168 | |||
169 | /* Number of entries */ | ||
170 | unsigned int num_entries; | ||
171 | |||
172 | /* Total size of new entries */ | ||
173 | unsigned int size; | ||
174 | |||
175 | /* Hook entry points. */ | ||
176 | unsigned int hook_entry[NF_ARP_NUMHOOKS]; | ||
177 | |||
178 | /* Underflow points. */ | ||
179 | unsigned int underflow[NF_ARP_NUMHOOKS]; | ||
180 | |||
181 | /* Information about old entries: */ | ||
182 | /* Number of counters (must be equal to current number of entries). */ | ||
183 | unsigned int num_counters; | ||
184 | /* The old entries' counters. */ | ||
185 | struct xt_counters __user *counters; | ||
186 | |||
187 | /* The entries (hang off end: not really an array). */ | ||
188 | struct arpt_entry entries[0]; | ||
189 | }; | ||
190 | |||
191 | /* The argument to ARPT_SO_GET_ENTRIES. */ | ||
192 | struct arpt_get_entries { | ||
193 | /* Which table: user fills this in. */ | ||
194 | char name[XT_TABLE_MAXNAMELEN]; | ||
195 | |||
196 | /* User fills this in: total entry size. */ | ||
197 | unsigned int size; | ||
198 | |||
199 | /* The entries. */ | ||
200 | struct arpt_entry entrytable[0]; | ||
201 | }; | ||
202 | |||
203 | /* Helper functions */ | ||
204 | static __inline__ struct xt_entry_target *arpt_get_target(struct arpt_entry *e) | ||
205 | { | ||
206 | return (void *)e + e->target_offset; | ||
207 | } | ||
208 | |||
209 | /* | ||
210 | * Main firewall chains definitions and global var's definitions. | ||
211 | */ | ||
212 | #ifdef __KERNEL__ | ||
213 | 16 | ||
214 | /* Standard entry. */ | 17 | /* Standard entry. */ |
215 | struct arpt_standard { | 18 | struct arpt_standard { |
@@ -274,5 +77,4 @@ compat_arpt_get_target(struct compat_arpt_entry *e) | |||
274 | } | 77 | } |
275 | 78 | ||
276 | #endif /* CONFIG_COMPAT */ | 79 | #endif /* CONFIG_COMPAT */ |
277 | #endif /*__KERNEL__*/ | ||
278 | #endif /* _ARPTABLES_H */ | 80 | #endif /* _ARPTABLES_H */ |
diff --git a/include/uapi/linux/netfilter_arp/Kbuild b/include/uapi/linux/netfilter_arp/Kbuild index aafaa5aa54d4..62d5637cc0ac 100644 --- a/include/uapi/linux/netfilter_arp/Kbuild +++ b/include/uapi/linux/netfilter_arp/Kbuild | |||
@@ -1 +1,3 @@ | |||
1 | # UAPI Header export list | 1 | # UAPI Header export list |
2 | header-y += arp_tables.h | ||
3 | header-y += arpt_mangle.h | ||
diff --git a/include/uapi/linux/netfilter_arp/arp_tables.h b/include/uapi/linux/netfilter_arp/arp_tables.h new file mode 100644 index 000000000000..a5a86a4db6b3 --- /dev/null +++ b/include/uapi/linux/netfilter_arp/arp_tables.h | |||
@@ -0,0 +1,206 @@ | |||
1 | /* | ||
2 | * Format of an ARP firewall descriptor | ||
3 | * | ||
4 | * src, tgt, src_mask, tgt_mask, arpop, arpop_mask are always stored in | ||
5 | * network byte order. | ||
6 | * flags are stored in host byte order (of course). | ||
7 | */ | ||
8 | |||
9 | #ifndef _UAPI_ARPTABLES_H | ||
10 | #define _UAPI_ARPTABLES_H | ||
11 | |||
12 | #include <linux/types.h> | ||
13 | #include <linux/compiler.h> | ||
14 | #include <linux/netfilter_arp.h> | ||
15 | |||
16 | #include <linux/netfilter/x_tables.h> | ||
17 | |||
18 | #ifndef __KERNEL__ | ||
19 | #define ARPT_FUNCTION_MAXNAMELEN XT_FUNCTION_MAXNAMELEN | ||
20 | #define ARPT_TABLE_MAXNAMELEN XT_TABLE_MAXNAMELEN | ||
21 | #define arpt_entry_target xt_entry_target | ||
22 | #define arpt_standard_target xt_standard_target | ||
23 | #define arpt_error_target xt_error_target | ||
24 | #define ARPT_CONTINUE XT_CONTINUE | ||
25 | #define ARPT_RETURN XT_RETURN | ||
26 | #define arpt_counters_info xt_counters_info | ||
27 | #define arpt_counters xt_counters | ||
28 | #define ARPT_STANDARD_TARGET XT_STANDARD_TARGET | ||
29 | #define ARPT_ERROR_TARGET XT_ERROR_TARGET | ||
30 | #define ARPT_ENTRY_ITERATE(entries, size, fn, args...) \ | ||
31 | XT_ENTRY_ITERATE(struct arpt_entry, entries, size, fn, ## args) | ||
32 | #endif | ||
33 | |||
34 | #define ARPT_DEV_ADDR_LEN_MAX 16 | ||
35 | |||
36 | struct arpt_devaddr_info { | ||
37 | char addr[ARPT_DEV_ADDR_LEN_MAX]; | ||
38 | char mask[ARPT_DEV_ADDR_LEN_MAX]; | ||
39 | }; | ||
40 | |||
41 | /* Yes, Virginia, you have to zero the padding. */ | ||
42 | struct arpt_arp { | ||
43 | /* Source and target IP addr */ | ||
44 | struct in_addr src, tgt; | ||
45 | /* Mask for src and target IP addr */ | ||
46 | struct in_addr smsk, tmsk; | ||
47 | |||
48 | /* Device hw address length, src+target device addresses */ | ||
49 | __u8 arhln, arhln_mask; | ||
50 | struct arpt_devaddr_info src_devaddr; | ||
51 | struct arpt_devaddr_info tgt_devaddr; | ||
52 | |||
53 | /* ARP operation code. */ | ||
54 | __be16 arpop, arpop_mask; | ||
55 | |||
56 | /* ARP hardware address and protocol address format. */ | ||
57 | __be16 arhrd, arhrd_mask; | ||
58 | __be16 arpro, arpro_mask; | ||
59 | |||
60 | /* The protocol address length is only accepted if it is 4 | ||
61 | * so there is no use in offering a way to do filtering on it. | ||
62 | */ | ||
63 | |||
64 | char iniface[IFNAMSIZ], outiface[IFNAMSIZ]; | ||
65 | unsigned char iniface_mask[IFNAMSIZ], outiface_mask[IFNAMSIZ]; | ||
66 | |||
67 | /* Flags word */ | ||
68 | __u8 flags; | ||
69 | /* Inverse flags */ | ||
70 | __u16 invflags; | ||
71 | }; | ||
72 | |||
73 | /* Values for "flag" field in struct arpt_ip (general arp structure). | ||
74 | * No flags defined yet. | ||
75 | */ | ||
76 | #define ARPT_F_MASK 0x00 /* All possible flag bits mask. */ | ||
77 | |||
78 | /* Values for "inv" field in struct arpt_arp. */ | ||
79 | #define ARPT_INV_VIA_IN 0x0001 /* Invert the sense of IN IFACE. */ | ||
80 | #define ARPT_INV_VIA_OUT 0x0002 /* Invert the sense of OUT IFACE */ | ||
81 | #define ARPT_INV_SRCIP 0x0004 /* Invert the sense of SRC IP. */ | ||
82 | #define ARPT_INV_TGTIP 0x0008 /* Invert the sense of TGT IP. */ | ||
83 | #define ARPT_INV_SRCDEVADDR 0x0010 /* Invert the sense of SRC DEV ADDR. */ | ||
84 | #define ARPT_INV_TGTDEVADDR 0x0020 /* Invert the sense of TGT DEV ADDR. */ | ||
85 | #define ARPT_INV_ARPOP 0x0040 /* Invert the sense of ARP OP. */ | ||
86 | #define ARPT_INV_ARPHRD 0x0080 /* Invert the sense of ARP HRD. */ | ||
87 | #define ARPT_INV_ARPPRO 0x0100 /* Invert the sense of ARP PRO. */ | ||
88 | #define ARPT_INV_ARPHLN 0x0200 /* Invert the sense of ARP HLN. */ | ||
89 | #define ARPT_INV_MASK 0x03FF /* All possible flag bits mask. */ | ||
90 | |||
91 | /* This structure defines each of the firewall rules. Consists of 3 | ||
92 | parts which are 1) general ARP header stuff 2) match specific | ||
93 | stuff 3) the target to perform if the rule matches */ | ||
94 | struct arpt_entry | ||
95 | { | ||
96 | struct arpt_arp arp; | ||
97 | |||
98 | /* Size of arpt_entry + matches */ | ||
99 | __u16 target_offset; | ||
100 | /* Size of arpt_entry + matches + target */ | ||
101 | __u16 next_offset; | ||
102 | |||
103 | /* Back pointer */ | ||
104 | unsigned int comefrom; | ||
105 | |||
106 | /* Packet and byte counters. */ | ||
107 | struct xt_counters counters; | ||
108 | |||
109 | /* The matches (if any), then the target. */ | ||
110 | unsigned char elems[0]; | ||
111 | }; | ||
112 | |||
113 | /* | ||
114 | * New IP firewall options for [gs]etsockopt at the RAW IP level. | ||
115 | * Unlike BSD Linux inherits IP options so you don't have to use a raw | ||
116 | * socket for this. Instead we check rights in the calls. | ||
117 | * | ||
118 | * ATTENTION: check linux/in.h before adding new number here. | ||
119 | */ | ||
120 | #define ARPT_BASE_CTL 96 | ||
121 | |||
122 | #define ARPT_SO_SET_REPLACE (ARPT_BASE_CTL) | ||
123 | #define ARPT_SO_SET_ADD_COUNTERS (ARPT_BASE_CTL + 1) | ||
124 | #define ARPT_SO_SET_MAX ARPT_SO_SET_ADD_COUNTERS | ||
125 | |||
126 | #define ARPT_SO_GET_INFO (ARPT_BASE_CTL) | ||
127 | #define ARPT_SO_GET_ENTRIES (ARPT_BASE_CTL + 1) | ||
128 | /* #define ARPT_SO_GET_REVISION_MATCH (APRT_BASE_CTL + 2) */ | ||
129 | #define ARPT_SO_GET_REVISION_TARGET (ARPT_BASE_CTL + 3) | ||
130 | #define ARPT_SO_GET_MAX (ARPT_SO_GET_REVISION_TARGET) | ||
131 | |||
132 | /* The argument to ARPT_SO_GET_INFO */ | ||
133 | struct arpt_getinfo { | ||
134 | /* Which table: caller fills this in. */ | ||
135 | char name[XT_TABLE_MAXNAMELEN]; | ||
136 | |||
137 | /* Kernel fills these in. */ | ||
138 | /* Which hook entry points are valid: bitmask */ | ||
139 | unsigned int valid_hooks; | ||
140 | |||
141 | /* Hook entry points: one per netfilter hook. */ | ||
142 | unsigned int hook_entry[NF_ARP_NUMHOOKS]; | ||
143 | |||
144 | /* Underflow points. */ | ||
145 | unsigned int underflow[NF_ARP_NUMHOOKS]; | ||
146 | |||
147 | /* Number of entries */ | ||
148 | unsigned int num_entries; | ||
149 | |||
150 | /* Size of entries. */ | ||
151 | unsigned int size; | ||
152 | }; | ||
153 | |||
154 | /* The argument to ARPT_SO_SET_REPLACE. */ | ||
155 | struct arpt_replace { | ||
156 | /* Which table. */ | ||
157 | char name[XT_TABLE_MAXNAMELEN]; | ||
158 | |||
159 | /* Which hook entry points are valid: bitmask. You can't | ||
160 | change this. */ | ||
161 | unsigned int valid_hooks; | ||
162 | |||
163 | /* Number of entries */ | ||
164 | unsigned int num_entries; | ||
165 | |||
166 | /* Total size of new entries */ | ||
167 | unsigned int size; | ||
168 | |||
169 | /* Hook entry points. */ | ||
170 | unsigned int hook_entry[NF_ARP_NUMHOOKS]; | ||
171 | |||
172 | /* Underflow points. */ | ||
173 | unsigned int underflow[NF_ARP_NUMHOOKS]; | ||
174 | |||
175 | /* Information about old entries: */ | ||
176 | /* Number of counters (must be equal to current number of entries). */ | ||
177 | unsigned int num_counters; | ||
178 | /* The old entries' counters. */ | ||
179 | struct xt_counters __user *counters; | ||
180 | |||
181 | /* The entries (hang off end: not really an array). */ | ||
182 | struct arpt_entry entries[0]; | ||
183 | }; | ||
184 | |||
185 | /* The argument to ARPT_SO_GET_ENTRIES. */ | ||
186 | struct arpt_get_entries { | ||
187 | /* Which table: user fills this in. */ | ||
188 | char name[XT_TABLE_MAXNAMELEN]; | ||
189 | |||
190 | /* User fills this in: total entry size. */ | ||
191 | unsigned int size; | ||
192 | |||
193 | /* The entries. */ | ||
194 | struct arpt_entry entrytable[0]; | ||
195 | }; | ||
196 | |||
197 | /* Helper functions */ | ||
198 | static __inline__ struct xt_entry_target *arpt_get_target(struct arpt_entry *e) | ||
199 | { | ||
200 | return (void *)e + e->target_offset; | ||
201 | } | ||
202 | |||
203 | /* | ||
204 | * Main firewall chains definitions and global var's definitions. | ||
205 | */ | ||
206 | #endif /* _UAPI_ARPTABLES_H */ | ||
diff --git a/include/linux/netfilter_arp/arpt_mangle.h b/include/uapi/linux/netfilter_arp/arpt_mangle.h index 250f502902bb..250f502902bb 100644 --- a/include/linux/netfilter_arp/arpt_mangle.h +++ b/include/uapi/linux/netfilter_arp/arpt_mangle.h | |||