Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
[safe/jmp/linux-2.6] / net / ipv4 / netfilter / Kconfig
index b11231d..1833bdb 100644 (file)
@@ -5,9 +5,15 @@
 menu "IP: Netfilter Configuration"
        depends on INET && NETFILTER
 
+config NF_DEFRAG_IPV4
+       tristate
+       default n
+
 config NF_CONNTRACK_IPV4
        tristate "IPv4 connection tracking support (required for NAT)"
        depends on NF_CONNTRACK
+       default m if NETFILTER_ADVANCED=n
+       select NF_DEFRAG_IPV4
        ---help---
          Connection tracking keeps a record of what packets have passed
          through your machine, in order to figure out how they are related
@@ -25,13 +31,14 @@ config NF_CONNTRACK_PROC_COMPAT
        default y
        help
          This option enables /proc and sysctl compatibility with the old
-         layer 3 dependant connection tracking. This is needed to keep
+         layer 3 dependent connection tracking. This is needed to keep
          old programs that have not been adapted to the new names working.
 
          If unsure, say Y.
 
 config IP_NF_QUEUE
        tristate "IP Userspace queueing via NETLINK (OBSOLETE)"
+       depends on NETFILTER_ADVANCED
        help
          Netfilter has the ability to queue packets to user space: the
          netlink device can be used to access them using this driver.
@@ -44,6 +51,7 @@ config IP_NF_QUEUE
 
 config IP_NF_IPTABLES
        tristate "IP tables support (required for filtering/masq/NAT)"
+       default m if NETFILTER_ADVANCED=n
        select NETFILTER_XTABLES
        help
          iptables is a general, extensible packet identification framework.
@@ -53,69 +61,50 @@ config IP_NF_IPTABLES
 
          To compile it as a module, choose M here.  If unsure, say N.
 
+if IP_NF_IPTABLES
+
 # The matches.
-config IP_NF_MATCH_IPRANGE
-       tristate '"iprange" match support'
-       depends on IP_NF_IPTABLES
+config IP_NF_MATCH_ADDRTYPE
+       tristate '"addrtype" address type match support'
+       depends on NETFILTER_ADVANCED
        help
-         This option makes possible to match IP addresses against IP address
-         ranges.
+         This option allows you to match what routing thinks of an address,
+         eg. UNICAST, LOCAL, BROADCAST, ...
 
-         To compile it as a module, choose M here.  If unsure, say N.
+         If you want to compile it as a module, say M here and read
+         <file:Documentation/kbuild/modules.txt>.  If unsure, say `N'.
 
-config IP_NF_MATCH_RECENT
-       tristate '"recent" match support'
-       depends on IP_NF_IPTABLES
+config IP_NF_MATCH_AH
+       tristate '"ah" match support'
+       depends on NETFILTER_ADVANCED
        help
-         This match is used for creating one or many lists of recently
-         used addresses and then matching against that/those list(s).
-
-         Short options are available by using 'iptables -m recent -h'
-         Official Website: <http://snowman.net/projects/ipt_recent/>
+         This match extension allows you to match a range of SPIs
+         inside AH header of IPSec packets.
 
          To compile it as a module, choose M here.  If unsure, say N.
 
 config IP_NF_MATCH_ECN
        tristate '"ecn" match support'
-       depends on IP_NF_IPTABLES
+       depends on NETFILTER_ADVANCED
        help
          This option adds a `ECN' match, which allows you to match against
          the IPv4 and TCP header ECN fields.
 
          To compile it as a module, choose M here.  If unsure, say N.
 
-config IP_NF_MATCH_AH
-       tristate '"ah" match support'
-       depends on IP_NF_IPTABLES
-       help
-         This match extension allows you to match a range of SPIs
-         inside AH header of IPSec packets.
-
-         To compile it as a module, choose M here.  If unsure, say N.
-
 config IP_NF_MATCH_TTL
        tristate '"ttl" match support'
