[NETFILTER]: Add new PPTP conntrack and NAT helper
[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_PPTP
141         tristate  'PPTP protocol support'
142         help
143           This module adds support for PPTP (Point to Point Tunnelling
144           Protocol, RFC2637) conncection 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 # NAT + specific targets
541 config IP_NF_NAT
542         tristate "Full NAT"
543         depends on IP_NF_IPTABLES && IP_NF_CONNTRACK
544         help
545           The Full NAT option allows masquerading, port forwarding and other
546           forms of full Network Address Port Translation.  It is controlled by
547           the `nat' table in iptables: see the man page for iptables(8).
548
549           To compile it as a module, choose M here.  If unsure, say N.
550
551 config IP_NF_NAT_NEEDED
552         bool
553         depends on IP_NF_NAT != n
554         default y
555
556 config IP_NF_TARGET_MASQUERADE
557         tristate "MASQUERADE target support"
558         depends on IP_NF_NAT
559         help
560           Masquerading is a special case of NAT: all outgoing connections are
561           changed to seem to come from a particular interface's address, and
562           if the interface goes down, those connections are lost.  This is
563           only useful for dialup accounts with dynamic IP address (ie. your IP
564           address will be different on next dialup).
565
566           To compile it as a module, choose M here.  If unsure, say N.
567
568 config IP_NF_TARGET_REDIRECT
569         tristate "REDIRECT target support"
570         depends on IP_NF_NAT
571         help
572           REDIRECT is a special case of NAT: all incoming connections are
573           mapped onto the incoming interface's address, causing the packets to
574           come to the local machine instead of passing through.  This is
575           useful for transparent proxies.
576
577           To compile it as a module, choose M here.  If unsure, say N.
578
579 config IP_NF_TARGET_NETMAP
580         tristate "NETMAP target support"
581         depends on IP_NF_NAT
582         help
583           NETMAP is an implementation of static 1:1 NAT mapping of network
584           addresses. It maps the network address part, while keeping the host
585           address part intact. It is similar to Fast NAT, except that
586           Netfilter's connection tracking doesn't work well with Fast NAT.
587
588           To compile it as a module, choose M here.  If unsure, say N.
589
590 config IP_NF_TARGET_SAME
591         tristate "SAME target support"
592         depends on IP_NF_NAT
593         help
594           This option adds a `SAME' target, which works like the standard SNAT
595           target, but attempts to give clients the same IP for all connections.
596
597           To compile it as a module, choose M here.  If unsure, say N.
598
599 config IP_NF_NAT_SNMP_BASIC
600         tristate "Basic SNMP-ALG support (EXPERIMENTAL)"
601         depends on EXPERIMENTAL && IP_NF_NAT
602         ---help---
603
604           This module implements an Application Layer Gateway (ALG) for
605           SNMP payloads.  In conjunction with NAT, it allows a network
606           management system to access multiple private networks with
607           conflicting addresses.  It works by modifying IP addresses
608           inside SNMP payloads to match IP-layer NAT mapping.
609
610           This is the "basic" form of SNMP-ALG, as described in RFC 2962
611
612           To compile it as a module, choose M here.  If unsure, say N.
613
614 config IP_NF_NAT_IRC
615         tristate
616         depends on IP_NF_IPTABLES!=n && IP_NF_CONNTRACK!=n && IP_NF_NAT!=n
617         default IP_NF_NAT if IP_NF_IRC=y
618         default m if IP_NF_IRC=m
619
620 # If they want FTP, set to $CONFIG_IP_NF_NAT (m or y), 
621 # or $CONFIG_IP_NF_FTP (m or y), whichever is weaker.  Argh.
622 config IP_NF_NAT_FTP
623         tristate
624         depends on IP_NF_IPTABLES!=n && IP_NF_CONNTRACK!=n && IP_NF_NAT!=n
625         default IP_NF_NAT if IP_NF_FTP=y
626         default m if IP_NF_FTP=m
627
628 config IP_NF_NAT_TFTP
629         tristate
630         depends on IP_NF_IPTABLES!=n && IP_NF_CONNTRACK!=n && IP_NF_NAT!=n
631         default IP_NF_NAT if IP_NF_TFTP=y
632         default m if IP_NF_TFTP=m
633
634 config IP_NF_NAT_AMANDA
635         tristate
636         depends on IP_NF_IPTABLES!=n && IP_NF_CONNTRACK!=n && IP_NF_NAT!=n
637         default IP_NF_NAT if IP_NF_AMANDA=y
638         default m if IP_NF_AMANDA=m
639
640 config IP_NF_NAT_PPTP
641         tristate
642         depends on IP_NF_NAT!=n && IP_NF_PPTP!=n
643         default IP_NF_NAT if IP_NF_PPTP=y
644         default m if IP_NF_PPTP=m
645
646 # mangle + specific targets
647 config IP_NF_MANGLE
648         tristate "Packet mangling"
649         depends on IP_NF_IPTABLES
650         help
651           This option adds a `mangle' table to iptables: see the man page for
652           iptables(8).  This table is used for various packet alterations
653           which can effect how the packet is routed.
654
655           To compile it as a module, choose M here.  If unsure, say N.
656
657 config IP_NF_TARGET_TOS
658         tristate "TOS target support"
659         depends on IP_NF_MANGLE
660         help
661           This option adds a `TOS' target, which allows you to create rules in
662           the `mangle' table which alter the Type Of Service field of an IP
663           packet prior to routing.
664
665           To compile it as a module, choose M here.  If unsure, say N.
666
667 config IP_NF_TARGET_ECN
668         tristate "ECN target support"
669         depends on IP_NF_MANGLE
670         ---help---
671           This option adds a `ECN' target, which can be used in the iptables mangle
672           table.  
673
674           You can use this target to remove the ECN bits from the IPv4 header of
675           an IP packet.  This is particularly useful, if you need to work around
676           existing ECN blackholes on the internet, but don't want to disable
677           ECN support in general.
678
679           To compile it as a module, choose M here.  If unsure, say N.
680
681 config IP_NF_TARGET_DSCP
682         tristate "DSCP target support"
683         depends on IP_NF_MANGLE
684         help
685           This option adds a `DSCP' match, which allows you to match against
686           the IPv4 header DSCP field (DSCP codepoint).
687
688           The DSCP codepoint can have any value between 0x0 and 0x4f.
689
690           To compile it as a module, choose M here.  If unsure, say N.
691
692 config IP_NF_TARGET_MARK
693         tristate "MARK target support"
694         depends on IP_NF_MANGLE
695         help
696           This option adds a `MARK' target, which allows you to create rules
697           in the `mangle' table which alter the netfilter mark (nfmark) field
698           associated with the packet prior to routing. This can change
699           the routing method (see `Use netfilter MARK value as routing
700           key') and can also be used by other subsystems to change their
701           behavior.
702
703           To compile it as a module, choose M here.  If unsure, say N.
704
705 config IP_NF_TARGET_CLASSIFY
706         tristate "CLASSIFY target support"
707         depends on IP_NF_MANGLE
708         help
709           This option adds a `CLASSIFY' target, which enables the user to set
710           the priority of a packet. Some qdiscs can use this value for
711           classification, among these are:
712
713           atm, cbq, dsmark, pfifo_fast, htb, prio
714
715           To compile it as a module, choose M here.  If unsure, say N.
716
717 config IP_NF_TARGET_TTL
718         tristate  'TTL target support'
719         depends on IP_NF_MANGLE
720         help
721           This option adds a `TTL' target, which enables the user to modify
722           the TTL value of the IP header.
723
724           While it is safe to decrement/lower the TTL, this target also enables
725           functionality to increment and set the TTL value of the IP header to
726           arbitrary values.  This is EXTREMELY DANGEROUS since you can easily
727           create immortal packets that loop forever on the network.
728
729           To compile it as a module, choose M here.  If unsure, say N.
730
731 config IP_NF_TARGET_CONNMARK
732         tristate  'CONNMARK target support'
733         depends on IP_NF_CONNTRACK_MARK && IP_NF_MANGLE
734         help
735           This option adds a `CONNMARK' target, which allows one to manipulate
736           the connection mark value.  Similar to the MARK target, but
737           affects the connection mark value rather than the packet mark value.
738         
739           If you want to compile it as a module, say M here and read
740           <file:Documentation/modules.txt>.  The module will be called
741           ipt_CONNMARK.o.  If unsure, say `N'.
742
743 config IP_NF_TARGET_CLUSTERIP
744         tristate "CLUSTERIP target support (EXPERIMENTAL)"
745         depends on IP_NF_CONNTRACK_MARK && IP_NF_IPTABLES && EXPERIMENTAL
746         help
747           The CLUSTERIP target allows you to build load-balancing clusters of
748           network servers without having a dedicated load-balancing
749           router/server/switch.
750         
751           To compile it as a module, choose M here.  If unsure, say N.
752
753 # raw + specific targets
754 config IP_NF_RAW
755         tristate  'raw table support (required for NOTRACK/TRACE)'
756         depends on IP_NF_IPTABLES
757         help
758           This option adds a `raw' table to iptables. This table is the very
759           first in the netfilter framework and hooks in at the PREROUTING
760           and OUTPUT chains.
761         
762           If you want to compile it as a module, say M here and read
763           <file:Documentation/modules.txt>.  If unsure, say `N'.
764
765 config IP_NF_TARGET_NOTRACK
766         tristate  'NOTRACK target support'
767         depends on IP_NF_RAW
768         depends on IP_NF_CONNTRACK
769         help
770           The NOTRACK target allows a select rule to specify
771           which packets *not* to enter the conntrack/NAT
772           subsystem with all the consequences (no ICMP error tracking,
773           no protocol helpers for the selected packets).
774         
775           If you want to compile it as a module, say M here and read
776           <file:Documentation/modules.txt>.  If unsure, say `N'.
777
778
779 # ARP tables
780 config IP_NF_ARPTABLES
781         tristate "ARP tables support"
782         help
783           arptables is a general, extensible packet identification framework.
784           The ARP packet filtering and mangling (manipulation)subsystems
785           use this: say Y or M here if you want to use either of those.
786
787           To compile it as a module, choose M here.  If unsure, say N.
788
789 config IP_NF_ARPFILTER
790         tristate "ARP packet filtering"
791         depends on IP_NF_ARPTABLES
792         help
793           ARP packet filtering defines a table `filter', which has a series of
794           rules for simple ARP packet filtering at local input and
795           local output.  On a bridge, you can also specify filtering rules
796           for forwarded ARP packets. See the man page for arptables(8).
797
798           To compile it as a module, choose M here.  If unsure, say N.
799
800 config IP_NF_ARP_MANGLE
801         tristate "ARP payload mangling"
802         depends on IP_NF_ARPTABLES
803         help
804           Allows altering the ARP packet payload: source and destination
805           hardware and network addresses.
806
807 endmenu
808