Merge with /pub/scm/linux/kernel/git/torvalds/linux-2.6.git
[linux-2.6] / net / ipv4 / netfilter / Kconfig
1 #
2 # IP netfilter configuration
3 #
4
5 menu "IP: Netfilter Configuration"
6         depends on INET && NETFILTER
7
8 config NF_CONNTRACK_IPV4
9         tristate "IPv4 support for new connection tracking (EXPERIMENTAL)"
10         depends on EXPERIMENTAL && NF_CONNTRACK
11         ---help---
12           Connection tracking keeps a record of what packets have passed
13           through your machine, in order to figure out how they are related
14           into connections.
15
16           This is IPv4 support on Layer 3 independent connection tracking.
17           Layer 3 independent connection tracking is experimental scheme
18           which generalize ip_conntrack to support other layer 3 protocols.
19
20           To compile it as a module, choose M here.  If unsure, say N.
21
22 # connection tracking, helpers and protocols
23 config IP_NF_CONNTRACK
24         tristate "Connection tracking (required for masq/NAT)"
25         ---help---
26           Connection tracking keeps a record of what packets have passed
27           through your machine, in order to figure out how they are related
28           into connections.
29
30           This is required to do Masquerading or other kinds of Network
31           Address Translation (except for Fast NAT).  It can also be used to
32           enhance packet filtering (see `Connection state match support'
33           below).
34
35           To compile it as a module, choose M here.  If unsure, say N.
36
37 config IP_NF_CT_ACCT
38         bool "Connection tracking flow accounting"
39         depends on IP_NF_CONNTRACK
40         help
41           If this option is enabled, the connection tracking code will
42           keep per-flow packet and byte counters.
43
44           Those counters can be used for flow-based accounting or the
45           `connbytes' match.
46
47           If unsure, say `N'.
48
49 config IP_NF_CONNTRACK_MARK
50         bool  'Connection mark tracking support'
51         depends on IP_NF_CONNTRACK
52         help
53           This option enables support for connection marks, used by the
54           `CONNMARK' target and `connmark' match. Similar to the mark value
55           of packets, but this mark value is kept in the conntrack session
56           instead of the individual packets.
57         
58 config IP_NF_CONNTRACK_EVENTS
59         bool "Connection tracking events (EXPERIMENTAL)"
60         depends on EXPERIMENTAL && IP_NF_CONNTRACK
61         help
62           If this option is enabled, the connection tracking code will
63           provide a notifier chain that can be used by other kernel code
64           to get notified about changes in the connection tracking state.
65           
66           IF unsure, say `N'.
67
68 config IP_NF_CONNTRACK_NETLINK
69         tristate 'Connection tracking netlink interface (EXPERIMENTAL)'
70         depends on EXPERIMENTAL && IP_NF_CONNTRACK && NETFILTER_NETLINK
71         depends on IP_NF_CONNTRACK!=y || NETFILTER_NETLINK!=m
72         help
73           This option enables support for a netlink-based userspace interface
74
75
76 config IP_NF_CT_PROTO_SCTP
77         tristate  'SCTP protocol connection tracking support (EXPERIMENTAL)'
78         depends on IP_NF_CONNTRACK && EXPERIMENTAL
79         help
80           With this option enabled, the connection tracking code will
81           be able to do state tracking on SCTP connections.
82
83           If you want to compile it as a module, say M here and read
84           <file:Documentation/modules.txt>.  If unsure, say `N'.
85
86 config IP_NF_FTP
87         tristate "FTP protocol support"
88         depends on IP_NF_CONNTRACK
89         help
90           Tracking FTP connections is problematic: special helpers are
91           required for tracking them, and doing masquerading and other forms
92           of Network Address Translation on them.
93
94           To compile it as a module, choose M here.  If unsure, say Y.
95
96 config IP_NF_IRC
97         tristate "IRC protocol support"
98         depends on IP_NF_CONNTRACK
99         ---help---
100           There is a commonly-used extension to IRC called
101           Direct Client-to-Client Protocol (DCC).  This enables users to send
102           files to each other, and also chat to each other without the need
103           of a server.  DCC Sending is used anywhere you send files over IRC,
104           and DCC Chat is most commonly used by Eggdrop bots.  If you are
105           using NAT, this extension will enable you to send files and initiate
106           chats.  Note that you do NOT need this extension to get files or
107           have others initiate chats, or everything else in IRC.
108
109           To compile it as a module, choose M here.  If unsure, say Y.
110
111 config IP_NF_NETBIOS_NS
112         tristate "NetBIOS name service protocol support (EXPERIMENTAL)"
113         depends on IP_NF_CONNTRACK && EXPERIMENTAL
114         help
115           NetBIOS name service requests are sent as broadcast messages from an
116           unprivileged port and responded to with unicast messages to the
117           same port. This make them hard to firewall properly because connection
118           tracking doesn't deal with broadcasts. This helper tracks locally
119           originating NetBIOS name service requests and the corresponding
120           responses. It relies on correct IP address configuration, specifically
121           netmask and broadcast address. When properly configured, the output
122           of "ip address show" should look similar to this:
123
124           $ ip -4 address show eth0
125           4: eth0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 1000
126               inet 172.16.2.252/24 brd 172.16.2.255 scope global eth0
127           
128           To compile it as a module, choose M here.  If unsure, say N.
129
130 config IP_NF_TFTP
131         tristate "TFTP protocol support"
132         depends on IP_NF_CONNTRACK
133         help
134           TFTP connection tracking helper, this is required depending
135           on how restrictive your ruleset is.
136           If you are using a tftp client behind -j SNAT or -j MASQUERADING
137           you will need this.
138
139           To compile it as a module, choose M here.  If unsure, say Y.
140
141 config IP_NF_AMANDA
142         tristate "Amanda backup protocol support"
143         depends on IP_NF_CONNTRACK
144         help
145           If you are running the Amanda backup package <http://www.amanda.org/>
146           on this machine or machines that will be MASQUERADED through this
147           machine, then you may want to enable this feature.  This allows the
148           connection tracking and natting code to allow the sub-channels that
149           Amanda requires for communication of the backup data, messages and
150           index.
151
152           To compile it as a module, choose M here.  If unsure, say Y.
153
154 config IP_NF_PPTP
155         tristate  'PPTP protocol support'
156         depends on IP_NF_CONNTRACK
157         help
158           This module adds support for PPTP (Point to Point Tunnelling
159           Protocol, RFC2637) connection tracking and NAT. 
160         
161           If you are running PPTP sessions over a stateful firewall or NAT
162           box, you may want to enable this feature.  
163         
164           Please note that not all PPTP modes of operation are supported yet.
165           For more info, read top of the file
166           net/ipv4/netfilter/ip_conntrack_pptp.c
167         
168           If you want to compile it as a module, say M here and read
169           Documentation/modules.txt.  If unsure, say `N'.
170
171 config IP_NF_QUEUE
172         tristate "IP Userspace queueing via NETLINK (OBSOLETE)"
173         help
174           Netfilter has the ability to queue packets to user space: the
175           netlink device can be used to access them using this driver.
176
177           This option enables the old IPv4-only "ip_queue" implementation
178           which has been obsoleted by the new "nfnetlink_queue" code (see
179           CONFIG_NETFILTER_NETLINK_QUEUE).
180
181           To compile it as a module, choose M here.  If unsure, say N.
182
183 config IP_NF_IPTABLES
184         tristate "IP tables support (required for filtering/masq/NAT)"
185         help
186           iptables is a general, extensible packet identification framework.
187           The packet filtering and full NAT (masquerading, port forwarding,
188           etc) subsystems now use this: say `Y' or `M' here if you want to use
189           either of those.
190
191           To compile it as a module, choose M here.  If unsure, say N.
192
193 # The matches.
194 config IP_NF_MATCH_LIMIT
195         tristate "limit match support"
196         depends on IP_NF_IPTABLES
197         help
198           limit matching allows you to control the rate at which a rule can be
199           matched: mainly useful in combination with the LOG target ("LOG
200           target support", below) and to avoid some Denial of Service attacks.
201
202           To compile it as a module, choose M here.  If unsure, say N.
203
204 config IP_NF_MATCH_IPRANGE
205         tristate "IP range match support"
206         depends on IP_NF_IPTABLES
207         help
208           This option makes possible to match IP addresses against IP address
209           ranges.
210
211           To compile it as a module, choose M here.  If unsure, say N.
212
213 config IP_NF_MATCH_MAC
214         tristate "MAC address match support"
215         depends on IP_NF_IPTABLES
216         help
217           MAC matching allows you to match packets based on the source
218           Ethernet address of the packet.
219
220           To compile it as a module, choose M here.  If unsure, say N.
221
222 config IP_NF_MATCH_PKTTYPE
223         tristate "Packet type match support"
224         depends on IP_NF_IPTABLES
225         help
226           Packet type matching allows you to match a packet by
227           its "class", eg. BROADCAST, MULTICAST, ...
228
229           Typical usage:
230           iptables -A INPUT -m pkttype --pkt-type broadcast -j LOG
231
232           To compile it as a module, choose M here.  If unsure, say N.
233
234 config IP_NF_MATCH_MARK
235         tristate "netfilter MARK match support"
236         depends on IP_NF_IPTABLES
237         help
238           Netfilter mark matching allows you to match packets based on the
239           `nfmark' value in the packet.  This can be set by the MARK target
240           (see below).
241
242           To compile it as a module, choose M here.  If unsure, say N.
243
244 config IP_NF_MATCH_MULTIPORT
245         tristate "Multiple port match support"
246         depends on IP_NF_IPTABLES
247         help
248           Multiport matching allows you to match TCP or UDP packets based on
249           a series of source or destination ports: normally a rule can only
250           match a single range of ports.
251
252           To compile it as a module, choose M here.  If unsure, say N.
253
254 config IP_NF_MATCH_TOS
255         tristate "TOS match support"
256         depends on IP_NF_IPTABLES
257         help
258           TOS matching allows you to match packets based on the Type Of
259           Service fields of the IP packet.
260
261           To compile it as a module, choose M here.  If unsure, say N.
262
263 config IP_NF_MATCH_RECENT
264         tristate "recent match support"
265         depends on IP_NF_IPTABLES
266         help
267           This match is used for creating one or many lists of recently
268           used addresses and then matching against that/those list(s).
269
270           Short options are available by using 'iptables -m recent -h'
271           Official Website: <http://snowman.net/projects/ipt_recent/>
272
273           To compile it as a module, choose M here.  If unsure, say N.
274
275 config IP_NF_MATCH_ECN
276         tristate "ECN match support"
277         depends on IP_NF_IPTABLES
278         help
279           This option adds a `ECN' match, which allows you to match against
280           the IPv4 and TCP header ECN fields.
281
282           To compile it as a module, choose M here.  If unsure, say N.
283
284 config IP_NF_MATCH_DSCP
285         tristate "DSCP match support"
286         depends on IP_NF_IPTABLES
287         help
288           This option adds a `DSCP' match, which allows you to match against
289           the IPv4 header DSCP field (DSCP codepoint).
290
291           The DSCP codepoint can have any value between 0x0 and 0x4f.
292
293           To compile it as a module, choose M here.  If unsure, say N.
294
295 config IP_NF_MATCH_AH_ESP
296         tristate "AH/ESP match support"
297         depends on IP_NF_IPTABLES
298         help
299           These two match extensions (`ah' and `esp') allow you to match a
300           range of SPIs inside AH or ESP headers of IPSec packets.
301
302           To compile it as a module, choose M here.  If unsure, say N.
303
304 config IP_NF_MATCH_LENGTH
305         tristate "LENGTH match support"
306         depends on IP_NF_IPTABLES
307         help
308           This option allows you to match the length of a packet against a
309           specific value or range of values.
310
311           To compile it as a module, choose M here.  If unsure, say N.
312
313 config IP_NF_MATCH_TTL
314         tristate "TTL match support"
315         depends on IP_NF_IPTABLES
316         help
317           This adds CONFIG_IP_NF_MATCH_TTL option, which enabled the user
318           to match packets by their TTL value.
319
320           To compile it as a module, choose M here.  If unsure, say N.
321
322 config IP_NF_MATCH_TCPMSS
323         tristate "tcpmss match support"
324         depends on IP_NF_IPTABLES
325         help
326           This option adds a `tcpmss' match, which allows you to examine the
327           MSS value of TCP SYN packets, which control the maximum packet size
328           for that connection.
329
330           To compile it as a module, choose M here.  If unsure, say N.
331
332 config IP_NF_MATCH_HELPER
333         tristate "Helper match support"
334         depends on IP_NF_IPTABLES
335         depends on IP_NF_CONNTRACK || NF_CONNTRACK_IPV4
336         help
337           Helper matching allows you to match packets in dynamic connections
338           tracked by a conntrack-helper, ie. ip_conntrack_ftp
339
340           To compile it as a module, choose M here.  If unsure, say Y.
341
342 config IP_NF_MATCH_STATE
343         tristate "Connection state match support"
344         depends on IP_NF_IPTABLES
345         depends on IP_NF_CONNTRACK || NF_CONNTRACK_IPV4
346         help
347           Connection state matching allows you to match packets based on their
348           relationship to a tracked connection (ie. previous packets).  This
349           is a powerful tool for packet classification.
350
351           To compile it as a module, choose M here.  If unsure, say N.
352
353 config IP_NF_MATCH_CONNTRACK
354         tristate "Connection tracking match support"
355         depends on IP_NF_IPTABLES
356         depends on IP_NF_CONNTRACK || NF_CONNTRACK_IPV4
357         help
358           This is a general conntrack match module, a superset of the state match.
359
360           It allows matching on additional conntrack information, which is
361           useful in complex configurations, such as NAT gateways with multiple
362           internet links or tunnels.
363
364           To compile it as a module, choose M here.  If unsure, say N.
365
366 config IP_NF_MATCH_OWNER
367         tristate "Owner match support"
368         depends on IP_NF_IPTABLES
369         help
370           Packet owner matching allows you to match locally-generated packets
371           based on who created them: the user, group, process or session.
372
373           To compile it as a module, choose M here.  If unsure, say N.
374
375 config IP_NF_MATCH_PHYSDEV
376         tristate "Physdev match support"
377         depends on IP_NF_IPTABLES && BRIDGE_NETFILTER
378         help
379           Physdev packet matching matches against the physical bridge ports
380           the IP packet arrived on or will leave by.
381
382           To compile it as a module, choose M here.  If unsure, say N.
383
384 config IP_NF_MATCH_ADDRTYPE
385         tristate  'address type match support'
386         depends on IP_NF_IPTABLES
387         help
388           This option allows you to match what routing thinks of an address,
389           eg. UNICAST, LOCAL, BROADCAST, ...
390         
391           If you want to compile it as a module, say M here and read
392           <file:Documentation/modules.txt>.  If unsure, say `N'.
393
394 config IP_NF_MATCH_REALM
395         tristate  'realm match support'
396         depends on IP_NF_IPTABLES
397         select NET_CLS_ROUTE
398         help
399           This option adds a `realm' match, which allows you to use the realm
400           key from the routing subsystem inside iptables.
401         
402           This match pretty much resembles the CONFIG_NET_CLS_ROUTE4 option 
403           in tc world.
404         
405           If you want to compile it as a module, say M here and read
406           <file:Documentation/modules.txt>.  If unsure, say `N'.
407
408 config IP_NF_MATCH_SCTP
409         tristate  'SCTP protocol match support'
410         depends on IP_NF_IPTABLES
411         help
412           With this option enabled, you will be able to use the iptables
413           `sctp' match in order to match on SCTP source/destination ports
414           and SCTP chunk types.
415
416           If you want to compile it as a module, say M here and read
417           <file:Documentation/modules.txt>.  If unsure, say `N'.
418
419 config IP_NF_MATCH_DCCP
420         tristate  'DCCP protocol match support'
421         depends on IP_NF_IPTABLES
422         help
423           With this option enabled, you will be able to use the iptables
424           `dccp' match in order to match on DCCP source/destination ports
425           and DCCP flags.
426
427           If you want to compile it as a module, say M here and read
428           <file:Documentation/modules.txt>.  If unsure, say `N'.
429
430 config IP_NF_MATCH_COMMENT
431         tristate  'comment match support'
432         depends on IP_NF_IPTABLES
433         help
434           This option adds a `comment' dummy-match, which allows you to put
435           comments in your iptables ruleset.
436
437           If you want to compile it as a module, say M here and read
438           <file:Documentation/modules.txt>.  If unsure, say `N'.
439
440 config IP_NF_MATCH_CONNMARK
441         tristate  'Connection mark match support'
442         depends on IP_NF_IPTABLES
443         depends on (IP_NF_CONNTRACK && IP_NF_CONNTRACK_MARK) || (NF_CONNTRACK_MARK && NF_CONNTRACK_IPV4)
444         help
445           This option adds a `connmark' match, which allows you to match the
446           connection mark value previously set for the session by `CONNMARK'. 
447         
448           If you want to compile it as a module, say M here and read
449           <file:Documentation/modules.txt>.  The module will be called
450           ipt_connmark.o.  If unsure, say `N'.
451
452 config IP_NF_MATCH_CONNBYTES
453         tristate  'Connection byte/packet counter match support'
454         depends on IP_NF_IPTABLES
455         depends on (IP_NF_CONNTRACK && IP_NF_CT_ACCT) || (NF_CT_ACCT && NF_CONNTRACK_IPV4)
456         help
457           This option adds a `connbytes' match, which allows you to match the
458           number of bytes and/or packets for each direction within a connection.
459
460           If you want to compile it as a module, say M here and read
461           <file:Documentation/modules.txt>.  If unsure, say `N'.
462
463 config IP_NF_MATCH_HASHLIMIT
464         tristate  'hashlimit match support'
465         depends on IP_NF_IPTABLES
466         help
467           This option adds a new iptables `hashlimit' match.  
468
469           As opposed to `limit', this match dynamically crates a hash table
470           of limit buckets, based on your selection of source/destination
471           ip addresses and/or ports.
472
473           It enables you to express policies like `10kpps for any given
474           destination IP' or `500pps from any given source IP'  with a single
475           IPtables rule.
476
477 config IP_NF_MATCH_STRING
478         tristate  'string match support'
479         depends on IP_NF_IPTABLES 
480         select TEXTSEARCH
481         select TEXTSEARCH_KMP
482         select TEXTSEARCH_BM
483         select TEXTSEARCH_FSM
484         help
485           This option adds a `string' match, which allows you to look for
486           pattern matchings in packets.
487
488           To compile it as a module, choose M here.  If unsure, say N.
489
490 config IP_NF_MATCH_POLICY
491        tristate "IPsec policy match support"
492        depends on IP_NF_IPTABLES && XFRM
493        help
494          Policy matching allows you to match packets based on the
495          IPsec policy that was used during decapsulation/will
496          be used during encapsulation.
497
498          To compile it as a module, choose M here.  If unsure, say N.
499
500 # `filter', generic and specific targets
501 config IP_NF_FILTER
502         tristate "Packet filtering"
503         depends on IP_NF_IPTABLES
504         help
505           Packet filtering defines a table `filter', which has a series of
506           rules for simple packet filtering at local input, forwarding and
507           local output.  See the man page for iptables(8).
508
509           To compile it as a module, choose M here.  If unsure, say N.
510
511 config IP_NF_TARGET_REJECT
512         tristate "REJECT target support"
513         depends on IP_NF_FILTER
514         help
515           The REJECT target allows a filtering rule to specify that an ICMP
516           error should be issued in response to an incoming packet, rather
517           than silently being dropped.
518
519           To compile it as a module, choose M here.  If unsure, say N.
520
521 config IP_NF_TARGET_LOG
522         tristate "LOG target support"
523         depends on IP_NF_IPTABLES
524         help
525           This option adds a `LOG' target, which allows you to create rules in
526           any iptables table which records the packet header to the syslog.
527
528           To compile it as a module, choose M here.  If unsure, say N.
529
530 config IP_NF_TARGET_ULOG
531         tristate "ULOG target support (OBSOLETE)"
532         depends on IP_NF_IPTABLES
533         ---help---
534
535           This option enables the old IPv4-only "ipt_ULOG" implementation
536           which has been obsoleted by the new "nfnetlink_log" code (see
537           CONFIG_NETFILTER_NETLINK_LOG).
538
539           This option adds a `ULOG' target, which allows you to create rules in
540           any iptables table. The packet is passed to a userspace logging
541           daemon using netlink multicast sockets; unlike the LOG target
542           which can only be viewed through syslog.
543
544           The apropriate userspace logging daemon (ulogd) may be obtained from
545           <http://www.gnumonks.org/projects/ulogd/>
546
547           To compile it as a module, choose M here.  If unsure, say N.
548
549 config IP_NF_TARGET_TCPMSS
550         tristate "TCPMSS target support"
551         depends on IP_NF_IPTABLES
552         ---help---
553           This option adds a `TCPMSS' target, which allows you to alter the
554           MSS value of TCP SYN packets, to control the maximum size for that
555           connection (usually limiting it to your outgoing interface's MTU
556           minus 40).
557
558           This is used to overcome criminally braindead ISPs or servers which
559           block ICMP Fragmentation Needed packets.  The symptoms of this
560           problem are that everything works fine from your Linux
561           firewall/router, but machines behind it can never exchange large
562           packets:
563                 1) Web browsers connect, then hang with no data received.
564                 2) Small mail works fine, but large emails hang.
565                 3) ssh works fine, but scp hangs after initial handshaking.
566
567           Workaround: activate this option and add a rule to your firewall
568           configuration like:
569
570           iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN \
571                          -j TCPMSS --clamp-mss-to-pmtu
572
573           To compile it as a module, choose M here.  If unsure, say N.
574
575 config IP_NF_TARGET_NFQUEUE
576         tristate "NFQUEUE Target Support"
577         depends on IP_NF_IPTABLES
578         help
579           This Target replaced the old obsolete QUEUE target.
580
581           As opposed to QUEUE, it supports 65535 different queues,
582           not just one.
583
584           To compile it as a module, choose M here.  If unsure, say N.
585
586 # NAT + specific targets
587 config IP_NF_NAT
588         tristate "Full NAT"
589         depends on IP_NF_IPTABLES && IP_NF_CONNTRACK
590         help
591           The Full NAT option allows masquerading, port forwarding and other
592           forms of full Network Address Port Translation.  It is controlled by
593           the `nat' table in iptables: see the man page for iptables(8).
594
595           To compile it as a module, choose M here.  If unsure, say N.
596
597 config IP_NF_NAT_NEEDED
598         bool
599         depends on IP_NF_NAT != n
600         default y
601
602 config IP_NF_TARGET_MASQUERADE
603         tristate "MASQUERADE target support"
604         depends on IP_NF_NAT
605         help
606           Masquerading is a special case of NAT: all outgoing connections are
607           changed to seem to come from a particular interface's address, and
608           if the interface goes down, those connections are lost.  This is
609           only useful for dialup accounts with dynamic IP address (ie. your IP
610           address will be different on next dialup).
611
612           To compile it as a module, choose M here.  If unsure, say N.
613
614 config IP_NF_TARGET_REDIRECT
615         tristate "REDIRECT target support"
616         depends on IP_NF_NAT
617         help
618           REDIRECT is a special case of NAT: all incoming connections are
619           mapped onto the incoming interface's address, causing the packets to
620           come to the local machine instead of passing through.  This is
621           useful for transparent proxies.
622
623           To compile it as a module, choose M here.  If unsure, say N.
624
625 config IP_NF_TARGET_NETMAP
626         tristate "NETMAP target support"
627         depends on IP_NF_NAT
628         help
629           NETMAP is an implementation of static 1:1 NAT mapping of network
630           addresses. It maps the network address part, while keeping the host
631           address part intact. It is similar to Fast NAT, except that
632           Netfilter's connection tracking doesn't work well with Fast NAT.
633
634           To compile it as a module, choose M here.  If unsure, say N.
635
636 config IP_NF_TARGET_SAME
637         tristate "SAME target support"
638         depends on IP_NF_NAT
639         help
640           This option adds a `SAME' target, which works like the standard SNAT
641           target, but attempts to give clients the same IP for all connections.
642
643           To compile it as a module, choose M here.  If unsure, say N.
644
645 config IP_NF_NAT_SNMP_BASIC
646         tristate "Basic SNMP-ALG support (EXPERIMENTAL)"
647         depends on EXPERIMENTAL && IP_NF_NAT
648         ---help---
649
650           This module implements an Application Layer Gateway (ALG) for
651           SNMP payloads.  In conjunction with NAT, it allows a network
652           management system to access multiple private networks with
653           conflicting addresses.  It works by modifying IP addresses
654           inside SNMP payloads to match IP-layer NAT mapping.
655
656           This is the "basic" form of SNMP-ALG, as described in RFC 2962
657
658           To compile it as a module, choose M here.  If unsure, say N.
659
660 config IP_NF_NAT_IRC
661         tristate
662         depends on IP_NF_IPTABLES!=n && IP_NF_CONNTRACK!=n && IP_NF_NAT!=n
663         default IP_NF_NAT if IP_NF_IRC=y
664         default m if IP_NF_IRC=m
665
666 # If they want FTP, set to $CONFIG_IP_NF_NAT (m or y), 
667 # or $CONFIG_IP_NF_FTP (m or y), whichever is weaker.  Argh.
668 config IP_NF_NAT_FTP
669         tristate
670         depends on IP_NF_IPTABLES!=n && IP_NF_CONNTRACK!=n && IP_NF_NAT!=n
671         default IP_NF_NAT if IP_NF_FTP=y
672         default m if IP_NF_FTP=m
673
674 config IP_NF_NAT_TFTP
675         tristate
676         depends on IP_NF_IPTABLES!=n && IP_NF_CONNTRACK!=n && IP_NF_NAT!=n
677         default IP_NF_NAT if IP_NF_TFTP=y
678         default m if IP_NF_TFTP=m
679
680 config IP_NF_NAT_AMANDA
681         tristate
682         depends on IP_NF_IPTABLES!=n && IP_NF_CONNTRACK!=n && IP_NF_NAT!=n
683         default IP_NF_NAT if IP_NF_AMANDA=y
684         default m if IP_NF_AMANDA=m
685
686 config IP_NF_NAT_PPTP
687         tristate
688         depends on IP_NF_NAT!=n && IP_NF_PPTP!=n
689         default IP_NF_NAT if IP_NF_PPTP=y
690         default m if IP_NF_PPTP=m
691
692 # mangle + specific targets
693 config IP_NF_MANGLE
694         tristate "Packet mangling"
695         depends on IP_NF_IPTABLES
696         help
697           This option adds a `mangle' table to iptables: see the man page for
698           iptables(8).  This table is used for various packet alterations
699           which can effect how the packet is routed.
700
701           To compile it as a module, choose M here.  If unsure, say N.
702
703 config IP_NF_TARGET_TOS
704         tristate "TOS target support"
705         depends on IP_NF_MANGLE
706         help
707           This option adds a `TOS' target, which allows you to create rules in
708           the `mangle' table which alter the Type Of Service field of an IP
709           packet prior to routing.
710
711           To compile it as a module, choose M here.  If unsure, say N.
712
713 config IP_NF_TARGET_ECN
714         tristate "ECN target support"
715         depends on IP_NF_MANGLE
716         ---help---
717           This option adds a `ECN' target, which can be used in the iptables mangle
718           table.  
719
720           You can use this target to remove the ECN bits from the IPv4 header of
721           an IP packet.  This is particularly useful, if you need to work around
722           existing ECN blackholes on the internet, but don't want to disable
723           ECN support in general.
724
725           To compile it as a module, choose M here.  If unsure, say N.
726
727 config IP_NF_TARGET_DSCP
728         tristate "DSCP target support"
729         depends on IP_NF_MANGLE
730         help
731           This option adds a `DSCP' match, which allows you to match against
732           the IPv4 header DSCP field (DSCP codepoint).
733
734           The DSCP codepoint can have any value between 0x0 and 0x4f.
735
736           To compile it as a module, choose M here.  If unsure, say N.
737
738 config IP_NF_TARGET_MARK
739         tristate "MARK target support"
740         depends on IP_NF_MANGLE
741         help
742           This option adds a `MARK' target, which allows you to create rules
743           in the `mangle' table which alter the netfilter mark (nfmark) field
744           associated with the packet prior to routing. This can change
745           the routing method (see `Use netfilter MARK value as routing
746           key') and can also be used by other subsystems to change their
747           behavior.
748
749           To compile it as a module, choose M here.  If unsure, say N.
750
751 config IP_NF_TARGET_CLASSIFY
752         tristate "CLASSIFY target support"
753         depends on IP_NF_MANGLE
754         help
755           This option adds a `CLASSIFY' target, which enables the user to set
756           the priority of a packet. Some qdiscs can use this value for
757           classification, among these are:
758
759           atm, cbq, dsmark, pfifo_fast, htb, prio
760
761           To compile it as a module, choose M here.  If unsure, say N.
762
763 config IP_NF_TARGET_TTL
764         tristate  'TTL target support'
765         depends on IP_NF_MANGLE
766         help
767           This option adds a `TTL' target, which enables the user to modify
768           the TTL value of the IP header.
769
770           While it is safe to decrement/lower the TTL, this target also enables
771           functionality to increment and set the TTL value of the IP header to
772           arbitrary values.  This is EXTREMELY DANGEROUS since you can easily
773           create immortal packets that loop forever on the network.
774
775           To compile it as a module, choose M here.  If unsure, say N.
776
777 config IP_NF_TARGET_CONNMARK
778         tristate  'CONNMARK target support'
779         depends on IP_NF_MANGLE
780         depends on (IP_NF_CONNTRACK && IP_NF_CONNTRACK_MARK) || (NF_CONNTRACK_MARK && NF_CONNTRACK_IPV4)
781         help
782           This option adds a `CONNMARK' target, which allows one to manipulate
783           the connection mark value.  Similar to the MARK target, but
784           affects the connection mark value rather than the packet mark value.
785         
786           If you want to compile it as a module, say M here and read
787           <file:Documentation/modules.txt>.  The module will be called
788           ipt_CONNMARK.o.  If unsure, say `N'.
789
790 config IP_NF_TARGET_CLUSTERIP
791         tristate "CLUSTERIP target support (EXPERIMENTAL)"
792         depends on IP_NF_MANGLE && EXPERIMENTAL
793         depends on (IP_NF_CONNTRACK && IP_NF_CONNTRACK_MARK) || (NF_CONNTRACK_MARK && NF_CONNTRACK_IPV4)
794         help
795           The CLUSTERIP target allows you to build load-balancing clusters of
796           network servers without having a dedicated load-balancing
797           router/server/switch.
798         
799           To compile it as a module, choose M here.  If unsure, say N.
800
801 # raw + specific targets
802 config IP_NF_RAW
803         tristate  'raw table support (required for NOTRACK/TRACE)'
804         depends on IP_NF_IPTABLES
805         help
806           This option adds a `raw' table to iptables. This table is the very
807           first in the netfilter framework and hooks in at the PREROUTING
808           and OUTPUT chains.
809         
810           If you want to compile it as a module, say M here and read
811           <file:Documentation/modules.txt>.  If unsure, say `N'.
812
813 config IP_NF_TARGET_NOTRACK
814         tristate  'NOTRACK target support'
815         depends on IP_NF_RAW
816         depends on IP_NF_CONNTRACK || NF_CONNTRACK_IPV4
817         help
818           The NOTRACK target allows a select rule to specify
819           which packets *not* to enter the conntrack/NAT
820           subsystem with all the consequences (no ICMP error tracking,
821           no protocol helpers for the selected packets).
822         
823           If you want to compile it as a module, say M here and read
824           <file:Documentation/modules.txt>.  If unsure, say `N'.
825
826
827 # ARP tables
828 config IP_NF_ARPTABLES
829         tristate "ARP tables support"
830         help
831           arptables is a general, extensible packet identification framework.
832           The ARP packet filtering and mangling (manipulation)subsystems
833           use this: say Y or M here if you want to use either of those.
834
835           To compile it as a module, choose M here.  If unsure, say N.
836
837 config IP_NF_ARPFILTER
838         tristate "ARP packet filtering"
839         depends on IP_NF_ARPTABLES
840         help
841           ARP packet filtering defines a table `filter', which has a series of
842           rules for simple ARP packet filtering at local input and
843           local output.  On a bridge, you can also specify filtering rules
844           for forwarded ARP packets. See the man page for arptables(8).
845
846           To compile it as a module, choose M here.  If unsure, say N.
847
848 config IP_NF_ARP_MANGLE
849         tristate "ARP payload mangling"
850         depends on IP_NF_ARPTABLES
851         help
852           Allows altering the ARP packet payload: source and destination
853           hardware and network addresses.
854
855 endmenu
856