-       depends on IP_NF_IPTABLES
-       help
-         This adds CONFIG_IP_NF_MATCH_TTL option, which enabled the user
-         to match packets by their TTL value.
-
-         To compile it as a module, choose M here.  If unsure, say N.
-
-config IP_NF_MATCH_ADDRTYPE
-       tristate '"addrtype" 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/kbuild/modules.txt>.  If unsure, say `N'.
+       depends on NETFILTER_ADVANCED
+       select NETFILTER_XT_MATCH_HL
+       ---help---
+       This is a backwards-compat option for the user's convenience
+       (e.g. when running oldconfig). It selects
+       CONFIG_NETFILTER_XT_MATCH_HL.
 
 # `filter', generic and specific targets
 config IP_NF_FILTER
        tristate "Packet filtering"
-       depends on IP_NF_IPTABLES
+       default m if NETFILTER_ADVANCED=n
        help
          Packet filtering defines a table `filter', which has a series of
          rules for simple packet filtering at local input, forwarding and
@@ -126,6 +115,7 @@ config IP_NF_FILTER
 config IP_NF_TARGET_REJECT
        tristate "REJECT target support"
        depends on IP_NF_FILTER
+       default m if NETFILTER_ADVANCED=n
        help
          The REJECT target allows a filtering rule to specify that an ICMP
          error should be issued in response to an incoming packet, rather
@@ -135,7 +125,7 @@ config IP_NF_TARGET_REJECT
 
 config IP_NF_TARGET_LOG
        tristate "LOG target support"
-       depends on IP_NF_IPTABLES
+       default m if NETFILTER_ADVANCED=n
        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.
@@ -144,7 +134,7 @@ config IP_NF_TARGET_LOG
 
 config IP_NF_TARGET_ULOG
        tristate "ULOG target support"
-       depends on IP_NF_IPTABLES
+       default m if NETFILTER_ADVANCED=n
        ---help---
 
          This option enables the old IPv4-only "ipt_ULOG" implementation
@@ -164,7 +154,8 @@ config IP_NF_TARGET_ULOG
 # NAT + specific targets: nf_conntrack
 config NF_NAT
        tristate "Full NAT"
-       depends on IP_NF_IPTABLES && NF_CONNTRACK_IPV4
+       depends on NF_CONNTRACK_IPV4
+       default m if NETFILTER_ADVANCED=n
        help
          The Full NAT option allows masquerading, port forwarding and other
          forms of full Network Address Port Translation.  It is controlled by
@@ -180,6 +171,7 @@ config NF_NAT_NEEDED
 config IP_NF_TARGET_MASQUERADE
        tristate "MASQUERADE target support"
        depends on NF_NAT
+       default m if NETFILTER_ADVANCED=n
        help
          Masquerading is a special case of NAT: all outgoing connections are
          changed to seem to come from a particular interface's address, and
@@ -189,40 +181,33 @@ config IP_NF_TARGET_MASQUERADE
 
          To compile it as a module, choose M here.  If unsure, say N.
 
-config IP_NF_TARGET_REDIRECT
-       tristate "REDIRECT target support"
-       depends on NF_NAT
-       help
-         REDIRECT is a special case of NAT: all incoming connections are
-         mapped onto the incoming interface's address, causing the packets to
-         come to the local machine instead of passing through.  This is
-         useful for transparent proxies.
-
-         To compile it as a module, choose M here.  If unsure, say N.
-
 config IP_NF_TARGET_NETMAP
        tristate "NETMAP target support"
        depends on NF_NAT
+       depends on NETFILTER_ADVANCED
        help
          NETMAP is an implementation of static 1:1 NAT mapping of network
          addresses. It maps the network address part, while keeping the host
-         address part intact. It is similar to Fast NAT, except that
-         Netfilter's connection tracking doesn't work well with Fast NAT.
+         address part intact.
 
          To compile it as a module, choose M here.  If unsure, say N.
 
-config IP_NF_TARGET_SAME
-       tristate "SAME target support (OBSOLETE)"
+config IP_NF_TARGET_REDIRECT
+       tristate "REDIRECT target support"
        depends on NF_NAT
+       depends on NETFILTER_ADVANCED
        help
-         This option adds a `SAME' target, which works like the standard SNAT
-         target, but attempts to give clients the same IP for all connections.
+         REDIRECT is a special case of NAT: all incoming connections are
+         mapped onto the incoming interface's address, causing the packets to
+         come to the local machine instead of passing through.  This is
+         useful for transparent proxies.
 
          To compile it as a module, choose M here.  If unsure, say N.
 
 config NF_NAT_SNMP_BASIC
