This commit was manufactured by cvs2svn to create tag
[linux-2.6.git] / net / ipv4 / netfilter / Kconfig
index b58141e..5ef8dae 100644 (file)
@@ -5,6 +5,7 @@
 menu "IP: Netfilter Configuration"
        depends on INET && NETFILTER
 
+# connection tracking, helpers and protocols
 config IP_NF_CONNTRACK
        tristate "Connection tracking (required for masq/NAT)"
        ---help---
@@ -19,6 +20,36 @@ config IP_NF_CONNTRACK
 
          To compile it as a module, choose M here.  If unsure, say N.
 
+config IP_NF_CT_ACCT
+       bool "Connection tracking flow accounting"
+       depends on IP_NF_CONNTRACK
+       help
+         If this option is enabled, the connection tracking code will
+         keep per-flow packet and byte counters.
+
+         Those counters can be used for flow-based accounting or the
+         `connbytes' match.
+
+         If unsure, say `N'.
+
+config IP_NF_CONNTRACK_MARK
+       bool  'Connection mark tracking support'
+       help
+         This option enables support for connection marks, used by the
+         `CONNMARK' target and `connmark' match. Similar to the mark value
+         of packets, but this mark value is kept in the conntrack session
+         instead of the individual packets.
+       
+config IP_NF_CT_PROTO_SCTP
+       tristate  'SCTP protocol connection tracking support (EXPERIMENTAL)'
+       depends on IP_NF_CONNTRACK && EXPERIMENTAL
+       help
+         With this option enabled, the connection tracking code will
+         be able to do state tracking on SCTP connections.
+
+         If you want to compile it as a module, say M here and read
+         <file:Documentation/modules.txt>.  If unsure, say `N'.
+
 config IP_NF_FTP
        tristate "FTP protocol support"
        depends on IP_NF_CONNTRACK
@@ -86,7 +117,7 @@ config IP_NF_IPTABLES
 
          To compile it as a module, choose M here.  If unsure, say N.
 
-# The simple matches.
+# The matches.
 config IP_NF_MATCH_LIMIT
        tristate "limit match support"
        depends on IP_NF_IPTABLES
@@ -274,7 +305,77 @@ config IP_NF_MATCH_PHYSDEV
 
          To compile it as a module, choose M here.  If unsure, say N.
 
-# The targets
+config IP_NF_MATCH_ADDRTYPE
+       tristate  'address type match support'
+       depends on IP_NF_IPTABLES
+       help
+         This option allows you to match what routing thinks of an address,
+         eg. UNICAST, LOCAL, BROADCAST, ...
+       
+         If you want to compile it as a module, say M here and read
+         <file:Documentation/modules.txt>.  If unsure, say `N'.
+
+config IP_NF_MATCH_REALM
+       tristate  'realm match support'
+       depends on IP_NF_IPTABLES
+       select NET_CLS_ROUTE
+       help
+         This option adds a `realm' match, which allows you to use the realm
+         key from the routing subsystem inside iptables.
+       
+         This match pretty much resembles the CONFIG_NET_CLS_ROUTE4 option 
+         in tc world.
+       
+         If you want to compile it as a module, say M here and read
+         <file:Documentation/modules.txt>.  If unsure, say `N'.
+
+config IP_NF_MATCH_SCTP
+       tristate  'SCTP protocol match support'
+       depends on IP_NF_IPTABLES
+       help
+         With this option enabled, you will be able to use the iptables
+         `sctp' match in order to match on SCTP source/destination ports
+         and SCTP chunk types.
+
+         If you want to compile it as a module, say M here and read
+         <file:Documentation/modules.txt>.  If unsure, say `N'.
+
+config IP_NF_MATCH_COMMENT
+       tristate  'comment match support'
+       depends on IP_NF_IPTABLES
+       help
+         This option adds a `comment' dummy-match, which allows you to put
+         comments in your iptables ruleset.
+
+         If you want to compile it as a module, say M here and read
+         <file:Documentation/modules.txt>.  If unsure, say `N'.
+
+config IP_NF_MATCH_CONNMARK
+       tristate  'Connection mark match support'
+       depends on IP_NF_CONNTRACK_MARK && IP_NF_IPTABLES
+       help
+         This option adds a `connmark' match, which allows you to match the
+         connection mark value previously set for the session by `CONNMARK'. 
+       
+         If you want to compile it as a module, say M here and read
+         <file:Documentation/modules.txt>.  The module will be called
+         ipt_connmark.o.  If unsure, say `N'.
+
+config IP_NF_MATCH_HASHLIMIT
+       tristate  'hashlimit match support'
+       depends on IP_NF_IPTABLES
+       help
+         This option adds a new iptables `hashlimit' match.  
+
+         As opposed to `limit', this match dynamically crates a hash table
+         of limit buckets, based on your selection of source/destination
+         ip addresses and/or ports.
+
+         It enables you to express policies like `10kpps for any given
+         destination IP' or `500pps from any given source IP'  with a single
+         IPtables rule.
+
+# `filter', generic and specific targets
 config IP_NF_FILTER
        tristate "Packet filtering"
        depends on IP_NF_IPTABLES
