xref: /linux/net/netfilter/Kconfig (revision f79e4d5f92a129a1159c973735007d4ddc8541f3)
1menu "Core Netfilter Configuration"
2	depends on NET && INET && NETFILTER
3
4config NETFILTER_INGRESS
5	bool "Netfilter ingress support"
6	default y
7	select NET_INGRESS
8	help
9	  This allows you to classify packets from ingress using the Netfilter
10	  infrastructure.
11
12config NETFILTER_NETLINK
13	tristate
14
15config NETFILTER_FAMILY_BRIDGE
16	bool
17
18config NETFILTER_FAMILY_ARP
19	bool
20
21config NETFILTER_NETLINK_ACCT
22tristate "Netfilter NFACCT over NFNETLINK interface"
23	depends on NETFILTER_ADVANCED
24	select NETFILTER_NETLINK
25	help
26	  If this option is enabled, the kernel will include support
27	  for extended accounting via NFNETLINK.
28
29config NETFILTER_NETLINK_QUEUE
30	tristate "Netfilter NFQUEUE over NFNETLINK interface"
31	depends on NETFILTER_ADVANCED
32	select NETFILTER_NETLINK
33	help
34	  If this option is enabled, the kernel will include support
35	  for queueing packets via NFNETLINK.
36
37config NETFILTER_NETLINK_LOG
38	tristate "Netfilter LOG over NFNETLINK interface"
39	default m if NETFILTER_ADVANCED=n
40	select NETFILTER_NETLINK
41	help
42	  If this option is enabled, the kernel will include support
43	  for logging packets via NFNETLINK.
44
45	  This obsoletes the existing ipt_ULOG and ebg_ulog mechanisms,
46	  and is also scheduled to replace the old syslog-based ipt_LOG
47	  and ip6t_LOG modules.
48
49config NF_CONNTRACK
50	tristate "Netfilter connection tracking support"
51	default m if NETFILTER_ADVANCED=n
52	help
53	  Connection tracking keeps a record of what packets have passed
54	  through your machine, in order to figure out how they are related
55	  into connections.
56
57	  This is required to do Masquerading or other kinds of Network
58	  Address Translation.  It can also be used to enhance packet
59	  filtering (see `Connection state match support' below).
60
61	  To compile it as a module, choose M here.  If unsure, say N.
62
63config NF_LOG_COMMON
64	tristate
65
66config NF_LOG_NETDEV
67	tristate "Netdev packet logging"
68	select NF_LOG_COMMON
69
70if NF_CONNTRACK
71config NETFILTER_CONNCOUNT
72	tristate
73
74config NF_CONNTRACK_MARK
75	bool  'Connection mark tracking support'
76	depends on NETFILTER_ADVANCED
77	help
78	  This option enables support for connection marks, used by the
79	  `CONNMARK' target and `connmark' match. Similar to the mark value
80	  of packets, but this mark value is kept in the conntrack session
81	  instead of the individual packets.
82
83config NF_CONNTRACK_SECMARK
84	bool  'Connection tracking security mark support'
85	depends on NETWORK_SECMARK
86	default m if NETFILTER_ADVANCED=n
87	help
88	  This option enables security markings to be applied to
89	  connections.  Typically they are copied to connections from
90	  packets using the CONNSECMARK target and copied back from
91	  connections to packets with the same target, with the packets
92	  being originally labeled via SECMARK.
93
94	  If unsure, say 'N'.
95
96config NF_CONNTRACK_ZONES
97	bool  'Connection tracking zones'
98	depends on NETFILTER_ADVANCED
99	depends on NETFILTER_XT_TARGET_CT
100	help
101	  This option enables support for connection tracking zones.
102	  Normally, each connection needs to have a unique system wide
103	  identity. Connection tracking zones allow to have multiple
104	  connections using the same identity, as long as they are
105	  contained in different zones.
106
107	  If unsure, say `N'.
108
109config NF_CONNTRACK_PROCFS
110	bool "Supply CT list in procfs (OBSOLETE)"
111	default y
112	depends on PROC_FS
113	---help---
114	This option enables for the list of known conntrack entries
115	to be shown in procfs under net/netfilter/nf_conntrack. This
116	is considered obsolete in favor of using the conntrack(8)
117	tool which uses Netlink.
118
119config NF_CONNTRACK_EVENTS
120	bool "Connection tracking events"
121	depends on NETFILTER_ADVANCED
122	help
123	  If this option is enabled, the connection tracking code will
124	  provide a notifier chain that can be used by other kernel code
125	  to get notified about changes in the connection tracking state.
126
127	  If unsure, say `N'.
128
129config NF_CONNTRACK_TIMEOUT
130	bool  'Connection tracking timeout'
131	depends on NETFILTER_ADVANCED
132	help
133	  This option enables support for connection tracking timeout
134	  extension. This allows you to attach timeout policies to flow
135	  via the CT target.
136
137	  If unsure, say `N'.
138
139config NF_CONNTRACK_TIMESTAMP
140	bool  'Connection tracking timestamping'
141	depends on NETFILTER_ADVANCED
142	help
143	  This option enables support for connection tracking timestamping.
144	  This allows you to store the flow start-time and to obtain
145	  the flow-stop time (once it has been destroyed) via Connection
146	  tracking events.
147
148	  If unsure, say `N'.
149
150config NF_CONNTRACK_LABELS
151	bool
152	help
153	  This option enables support for assigning user-defined flag bits
154	  to connection tracking entries.  It selected by the connlabel match.
155
156config NF_CT_PROTO_DCCP
157	bool 'DCCP protocol connection tracking support'
158	depends on NETFILTER_ADVANCED
159	default y
160	help
161	  With this option enabled, the layer 3 independent connection
162	  tracking code will be able to do state tracking on DCCP connections.
163
164	  If unsure, say Y.
165
166config NF_CT_PROTO_GRE
167	tristate
168
169config NF_CT_PROTO_SCTP
170	bool 'SCTP protocol connection tracking support'
171	depends on NETFILTER_ADVANCED
172	default y
173	select LIBCRC32C
174	help
175	  With this option enabled, the layer 3 independent connection
176	  tracking code will be able to do state tracking on SCTP connections.
177
178	  If unsure, say Y.
179
180config NF_CT_PROTO_UDPLITE
181	bool 'UDP-Lite protocol connection tracking support'
182	depends on NETFILTER_ADVANCED
183	default y
184	help
185	  With this option enabled, the layer 3 independent connection
186	  tracking code will be able to do state tracking on UDP-Lite
187	  connections.
188
189	  If unsure, say Y.
190
191config NF_CONNTRACK_AMANDA
192	tristate "Amanda backup protocol support"
193	depends on NETFILTER_ADVANCED
194	select TEXTSEARCH
195	select TEXTSEARCH_KMP
196	help
197	  If you are running the Amanda backup package <http://www.amanda.org/>
198	  on this machine or machines that will be MASQUERADED through this
199	  machine, then you may want to enable this feature.  This allows the
200	  connection tracking and natting code to allow the sub-channels that
201	  Amanda requires for communication of the backup data, messages and
202	  index.
203
204	  To compile it as a module, choose M here.  If unsure, say N.
205
206config NF_CONNTRACK_FTP
207	tristate "FTP protocol support"
208	default m if NETFILTER_ADVANCED=n
209	help
210	  Tracking FTP connections is problematic: special helpers are
211	  required for tracking them, and doing masquerading and other forms
212	  of Network Address Translation on them.
213
214	  This is FTP support on Layer 3 independent connection tracking.
215	  Layer 3 independent connection tracking is experimental scheme
216	  which generalize ip_conntrack to support other layer 3 protocols.
217
218	  To compile it as a module, choose M here.  If unsure, say N.
219
220config NF_CONNTRACK_H323
221	tristate "H.323 protocol support"
222	depends on IPV6 || IPV6=n
223	depends on NETFILTER_ADVANCED
224	help
225	  H.323 is a VoIP signalling protocol from ITU-T. As one of the most
226	  important VoIP protocols, it is widely used by voice hardware and
227	  software including voice gateways, IP phones, Netmeeting, OpenPhone,
228	  Gnomemeeting, etc.
229
230	  With this module you can support H.323 on a connection tracking/NAT
231	  firewall.
232
233	  This module supports RAS, Fast Start, H.245 Tunnelling, Call
234	  Forwarding, RTP/RTCP and T.120 based audio, video, fax, chat,
235	  whiteboard, file transfer, etc. For more information, please
236	  visit http://nath323.sourceforge.net/.
237
238	  To compile it as a module, choose M here.  If unsure, say N.
239
240config NF_CONNTRACK_IRC
241	tristate "IRC protocol support"
242	default m if NETFILTER_ADVANCED=n
243	help
244	  There is a commonly-used extension to IRC called
245	  Direct Client-to-Client Protocol (DCC).  This enables users to send
246	  files to each other, and also chat to each other without the need
247	  of a server.  DCC Sending is used anywhere you send files over IRC,
248	  and DCC Chat is most commonly used by Eggdrop bots.  If you are
249	  using NAT, this extension will enable you to send files and initiate
250	  chats.  Note that you do NOT need this extension to get files or
251	  have others initiate chats, or everything else in IRC.
252
253	  To compile it as a module, choose M here.  If unsure, say N.
254
255config NF_CONNTRACK_BROADCAST
256	tristate
257
258config NF_CONNTRACK_NETBIOS_NS
259	tristate "NetBIOS name service protocol support"
260	select NF_CONNTRACK_BROADCAST
261	help
262	  NetBIOS name service requests are sent as broadcast messages from an
263	  unprivileged port and responded to with unicast messages to the
264	  same port. This make them hard to firewall properly because connection
265	  tracking doesn't deal with broadcasts. This helper tracks locally
266	  originating NetBIOS name service requests and the corresponding
267	  responses. It relies on correct IP address configuration, specifically
268	  netmask and broadcast address. When properly configured, the output
269	  of "ip address show" should look similar to this:
270
271	  $ ip -4 address show eth0
272	  4: eth0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 1000
273	      inet 172.16.2.252/24 brd 172.16.2.255 scope global eth0
274
275	  To compile it as a module, choose M here.  If unsure, say N.
276
277config NF_CONNTRACK_SNMP
278	tristate "SNMP service protocol support"
279	depends on NETFILTER_ADVANCED
280	select NF_CONNTRACK_BROADCAST
281	help
282	  SNMP service requests are sent as broadcast messages from an
283	  unprivileged port and responded to with unicast messages to the
284	  same port. This make them hard to firewall properly because connection
285	  tracking doesn't deal with broadcasts. This helper tracks locally
286	  originating SNMP service requests and the corresponding
287	  responses. It relies on correct IP address configuration, specifically
288	  netmask and broadcast address.
289
290	  To compile it as a module, choose M here.  If unsure, say N.
291
292config NF_CONNTRACK_PPTP
293	tristate "PPtP protocol support"
294	depends on NETFILTER_ADVANCED
295	select NF_CT_PROTO_GRE
296	help
297	  This module adds support for PPTP (Point to Point Tunnelling
298	  Protocol, RFC2637) connection tracking and NAT.
299
300	  If you are running PPTP sessions over a stateful firewall or NAT
301	  box, you may want to enable this feature.
302
303	  Please note that not all PPTP modes of operation are supported yet.
304	  Specifically these limitations exist:
305	    - Blindly assumes that control connections are always established
306	      in PNS->PAC direction. This is a violation of RFC2637.
307	    - Only supports a single call within each session
308
309	  To compile it as a module, choose M here.  If unsure, say N.
310
311config NF_CONNTRACK_SANE
312	tristate "SANE protocol support"
313	depends on NETFILTER_ADVANCED
314	help
315	  SANE is a protocol for remote access to scanners as implemented
316	  by the 'saned' daemon. Like FTP, it uses separate control and
317	  data connections.
318
319	  With this module you can support SANE on a connection tracking
320	  firewall.
321
322	  To compile it as a module, choose M here.  If unsure, say N.
323
324config NF_CONNTRACK_SIP
325	tristate "SIP protocol support"
326	default m if NETFILTER_ADVANCED=n
327	help
328	  SIP is an application-layer control protocol that can establish,
329	  modify, and terminate multimedia sessions (conferences) such as
330	  Internet telephony calls. With the ip_conntrack_sip and
331	  the nf_nat_sip modules you can support the protocol on a connection
332	  tracking/NATing firewall.
333
334	  To compile it as a module, choose M here.  If unsure, say N.
335
336config NF_CONNTRACK_TFTP
337	tristate "TFTP protocol support"
338	depends on NETFILTER_ADVANCED
339	help
340	  TFTP connection tracking helper, this is required depending
341	  on how restrictive your ruleset is.
342	  If you are using a tftp client behind -j SNAT or -j MASQUERADING
343	  you will need this.
344
345	  To compile it as a module, choose M here.  If unsure, say N.
346
347config NF_CT_NETLINK
348	tristate 'Connection tracking netlink interface'
349	select NETFILTER_NETLINK
350	default m if NETFILTER_ADVANCED=n
351	help
352	  This option enables support for a netlink-based userspace interface
353
354config NF_CT_NETLINK_TIMEOUT
355	tristate  'Connection tracking timeout tuning via Netlink'
356	select NETFILTER_NETLINK
357	depends on NETFILTER_ADVANCED
358	help
359	  This option enables support for connection tracking timeout
360	  fine-grain tuning. This allows you to attach specific timeout
361	  policies to flows, instead of using the global timeout policy.
362
363	  If unsure, say `N'.
364
365config NF_CT_NETLINK_HELPER
366	tristate 'Connection tracking helpers in user-space via Netlink'
367	select NETFILTER_NETLINK
368	depends on NF_CT_NETLINK
369	depends on NETFILTER_NETLINK_QUEUE
370	depends on NETFILTER_NETLINK_GLUE_CT
371	depends on NETFILTER_ADVANCED
372	help
373	  This option enables the user-space connection tracking helpers
374	  infrastructure.
375
376	  If unsure, say `N'.
377
378config NETFILTER_NETLINK_GLUE_CT
379	bool "NFQUEUE and NFLOG integration with Connection Tracking"
380	default n
381	depends on (NETFILTER_NETLINK_QUEUE || NETFILTER_NETLINK_LOG) && NF_CT_NETLINK
382	help
383	  If this option is enabled, NFQUEUE and NFLOG can include
384	  Connection Tracking information together with the packet is
385	  the enqueued via NFNETLINK.
386
387config NF_NAT
388	tristate
389
390config NF_NAT_NEEDED
391	bool
392	depends on NF_NAT
393	default y
394
395config NF_NAT_PROTO_DCCP
396	bool
397	depends on NF_NAT && NF_CT_PROTO_DCCP
398	default NF_NAT && NF_CT_PROTO_DCCP
399
400config NF_NAT_PROTO_UDPLITE
401	bool
402	depends on NF_NAT && NF_CT_PROTO_UDPLITE
403	default NF_NAT && NF_CT_PROTO_UDPLITE
404
405config NF_NAT_PROTO_SCTP
406	bool
407	default NF_NAT && NF_CT_PROTO_SCTP
408	depends on NF_NAT && NF_CT_PROTO_SCTP
409
410config NF_NAT_AMANDA
411	tristate
412	depends on NF_CONNTRACK && NF_NAT
413	default NF_NAT && NF_CONNTRACK_AMANDA
414
415config NF_NAT_FTP
416	tristate
417	depends on NF_CONNTRACK && NF_NAT
418	default NF_NAT && NF_CONNTRACK_FTP
419
420config NF_NAT_IRC
421	tristate
422	depends on NF_CONNTRACK && NF_NAT
423	default NF_NAT && NF_CONNTRACK_IRC
424
425config NF_NAT_SIP
426	tristate
427	depends on NF_CONNTRACK && NF_NAT
428	default NF_NAT && NF_CONNTRACK_SIP
429
430config NF_NAT_TFTP
431	tristate
432	depends on NF_CONNTRACK && NF_NAT
433	default NF_NAT && NF_CONNTRACK_TFTP
434
435config NF_NAT_REDIRECT
436	bool
437
438config NETFILTER_SYNPROXY
439	tristate
440
441endif # NF_CONNTRACK
442
443config NF_OSF
444	tristate
445
446config NF_TABLES
447	select NETFILTER_NETLINK
448	tristate "Netfilter nf_tables support"
449	help
450	  nftables is the new packet classification framework that intends to
451	  replace the existing {ip,ip6,arp,eb}_tables infrastructure. It
452	  provides a pseudo-state machine with an extensible instruction-set
453	  (also known as expressions) that the userspace 'nft' utility
454	  (http://www.netfilter.org/projects/nftables) uses to build the
455	  rule-set. It also comes with the generic set infrastructure that
456	  allows you to construct mappings between matchings and actions
457	  for performance lookups.
458
459	  To compile it as a module, choose M here.
460
461if NF_TABLES
462
463config NF_TABLES_SET
464	tristate "Netfilter nf_tables set infrastructure"
465	help
466	  This option enables the nf_tables set infrastructure that allows to
467	  look up for elements in a set and to build one-way mappings between
468	  matchings and actions.
469
470config NF_TABLES_INET
471	depends on IPV6
472	select NF_TABLES_IPV4
473	select NF_TABLES_IPV6
474	bool "Netfilter nf_tables mixed IPv4/IPv6 tables support"
475	help
476	  This option enables support for a mixed IPv4/IPv6 "inet" table.
477
478config NF_TABLES_NETDEV
479	bool "Netfilter nf_tables netdev tables support"
480	help
481	  This option enables support for the "netdev" table.
482
483config NFT_NUMGEN
484	tristate "Netfilter nf_tables number generator module"
485	help
486	  This option adds the number generator expression used to perform
487	  incremental counting and random numbers bound to a upper limit.
488
489config NFT_CT
490	depends on NF_CONNTRACK
491	tristate "Netfilter nf_tables conntrack module"
492	help
493	  This option adds the "ct" expression that you can use to match
494	  connection tracking information such as the flow state.
495
496config NFT_FLOW_OFFLOAD
497	depends on NF_CONNTRACK && NF_FLOW_TABLE
498	tristate "Netfilter nf_tables hardware flow offload module"
499	help
500	  This option adds the "flow_offload" expression that you can use to
501	  choose what flows are placed into the hardware.
502
503config NFT_COUNTER
504	tristate "Netfilter nf_tables counter module"
505	help
506	  This option adds the "counter" expression that you can use to
507	  include packet and byte counters in a rule.
508
509config NFT_CONNLIMIT
510	tristate "Netfilter nf_tables connlimit module"
511	depends on NF_CONNTRACK
512	depends on NETFILTER_ADVANCED
513	select NETFILTER_CONNCOUNT
514	help
515	  This option adds the "connlimit" expression that you can use to
516	  ratelimit rule matchings per connections.
517
518config NFT_LOG
519	tristate "Netfilter nf_tables log module"
520	help
521	  This option adds the "log" expression that you can use to log
522	  packets matching some criteria.
523
524config NFT_LIMIT
525	tristate "Netfilter nf_tables limit module"
526	help
527	  This option adds the "limit" expression that you can use to
528	  ratelimit rule matchings.
529
530config NFT_MASQ
531	depends on NF_CONNTRACK
532	depends on NF_NAT
533	tristate "Netfilter nf_tables masquerade support"
534	help
535	  This option adds the "masquerade" expression that you can use
536	  to perform NAT in the masquerade flavour.
537
538config NFT_REDIR
539	depends on NF_CONNTRACK
540	depends on NF_NAT
541	tristate "Netfilter nf_tables redirect support"
542	help
543	  This options adds the "redirect" expression that you can use
544	  to perform NAT in the redirect flavour.
545
546config NFT_NAT
547	depends on NF_CONNTRACK
548	select NF_NAT
549	tristate "Netfilter nf_tables nat module"
550	help
551	  This option adds the "nat" expression that you can use to perform
552	  typical Network Address Translation (NAT) packet transformations.
553
554config NFT_OBJREF
555	tristate "Netfilter nf_tables stateful object reference module"
556	help
557	  This option adds the "objref" expression that allows you to refer to
558	  stateful objects, such as counters and quotas.
559
560config NFT_QUEUE
561	depends on NETFILTER_NETLINK_QUEUE
562	tristate "Netfilter nf_tables queue module"
563	help
564	  This is required if you intend to use the userspace queueing
565	  infrastructure (also known as NFQUEUE) from nftables.
566
567config NFT_QUOTA
568	tristate "Netfilter nf_tables quota module"
569	help
570	  This option adds the "quota" expression that you can use to match
571	  enforce bytes quotas.
572
573config NFT_REJECT
574	default m if NETFILTER_ADVANCED=n
575	tristate "Netfilter nf_tables reject support"
576	depends on !NF_TABLES_INET || (IPV6!=m || m)
577	help
578	  This option adds the "reject" expression that you can use to
579	  explicitly deny and notify via TCP reset/ICMP informational errors
580	  unallowed traffic.
581
582config NFT_REJECT_INET
583	depends on NF_TABLES_INET
584	default NFT_REJECT
585	tristate
586
587config NFT_COMPAT
588	depends on NETFILTER_XTABLES
589	tristate "Netfilter x_tables over nf_tables module"
590	help
591	  This is required if you intend to use any of existing
592	  x_tables match/target extensions over the nf_tables
593	  framework.
594
595config NFT_HASH
596	tristate "Netfilter nf_tables hash module"
597	help
598	  This option adds the "hash" expression that you can use to perform
599	  a hash operation on registers.
600
601config NFT_FIB
602	tristate
603
604config NFT_FIB_INET
605	depends on NF_TABLES_INET
606	depends on NFT_FIB_IPV4
607	depends on NFT_FIB_IPV6
608	tristate "Netfilter nf_tables fib inet support"
609	help
610	  This option allows using the FIB expression from the inet table.
611	  The lookup will be delegated to the IPv4 or IPv6 FIB depending
612	  on the protocol of the packet.
613
614config NFT_SOCKET
615	tristate "Netfilter nf_tables socket match support"
616	depends on IPV6 || IPV6=n
617	select NF_SOCKET_IPV4
618	select NF_SOCKET_IPV6 if IPV6
619	help
620	  This option allows matching for the presence or absence of a
621	  corresponding socket and its attributes.
622
623if NF_TABLES_NETDEV
624
625config NF_DUP_NETDEV
626	tristate "Netfilter packet duplication support"
627	help
628	  This option enables the generic packet duplication infrastructure
629	  for Netfilter.
630
631config NFT_DUP_NETDEV
632	tristate "Netfilter nf_tables netdev packet duplication support"
633	select NF_DUP_NETDEV
634	help
635	  This option enables packet duplication for the "netdev" family.
636
637config NFT_FWD_NETDEV
638	tristate "Netfilter nf_tables netdev packet forwarding support"
639	select NF_DUP_NETDEV
640	help
641	  This option enables packet forwarding for the "netdev" family.
642
643config NFT_FIB_NETDEV
644	depends on NFT_FIB_IPV4
645	depends on NFT_FIB_IPV6
646	tristate "Netfilter nf_tables netdev fib lookups support"
647	help
648	  This option allows using the FIB expression from the netdev table.
649	  The lookup will be delegated to the IPv4 or IPv6 FIB depending
650	  on the protocol of the packet.
651
652endif # NF_TABLES_NETDEV
653
654endif # NF_TABLES
655
656config NF_FLOW_TABLE_INET
657	tristate "Netfilter flow table mixed IPv4/IPv6 module"
658	depends on NF_FLOW_TABLE
659	help
660          This option adds the flow table mixed IPv4/IPv6 support.
661
662	  To compile it as a module, choose M here.
663
664config NF_FLOW_TABLE
665	tristate "Netfilter flow table module"
666	depends on NETFILTER_INGRESS
667	depends on NF_CONNTRACK
668	depends on NF_TABLES
669	help
670	  This option adds the flow table core infrastructure.
671
672	  To compile it as a module, choose M here.
673
674config NETFILTER_XTABLES
675	tristate "Netfilter Xtables support (required for ip_tables)"
676	default m if NETFILTER_ADVANCED=n
677	help
678	  This is required if you intend to use any of ip_tables,
679	  ip6_tables or arp_tables.
680
681if NETFILTER_XTABLES
682
683comment "Xtables combined modules"
684
685config NETFILTER_XT_MARK
686	tristate 'nfmark target and match support'
687	default m if NETFILTER_ADVANCED=n
688	---help---
689	This option adds the "MARK" target and "mark" match.
690
691	Netfilter mark matching allows you to match packets based on the
692	"nfmark" value in the packet.
693	The target allows you to create rules in the "mangle" table which alter
694	the netfilter mark (nfmark) field associated with the packet.
695
696	Prior to routing, the nfmark can influence the routing method and can
697	also be used by other subsystems to change their behavior.
698
699config NETFILTER_XT_CONNMARK
700	tristate 'ctmark target and match support'
701	depends on NF_CONNTRACK
702	depends on NETFILTER_ADVANCED
703	select NF_CONNTRACK_MARK
704	---help---
705	This option adds the "CONNMARK" target and "connmark" match.
706
707	Netfilter allows you to store a mark value per connection (a.k.a.
708	ctmark), similarly to the packet mark (nfmark). Using this
709	target and match, you can set and match on this mark.
710
711config NETFILTER_XT_SET
712	tristate 'set target and match support'
713	depends on IP_SET
714	depends on NETFILTER_ADVANCED
715	help
716	  This option adds the "SET" target and "set" match.
717
718	  Using this target and match, you can add/delete and match
719	  elements in the sets created by ipset(8).
720
721	  To compile it as a module, choose M here.  If unsure, say N.
722
723# alphabetically ordered list of targets
724
725comment "Xtables targets"
726
727config NETFILTER_XT_TARGET_AUDIT
728	tristate "AUDIT target support"
729	depends on AUDIT
730	depends on NETFILTER_ADVANCED
731	---help---
732	  This option adds a 'AUDIT' target, which can be used to create
733	  audit records for packets dropped/accepted.
734
735	  To compileit as a module, choose M here. If unsure, say N.
736
737config NETFILTER_XT_TARGET_CHECKSUM
738	tristate "CHECKSUM target support"
739	depends on IP_NF_MANGLE || IP6_NF_MANGLE
740	depends on NETFILTER_ADVANCED
741	---help---
742	  This option adds a `CHECKSUM' target, which can be used in the iptables mangle
743	  table.
744
745	  You can use this target to compute and fill in the checksum in
746	  a packet that lacks a checksum.  This is particularly useful,
747	  if you need to work around old applications such as dhcp clients,
748	  that do not work well with checksum offloads, but don't want to disable
749	  checksum offload in your device.
750
751	  To compile it as a module, choose M here.  If unsure, say N.
752
753config NETFILTER_XT_TARGET_CLASSIFY
754	tristate '"CLASSIFY" target support'
755	depends on NETFILTER_ADVANCED
756	help
757	  This option adds a `CLASSIFY' target, which enables the user to set
758	  the priority of a packet. Some qdiscs can use this value for
759	  classification, among these are:
760
761  	  atm, cbq, dsmark, pfifo_fast, htb, prio
762
763	  To compile it as a module, choose M here.  If unsure, say N.
764
765config NETFILTER_XT_TARGET_CONNMARK
766	tristate  '"CONNMARK" target support'
767	depends on NF_CONNTRACK
768	depends on NETFILTER_ADVANCED
769	select NETFILTER_XT_CONNMARK
770	---help---
771	This is a backwards-compat option for the user's convenience
772	(e.g. when running oldconfig). It selects
773	CONFIG_NETFILTER_XT_CONNMARK (combined connmark/CONNMARK module).
774
775config NETFILTER_XT_TARGET_CONNSECMARK
776	tristate '"CONNSECMARK" target support'
777	depends on NF_CONNTRACK && NF_CONNTRACK_SECMARK
778	default m if NETFILTER_ADVANCED=n
779	help
780	  The CONNSECMARK target copies security markings from packets
781	  to connections, and restores security markings from connections
782	  to packets (if the packets are not already marked).  This would
783	  normally be used in conjunction with the SECMARK target.
784
785	  To compile it as a module, choose M here.  If unsure, say N.
786
787config NETFILTER_XT_TARGET_CT
788	tristate '"CT" target support'
789	depends on NF_CONNTRACK
790	depends on IP_NF_RAW || IP6_NF_RAW
791	depends on NETFILTER_ADVANCED
792	help
793	  This options adds a `CT' target, which allows to specify initial
794	  connection tracking parameters like events to be delivered and
795	  the helper to be used.
796
797	  To compile it as a module, choose M here.  If unsure, say N.
798
799config NETFILTER_XT_TARGET_DSCP
800	tristate '"DSCP" and "TOS" target support'
801	depends on IP_NF_MANGLE || IP6_NF_MANGLE
802	depends on NETFILTER_ADVANCED
803	help
804	  This option adds a `DSCP' target, which allows you to manipulate
805	  the IPv4/IPv6 header DSCP field (differentiated services codepoint).
806
807	  The DSCP field can have any value between 0x0 and 0x3f inclusive.
808
809	  It also adds the "TOS" target, which allows you to create rules in
810	  the "mangle" table which alter the Type Of Service field of an IPv4
811	  or the Priority field of an IPv6 packet, prior to routing.
812
813	  To compile it as a module, choose M here.  If unsure, say N.
814
815config NETFILTER_XT_TARGET_HL
816	tristate '"HL" hoplimit target support'
817	depends on IP_NF_MANGLE || IP6_NF_MANGLE
818	depends on NETFILTER_ADVANCED
819	---help---
820	This option adds the "HL" (for IPv6) and "TTL" (for IPv4)
821	targets, which enable the user to change the
822	hoplimit/time-to-live value of the IP header.
823
824	While it is safe to decrement the hoplimit/TTL value, the
825	modules also allow to increment and set the hoplimit value of
826	the header to arbitrary values. This is EXTREMELY DANGEROUS
827	since you can easily create immortal packets that loop
828	forever on the network.
829
830config NETFILTER_XT_TARGET_HMARK
831	tristate '"HMARK" target support'
832	depends on IP6_NF_IPTABLES || IP6_NF_IPTABLES=n
833	depends on NETFILTER_ADVANCED
834	---help---
835	This option adds the "HMARK" target.
836
837	The target allows you to create rules in the "raw" and "mangle" tables
838	which set the skbuff mark by means of hash calculation within a given
839	range. The nfmark can influence the routing method and can also be used
840	by other subsystems to change their behaviour.
841
842	To compile it as a module, choose M here. If unsure, say N.
843
844config NETFILTER_XT_TARGET_IDLETIMER
845	tristate  "IDLETIMER target support"
846	depends on NETFILTER_ADVANCED
847	help
848
849	  This option adds the `IDLETIMER' target.  Each matching packet
850	  resets the timer associated with label specified when the rule is
851	  added.  When the timer expires, it triggers a sysfs notification.
852	  The remaining time for expiration can be read via sysfs.
853
854	  To compile it as a module, choose M here.  If unsure, say N.
855
856config NETFILTER_XT_TARGET_LED
857	tristate '"LED" target support'
858	depends on LEDS_CLASS && LEDS_TRIGGERS
859	depends on NETFILTER_ADVANCED
860	help
861	  This option adds a `LED' target, which allows you to blink LEDs in
862	  response to particular packets passing through your machine.
863
864	  This can be used to turn a spare LED into a network activity LED,
865	  which only flashes in response to FTP transfers, for example.  Or
866	  you could have an LED which lights up for a minute or two every time
867	  somebody connects to your machine via SSH.
868
869	  You will need support for the "led" class to make this work.
870
871	  To create an LED trigger for incoming SSH traffic:
872	    iptables -A INPUT -p tcp --dport 22 -j LED --led-trigger-id ssh --led-delay 1000
873
874	  Then attach the new trigger to an LED on your system:
875	    echo netfilter-ssh > /sys/class/leds/<ledname>/trigger
876
877	  For more information on the LEDs available on your system, see
878	  Documentation/leds/leds-class.txt
879
880config NETFILTER_XT_TARGET_LOG
881	tristate "LOG target support"
882	select NF_LOG_COMMON
883	select NF_LOG_IPV4
884	select NF_LOG_IPV6 if IPV6
885	default m if NETFILTER_ADVANCED=n
886	help
887	  This option adds a `LOG' target, which allows you to create rules in
888	  any iptables table which records the packet header to the syslog.
889
890	  To compile it as a module, choose M here.  If unsure, say N.
891
892config NETFILTER_XT_TARGET_MARK
893	tristate '"MARK" target support'
894	depends on NETFILTER_ADVANCED
895	select NETFILTER_XT_MARK
896	---help---
897	This is a backwards-compat option for the user's convenience
898	(e.g. when running oldconfig). It selects
899	CONFIG_NETFILTER_XT_MARK (combined mark/MARK module).
900
901config NETFILTER_XT_NAT
902	tristate '"SNAT and DNAT" targets support'
903	depends on NF_NAT
904	---help---
905	This option enables the SNAT and DNAT targets.
906
907	To compile it as a module, choose M here. If unsure, say N.
908
909config NETFILTER_XT_TARGET_NETMAP
910	tristate '"NETMAP" target support'
911	depends on NF_NAT
912	---help---
913	NETMAP is an implementation of static 1:1 NAT mapping of network
914	addresses. It maps the network address part, while keeping the host
915	address part intact.
916
917	To compile it as a module, choose M here. If unsure, say N.
918
919config NETFILTER_XT_TARGET_NFLOG
920	tristate '"NFLOG" target support'
921	default m if NETFILTER_ADVANCED=n
922	select NETFILTER_NETLINK_LOG
923	help
924	  This option enables the NFLOG target, which allows to LOG
925	  messages through nfnetlink_log.
926
927	  To compile it as a module, choose M here.  If unsure, say N.
928
929config NETFILTER_XT_TARGET_NFQUEUE
930	tristate '"NFQUEUE" target Support'
931	depends on NETFILTER_ADVANCED
932	select NETFILTER_NETLINK_QUEUE
933	help
934	  This target replaced the old obsolete QUEUE target.
935
936	  As opposed to QUEUE, it supports 65535 different queues,
937	  not just one.
938
939	  To compile it as a module, choose M here.  If unsure, say N.
940
941config NETFILTER_XT_TARGET_NOTRACK
942	tristate  '"NOTRACK" target support (DEPRECATED)'
943	depends on NF_CONNTRACK
944	depends on IP_NF_RAW || IP6_NF_RAW
945	depends on NETFILTER_ADVANCED
946	select NETFILTER_XT_TARGET_CT
947
948config NETFILTER_XT_TARGET_RATEEST
949	tristate '"RATEEST" target support'
950	depends on NETFILTER_ADVANCED
951	help
952	  This option adds a `RATEEST' target, which allows to measure
953	  rates similar to TC estimators. The `rateest' match can be
954	  used to match on the measured rates.
955
956	  To compile it as a module, choose M here.  If unsure, say N.
957
958config NETFILTER_XT_TARGET_REDIRECT
959	tristate "REDIRECT target support"
960	depends on NF_NAT
961	select NF_NAT_REDIRECT
962	---help---
963	REDIRECT is a special case of NAT: all incoming connections are
964	mapped onto the incoming interface's address, causing the packets to
965	come to the local machine instead of passing through. This is
966	useful for transparent proxies.
967
968	To compile it as a module, choose M here. If unsure, say N.
969
970config NETFILTER_XT_TARGET_TEE
971	tristate '"TEE" - packet cloning to alternate destination'
972	depends on NETFILTER_ADVANCED
973	depends on IPV6 || IPV6=n
974	depends on !NF_CONNTRACK || NF_CONNTRACK
975	select NF_DUP_IPV4
976	select NF_DUP_IPV6 if IPV6
977	---help---
978	This option adds a "TEE" target with which a packet can be cloned and
979	this clone be rerouted to another nexthop.
980
981config NETFILTER_XT_TARGET_TPROXY
982	tristate '"TPROXY" target transparent proxying support'
983	depends on NETFILTER_XTABLES
984	depends on NETFILTER_ADVANCED
985	depends on IPV6 || IPV6=n
986	depends on IP6_NF_IPTABLES || IP6_NF_IPTABLES=n
987	depends on IP_NF_MANGLE
988	select NF_DEFRAG_IPV4
989	select NF_DEFRAG_IPV6 if IP6_NF_IPTABLES != n
990	select NF_TPROXY_IPV4
991	select NF_TPROXY_IPV6 if IP6_NF_IPTABLES
992	help
993	  This option adds a `TPROXY' target, which is somewhat similar to
994	  REDIRECT.  It can only be used in the mangle table and is useful
995	  to redirect traffic to a transparent proxy.  It does _not_ depend
996	  on Netfilter connection tracking and NAT, unlike REDIRECT.
997	  For it to work you will have to configure certain iptables rules
998	  and use policy routing. For more information on how to set it up
999	  see Documentation/networking/tproxy.txt.
1000
1001	  To compile it as a module, choose M here.  If unsure, say N.
1002
1003config NETFILTER_XT_TARGET_TRACE
1004	tristate  '"TRACE" target support'
1005	depends on IP_NF_RAW || IP6_NF_RAW
1006	depends on NETFILTER_ADVANCED
1007	help
1008	  The TRACE target allows you to mark packets so that the kernel
1009	  will log every rule which match the packets as those traverse
1010	  the tables, chains, rules.
1011
1012	  If you want to compile it as a module, say M here and read
1013	  <file:Documentation/kbuild/modules.txt>.  If unsure, say `N'.
1014
1015config NETFILTER_XT_TARGET_SECMARK
1016	tristate '"SECMARK" target support'
1017	depends on NETWORK_SECMARK
1018	default m if NETFILTER_ADVANCED=n
1019	help
1020	  The SECMARK target allows security marking of network
1021	  packets, for use with security subsystems.
1022
1023	  To compile it as a module, choose M here.  If unsure, say N.
1024
1025config NETFILTER_XT_TARGET_TCPMSS
1026	tristate '"TCPMSS" target support'
1027	depends on IPV6 || IPV6=n
1028	default m if NETFILTER_ADVANCED=n
1029	---help---
1030	  This option adds a `TCPMSS' target, which allows you to alter the
1031	  MSS value of TCP SYN packets, to control the maximum size for that
1032	  connection (usually limiting it to your outgoing interface's MTU
1033	  minus 40).
1034
1035	  This is used to overcome criminally braindead ISPs or servers which
1036	  block ICMP Fragmentation Needed packets.  The symptoms of this
1037	  problem are that everything works fine from your Linux
1038	  firewall/router, but machines behind it can never exchange large
1039	  packets:
1040	        1) Web browsers connect, then hang with no data received.
1041	        2) Small mail works fine, but large emails hang.
1042	        3) ssh works fine, but scp hangs after initial handshaking.
1043
1044	  Workaround: activate this option and add a rule to your firewall
1045	  configuration like:
1046
1047	  iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN \
1048	                 -j TCPMSS --clamp-mss-to-pmtu
1049
1050	  To compile it as a module, choose M here.  If unsure, say N.
1051
1052config NETFILTER_XT_TARGET_TCPOPTSTRIP
1053	tristate '"TCPOPTSTRIP" target support'
1054	depends on IP_NF_MANGLE || IP6_NF_MANGLE
1055	depends on NETFILTER_ADVANCED
1056	help
1057	  This option adds a "TCPOPTSTRIP" target, which allows you to strip
1058	  TCP options from TCP packets.
1059
1060# alphabetically ordered list of matches
1061
1062comment "Xtables matches"
1063
1064config NETFILTER_XT_MATCH_ADDRTYPE
1065	tristate '"addrtype" address type match support'
1066	default m if NETFILTER_ADVANCED=n
1067	---help---
1068	  This option allows you to match what routing thinks of an address,
1069	  eg. UNICAST, LOCAL, BROADCAST, ...
1070
1071	  If you want to compile it as a module, say M here and read
1072	  <file:Documentation/kbuild/modules.txt>.  If unsure, say `N'.
1073
1074config NETFILTER_XT_MATCH_BPF
1075	tristate '"bpf" match support'
1076	depends on NETFILTER_ADVANCED
1077	help
1078	  BPF matching applies a linux socket filter to each packet and
1079	  accepts those for which the filter returns non-zero.
1080
1081	  To compile it as a module, choose M here.  If unsure, say N.
1082
1083config NETFILTER_XT_MATCH_CGROUP
1084	tristate '"control group" match support'
1085	depends on NETFILTER_ADVANCED
1086	depends on CGROUPS
1087	select CGROUP_NET_CLASSID
1088	---help---
1089	Socket/process control group matching allows you to match locally
1090	generated packets based on which net_cls control group processes
1091	belong to.
1092
1093config NETFILTER_XT_MATCH_CLUSTER
1094	tristate '"cluster" match support'
1095	depends on NF_CONNTRACK
1096	depends on NETFILTER_ADVANCED
1097	---help---
1098	  This option allows you to build work-load-sharing clusters of
1099	  network servers/stateful firewalls without having a dedicated
1100	  load-balancing router/server/switch. Basically, this match returns
1101	  true when the packet must be handled by this cluster node. Thus,
1102	  all nodes see all packets and this match decides which node handles
1103	  what packets. The work-load sharing algorithm is based on source
1104	  address hashing.
1105
1106	  If you say Y or M here, try `iptables -m cluster --help` for
1107	  more information.
1108
1109config NETFILTER_XT_MATCH_COMMENT
1110	tristate  '"comment" match support'
1111	depends on NETFILTER_ADVANCED
1112	help
1113	  This option adds a `comment' dummy-match, which allows you to put
1114	  comments in your iptables ruleset.
1115
1116	  If you want to compile it as a module, say M here and read
1117	  <file:Documentation/kbuild/modules.txt>.  If unsure, say `N'.
1118
1119config NETFILTER_XT_MATCH_CONNBYTES
1120	tristate  '"connbytes" per-connection counter match support'
1121	depends on NF_CONNTRACK
1122	depends on NETFILTER_ADVANCED
1123	help
1124	  This option adds a `connbytes' match, which allows you to match the
1125	  number of bytes and/or packets for each direction within a connection.
1126
1127	  If you want to compile it as a module, say M here and read
1128	  <file:Documentation/kbuild/modules.txt>.  If unsure, say `N'.
1129
1130config NETFILTER_XT_MATCH_CONNLABEL
1131	tristate '"connlabel" match support'
1132	select NF_CONNTRACK_LABELS
1133	depends on NF_CONNTRACK
1134	depends on NETFILTER_ADVANCED
1135	---help---
1136	  This match allows you to test and assign userspace-defined labels names
1137	  to a connection.  The kernel only stores bit values - mapping
1138	  names to bits is done by userspace.
1139
1140	  Unlike connmark, more than 32 flag bits may be assigned to a
1141	  connection simultaneously.
1142
1143config NETFILTER_XT_MATCH_CONNLIMIT
1144	tristate '"connlimit" match support'
1145	depends on NF_CONNTRACK
1146	depends on NETFILTER_ADVANCED
1147	select NETFILTER_CONNCOUNT
1148	---help---
1149	  This match allows you to match against the number of parallel
1150	  connections to a server per client IP address (or address block).
1151
1152config NETFILTER_XT_MATCH_CONNMARK
1153	tristate  '"connmark" connection mark match support'
1154	depends on NF_CONNTRACK
1155	depends on NETFILTER_ADVANCED
1156	select NETFILTER_XT_CONNMARK
1157	---help---
1158	This is a backwards-compat option for the user's convenience
1159	(e.g. when running oldconfig). It selects
1160	CONFIG_NETFILTER_XT_CONNMARK (combined connmark/CONNMARK module).
1161
1162config NETFILTER_XT_MATCH_CONNTRACK
1163	tristate '"conntrack" connection tracking match support'
1164	depends on NF_CONNTRACK
1165	default m if NETFILTER_ADVANCED=n
1166	help
1167	  This is a general conntrack match module, a superset of the state match.
1168
1169	  It allows matching on additional conntrack information, which is
1170	  useful in complex configurations, such as NAT gateways with multiple
1171	  internet links or tunnels.
1172
1173	  To compile it as a module, choose M here.  If unsure, say N.
1174
1175config NETFILTER_XT_MATCH_CPU
1176	tristate '"cpu" match support'
1177	depends on NETFILTER_ADVANCED
1178	help
1179	  CPU matching allows you to match packets based on the CPU
1180	  currently handling the packet.
1181
1182	  To compile it as a module, choose M here.  If unsure, say N.
1183
1184config NETFILTER_XT_MATCH_DCCP
1185	tristate '"dccp" protocol match support'
1186	depends on NETFILTER_ADVANCED
1187	default IP_DCCP
1188	help
1189	  With this option enabled, you will be able to use the iptables
1190	  `dccp' match in order to match on DCCP source/destination ports
1191	  and DCCP flags.
1192
1193	  If you want to compile it as a module, say M here and read
1194	  <file:Documentation/kbuild/modules.txt>.  If unsure, say `N'.
1195
1196config NETFILTER_XT_MATCH_DEVGROUP
1197	tristate '"devgroup" match support'
1198	depends on NETFILTER_ADVANCED
1199	help
1200	  This options adds a `devgroup' match, which allows to match on the
1201	  device group a network device is assigned to.
1202
1203	  To compile it as a module, choose M here.  If unsure, say N.
1204
1205config NETFILTER_XT_MATCH_DSCP
1206	tristate '"dscp" and "tos" match support'
1207	depends on NETFILTER_ADVANCED
1208	help
1209	  This option adds a `DSCP' match, which allows you to match against
1210	  the IPv4/IPv6 header DSCP field (differentiated services codepoint).
1211
1212	  The DSCP field can have any value between 0x0 and 0x3f inclusive.
1213
1214	  It will also add a "tos" match, which allows you to match packets
1215	  based on the Type Of Service fields of the IPv4 packet (which share
1216	  the same bits as DSCP).
1217
1218	  To compile it as a module, choose M here.  If unsure, say N.
1219
1220config NETFILTER_XT_MATCH_ECN
1221	tristate '"ecn" match support'
1222	depends on NETFILTER_ADVANCED
1223	---help---
1224	This option adds an "ECN" match, which allows you to match against
1225	the IPv4 and TCP header ECN fields.
1226
1227	To compile it as a module, choose M here. If unsure, say N.
1228
1229config NETFILTER_XT_MATCH_ESP
1230	tristate '"esp" match support'
1231	depends on NETFILTER_ADVANCED
1232	help
1233	  This match extension allows you to match a range of SPIs
1234	  inside ESP header of IPSec packets.
1235
1236	  To compile it as a module, choose M here.  If unsure, say N.
1237
1238config NETFILTER_XT_MATCH_HASHLIMIT
1239	tristate '"hashlimit" match support'
1240	depends on IP6_NF_IPTABLES || IP6_NF_IPTABLES=n
1241	depends on NETFILTER_ADVANCED
1242	help
1243	  This option adds a `hashlimit' match.
1244
1245	  As opposed to `limit', this match dynamically creates a hash table
1246	  of limit buckets, based on your selection of source/destination
1247	  addresses and/or ports.
1248
1249	  It enables you to express policies like `10kpps for any given
1250	  destination address' or `500pps from any given source address'
1251	  with a single rule.
1252
1253config NETFILTER_XT_MATCH_HELPER
1254	tristate '"helper" match support'
1255	depends on NF_CONNTRACK
1256	depends on NETFILTER_ADVANCED
1257	help
1258	  Helper matching allows you to match packets in dynamic connections
1259	  tracked by a conntrack-helper, ie. ip_conntrack_ftp
1260
1261	  To compile it as a module, choose M here.  If unsure, say Y.
1262
1263config NETFILTER_XT_MATCH_HL
1264	tristate '"hl" hoplimit/TTL match support'
1265	depends on NETFILTER_ADVANCED
1266	---help---
1267	HL matching allows you to match packets based on the hoplimit
1268	in the IPv6 header, or the time-to-live field in the IPv4
1269	header of the packet.
1270
1271config NETFILTER_XT_MATCH_IPCOMP
1272	tristate '"ipcomp" match support'
1273	depends on NETFILTER_ADVANCED
1274	help
1275	  This match extension allows you to match a range of CPIs(16 bits)
1276	  inside IPComp header of IPSec packets.
1277
1278	  To compile it as a module, choose M here.  If unsure, say N.
1279
1280config NETFILTER_XT_MATCH_IPRANGE
1281	tristate '"iprange" address range match support'
1282	depends on NETFILTER_ADVANCED
1283	---help---
1284	This option adds a "iprange" match, which allows you to match based on
1285	an IP address range. (Normal iptables only matches on single addresses
1286	with an optional mask.)
1287
1288	If unsure, say M.
1289
1290config NETFILTER_XT_MATCH_IPVS
1291	tristate '"ipvs" match support'
1292	depends on IP_VS
1293	depends on NETFILTER_ADVANCED
1294	depends on NF_CONNTRACK
1295	help
1296	  This option allows you to match against IPVS properties of a packet.
1297
1298	  If unsure, say N.
1299
1300config NETFILTER_XT_MATCH_L2TP
1301	tristate '"l2tp" match support'
1302	depends on NETFILTER_ADVANCED
1303	default L2TP
1304	---help---
1305	This option adds an "L2TP" match, which allows you to match against
1306	L2TP protocol header fields.
1307
1308	To compile it as a module, choose M here. If unsure, say N.
1309
1310config NETFILTER_XT_MATCH_LENGTH
1311	tristate '"length" match support'
1312	depends on NETFILTER_ADVANCED
1313	help
1314	  This option allows you to match the length of a packet against a
1315	  specific value or range of values.
1316
1317	  To compile it as a module, choose M here.  If unsure, say N.
1318
1319config NETFILTER_XT_MATCH_LIMIT
1320	tristate '"limit" match support'
1321	depends on NETFILTER_ADVANCED
1322	help
1323	  limit matching allows you to control the rate at which a rule can be
1324	  matched: mainly useful in combination with the LOG target ("LOG
1325	  target support", below) and to avoid some Denial of Service attacks.
1326
1327	  To compile it as a module, choose M here.  If unsure, say N.
1328
1329config NETFILTER_XT_MATCH_MAC
1330	tristate '"mac" address match support'
1331	depends on NETFILTER_ADVANCED
1332	help
1333	  MAC matching allows you to match packets based on the source
1334	  Ethernet address of the packet.
1335
1336	  To compile it as a module, choose M here.  If unsure, say N.
1337
1338config NETFILTER_XT_MATCH_MARK
1339	tristate '"mark" match support'
1340	depends on NETFILTER_ADVANCED
1341	select NETFILTER_XT_MARK
1342	---help---
1343	This is a backwards-compat option for the user's convenience
1344	(e.g. when running oldconfig). It selects
1345	CONFIG_NETFILTER_XT_MARK (combined mark/MARK module).
1346
1347config NETFILTER_XT_MATCH_MULTIPORT
1348	tristate '"multiport" Multiple port match support'
1349	depends on NETFILTER_ADVANCED
1350	help
1351	  Multiport matching allows you to match TCP or UDP packets based on
1352	  a series of source or destination ports: normally a rule can only
1353	  match a single range of ports.
1354
1355	  To compile it as a module, choose M here.  If unsure, say N.
1356
1357config NETFILTER_XT_MATCH_NFACCT
1358	tristate '"nfacct" match support'
1359	depends on NETFILTER_ADVANCED
1360	select NETFILTER_NETLINK_ACCT
1361	help
1362	  This option allows you to use the extended accounting through
1363	  nfnetlink_acct.
1364
1365	  To compile it as a module, choose M here.  If unsure, say N.
1366
1367config NETFILTER_XT_MATCH_OSF
1368	tristate '"osf" Passive OS fingerprint match'
1369	depends on NETFILTER_ADVANCED && NETFILTER_NETLINK
1370	select NF_OSF
1371	help
1372	  This option selects the Passive OS Fingerprinting match module
1373	  that allows to passively match the remote operating system by
1374	  analyzing incoming TCP SYN packets.
1375
1376	  Rules and loading software can be downloaded from
1377	  http://www.ioremap.net/projects/osf
1378
1379	  To compile it as a module, choose M here.  If unsure, say N.
1380
1381config NETFILTER_XT_MATCH_OWNER
1382	tristate '"owner" match support'
1383	depends on NETFILTER_ADVANCED
1384	---help---
1385	Socket owner matching allows you to match locally-generated packets
1386	based on who created the socket: the user or group. It is also
1387	possible to check whether a socket actually exists.
1388
1389config NETFILTER_XT_MATCH_POLICY
1390	tristate 'IPsec "policy" match support'
1391	depends on XFRM
1392	default m if NETFILTER_ADVANCED=n
1393	help
1394	  Policy matching allows you to match packets based on the
1395	  IPsec policy that was used during decapsulation/will
1396	  be used during encapsulation.
1397
1398	  To compile it as a module, choose M here.  If unsure, say N.
1399
1400config NETFILTER_XT_MATCH_PHYSDEV
1401	tristate '"physdev" match support'
1402	depends on BRIDGE && BRIDGE_NETFILTER
1403	depends on NETFILTER_ADVANCED
1404	help
1405	  Physdev packet matching matches against the physical bridge ports
1406	  the IP packet arrived on or will leave by.
1407
1408	  To compile it as a module, choose M here.  If unsure, say N.
1409
1410config NETFILTER_XT_MATCH_PKTTYPE
1411	tristate '"pkttype" packet type match support'
1412	depends on NETFILTER_ADVANCED
1413	help
1414	  Packet type matching allows you to match a packet by
1415	  its "class", eg. BROADCAST, MULTICAST, ...
1416
1417	  Typical usage:
1418	  iptables -A INPUT -m pkttype --pkt-type broadcast -j LOG
1419
1420	  To compile it as a module, choose M here.  If unsure, say N.
1421
1422config NETFILTER_XT_MATCH_QUOTA
1423	tristate '"quota" match support'
1424	depends on NETFILTER_ADVANCED
1425	help
1426	  This option adds a `quota' match, which allows to match on a
1427	  byte counter.
1428
1429	  If you want to compile it as a module, say M here and read
1430	  <file:Documentation/kbuild/modules.txt>.  If unsure, say `N'.
1431
1432config NETFILTER_XT_MATCH_RATEEST
1433	tristate '"rateest" match support'
1434	depends on NETFILTER_ADVANCED
1435	select NETFILTER_XT_TARGET_RATEEST
1436	help
1437	  This option adds a `rateest' match, which allows to match on the
1438	  rate estimated by the RATEEST target.
1439
1440	  To compile it as a module, choose M here.  If unsure, say N.
1441
1442config NETFILTER_XT_MATCH_REALM
1443	tristate  '"realm" match support'
1444	depends on NETFILTER_ADVANCED
1445	select IP_ROUTE_CLASSID
1446	help
1447	  This option adds a `realm' match, which allows you to use the realm
1448	  key from the routing subsystem inside iptables.
1449
1450	  This match pretty much resembles the CONFIG_NET_CLS_ROUTE4 option
1451	  in tc world.
1452
1453	  If you want to compile it as a module, say M here and read
1454	  <file:Documentation/kbuild/modules.txt>.  If unsure, say `N'.
1455
1456config NETFILTER_XT_MATCH_RECENT
1457	tristate '"recent" match support'
1458	depends on NETFILTER_ADVANCED
1459	---help---
1460	This match is used for creating one or many lists of recently
1461	used addresses and then matching against that/those list(s).
1462
1463	Short options are available by using 'iptables -m recent -h'
1464	Official Website: <http://snowman.net/projects/ipt_recent/>
1465
1466config NETFILTER_XT_MATCH_SCTP
1467	tristate  '"sctp" protocol match support'
1468	depends on NETFILTER_ADVANCED
1469	default IP_SCTP
1470	help
1471	  With this option enabled, you will be able to use the
1472	  `sctp' match in order to match on SCTP source/destination ports
1473	  and SCTP chunk types.
1474
1475	  If you want to compile it as a module, say M here and read
1476	  <file:Documentation/kbuild/modules.txt>.  If unsure, say `N'.
1477
1478config NETFILTER_XT_MATCH_SOCKET
1479	tristate '"socket" match support'
1480	depends on NETFILTER_XTABLES
1481	depends on NETFILTER_ADVANCED
1482	depends on IPV6 || IPV6=n
1483	depends on IP6_NF_IPTABLES || IP6_NF_IPTABLES=n
1484	depends on NF_SOCKET_IPV4
1485	depends on NF_SOCKET_IPV6
1486	select NF_DEFRAG_IPV4
1487	select NF_DEFRAG_IPV6 if IP6_NF_IPTABLES != n
1488	help
1489	  This option adds a `socket' match, which can be used to match
1490	  packets for which a TCP or UDP socket lookup finds a valid socket.
1491	  It can be used in combination with the MARK target and policy
1492	  routing to implement full featured non-locally bound sockets.
1493
1494	  To compile it as a module, choose M here.  If unsure, say N.
1495
1496config NETFILTER_XT_MATCH_STATE
1497	tristate '"state" match support'
1498	depends on NF_CONNTRACK
1499	default m if NETFILTER_ADVANCED=n
1500	help
1501	  Connection state matching allows you to match packets based on their
1502	  relationship to a tracked connection (ie. previous packets).  This
1503	  is a powerful tool for packet classification.
1504
1505	  To compile it as a module, choose M here.  If unsure, say N.
1506
1507config NETFILTER_XT_MATCH_STATISTIC
1508	tristate '"statistic" match support'
1509	depends on NETFILTER_ADVANCED
1510	help
1511	  This option adds a `statistic' match, which allows you to match
1512	  on packets periodically or randomly with a given percentage.
1513
1514	  To compile it as a module, choose M here.  If unsure, say N.
1515
1516config NETFILTER_XT_MATCH_STRING
1517	tristate  '"string" match support'
1518	depends on NETFILTER_ADVANCED
1519	select TEXTSEARCH
1520	select TEXTSEARCH_KMP
1521	select TEXTSEARCH_BM
1522	select TEXTSEARCH_FSM
1523	help
1524	  This option adds a `string' match, which allows you to look for
1525	  pattern matchings in packets.
1526
1527	  To compile it as a module, choose M here.  If unsure, say N.
1528
1529config NETFILTER_XT_MATCH_TCPMSS
1530	tristate '"tcpmss" match support'
1531	depends on NETFILTER_ADVANCED
1532	help
1533	  This option adds a `tcpmss' match, which allows you to examine the
1534	  MSS value of TCP SYN packets, which control the maximum packet size
1535	  for that connection.
1536
1537	  To compile it as a module, choose M here.  If unsure, say N.
1538
1539config NETFILTER_XT_MATCH_TIME
1540	tristate '"time" match support'
1541	depends on NETFILTER_ADVANCED
1542	---help---
1543	  This option adds a "time" match, which allows you to match based on
1544	  the packet arrival time (at the machine which netfilter is running)
1545	  on) or departure time/date (for locally generated packets).
1546
1547	  If you say Y here, try `iptables -m time --help` for
1548	  more information.
1549
1550	  If you want to compile it as a module, say M here.
1551	  If unsure, say N.
1552
1553config NETFILTER_XT_MATCH_U32
1554	tristate '"u32" match support'
1555	depends on NETFILTER_ADVANCED
1556	---help---
1557	  u32 allows you to extract quantities of up to 4 bytes from a packet,
1558	  AND them with specified masks, shift them by specified amounts and
1559	  test whether the results are in any of a set of specified ranges.
1560	  The specification of what to extract is general enough to skip over
1561	  headers with lengths stored in the packet, as in IP or TCP header
1562	  lengths.
1563
1564	  Details and examples are in the kernel module source.
1565
1566endif # NETFILTER_XTABLES
1567
1568endmenu
1569
1570source "net/netfilter/ipset/Kconfig"
1571
1572source "net/netfilter/ipvs/Kconfig"
1573