[NETFILTER] x_tables: Abstraction layer for {ip,ip6,arp}_tables
[safe/jmp/linux-2.6] / net / netfilter / Kconfig
1 menu "Core Netfilter Configuration"
2         depends on NET && NETFILTER
3
4 config NETFILTER_NETLINK
5        tristate "Netfilter netlink interface"
6        help
7          If this option is enabled, the kernel will include support
8          for the new netfilter netlink interface.
9
10 config NETFILTER_NETLINK_QUEUE
11         tristate "Netfilter NFQUEUE over NFNETLINK interface"
12         depends on NETFILTER_NETLINK
13         help
14           If this option isenabled, the kernel will include support
15           for queueing packets via NFNETLINK.
16           
17 config NETFILTER_NETLINK_LOG
18         tristate "Netfilter LOG over NFNETLINK interface"
19         depends on NETFILTER_NETLINK
20         help
21           If this option is enabled, the kernel will include support
22           for logging packets via NFNETLINK.
23
24           This obsoletes the existing ipt_ULOG and ebg_ulog mechanisms,
25           and is also scheduled to replace the old syslog-based ipt_LOG
26           and ip6t_LOG modules.
27
28 config NF_CONNTRACK
29         tristate "Layer 3 Independent Connection tracking (EXPERIMENTAL)"
30         depends on EXPERIMENTAL && IP_NF_CONNTRACK=n
31         default n
32         ---help---
33           Connection tracking keeps a record of what packets have passed
34           through your machine, in order to figure out how they are related
35           into connections.
36
37           Layer 3 independent connection tracking is experimental scheme
38           which generalize ip_conntrack to support other layer 3 protocols.
39
40           To compile it as a module, choose M here.  If unsure, say N.
41
42 config NF_CT_ACCT
43         bool "Connection tracking flow accounting"
44         depends on NF_CONNTRACK
45         help
46           If this option is enabled, the connection tracking code will
47           keep per-flow packet and byte counters.
48
49           Those counters can be used for flow-based accounting or the
50           `connbytes' match.
51
52           If unsure, say `N'.
53
54 config NF_CONNTRACK_MARK
55         bool  'Connection mark tracking support'
56         depends on NF_CONNTRACK
57         help
58           This option enables support for connection marks, used by the
59           `CONNMARK' target and `connmark' match. Similar to the mark value
60           of packets, but this mark value is kept in the conntrack session
61           instead of the individual packets.
62
63 config NF_CONNTRACK_EVENTS
64         bool "Connection tracking events (EXPERIMENTAL)"
65         depends on EXPERIMENTAL && NF_CONNTRACK
66         help
67           If this option is enabled, the connection tracking code will
68           provide a notifier chain that can be used by other kernel code
69           to get notified aboutchanges in the connection tracking state.
70
71           If unsure, say `N'.
72
73 config NF_CT_PROTO_SCTP
74         tristate 'SCTP protocol on new connection tracking support (EXPERIMENTAL)'
75         depends on EXPERIMENTAL && NF_CONNTRACK
76         default n
77         help
78           With this option enabled, the layer 3 independent connection
79           tracking code will be able to do state tracking on SCTP connections.
80
81           If you want to compile it as a module, say M here and read
82           Documentation/modules.txt.  If unsure, say `N'.
83
84 config NF_CONNTRACK_FTP
85         tristate "FTP support on new connection tracking (EXPERIMENTAL)"
86         depends on EXPERIMENTAL && NF_CONNTRACK
87         help
88           Tracking FTP connections is problematic: special helpers are
89           required for tracking them, and doing masquerading and other forms
90           of Network Address Translation on them.
91
92           This is FTP support on Layer 3 independent connection tracking.
93           Layer 3 independent connection tracking is experimental scheme
94           which generalize ip_conntrack to support other layer 3 protocols.
95
96           To compile it as a module, choose M here.  If unsure, say N.
97
98 config NF_CT_NETLINK
99         tristate 'Connection tracking netlink interface (EXPERIMENTAL)'
100         depends on EXPERIMENTAL && NF_CONNTRACK && NETFILTER_NETLINK
101         depends on NF_CONNTRACK!=y || NETFILTER_NETLINK!=m
102         help
103           This option enables support for a netlink-based userspace interface
104
105 endmenu
106
107 config NETFILTER_XTABLES
108         tristate "Netfilter Xtables support (required for ip_tables)"
109         help
110           This is required if you intend to use any of ip_tables,
111           ip6_tables or arp_tables.
112
113 # alphabetically ordered list of targets
114
115 config NETFILTER_XT_TARGET_CLASSIFY
116         tristate '"CLASSIFY" target support'
117         depends on NETFILTER_XTABLES
118         help
119           This option adds a `CLASSIFY' target, which enables the user to set
120           the priority of a packet. Some qdiscs can use this value for
121           classification, among these are:
122
123           atm, cbq, dsmark, pfifo_fast, htb, prio
124
125           To compile it as a module, choose M here.  If unsure, say N.
126
127 config NETFILTER_XT_TARGET_CONNMARK
128         tristate  '"CONNMARK" target support'
129         depends on NETFILTER_XTABLES
130         depends on IP_NF_MANGLE || IP6_NF_MANGLE
131         depends on (IP_NF_CONNTRACK && IP_NF_CONNTRACK_MARK) || (NF_CONNTRACK_MARK && NF_CONNTRACK_IPV4)
132         help
133           This option adds a `CONNMARK' target, which allows one to manipulate
134           the connection mark value.  Similar to the MARK target, but
135           affects the connection mark value rather than the packet mark value.
136         
137           If you want to compile it as a module, say M here and read
138           <file:Documentation/modules.txt>.  The module will be called
139           ipt_CONNMARK.o.  If unsure, say `N'.
140
141 config NETFILTER_XT_TARGET_MARK
142         tristate '"MARK" target support'
143         depends on NETFILTER_XTABLES
144         help
145           This option adds a `MARK' target, which allows you to create rules
146           in the `mangle' table which alter the netfilter mark (nfmark) field
147           associated with the packet prior to routing. This can change
148           the routing method (see `Use netfilter MARK value as routing
149           key') and can also be used by other subsystems to change their
150           behavior.
151
152           To compile it as a module, choose M here.  If unsure, say N.
153
154 config NETFILTER_XT_TARGET_NFQUEUE
155         tristate '"NFQUEUE" target Support'
156         depends on NETFILTER_XTABLES
157         help
158           This Target replaced the old obsolete QUEUE target.
159
160           As opposed to QUEUE, it supports 65535 different queues,
161           not just one.
162
163           To compile it as a module, choose M here.  If unsure, say N.
164
165 config NETFILTER_XT_TARGET_NOTRACK
166         tristate  '"NOTRACK" target support'
167         depends on NETFILTER_XTABLES
168         depends on IP_NF_RAW || IP6_NF_RAW
169         depends on IP_NF_CONNTRACK || NF_CONNTRACK
170         help
171           The NOTRACK target allows a select rule to specify
172           which packets *not* to enter the conntrack/NAT
173           subsystem with all the consequences (no ICMP error tracking,
174           no protocol helpers for the selected packets).
175         
176           If you want to compile it as a module, say M here and read
177           <file:Documentation/modules.txt>.  If unsure, say `N'.
178
179 config NETFILTER_XT_MATCH_COMMENT
180         tristate  '"comment" match support'
181         depends on NETFILTER_XTABLES
182         help
183           This option adds a `comment' dummy-match, which allows you to put
184           comments in your iptables ruleset.
185
186           If you want to compile it as a module, say M here and read
187           <file:Documentation/modules.txt>.  If unsure, say `N'.
188
189 config NETFILTER_XT_MATCH_CONNBYTES
190         tristate  '"connbytes" per-connection counter match support'
191         depends on NETFILTER_XTABLES
192         depends on (IP_NF_CONNTRACK && IP_NF_CT_ACCT) || NF_CT_ACCT
193         help
194           This option adds a `connbytes' match, which allows you to match the
195           number of bytes and/or packets for each direction within a connection.
196
197           If you want to compile it as a module, say M here and read
198           <file:Documentation/modules.txt>.  If unsure, say `N'.
199
200 config NETFILTER_XT_MATCH_CONNMARK
201         tristate  '"connmark" connection mark match support'
202         depends on NETFILTER_XTABLES
203         depends on (IP_NF_CONNTRACK && IP_NF_CONNTRACK_MARK) || NF_CONNTRACK_MARK
204         help
205           This option adds a `connmark' match, which allows you to match the
206           connection mark value previously set for the session by `CONNMARK'. 
207         
208           If you want to compile it as a module, say M here and read
209           <file:Documentation/modules.txt>.  The module will be called
210           ipt_connmark.o.  If unsure, say `N'.
211
212 config NETFILTER_XT_MATCH_CONNTRACK
213         tristate '"conntrack" connection tracking match support'
214         depends on NETFILTER_XTABLES
215         depends on IP_NF_CONNTRACK || NF_CONNTRACK
216         help
217           This is a general conntrack match module, a superset of the state match.
218
219           It allows matching on additional conntrack information, which is
220           useful in complex configurations, such as NAT gateways with multiple
221           internet links or tunnels.
222
223           To compile it as a module, choose M here.  If unsure, say N.
224
225 config NETFILTER_XT_MATCH_DCCP
226         tristate  '"DCCP" protocol match support'
227         depends on NETFILTER_XTABLES
228         help
229           With this option enabled, you will be able to use the iptables
230           `dccp' match in order to match on DCCP source/destination ports
231           and DCCP flags.
232
233           If you want to compile it as a module, say M here and read
234           <file:Documentation/modules.txt>.  If unsure, say `N'.
235
236 config NETFILTER_XT_MATCH_HELPER
237         tristate '"helper" match support'
238         depends on NETFILTER_XTABLES
239         depends on IP_NF_CONNTRACK || NF_CONNTRACK
240         help
241           Helper matching allows you to match packets in dynamic connections
242           tracked by a conntrack-helper, ie. ip_conntrack_ftp
243
244           To compile it as a module, choose M here.  If unsure, say Y.
245
246 config NETFILTER_XT_MATCH_LENGTH
247         tristate '"length" match support'
248         depends on NETFILTER_XTABLES
249         help
250           This option allows you to match the length of a packet against a
251           specific value or range of values.
252
253           To compile it as a module, choose M here.  If unsure, say N.
254
255 config NETFILTER_XT_MATCH_LIMIT
256         tristate '"limit" match support'
257         depends on NETFILTER_XTABLES
258         help
259           limit matching allows you to control the rate at which a rule can be
260           matched: mainly useful in combination with the LOG target ("LOG
261           target support", below) and to avoid some Denial of Service attacks.
262
263           To compile it as a module, choose M here.  If unsure, say N.
264
265 config NETFILTER_XT_MATCH_MAC
266         tristate '"mac" address match support'
267         depends on NETFILTER_XTABLES
268         help
269           MAC matching allows you to match packets based on the source
270           Ethernet address of the packet.
271
272           To compile it as a module, choose M here.  If unsure, say N.
273
274 config NETFILTER_XT_MATCH_MARK
275         tristate '"mark" match support'
276         depends on NETFILTER_XTABLES
277         help
278           Netfilter mark matching allows you to match packets based on the
279           `nfmark' value in the packet.  This can be set by the MARK target
280           (see below).
281
282           To compile it as a module, choose M here.  If unsure, say N.
283
284 config NETFILTER_XT_MATCH_PHYSDEV
285         tristate '"physdev" match support'
286         depends on NETFILTER_XTABLES && BRIDGE_NETFILTER
287         help
288           Physdev packet matching matches against the physical bridge ports
289           the IP packet arrived on or will leave by.
290
291           To compile it as a module, choose M here.  If unsure, say N.
292
293 config NETFILTER_XT_MATCH_PKTTYPE
294         tristate '"pkttype" packet type match support'
295         depends on NETFILTER_XTABLES
296         help
297           Packet type matching allows you to match a packet by
298           its "class", eg. BROADCAST, MULTICAST, ...
299
300           Typical usage:
301           iptables -A INPUT -m pkttype --pkt-type broadcast -j LOG
302
303           To compile it as a module, choose M here.  If unsure, say N.
304
305 config NETFILTER_XT_MATCH_REALM
306         tristate  '"realm" match support'
307         depends on NETFILTER_XTABLES
308         select NET_CLS_ROUTE
309         help
310           This option adds a `realm' match, which allows you to use the realm
311           key from the routing subsystem inside iptables.
312         
313           This match pretty much resembles the CONFIG_NET_CLS_ROUTE4 option 
314           in tc world.
315         
316           If you want to compile it as a module, say M here and read
317           <file:Documentation/modules.txt>.  If unsure, say `N'.
318
319 config NETFILTER_XT_MATCH_SCTP
320         tristate  '"sctp" protocol match support'
321         depends on NETFILTER_XTABLES
322         help
323           With this option enabled, you will be able to use the 
324           `sctp' match in order to match on SCTP source/destination ports
325           and SCTP chunk types.
326
327           If you want to compile it as a module, say M here and read
328           <file:Documentation/modules.txt>.  If unsure, say `N'.
329
330 config NETFILTER_XT_MATCH_STATE
331         tristate '"state" match support'
332         depends on NETFILTER_XTABLES
333         depends on IP_NF_CONNTRACK || NF_CONNTRACK
334         help
335           Connection state matching allows you to match packets based on their
336           relationship to a tracked connection (ie. previous packets).  This
337           is a powerful tool for packet classification.
338
339           To compile it as a module, choose M here.  If unsure, say N.
340
341 config NETFILTER_XT_MATCH_STRING
342         tristate  '"string" match support'
343         depends on NETFILTER_XTABLES
344         select TEXTSEARCH
345         select TEXTSEARCH_KMP
346         select TEXTSEARCH_BM
347         select TEXTSEARCH_FSM
348         help
349           This option adds a `string' match, which allows you to look for
350           pattern matchings in packets.
351
352           To compile it as a module, choose M here.  If unsure, say N.
353
354 config NETFILTER_XT_MATCH_TCPMSS
355         tristate '"tcpmss" match support'
356         depends on NETFILTER_XTABLES
357         help
358           This option adds a `tcpmss' match, which allows you to examine the
359           MSS value of TCP SYN packets, which control the maximum packet size
360           for that connection.
361
362           To compile it as a module, choose M here.  If unsure, say N.
363