@@ -295,6 +396,56 @@ config IP_NF_TARGET_REJECT
 
          To compile it as a module, choose M here.  If unsure, say N.
 
+config IP_NF_TARGET_LOG
+       tristate "LOG target support"
+       depends on IP_NF_IPTABLES
+       help
+         This option adds a `LOG' target, which allows you to create rules in
+         any iptables table which records the packet header to the syslog.
+
+         To compile it as a module, choose M here.  If unsure, say N.
+
+config IP_NF_TARGET_ULOG
+       tristate "ULOG target support"
+       depends on IP_NF_IPTABLES
+       ---help---
+         This option adds a `ULOG' target, which allows you to create rules in
+         any iptables table. The packet is passed to a userspace logging
+         daemon using netlink multicast sockets; unlike the LOG target
+         which can only be viewed through syslog.
+
+         The apropriate userspace logging daemon (ulogd) may be obtained from
+         <http://www.gnumonks.org/projects/ulogd/>
+
+         To compile it as a module, choose M here.  If unsure, say N.
+
+config IP_NF_TARGET_TCPMSS
+       tristate "TCPMSS target support"
+       depends on IP_NF_IPTABLES
+       ---help---
+         This option adds a `TCPMSS' target, which allows you to alter the
+         MSS value of TCP SYN packets, to control the maximum size for that
+         connection (usually limiting it to your outgoing interface's MTU
+         minus 40).
+
+         This is used to overcome criminally braindead ISPs or servers which
+         block ICMP Fragmentation Needed packets.  The symptoms of this
+         problem are that everything works fine from your Linux
+         firewall/router, but machines behind it can never exchange large
+         packets:
+               1) Web browsers connect, then hang with no data received.
+               2) Small mail works fine, but large emails hang.
+               3) ssh works fine, but scp hangs after initial handshaking.
+
+         Workaround: activate this option and add a rule to your firewall
+         configuration like:
+
+         iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN \
+                        -j TCPMSS --clamp-mss-to-pmtu
+
+         To compile it as a module, choose M here.  If unsure, say N.
+
+# NAT + specific targets
 config IP_NF_NAT
        tristate "Full NAT"
        depends on IP_NF_IPTABLES && IP_NF_CONNTRACK
@@ -307,7 +458,7 @@ config IP_NF_NAT
 
 config IP_NF_NAT_NEEDED
        bool
-       depends on IP_NF_CONNTRACK!=y && IP_NF_IPTABLES!=y && (IP_NF_COMPAT_IPCHAINS!=y && IP_NF_COMPAT_IPFWADM || IP_NF_COMPAT_IPCHAINS) || IP_NF_IPTABLES && IP_NF_CONNTRACK && IP_NF_NAT
+       depends on IP_NF_NAT != n
        default y
 
 config IP_NF_TARGET_MASQUERADE
@@ -353,20 +504,6 @@ config IP_NF_TARGET_SAME
 
          To compile it as a module, choose M here.  If unsure, say N.
 
-config IP_NF_NAT_LOCAL
-       bool "NAT of local connections (READ HELP)"
-       depends on IP_NF_NAT
-       help
-         This option enables support for NAT of locally originated connections. 
-         Enable this if you need to use destination NAT on connections
-         originating from local processes on the nat box itself.
-
-         Please note that you will need a recent version (>= 1.2.6a)
-         of the iptables userspace program in order to use this feature.
-         See <http://www.iptables.org/> for download instructions.
-
-         If unsure, say 'N'.
-
 config IP_NF_NAT_SNMP_BASIC
        tristate "Basic SNMP-ALG support (EXPERIMENTAL)"
        depends on EXPERIMENTAL && IP_NF_NAT
@@ -408,6 +545,7 @@ config IP_NF_NAT_AMANDA
        default IP_NF_NAT if IP_NF_AMANDA=y
        default m if IP_NF_AMANDA=m
 
+# mangle + specific targets
 config IP_NF_MANGLE
        tristate "Packet mangling"
        depends on IP_NF_IPTABLES
@@ -478,55 +616,55 @@ config IP_NF_TARGET_CLASSIFY
 
          To compile it as a module, choose M here.  If unsure, say N.
 
-config IP_NF_TARGET_LOG
-       tristate "LOG target support"
-       depends on IP_NF_IPTABLES
+config IP_NF_TARGET_CONNMARK
+       tristate  'CONNMARK target support'
+       depends on IP_NF_CONNTRACK_MARK && IP_NF_MANGLE
        help
-         This option adds a `LOG' target, which allows you to create rules in
-         any iptables table which records the packet header to the syslog.
-
-         To compile it as a module, choose M here.  If unsure, say N.
-
-config IP_NF_TARGET_ULOG
-       tristate "ULOG target support"
-       depends on IP_NF_IPTABLES
-       ---help---
-         This option adds a `ULOG' target, which allows you to create rules in
-         any iptables table. The packet is passed to a userspace logging
-         daemon using netlink multicast sockets; unlike the LOG target
-         which can only be viewed through syslog.
-
-         The apropriate userspace logging daemon (ulogd) may be obtained from
-         <http://www.gnumonks.org/projects/ulogd/>
+         This option adds a `CONNMARK' target, which allows one to manipulate
+         the connection mark value.  Similar to the MARK target, but
+         affects the connection mark value rather than the packet mark value.
+       
+         If you want to compile it as a module, say M here and read
+         <file:Documentation/modules.txt>.  The module will be called
+         ipt_CONNMARK.o.  If unsure, say `N'.
 
+config IP_NF_TARGET_CLUSTERIP
+       tristate "CLUSTERIP target support (EXPERIMENTAL)"
+       depends on IP_NF_CONNTRACK_MARK && IP_NF_IPTABLES && EXPERIMENTAL
+       help
+         The CLUSTERIP target allows you to build load-balancing clusters of
+         network servers without having a dedicated load-balancing
+         router/server/switch.
+       
          To compile it as a module, choose M here.  If unsure, say N.
 
-config IP_NF_TARGET_TCPMSS
-       tristate "TCPMSS target support"
+# raw + specific targets
+config IP_NF_RAW
+       tristate  'raw table support (required for NOTRACK/TRACE)'
        depends on IP_NF_IPTABLES
-       ---help---
-         This option adds a `TCPMSS' target, which allows you to alter the
-         MSS value of TCP SYN packets, to control the maximum size for that
-         connection (usually limiting it to your outgoing interface's MTU
-         minus 40).
-
-         This is used to overcome criminally braindead ISPs or servers which
-         block ICMP Fragmentation Needed packets.  The symptoms of this
-         problem are that everything works fine from your Linux
-         firewall/router, but machines behind it can never exchange large
-         packets:
-               1) Web browsers connect, then hang with no data received.
-               2) Small mail works fine, but large emails hang.
-               3) ssh works fine, but scp hangs after initial handshaking.
-
-         Workaround: activate this option and add a rule to your firewall
-         configuration like:
+       help
+         This option adds a `raw' table to iptables. This table is the very
+         first in the netfilter framework and hooks in at the PREROUTING
+         and OUTPUT chains.
+       
+         If you want to compile it as a module, say M here and read
+         <file:Documentation/modules.txt>.  If unsure, say `N'.
 
