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