Merge branch 'upstream-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/linvil...
[pandora-kernel.git] / 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 is enabled, 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_SECMARK
64         bool  'Connection tracking security mark support'
65         depends on NF_CONNTRACK && NETWORK_SECMARK
66         help
67           This option enables security markings to be applied to
68           connections.  Typically they are copied to connections from
69           packets using the CONNSECMARK target and copied back from
70           connections to packets with the same target, with the packets
71           being originally labeled via SECMARK.
72
73           If unsure, say 'N'.
74
75 config NF_CONNTRACK_EVENTS
76         bool "Connection tracking events (EXPERIMENTAL)"
77         depends on EXPERIMENTAL && NF_CONNTRACK
78         help
79           If this option is enabled, the connection tracking code will
80           provide a notifier chain that can be used by other kernel code
81           to get notified about changes in the connection tracking state.
82
83           If unsure, say `N'.
84
85 config NF_CT_PROTO_SCTP
86         tristate 'SCTP protocol on new connection tracking support (EXPERIMENTAL)'
87         depends on EXPERIMENTAL && NF_CONNTRACK
88         default n
89         help
90           With this option enabled, the layer 3 independent connection
91           tracking code will be able to do state tracking on SCTP connections.
92
93           If you want to compile it as a module, say M here and read
94           Documentation/modules.txt.  If unsure, say `N'.
95
96 config NF_CONNTRACK_FTP
97         tristate "FTP support on new connection tracking (EXPERIMENTAL)"
98         depends on EXPERIMENTAL && NF_CONNTRACK
99         help
100           Tracking FTP connections is problematic: special helpers are
101           required for tracking them, and doing masquerading and other forms
102           of Network Address Translation on them.
103
104           This is FTP support on Layer 3 independent connection tracking.
105           Layer 3 independent connection tracking is experimental scheme
106           which generalize ip_conntrack to support other layer 3 protocols.
107
108           To compile it as a module, choose M here.  If unsure, say N.
109
110 config NF_CT_NETLINK
111         tristate 'Connection tracking netlink interface (EXPERIMENTAL)'
112         depends on EXPERIMENTAL && NF_CONNTRACK && NETFILTER_NETLINK
113         depends on NF_CONNTRACK!=y || NETFILTER_NETLINK!=m
114         help
115           This option enables support for a netlink-based userspace interface
116
117 config NETFILTER_XTABLES
118         tristate "Netfilter Xtables support (required for ip_tables)"
119         help
120           This is required if you intend to use any of ip_tables,
121           ip6_tables or arp_tables.
122
123 # alphabetically ordered list of targets
124
125 config NETFILTER_XT_TARGET_CLASSIFY
126         tristate '"CLASSIFY" target support'
127         depends on NETFILTER_XTABLES
128         help
129           This option adds a `CLASSIFY' target, which enables the user to set
130           the priority of a packet. Some qdiscs can use this value for
131           classification, among these are:
132
133           atm, cbq, dsmark, pfifo_fast, htb, prio
134
135           To compile it as a module, choose M here.  If unsure, say N.
136
137 config NETFILTER_XT_TARGET_CONNMARK
138         tristate  '"CONNMARK" target support'
139         depends on NETFILTER_XTABLES
140         depends on IP_NF_MANGLE || IP6_NF_MANGLE
141         depends on (IP_NF_CONNTRACK && IP_NF_CONNTRACK_MARK) || (NF_CONNTRACK_MARK && NF_CONNTRACK)
142         help
143           This option adds a `CONNMARK' target, which allows one to manipulate
144           the connection mark value.  Similar to the MARK target, but
145           affects the connection mark value rather than the packet mark value.
146         
147           If you want to compile it as a module, say M here and read
148           <file:Documentation/modules.txt>.  The module will be called
149           ipt_CONNMARK.o.  If unsure, say `N'.
150
151 config NETFILTER_XT_TARGET_DSCP
152         tristate '"DSCP" target support'
153         depends on NETFILTER_XTABLES
154         depends on IP_NF_MANGLE || IP6_NF_MANGLE
155         help
156           This option adds a `DSCP' target, which allows you to manipulate
157           the IPv4/IPv6 header DSCP field (differentiated services codepoint).
158
159           The DSCP field can have any value between 0x0 and 0x3f inclusive.
160
161           To compile it as a module, choose M here.  If unsure, say N.
162
163 config NETFILTER_XT_TARGET_MARK
164         tristate '"MARK" target support'
165         depends on NETFILTER_XTABLES
166         help
167           This option adds a `MARK' target, which allows you to create rules
168           in the `mangle' table which alter the netfilter mark (nfmark) field
169           associated with the packet prior to routing. This can change
170           the routing method (see `Use netfilter MARK value as routing
171           key') and can also be used by other subsystems to change their
172           behavior.
173
174           To compile it as a module, choose M here.  If unsure, say N.
175
176 config NETFILTER_XT_TARGET_NFQUEUE
177         tristate '"NFQUEUE" target Support'
178         depends on NETFILTER_XTABLES
179         help
180           This target replaced the old obsolete QUEUE target.
181
182           As opposed to QUEUE, it supports 65535 different queues,
183           not just one.
184
185           To compile it as a module, choose M here.  If unsure, say N.
186
187 config NETFILTER_XT_TARGET_NOTRACK
188         tristate  '"NOTRACK" target support'
189         depends on NETFILTER_XTABLES
190         depends on IP_NF_RAW || IP6_NF_RAW
191         depends on IP_NF_CONNTRACK || NF_CONNTRACK
192         help
193           The NOTRACK target allows a select rule to specify
194           which packets *not* to enter the conntrack/NAT
195           subsystem with all the consequences (no ICMP error tracking,
196           no protocol helpers for the selected packets).
197         
198           If you want to compile it as a module, say M here and read
199           <file:Documentation/modules.txt>.  If unsure, say `N'.
200
201 config NETFILTER_XT_TARGET_SECMARK
202         tristate '"SECMARK" target support'
203         depends on NETFILTER_XTABLES && NETWORK_SECMARK
204         help
205           The SECMARK target allows security marking of network
206           packets, for use with security subsystems.
207
208           To compile it as a module, choose M here.  If unsure, say N.
209
210 config NETFILTER_XT_TARGET_CONNSECMARK
211         tristate '"CONNSECMARK" target support'
212         depends on NETFILTER_XTABLES && \
213                    ((NF_CONNTRACK && NF_CONNTRACK_SECMARK) || \
214                     (IP_NF_CONNTRACK && IP_NF_CONNTRACK_SECMARK))
215         help
216           The CONNSECMARK target copies security markings from packets
217           to connections, and restores security markings from connections
218           to packets (if the packets are not already marked).  This would
219           normally be used in conjunction with the SECMARK target.
220
221           To compile it as a module, choose M here.  If unsure, say N.
222
223 config NETFILTER_XT_MATCH_COMMENT
224         tristate  '"comment" match support'
225         depends on NETFILTER_XTABLES
226         help
227           This option adds a `comment' dummy-match, which allows you to put
228           comments in your iptables ruleset.
229
230           If you want to compile it as a module, say M here and read
231           <file:Documentation/modules.txt>.  If unsure, say `N'.
232
233 config NETFILTER_XT_MATCH_CONNBYTES
234         tristate  '"connbytes" per-connection counter match support'
235         depends on NETFILTER_XTABLES
236         depends on (IP_NF_CONNTRACK && IP_NF_CT_ACCT) || (NF_CT_ACCT && NF_CONNTRACK)
237         help
238           This option adds a `connbytes' match, which allows you to match the
239           number of bytes and/or packets for each direction within a connection.
240
241           If you want to compile it as a module, say M here and read
242           <file:Documentation/modules.txt>.  If unsure, say `N'.
243
244 config NETFILTER_XT_MATCH_CONNMARK
245         tristate  '"connmark" connection mark match support'
246         depends on NETFILTER_XTABLES
247         depends on (IP_NF_CONNTRACK && IP_NF_CONNTRACK_MARK) || (NF_CONNTRACK_MARK && NF_CONNTRACK)
248         help
249           This option adds a `connmark' match, which allows you to match the
250           connection mark value previously set for the session by `CONNMARK'. 
251         
252           If you want to compile it as a module, say M here and read
253           <file:Documentation/modules.txt>.  The module will be called
254           ipt_connmark.o.  If unsure, say `N'.
255
256 config NETFILTER_XT_MATCH_CONNTRACK
257         tristate '"conntrack" connection tracking match support'
258         depends on NETFILTER_XTABLES
259         depends on IP_NF_CONNTRACK || NF_CONNTRACK
260         help
261           This is a general conntrack match module, a superset of the state match.
262
263           It allows matching on additional conntrack information, which is
264           useful in complex configurations, such as NAT gateways with multiple
265           internet links or tunnels.
266
267           To compile it as a module, choose M here.  If unsure, say N.
268
269 config NETFILTER_XT_MATCH_DCCP
270         tristate  '"DCCP" protocol match support'
271         depends on NETFILTER_XTABLES
272         help
273           With this option enabled, you will be able to use the iptables
274           `dccp' match in order to match on DCCP source/destination ports
275           and DCCP flags.
276
277           If you want to compile it as a module, say M here and read
278           <file:Documentation/modules.txt>.  If unsure, say `N'.
279
280 config NETFILTER_XT_MATCH_DSCP
281         tristate '"DSCP" match support'
282         depends on NETFILTER_XTABLES
283         help
284           This option adds a `DSCP' match, which allows you to match against
285           the IPv4/IPv6 header DSCP field (differentiated services codepoint).
286
287           The DSCP field can have any value between 0x0 and 0x3f inclusive.
288
289           To compile it as a module, choose M here.  If unsure, say N.
290
291 config NETFILTER_XT_MATCH_ESP
292         tristate '"ESP" match support'
293         depends on NETFILTER_XTABLES
294         help
295           This match extension allows you to match a range of SPIs
296           inside ESP header of IPSec packets.
297
298           To compile it as a module, choose M here.  If unsure, say N.
299
300 config NETFILTER_XT_MATCH_HELPER
301         tristate '"helper" match support'
302         depends on NETFILTER_XTABLES
303         depends on IP_NF_CONNTRACK || NF_CONNTRACK
304         help
305           Helper matching allows you to match packets in dynamic connections
306           tracked by a conntrack-helper, ie. ip_conntrack_ftp
307
308           To compile it as a module, choose M here.  If unsure, say Y.
309
310 config NETFILTER_XT_MATCH_LENGTH
311         tristate '"length" match support'
312         depends on NETFILTER_XTABLES
313         help
314           This option allows you to match the length of a packet against a
315           specific value or range of values.
316
317           To compile it as a module, choose M here.  If unsure, say N.
318
319 config NETFILTER_XT_MATCH_LIMIT
320         tristate '"limit" match support'
321         depends on NETFILTER_XTABLES
322         help
323           limit matching allows you to control the rate at which a rule can be
324           matched: mainly useful in combination with the LOG target ("LOG
325           target support", below) and to avoid some Denial of Service attacks.
326
327           To compile it as a module, choose M here.  If unsure, say N.
328
329 config NETFILTER_XT_MATCH_MAC
330         tristate '"mac" address match support'
331         depends on NETFILTER_XTABLES
332         help
333           MAC matching allows you to match packets based on the source
334           Ethernet address of the packet.
335
336           To compile it as a module, choose M here.  If unsure, say N.
337
338 config NETFILTER_XT_MATCH_MARK
339         tristate '"mark" match support'
340         depends on NETFILTER_XTABLES
341         help
342           Netfilter mark matching allows you to match packets based on the
343           `nfmark' value in the packet.  This can be set by the MARK target
344           (see below).
345
346           To compile it as a module, choose M here.  If unsure, say N.
347
348 config NETFILTER_XT_MATCH_POLICY
349         tristate 'IPsec "policy" match support'
350         depends on NETFILTER_XTABLES && XFRM
351         help
352           Policy matching allows you to match packets based on the
353           IPsec policy that was used during decapsulation/will
354           be used during encapsulation.
355
356           To compile it as a module, choose M here.  If unsure, say N.
357
358 config NETFILTER_XT_MATCH_MULTIPORT
359         tristate "Multiple port match support"
360         depends on NETFILTER_XTABLES
361         help
362           Multiport matching allows you to match TCP or UDP packets based on
363           a series of source or destination ports: normally a rule can only
364           match a single range of ports.
365
366           To compile it as a module, choose M here.  If unsure, say N.
367
368 config NETFILTER_XT_MATCH_PHYSDEV
369         tristate '"physdev" match support'
370         depends on NETFILTER_XTABLES && BRIDGE && BRIDGE_NETFILTER
371         help
372           Physdev packet matching matches against the physical bridge ports
373           the IP packet arrived on or will leave by.
374
375           To compile it as a module, choose M here.  If unsure, say N.
376
377 config NETFILTER_XT_MATCH_PKTTYPE
378         tristate '"pkttype" packet type match support'
379         depends on NETFILTER_XTABLES
380         help
381           Packet type matching allows you to match a packet by
382           its "class", eg. BROADCAST, MULTICAST, ...
383
384           Typical usage:
385           iptables -A INPUT -m pkttype --pkt-type broadcast -j LOG
386
387           To compile it as a module, choose M here.  If unsure, say N.
388
389 config NETFILTER_XT_MATCH_QUOTA
390         tristate '"quota" match support'
391         depends on NETFILTER_XTABLES
392         help
393           This option adds a `quota' match, which allows to match on a
394           byte counter.
395
396           If you want to compile it as a module, say M here and read
397           <file:Documentation/modules.txt>.  If unsure, say `N'.
398
399 config NETFILTER_XT_MATCH_REALM
400         tristate  '"realm" match support'
401         depends on NETFILTER_XTABLES
402         select NET_CLS_ROUTE
403         help
404           This option adds a `realm' match, which allows you to use the realm
405           key from the routing subsystem inside iptables.
406         
407           This match pretty much resembles the CONFIG_NET_CLS_ROUTE4 option 
408           in tc world.
409         
410           If you want to compile it as a module, say M here and read
411           <file:Documentation/modules.txt>.  If unsure, say `N'.
412
413 config NETFILTER_XT_MATCH_SCTP
414         tristate  '"sctp" protocol match support (EXPERIMENTAL)'
415         depends on NETFILTER_XTABLES && EXPERIMENTAL
416         help
417           With this option enabled, you will be able to use the 
418           `sctp' match in order to match on SCTP source/destination ports
419           and SCTP chunk types.
420
421           If you want to compile it as a module, say M here and read
422           <file:Documentation/modules.txt>.  If unsure, say `N'.
423
424 config NETFILTER_XT_MATCH_STATE
425         tristate '"state" match support'
426         depends on NETFILTER_XTABLES
427         depends on IP_NF_CONNTRACK || NF_CONNTRACK
428         help
429           Connection state matching allows you to match packets based on their
430           relationship to a tracked connection (ie. previous packets).  This
431           is a powerful tool for packet classification.
432
433           To compile it as a module, choose M here.  If unsure, say N.
434
435 config NETFILTER_XT_MATCH_STATISTIC
436         tristate '"statistic" match support'
437         depends on NETFILTER_XTABLES
438         help
439           This option adds a `statistic' match, which allows you to match
440           on packets periodically or randomly with a given percentage.
441
442           To compile it as a module, choose M here.  If unsure, say N.
443
444 config NETFILTER_XT_MATCH_STRING
445         tristate  '"string" match support'
446         depends on NETFILTER_XTABLES
447         select TEXTSEARCH
448         select TEXTSEARCH_KMP
449         select TEXTSEARCH_BM
450         select TEXTSEARCH_FSM
451         help
452           This option adds a `string' match, which allows you to look for
453           pattern matchings in packets.
454
455           To compile it as a module, choose M here.  If unsure, say N.
456
457 config NETFILTER_XT_MATCH_TCPMSS
458         tristate '"tcpmss" match support'
459         depends on NETFILTER_XTABLES
460         help
461           This option adds a `tcpmss' match, which allows you to examine the
462           MSS value of TCP SYN packets, which control the maximum packet size
463           for that connection.
464
465           To compile it as a module, choose M here.  If unsure, say N.
466
467 endmenu
468