-         iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN \
-                        -j TCPMSS --clamp-mss-to-pmtu
+config IP_NF_TARGET_NOTRACK
+       tristate  'NOTRACK target support'
+       depends on IP_NF_RAW
+       depends on IP_NF_CONNTRACK
+       help
+         The NOTRACK target allows a select rule to specify
+         which packets *not* to enter the conntrack/NAT
+         subsystem with all the consequences (no ICMP error tracking,
+         no protocol helpers for the selected packets).
+       
+         If you want to compile it as a module, say M here and read
+         <file:Documentation/modules.txt>.  If unsure, say `N'.
 
-         To compile it as a module, choose M here.  If unsure, say N.
 
+# ARP tables
 config IP_NF_ARPTABLES
        tristate "ARP tables support"
        help
@@ -628,5 +766,50 @@ config IP_NF_MATCH_REALM
          If you want to compile it as a module, say M here and read
          Documentation/modules.txt.  If unsure, say `N'.
 
+config IP_NF_CT_ACCT
+       bool "Connection tracking flow accounting"
+       depends on IP_NF_CONNTRACK
+
+config IP_NF_CT_PROTO_GRE
+       tristate  ' GRE protocol support'
+       depends on IP_NF_CONNTRACK
+       help
+         This module adds generic support for connection tracking and NAT of the
+         GRE protocol (RFC1701, RFC2784).  Please note that this will only work
+         with GRE connections using the key field of the GRE header.
+       
+         You will need GRE support to enable PPTP support.
+       
+         If you want to compile it as a module, say `M' here and read
+         Documentation/modules.txt.  If unsire, say `N'.
+
+config IP_NF_PPTP
+       tristate  'PPTP protocol support'
+       depends on IP_NF_CT_PROTO_GRE
+       help
+         This module adds support for PPTP (Point to Point Tunnelling Protocol, 
+         RFC2637) conncection tracking and NAT. 
+       
+         If you are running PPTP sessions over a stateful firewall or NAT box,
+         you may want to enable this feature.  
+       
+         Please note that not all PPTP modes of operation are supported yet.
+         For more info, read top of the file net/ipv4/netfilter/ip_conntrack_pptp.c
+       
+         If you want to compile it as a module, say M here and read
+         Documentation/modules.txt.  If unsure, say `N'.
+
+config IP_NF_NAT_PPTP
+       tristate
+       depends on IP_NF_NAT!=n && IP_NF_PPTP!=n
+       default IP_NF_NAT if IP_NF_PPTP=y
+       default m if IP_NF_PPTP=m
+
+config IP_NF_NAT_PROTO_GRE
+       tristate
+       depends on IP_NF_NAT!=n && IP_NF_CT_PROTO_GRE!=n
+       default IP_NF_NAT if IP_NF_CT_PROTO_GRE=y
+       default m if IP_NF_CT_PROTO_GRE=m
+
 endmenu