-       tristate "Basic SNMP-ALG support (EXPERIMENTAL)"
-       depends on EXPERIMENTAL && NF_NAT
+       tristate "Basic SNMP-ALG support"
+       depends on NF_NAT
+       depends on NETFILTER_ADVANCED
        ---help---
 
          This module implements an Application Layer Gateway (ALG) for
@@ -242,50 +227,66 @@ config NF_NAT_SNMP_BASIC
 #           <expr> '&&' <expr>                   (6)
 #
 # (6) Returns the result of min(/expr/, /expr/).
+config NF_NAT_PROTO_DCCP
+       tristate
+       depends on NF_NAT && NF_CT_PROTO_DCCP
+       default NF_NAT && NF_CT_PROTO_DCCP
+
 config NF_NAT_PROTO_GRE
        tristate
        depends on NF_NAT && NF_CT_PROTO_GRE
 
+config NF_NAT_PROTO_UDPLITE
+       tristate
+       depends on NF_NAT && NF_CT_PROTO_UDPLITE
+       default NF_NAT && NF_CT_PROTO_UDPLITE
+
+config NF_NAT_PROTO_SCTP
+       tristate
+       default NF_NAT && NF_CT_PROTO_SCTP
+       depends on NF_NAT && NF_CT_PROTO_SCTP
+       select LIBCRC32C
+
 config NF_NAT_FTP
        tristate
-       depends on IP_NF_IPTABLES && NF_CONNTRACK && NF_NAT
+       depends on NF_CONNTRACK && NF_NAT
        default NF_NAT && NF_CONNTRACK_FTP
 
 config NF_NAT_IRC
        tristate
-       depends on IP_NF_IPTABLES && NF_CONNTRACK && NF_NAT
+       depends on NF_CONNTRACK && NF_NAT
        default NF_NAT && NF_CONNTRACK_IRC
 
 config NF_NAT_TFTP
        tristate
-       depends on IP_NF_IPTABLES && NF_CONNTRACK && NF_NAT
+       depends on NF_CONNTRACK && NF_NAT
        default NF_NAT && NF_CONNTRACK_TFTP
 
 config NF_NAT_AMANDA
        tristate
-       depends on IP_NF_IPTABLES && NF_CONNTRACK && NF_NAT
+       depends on NF_CONNTRACK && NF_NAT
        default NF_NAT && NF_CONNTRACK_AMANDA
 
 config NF_NAT_PPTP
        tristate
-       depends on IP_NF_IPTABLES && NF_CONNTRACK && NF_NAT
+       depends on NF_CONNTRACK && NF_NAT
        default NF_NAT && NF_CONNTRACK_PPTP
        select NF_NAT_PROTO_GRE
 
 config NF_NAT_H323
        tristate
-       depends on IP_NF_IPTABLES && NF_CONNTRACK && NF_NAT
+       depends on NF_CONNTRACK && NF_NAT
        default NF_NAT && NF_CONNTRACK_H323
 
 config NF_NAT_SIP
        tristate
-       depends on IP_NF_IPTABLES && NF_CONNTRACK && NF_NAT
+       depends on NF_CONNTRACK && NF_NAT
        default NF_NAT && NF_CONNTRACK_SIP
 
 # mangle + specific targets
 config IP_NF_MANGLE
        tristate "Packet mangling"
