Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
[linux-2.6] / net / netfilter / Kconfig
1 menu "Core Netfilter Configuration"
2         depends on NET && INET && NETFILTER
3
4 config NETFILTER_NETLINK
5         tristate
6
7 config NETFILTER_NETLINK_QUEUE
8         tristate "Netfilter NFQUEUE over NFNETLINK interface"
9         depends on NETFILTER_ADVANCED
10         select NETFILTER_NETLINK
11         help
12           If this option is enabled, the kernel will include support
13           for queueing packets via NFNETLINK.
14           
15 config NETFILTER_NETLINK_LOG
16         tristate "Netfilter LOG over NFNETLINK interface"
17         default m if NETFILTER_ADVANCED=n
18         select NETFILTER_NETLINK
19         help
20           If this option is enabled, the kernel will include support
21           for logging packets via NFNETLINK.
22
23           This obsoletes the existing ipt_ULOG and ebg_ulog mechanisms,
24           and is also scheduled to replace the old syslog-based ipt_LOG
25           and ip6t_LOG modules.
26
27 config NF_CONNTRACK
28         tristate "Netfilter connection tracking support"
29         default m if NETFILTER_ADVANCED=n
30         help
31           Connection tracking keeps a record of what packets have passed
32           through your machine, in order to figure out how they are related
33           into connections.
34
35           This is required to do Masquerading or other kinds of Network
36           Address Translation (except for Fast NAT).  It can also be used to
37           enhance packet filtering (see `Connection state match support'
38           below).
39
40           To compile it as a module, choose M here.  If unsure, say N.
41
42 config NF_CT_ACCT
43         bool "Connection tracking flow accounting"
44         depends on NETFILTER_ADVANCED
45         depends on NF_CONNTRACK
46         help
47           If this option is enabled, the connection tracking code will
48           keep per-flow packet and byte counters.
49
50           Those counters can be used for flow-based accounting or the
51           `connbytes' match.
52
53           If unsure, say `N'.
54
55 config NF_CONNTRACK_MARK
56         bool  'Connection mark tracking support'
57         depends on NETFILTER_ADVANCED
58         depends on NF_CONNTRACK
59         help
60           This option enables support for connection marks, used by the
61           `CONNMARK' target and `connmark' match. Similar to the mark value
62           of packets, but this mark value is kept in the conntrack session
63           instead of the individual packets.
64
65 config NF_CONNTRACK_SECMARK
66         bool  'Connection tracking security mark support'
67         depends on NF_CONNTRACK && NETWORK_SECMARK
68         default m if NETFILTER_ADVANCED=n
69         help
70           This option enables security markings to be applied to
71           connections.  Typically they are copied to connections from
72           packets using the CONNSECMARK target and copied back from
73           connections to packets with the same target, with the packets
74           being originally labeled via SECMARK.
75
76           If unsure, say 'N'.
77
78 config NF_CONNTRACK_EVENTS
79         bool "Connection tracking events"
80         depends on NF_CONNTRACK
81         depends on NETFILTER_ADVANCED
82         help
83           If this option is enabled, the connection tracking code will
84           provide a notifier chain that can be used by other kernel code
85           to get notified about changes in the connection tracking state.
86
87           If unsure, say `N'.
88
89 config NF_CT_PROTO_DCCP
90         tristate 'DCCP protocol connection tracking support (EXPERIMENTAL)'
91         depends on EXPERIMENTAL && NF_CONNTRACK
92         depends on NETFILTER_ADVANCED
93         default IP_DCCP
94         help
95           With this option enabled, the layer 3 independent connection
96           tracking code will be able to do state tracking on DCCP connections.
97
98           If unsure, say 'N'.
99
100 config NF_CT_PROTO_GRE
101         tristate
102         depends on NF_CONNTRACK
103
104 config NF_CT_PROTO_SCTP
105         tristate 'SCTP protocol connection tracking support (EXPERIMENTAL)'
106         depends on EXPERIMENTAL && NF_CONNTRACK
107         depends on NETFILTER_ADVANCED
108         default IP_SCTP
109         help
110           With this option enabled, the layer 3 independent connection
111           tracking code will be able to do state tracking on SCTP connections.
112
113           If you want to compile it as a module, say M here and read
114           <file:Documentation/kbuild/modules.txt>.  If unsure, say `N'.
115
116 config NF_CT_PROTO_UDPLITE
117         tristate 'UDP-Lite protocol connection tracking support'
118         depends on NF_CONNTRACK
119         depends on NETFILTER_ADVANCED
120         help
121           With this option enabled, the layer 3 independent connection
122           tracking code will be able to do state tracking on UDP-Lite
123           connections.
124
125           To compile it as a module, choose M here.  If unsure, say N.
126
127 config NF_CONNTRACK_AMANDA
128         tristate "Amanda backup protocol support"
129         depends on NF_CONNTRACK
130         depends on NETFILTER_ADVANCED
131         select TEXTSEARCH
132         select TEXTSEARCH_KMP
133         help
134           If you are running the Amanda backup package <http://www.amanda.org/>
135           on this machine or machines that will be MASQUERADED through this
136           machine, then you may want to enable this feature.  This allows the
137           connection tracking and natting code to allow the sub-channels that
138           Amanda requires for communication of the backup data, messages and
139           index.
140
141           To compile it as a module, choose M here.  If unsure, say N.
142
143 config NF_CONNTRACK_FTP
144         tristate "FTP protocol support"
145         depends on NF_CONNTRACK
146         default m if NETFILTER_ADVANCED=n
147         help
148           Tracking FTP connections is problematic: special helpers are
149           required for tracking them, and doing masquerading and other forms
150           of Network Address Translation on them.
151
152           This is FTP support on Layer 3 independent connection tracking.
153           Layer 3 independent connection tracking is experimental scheme
154           which generalize ip_conntrack to support other layer 3 protocols.
155
156           To compile it as a module, choose M here.  If unsure, say N.
157
158 config NF_CONNTRACK_H323
159         tristate "H.323 protocol support"
160         depends on NF_CONNTRACK && (IPV6 || IPV6=n)
161         depends on NETFILTER_ADVANCED
162         help
163           H.323 is a VoIP signalling protocol from ITU-T. As one of the most
164           important VoIP protocols, it is widely used by voice hardware and
165           software including voice gateways, IP phones, Netmeeting, OpenPhone,
166           Gnomemeeting, etc.
167
168           With this module you can support H.323 on a connection tracking/NAT
169           firewall.
170
171           This module supports RAS, Fast Start, H.245 Tunnelling, Call
172           Forwarding, RTP/RTCP and T.120 based audio, video, fax, chat,
173           whiteboard, file transfer, etc. For more information, please
174           visit http://nath323.sourceforge.net/.
175
176           To compile it as a module, choose M here.  If unsure, say N.
177
178 config NF_CONNTRACK_IRC
179         tristate "IRC protocol support"
180         depends on NF_CONNTRACK
181         default m if NETFILTER_ADVANCED=n
182         help
183           There is a commonly-used extension to IRC called
184           Direct Client-to-Client Protocol (DCC).  This enables users to send
185           files to each other, and also chat to each other without the need
186           of a server.  DCC Sending is used anywhere you send files over IRC,
187           and DCC Chat is most commonly used by Eggdrop bots.  If you are
188           using NAT, this extension will enable you to send files and initiate
189           chats.  Note that you do NOT need this extension to get files or
190           have others initiate chats, or everything else in IRC.
191
192           To compile it as a module, choose M here.  If unsure, say N.
193
194 config NF_CONNTRACK_NETBIOS_NS
195         tristate "NetBIOS name service protocol support"
196         depends on NF_CONNTRACK
197         depends on NETFILTER_ADVANCED
198         help
199           NetBIOS name service requests are sent as broadcast messages from an
200           unprivileged port and responded to with unicast messages to the
201           same port. This make them hard to firewall properly because connection
202           tracking doesn't deal with broadcasts. This helper tracks locally
203           originating NetBIOS name service requests and the corresponding
204           responses. It relies on correct IP address configuration, specifically
205           netmask and broadcast address. When properly configured, the output
206           of "ip address show" should look similar to this:
207
208           $ ip -4 address show eth0
209           4: eth0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 1000
210               inet 172.16.2.252/24 brd 172.16.2.255 scope global eth0
211
212           To compile it as a module, choose M here.  If unsure, say N.
213
214 config NF_CONNTRACK_PPTP
215         tristate "PPtP protocol support"
216         depends on NF_CONNTRACK
217         depends on NETFILTER_ADVANCED
218         select NF_CT_PROTO_GRE
219         help
220           This module adds support for PPTP (Point to Point Tunnelling
221           Protocol, RFC2637) connection tracking and NAT.
222
223           If you are running PPTP sessions over a stateful firewall or NAT
224           box, you may want to enable this feature.
225
226           Please note that not all PPTP modes of operation are supported yet.
227           Specifically these limitations exist:
228             - Blindly assumes that control connections are always established
229               in PNS->PAC direction. This is a violation of RFC2637.
230             - Only supports a single call within each session
231
232           To compile it as a module, choose M here.  If unsure, say N.
233
234 config NF_CONNTRACK_SANE
235         tristate "SANE protocol support (EXPERIMENTAL)"
236         depends on EXPERIMENTAL && NF_CONNTRACK
237         depends on NETFILTER_ADVANCED
238         help
239           SANE is a protocol for remote access to scanners as implemented
240           by the 'saned' daemon. Like FTP, it uses separate control and
241           data connections.
242
243           With this module you can support SANE on a connection tracking
244           firewall.
245
246           To compile it as a module, choose M here.  If unsure, say N.
247
248 config NF_CONNTRACK_SIP
249         tristate "SIP protocol support"
250         depends on NF_CONNTRACK
251         default m if NETFILTER_ADVANCED=n
252         help
253           SIP is an application-layer control protocol that can establish,
254           modify, and terminate multimedia sessions (conferences) such as
255           Internet telephony calls. With the ip_conntrack_sip and
256           the nf_nat_sip modules you can support the protocol on a connection
257           tracking/NATing firewall.
258
259           To compile it as a module, choose M here.  If unsure, say N.
260
261 config NF_CONNTRACK_TFTP
262         tristate "TFTP protocol support"
263         depends on NF_CONNTRACK
264         depends on NETFILTER_ADVANCED
265         help
266           TFTP connection tracking helper, this is required depending
267           on how restrictive your ruleset is.
268           If you are using a tftp client behind -j SNAT or -j MASQUERADING
269           you will need this.
270
271           To compile it as a module, choose M here.  If unsure, say N.
272
273 config NF_CT_NETLINK
274         tristate 'Connection tracking netlink interface'
275         depends on NF_CONNTRACK
276         select NETFILTER_NETLINK
277         depends on NF_NAT=n || NF_NAT
278         default m if NETFILTER_ADVANCED=n
279         help
280           This option enables support for a netlink-based userspace interface
281
282 config NETFILTER_XTABLES
283         tristate "Netfilter Xtables support (required for ip_tables)"
284         default m if NETFILTER_ADVANCED=n
285         help
286           This is required if you intend to use any of ip_tables,
287           ip6_tables or arp_tables.
288
289 # alphabetically ordered list of targets
290
291 config NETFILTER_XT_TARGET_CLASSIFY
292         tristate '"CLASSIFY" target support'
293         depends on NETFILTER_XTABLES
294         depends on NETFILTER_ADVANCED
295         help
296           This option adds a `CLASSIFY' target, which enables the user to set
297           the priority of a packet. Some qdiscs can use this value for
298           classification, among these are:
299
300           atm, cbq, dsmark, pfifo_fast, htb, prio
301
302           To compile it as a module, choose M here.  If unsure, say N.
303
304 config NETFILTER_XT_TARGET_CONNMARK
305         tristate  '"CONNMARK" target support'
306         depends on NETFILTER_XTABLES
307         depends on IP_NF_MANGLE || IP6_NF_MANGLE
308         depends on NF_CONNTRACK
309         depends on NETFILTER_ADVANCED
310         select NF_CONNTRACK_MARK
311         help
312           This option adds a `CONNMARK' target, which allows one to manipulate
313           the connection mark value.  Similar to the MARK target, but
314           affects the connection mark value rather than the packet mark value.
315
316           If you want to compile it as a module, say M here and read
317           <file:Documentation/kbuild/modules.txt>.  The module will be called
318           ipt_CONNMARK.ko.  If unsure, say `N'.
319
320 config NETFILTER_XT_TARGET_DSCP
321         tristate '"DSCP" and "TOS" target support'
322         depends on NETFILTER_XTABLES
323         depends on IP_NF_MANGLE || IP6_NF_MANGLE
324         depends on NETFILTER_ADVANCED
325         help
326           This option adds a `DSCP' target, which allows you to manipulate
327           the IPv4/IPv6 header DSCP field (differentiated services codepoint).
328
329           The DSCP field can have any value between 0x0 and 0x3f inclusive.
330
331           It also adds the "TOS" target, which allows you to create rules in
332           the "mangle" table which alter the Type Of Service field of an IPv4
333           or the Priority field of an IPv6 packet, prior to routing.
334
335           To compile it as a module, choose M here.  If unsure, say N.
336
337 config NETFILTER_XT_TARGET_MARK
338         tristate '"MARK" target support'
339         depends on NETFILTER_XTABLES
340         default m if NETFILTER_ADVANCED=n
341         help
342           This option adds a `MARK' target, which allows you to create rules
343           in the `mangle' table which alter the netfilter mark (nfmark) field
344           associated with the packet prior to routing. This can change
345           the routing method (see `Use netfilter MARK value as routing
346           key') and can also be used by other subsystems to change their
347           behavior.
348
349           To compile it as a module, choose M here.  If unsure, say N.
350
351 config NETFILTER_XT_TARGET_NFQUEUE
352         tristate '"NFQUEUE" target Support'
353         depends on NETFILTER_XTABLES
354         depends on NETFILTER_ADVANCED
355         help
356           This target replaced the old obsolete QUEUE target.
357
358           As opposed to QUEUE, it supports 65535 different queues,
359           not just one.
360
361           To compile it as a module, choose M here.  If unsure, say N.
362
363 config NETFILTER_XT_TARGET_NFLOG
364         tristate '"NFLOG" target support'
365         depends on NETFILTER_XTABLES
366         default m if NETFILTER_ADVANCED=n
367         help
368           This option enables the NFLOG target, which allows to LOG
369           messages through the netfilter logging API, which can use
370           either the old LOG target, the old ULOG target or nfnetlink_log
371           as backend.
372
373           To compile it as a module, choose M here.  If unsure, say N.
374
375 config NETFILTER_XT_TARGET_NOTRACK
376         tristate  '"NOTRACK" target support'
377         depends on NETFILTER_XTABLES
378         depends on IP_NF_RAW || IP6_NF_RAW
379         depends on NF_CONNTRACK
380         depends on NETFILTER_ADVANCED
381         help
382           The NOTRACK target allows a select rule to specify
383           which packets *not* to enter the conntrack/NAT
384           subsystem with all the consequences (no ICMP error tracking,
385           no protocol helpers for the selected packets).
386
387           If you want to compile it as a module, say M here and read
388           <file:Documentation/kbuild/modules.txt>.  If unsure, say `N'.
389
390 config NETFILTER_XT_TARGET_RATEEST
391         tristate '"RATEEST" target support'
392         depends on NETFILTER_XTABLES
393         depends on NETFILTER_ADVANCED
394         help
395           This option adds a `RATEEST' target, which allows to measure
396           rates similar to TC estimators. The `rateest' match can be
397           used to match on the measured rates.
398
399           To compile it as a module, choose M here.  If unsure, say N.
400
401 config NETFILTER_XT_TARGET_TRACE
402         tristate  '"TRACE" target support'
403         depends on NETFILTER_XTABLES
404         depends on IP_NF_RAW || IP6_NF_RAW
405         depends on NETFILTER_ADVANCED
406         help
407           The TRACE target allows you to mark packets so that the kernel
408           will log every rule which match the packets as those traverse
409           the tables, chains, rules.
410
411           If you want to compile it as a module, say M here and read
412           <file:Documentation/kbuild/modules.txt>.  If unsure, say `N'.
413
414 config NETFILTER_XT_TARGET_SECMARK
415         tristate '"SECMARK" target support'
416         depends on NETFILTER_XTABLES && NETWORK_SECMARK
417         default m if NETFILTER_ADVANCED=n
418         help
419           The SECMARK target allows security marking of network
420           packets, for use with security subsystems.
421
422           To compile it as a module, choose M here.  If unsure, say N.
423
424 config NETFILTER_XT_TARGET_CONNSECMARK
425         tristate '"CONNSECMARK" target support'
426         depends on NETFILTER_XTABLES && NF_CONNTRACK && NF_CONNTRACK_SECMARK
427         default m if NETFILTER_ADVANCED=n
428         help
429           The CONNSECMARK target copies security markings from packets
430           to connections, and restores security markings from connections
431           to packets (if the packets are not already marked).  This would
432           normally be used in conjunction with the SECMARK target.
433
434           To compile it as a module, choose M here.  If unsure, say N.
435
436 config NETFILTER_XT_TARGET_TCPMSS
437         tristate '"TCPMSS" target support'
438         depends on NETFILTER_XTABLES && (IPV6 || IPV6=n)
439         default m if NETFILTER_ADVANCED=n
440         ---help---
441           This option adds a `TCPMSS' target, which allows you to alter the
442           MSS value of TCP SYN packets, to control the maximum size for that
443           connection (usually limiting it to your outgoing interface's MTU
444           minus 40).
445
446           This is used to overcome criminally braindead ISPs or servers which
447           block ICMP Fragmentation Needed packets.  The symptoms of this
448           problem are that everything works fine from your Linux
449           firewall/router, but machines behind it can never exchange large
450           packets:
451                 1) Web browsers connect, then hang with no data received.
452                 2) Small mail works fine, but large emails hang.
453                 3) ssh works fine, but scp hangs after initial handshaking.
454
455           Workaround: activate this option and add a rule to your firewall
456           configuration like:
457
458           iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN \
459                          -j TCPMSS --clamp-mss-to-pmtu
460
461           To compile it as a module, choose M here.  If unsure, say N.
462
463 config NETFILTER_XT_TARGET_TCPOPTSTRIP
464         tristate '"TCPOPTSTRIP" target support (EXPERIMENTAL)'
465         depends on EXPERIMENTAL && NETFILTER_XTABLES
466         depends on IP_NF_MANGLE || IP6_NF_MANGLE
467         depends on NETFILTER_ADVANCED
468         help
469           This option adds a "TCPOPTSTRIP" target, which allows you to strip
470           TCP options from TCP packets.
471
472 config NETFILTER_XT_MATCH_COMMENT
473         tristate  '"comment" match support'
474         depends on NETFILTER_XTABLES
475         depends on NETFILTER_ADVANCED
476         help
477           This option adds a `comment' dummy-match, which allows you to put
478           comments in your iptables ruleset.
479
480           If you want to compile it as a module, say M here and read
481           <file:Documentation/kbuild/modules.txt>.  If unsure, say `N'.
482
483 config NETFILTER_XT_MATCH_CONNBYTES
484         tristate  '"connbytes" per-connection counter match support'
485         depends on NETFILTER_XTABLES
486         depends on NF_CONNTRACK
487         depends on NETFILTER_ADVANCED
488         select NF_CT_ACCT
489         help
490           This option adds a `connbytes' match, which allows you to match the
491           number of bytes and/or packets for each direction within a connection.
492
493           If you want to compile it as a module, say M here and read
494           <file:Documentation/kbuild/modules.txt>.  If unsure, say `N'.
495
496 config NETFILTER_XT_MATCH_CONNLIMIT
497         tristate '"connlimit" match support"'
498         depends on NETFILTER_XTABLES
499         depends on NF_CONNTRACK
500         depends on NETFILTER_ADVANCED
501         ---help---
502           This match allows you to match against the number of parallel
503           connections to a server per client IP address (or address block).
504
505 config NETFILTER_XT_MATCH_CONNMARK
506         tristate  '"connmark" connection mark match support'
507         depends on NETFILTER_XTABLES
508         depends on NF_CONNTRACK
509         depends on NETFILTER_ADVANCED
510         select NF_CONNTRACK_MARK
511         help
512           This option adds a `connmark' match, which allows you to match the
513           connection mark value previously set for the session by `CONNMARK'. 
514
515           If you want to compile it as a module, say M here and read
516           <file:Documentation/kbuild/modules.txt>.  The module will be called
517           ipt_connmark.ko.  If unsure, say `N'.
518
519 config NETFILTER_XT_MATCH_CONNTRACK
520         tristate '"conntrack" connection tracking match support'
521         depends on NETFILTER_XTABLES
522         depends on NF_CONNTRACK
523         default m if NETFILTER_ADVANCED=n
524         help
525           This is a general conntrack match module, a superset of the state match.
526
527           It allows matching on additional conntrack information, which is
528           useful in complex configurations, such as NAT gateways with multiple
529           internet links or tunnels.
530
531           To compile it as a module, choose M here.  If unsure, say N.
532
533 config NETFILTER_XT_MATCH_DCCP
534         tristate '"dccp" protocol match support'
535         depends on NETFILTER_XTABLES
536         depends on NETFILTER_ADVANCED
537         default IP_DCCP
538         help
539           With this option enabled, you will be able to use the iptables
540           `dccp' match in order to match on DCCP source/destination ports
541           and DCCP flags.
542
543           If you want to compile it as a module, say M here and read
544           <file:Documentation/kbuild/modules.txt>.  If unsure, say `N'.
545
546 config NETFILTER_XT_MATCH_DSCP
547         tristate '"dscp" and "tos" match support'
548         depends on NETFILTER_XTABLES
549         depends on NETFILTER_ADVANCED
550         help
551           This option adds a `DSCP' match, which allows you to match against
552           the IPv4/IPv6 header DSCP field (differentiated services codepoint).
553
554           The DSCP field can have any value between 0x0 and 0x3f inclusive.
555
556           It will also add a "tos" match, which allows you to match packets
557           based on the Type Of Service fields of the IPv4 packet (which share
558           the same bits as DSCP).
559
560           To compile it as a module, choose M here.  If unsure, say N.
561
562 config NETFILTER_XT_MATCH_ESP
563         tristate '"esp" match support'
564         depends on NETFILTER_XTABLES
565         depends on NETFILTER_ADVANCED
566         help
567           This match extension allows you to match a range of SPIs
568           inside ESP header of IPSec packets.
569
570           To compile it as a module, choose M here.  If unsure, say N.
571
572 config NETFILTER_XT_MATCH_HELPER
573         tristate '"helper" match support'
574         depends on NETFILTER_XTABLES
575         depends on NF_CONNTRACK
576         depends on NETFILTER_ADVANCED
577         help
578           Helper matching allows you to match packets in dynamic connections
579           tracked by a conntrack-helper, ie. ip_conntrack_ftp
580
581           To compile it as a module, choose M here.  If unsure, say Y.
582
583 config NETFILTER_XT_MATCH_IPRANGE
584         tristate '"iprange" address range match support'
585         depends on NETFILTER_XTABLES
586         depends on NETFILTER_ADVANCED
587         ---help---
588         This option adds a "iprange" match, which allows you to match based on
589         an IP address range. (Normal iptables only matches on single addresses
590         with an optional mask.)
591
592         If unsure, say M.
593
594 config NETFILTER_XT_MATCH_LENGTH
595         tristate '"length" match support'
596         depends on NETFILTER_XTABLES
597         depends on NETFILTER_ADVANCED
598         help
599           This option allows you to match the length of a packet against a
600           specific value or range of values.
601
602           To compile it as a module, choose M here.  If unsure, say N.
603
604 config NETFILTER_XT_MATCH_LIMIT
605         tristate '"limit" match support'
606         depends on NETFILTER_XTABLES
607         depends on NETFILTER_ADVANCED
608         help
609           limit matching allows you to control the rate at which a rule can be
610           matched: mainly useful in combination with the LOG target ("LOG
611           target support", below) and to avoid some Denial of Service attacks.
612
613           To compile it as a module, choose M here.  If unsure, say N.
614
615 config NETFILTER_XT_MATCH_MAC
616         tristate '"mac" address match support'
617         depends on NETFILTER_XTABLES
618         depends on NETFILTER_ADVANCED
619         help
620           MAC matching allows you to match packets based on the source
621           Ethernet address of the packet.
622
623           To compile it as a module, choose M here.  If unsure, say N.
624
625 config NETFILTER_XT_MATCH_MARK
626         tristate '"mark" match support'
627         depends on NETFILTER_XTABLES
628         default m if NETFILTER_ADVANCED=n
629         help
630           Netfilter mark matching allows you to match packets based on the
631           `nfmark' value in the packet.  This can be set by the MARK target
632           (see below).
633
634           To compile it as a module, choose M here.  If unsure, say N.
635
636 config NETFILTER_XT_MATCH_OWNER
637         tristate '"owner" match support'
638         depends on NETFILTER_XTABLES
639         depends on NETFILTER_ADVANCED
640         ---help---
641         Socket owner matching allows you to match locally-generated packets
642         based on who created the socket: the user or group. It is also
643         possible to check whether a socket actually exists.
644
645 config NETFILTER_XT_MATCH_POLICY
646         tristate 'IPsec "policy" match support'
647         depends on NETFILTER_XTABLES && XFRM
648         default m if NETFILTER_ADVANCED=n
649         help
650           Policy matching allows you to match packets based on the
651           IPsec policy that was used during decapsulation/will
652           be used during encapsulation.
653
654           To compile it as a module, choose M here.  If unsure, say N.
655
656 config NETFILTER_XT_MATCH_MULTIPORT
657         tristate '"multiport" Multiple port match support'
658         depends on NETFILTER_XTABLES
659         depends on NETFILTER_ADVANCED
660         help
661           Multiport matching allows you to match TCP or UDP packets based on
662           a series of source or destination ports: normally a rule can only
663           match a single range of ports.
664
665           To compile it as a module, choose M here.  If unsure, say N.
666
667 config NETFILTER_XT_MATCH_PHYSDEV
668         tristate '"physdev" match support'
669         depends on NETFILTER_XTABLES && BRIDGE && BRIDGE_NETFILTER
670         depends on NETFILTER_ADVANCED
671         help
672           Physdev packet matching matches against the physical bridge ports
673           the IP packet arrived on or will leave by.
674
675           To compile it as a module, choose M here.  If unsure, say N.
676
677 config NETFILTER_XT_MATCH_PKTTYPE
678         tristate '"pkttype" packet type match support'
679         depends on NETFILTER_XTABLES
680         depends on NETFILTER_ADVANCED
681         help
682           Packet type matching allows you to match a packet by
683           its "class", eg. BROADCAST, MULTICAST, ...
684
685           Typical usage:
686           iptables -A INPUT -m pkttype --pkt-type broadcast -j LOG
687
688           To compile it as a module, choose M here.  If unsure, say N.
689
690 config NETFILTER_XT_MATCH_QUOTA
691         tristate '"quota" match support'
692         depends on NETFILTER_XTABLES
693         depends on NETFILTER_ADVANCED
694         help
695           This option adds a `quota' match, which allows to match on a
696           byte counter.
697
698           If you want to compile it as a module, say M here and read
699           <file:Documentation/kbuild/modules.txt>.  If unsure, say `N'.
700
701 config NETFILTER_XT_MATCH_RATEEST
702         tristate '"rateest" match support'
703         depends on NETFILTER_XTABLES
704         depends on NETFILTER_ADVANCED
705         select NETFILTER_XT_TARGET_RATEEST
706         help
707           This option adds a `rateest' match, which allows to match on the
708           rate estimated by the RATEEST target.
709
710           To compile it as a module, choose M here.  If unsure, say N.
711
712 config NETFILTER_XT_MATCH_REALM
713         tristate  '"realm" match support'
714         depends on NETFILTER_XTABLES
715         depends on NETFILTER_ADVANCED
716         select NET_CLS_ROUTE
717         help
718           This option adds a `realm' match, which allows you to use the realm
719           key from the routing subsystem inside iptables.
720
721           This match pretty much resembles the CONFIG_NET_CLS_ROUTE4 option 
722           in tc world.
723
724           If you want to compile it as a module, say M here and read
725           <file:Documentation/kbuild/modules.txt>.  If unsure, say `N'.
726
727 config NETFILTER_XT_MATCH_SCTP
728         tristate  '"sctp" protocol match support (EXPERIMENTAL)'
729         depends on NETFILTER_XTABLES && EXPERIMENTAL
730         depends on NETFILTER_ADVANCED
731         default IP_SCTP
732         help
733           With this option enabled, you will be able to use the 
734           `sctp' match in order to match on SCTP source/destination ports
735           and SCTP chunk types.
736
737           If you want to compile it as a module, say M here and read
738           <file:Documentation/kbuild/modules.txt>.  If unsure, say `N'.
739
740 config NETFILTER_XT_MATCH_STATE
741         tristate '"state" match support'
742         depends on NETFILTER_XTABLES
743         depends on NF_CONNTRACK
744         default m if NETFILTER_ADVANCED=n
745         help
746           Connection state matching allows you to match packets based on their
747           relationship to a tracked connection (ie. previous packets).  This
748           is a powerful tool for packet classification.
749
750           To compile it as a module, choose M here.  If unsure, say N.
751
752 config NETFILTER_XT_MATCH_STATISTIC
753         tristate '"statistic" match support'
754         depends on NETFILTER_XTABLES
755         depends on NETFILTER_ADVANCED
756         help
757           This option adds a `statistic' match, which allows you to match
758           on packets periodically or randomly with a given percentage.
759
760           To compile it as a module, choose M here.  If unsure, say N.
761
762 config NETFILTER_XT_MATCH_STRING
763         tristate  '"string" match support'
764         depends on NETFILTER_XTABLES
765         depends on NETFILTER_ADVANCED
766         select TEXTSEARCH
767         select TEXTSEARCH_KMP
768         select TEXTSEARCH_BM
769         select TEXTSEARCH_FSM
770         help
771           This option adds a `string' match, which allows you to look for
772           pattern matchings in packets.
773
774           To compile it as a module, choose M here.  If unsure, say N.
775
776 config NETFILTER_XT_MATCH_TCPMSS
777         tristate '"tcpmss" match support'
778         depends on NETFILTER_XTABLES
779         depends on NETFILTER_ADVANCED
780         help
781           This option adds a `tcpmss' match, which allows you to examine the
782           MSS value of TCP SYN packets, which control the maximum packet size
783           for that connection.
784
785           To compile it as a module, choose M here.  If unsure, say N.
786
787 config NETFILTER_XT_MATCH_TIME
788         tristate '"time" match support'
789         depends on NETFILTER_XTABLES
790         depends on NETFILTER_ADVANCED
791         ---help---
792           This option adds a "time" match, which allows you to match based on
793           the packet arrival time (at the machine which netfilter is running)
794           on) or departure time/date (for locally generated packets).
795
796           If you say Y here, try `iptables -m time --help` for
797           more information.
798
799           If you want to compile it as a module, say M here.
800           If unsure, say N.
801
802 config NETFILTER_XT_MATCH_U32
803         tristate '"u32" match support'
804         depends on NETFILTER_XTABLES
805         depends on NETFILTER_ADVANCED
806         ---help---
807           u32 allows you to extract quantities of up to 4 bytes from a packet,
808           AND them with specified masks, shift them by specified amounts and
809           test whether the results are in any of a set of specified ranges.
810           The specification of what to extract is general enough to skip over
811           headers with lengths stored in the packet, as in IP or TCP header
812           lengths.
813
814           Details and examples are in the kernel module source.
815
816 config NETFILTER_XT_MATCH_HASHLIMIT
817         tristate '"hashlimit" match support'
818         depends on NETFILTER_XTABLES && (IP6_NF_IPTABLES || IP6_NF_IPTABLES=n)
819         depends on NETFILTER_ADVANCED
820         help
821           This option adds a `hashlimit' match.
822
823           As opposed to `limit', this match dynamically creates a hash table
824           of limit buckets, based on your selection of source/destination
825           addresses and/or ports.
826
827           It enables you to express policies like `10kpps for any given
828           destination address' or `500pps from any given source address'
829           with a single rule.
830
831 endmenu
832