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