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