-       depends on IP_NF_IPTABLES
+       default m if NETFILTER_ADVANCED=n
        help
          This option adds a `mangle' table to iptables: see the man page for
          iptables(8).  This table is used for various packet alterations
@@ -293,9 +294,23 @@ config IP_NF_MANGLE
 
          To compile it as a module, choose M here.  If unsure, say N.
 
+config IP_NF_TARGET_CLUSTERIP
+       tristate "CLUSTERIP target support (EXPERIMENTAL)"
+       depends on IP_NF_MANGLE && EXPERIMENTAL
+       depends on NF_CONNTRACK_IPV4
+       depends on NETFILTER_ADVANCED
+       select NF_CONNTRACK_MARK
+       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_ECN
        tristate "ECN target support"
        depends on IP_NF_MANGLE
+       depends on NETFILTER_ADVANCED
        ---help---
          This option adds a `ECN' target, which can be used in the iptables mangle
          table.  
@@ -308,35 +323,18 @@ config IP_NF_TARGET_ECN
          To compile it as a module, choose M here.  If unsure, say N.
 
 config IP_NF_TARGET_TTL
-       tristate  'TTL target support'
-       depends on IP_NF_MANGLE
-       help
-         This option adds a `TTL' target, which enables the user to modify
-         the TTL value of the IP header.
-
-         While it is safe to decrement/lower the TTL, this target also enables
-         functionality to increment and set the TTL value of the IP header to
-         arbitrary values.  This is EXTREMELY DANGEROUS since you can easily
-         create immortal packets that loop forever on the network.
-
-         To compile it as a module, choose M here.  If unsure, say N.
-
-config IP_NF_TARGET_CLUSTERIP
-       tristate "CLUSTERIP target support (EXPERIMENTAL)"
-       depends on IP_NF_MANGLE && EXPERIMENTAL
-       depends on NF_CONNTRACK_IPV4
-       select NF_CONNTRACK_MARK
-       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.
+       tristate '"TTL" target support'
+       depends on NETFILTER_ADVANCED
+       select NETFILTER_XT_TARGET_HL
+       ---help---
+       This is a backwards-compat option for the user's convenience
+       (e.g. when running oldconfig). It selects
+       CONFIG_NETFILTER_XT_TARGET_HL.
 
 # raw + specific targets
 config IP_NF_RAW
        tristate  'raw table support (required for NOTRACK/TRACE)'
-       depends on IP_NF_IPTABLES
+       depends on NETFILTER_ADVANCED
        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
@@ -345,10 +343,24 @@ config IP_NF_RAW
          If you want to compile it as a module, say M here and read
          <file:Documentation/kbuild/modules.txt>.  If unsure, say `N'.
 
+# security table for MAC policy
+config IP_NF_SECURITY
+       tristate "Security table"
+       depends on SECURITY
+       depends on NETFILTER_ADVANCED
+       help
+         This option adds a `security' table to iptables, for use
+         with Mandatory Access Control (MAC) policy.
+        
+         If unsure, say N.
+
+endif # IP_NF_IPTABLES
+
 # ARP tables
 config IP_NF_ARPTABLES
        tristate "ARP tables support"
        select NETFILTER_XTABLES
+       depends on NETFILTER_ADVANCED
        help
          arptables is a general, extensible packet identification framework.
          The ARP packet filtering and mangling (manipulation)subsystems
@@ -356,9 +368,10 @@ config IP_NF_ARPTABLES
 
          To compile it as a module, choose M here.  If unsure, say N.
 
+if IP_NF_ARPTABLES
+
 config IP_NF_ARPFILTER
        tristate "ARP packet filtering"
-       depends on IP_NF_ARPTABLES
        help
          ARP packet filtering defines a table `filter', which has a series of
          rules for simple ARP packet filtering at local input and
@@ -369,10 +382,11 @@ config IP_NF_ARPFILTER
 
 config IP_NF_ARP_MANGLE
        tristate "ARP payload mangling"
-       depends on IP_NF_ARPTABLES
        help
          Allows altering the ARP packet payload: source and destination
          hardware and network addresses.
 
+endif # IP_NF_ARPTABLES
+
 endmenu