Skip to content

Commit 8922082

Browse files
committed
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>
1 parent a820141 commit 8922082

5 files changed

Lines changed: 209 additions & 201 deletions

File tree

include/linux/netfilter_arp/Kbuild

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +0,0 @@
1-
header-y += arp_tables.h
2-
header-y += arpt_mangle.h

include/linux/netfilter_arp/arp_tables.h

Lines changed: 1 addition & 199 deletions
Original file line numberDiff line numberDiff line change
@@ -5,211 +5,14 @@
55
* network byte order.
66
* flags are stored in host byte order (of course).
77
*/
8-
98
#ifndef _ARPTABLES_H
109
#define _ARPTABLES_H
1110

12-
#ifdef __KERNEL__
1311
#include <linux/if.h>
1412
#include <linux/in.h>
1513
#include <linux/if_arp.h>
1614
#include <linux/skbuff.h>
17-
#endif
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__
15+
#include <uapi/linux/netfilter_arp/arp_tables.h>
21316

21417
/* Standard entry. */
21518
struct arpt_standard {
@@ -274,5 +77,4 @@ compat_arpt_get_target(struct compat_arpt_entry *e)
27477
}
27578

27679
#endif /* CONFIG_COMPAT */
277-
#endif /*__KERNEL__*/
27880
#endif /* _ARPTABLES_H */
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,3 @@
11
# UAPI Header export list
2+
header-y += arp_tables.h
3+
header-y += arpt_mangle.h

0 commit comments

Comments
 (0)