fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git] / net / ipv4 / netfilter / Kconfig
index a43ed1a..47bd3ad 100644 (file)
@@ -6,8 +6,8 @@ menu "IP: Netfilter Configuration"
        depends on INET && NETFILTER
 
 config NF_CONNTRACK_IPV4
-       tristate "IPv4 support for new connection tracking (EXPERIMENTAL)"
-       depends on EXPERIMENTAL && NF_CONNTRACK
+       tristate "IPv4 connection tracking support (required for NAT)"
+       depends on NF_CONNTRACK
        ---help---
          Connection tracking keeps a record of what packets have passed
          through your machine, in order to figure out how they are related
@@ -19,21 +19,18 @@ config NF_CONNTRACK_IPV4
 
          To compile it as a module, choose M here.  If unsure, say N.
 
-# connection tracking, helpers and protocols
-config IP_NF_CONNTRACK
-       tristate "Connection tracking (required for masq/NAT)"
-       ---help---
-         Connection tracking keeps a record of what packets have passed
-         through your machine, in order to figure out how they are related
-         into connections.
-
-         This is required to do Masquerading or other kinds of Network
-         Address Translation (except for Fast NAT).  It can also be used to
-         enhance packet filtering (see `Connection state match support'
-         below).
+config NF_CONNTRACK_PROC_COMPAT
+       bool "proc/sysctl compatibility with old connection tracking"
+       depends on NF_CONNTRACK_IPV4
+       default y
+       help
+         This option enables /proc and sysctl compatibility with the old
+         layer 3 dependant connection tracking. This is needed to keep
+         old programs that have not been adapted to the new names working.
 
-         To compile it as a module, choose M here.  If unsure, say N.
+         If unsure, say Y.
 
+# connection tracking, helpers and protocols
 config IP_NF_CT_ACCT
        bool "Connection tracking flow accounting"
        depends on IP_NF_CONNTRACK
@@ -278,17 +275,6 @@ config IP_NF_MATCH_ECN
 
          To compile it as a module, choose M here.  If unsure, say N.
 
-config IP_NF_MATCH_DSCP
-       tristate "DSCP match support"
-       depends on IP_NF_IPTABLES
-       help
-         This option adds a `DSCP' match, which allows you to match against
-         the IPv4 header DSCP field (DSCP codepoint).
-
-         The DSCP codepoint can have any value between 0x0 and 0x4f.
-
-         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
@@ -326,20 +312,6 @@ config IP_NF_MATCH_ADDRTYPE
          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_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 creates 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"
@@ -384,7 +356,7 @@ config IP_NF_TARGET_ULOG
          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
+         The appropriate 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.
@@ -415,7 +387,7 @@ config IP_NF_TARGET_TCPMSS
 
          To compile it as a module, choose M here.  If unsure, say N.
 
-# NAT + specific targets
+# NAT + specific targets: ip_conntrack
 config IP_NF_NAT
        tristate "Full NAT"
        depends on IP_NF_IPTABLES && IP_NF_CONNTRACK
@@ -426,14 +398,30 @@ config IP_NF_NAT
 
          To compile it as a module, choose M here.  If unsure, say N.
 
+# NAT + specific targets: nf_conntrack
+config NF_NAT
+       tristate "Full NAT"
+       depends on IP_NF_IPTABLES && NF_CONNTRACK_IPV4
+       help
+         The Full NAT option allows masquerading, port forwarding and other
+         forms of full Network Address Port Translation.  It is controlled by
+         the `nat' table in iptables: see the man page for iptables(8).
+
+         To compile it as a module, choose M here.  If unsure, say N.
+
 config IP_NF_NAT_NEEDED
        bool
-       depends on IP_NF_NAT != n
+       depends on IP_NF_NAT
+       default y
+
+config NF_NAT_NEEDED
+       bool
+       depends on NF_NAT
        default y
 
 config IP_NF_TARGET_MASQUERADE
        tristate "MASQUERADE target support"
-       depends on IP_NF_NAT
+       depends on (NF_NAT || IP_NF_NAT)
        help
          Masquerading is a special case of NAT: all outgoing connections are
          changed to seem to come from a particular interface's address, and
@@ -445,7 +433,7 @@ config IP_NF_TARGET_MASQUERADE
 
 config IP_NF_TARGET_REDIRECT
        tristate "REDIRECT target support"
-       depends on IP_NF_NAT
+       depends on (NF_NAT || IP_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
@@ -456,7 +444,7 @@ config IP_NF_TARGET_REDIRECT
 
 config IP_NF_TARGET_NETMAP
        tristate "NETMAP target support"
-       depends on IP_NF_NAT
+       depends on (NF_NAT || IP_NF_NAT)
        help
          NETMAP is an implementation of static 1:1 NAT mapping of network
          addresses. It maps the network address part, while keeping the host
@@ -467,7 +455,7 @@ config IP_NF_TARGET_NETMAP
 
 config IP_NF_TARGET_SAME
        tristate "SAME target support"
-       depends on IP_NF_NAT
+       depends on (NF_NAT || IP_NF_NAT)
        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.
@@ -489,19 +477,52 @@ config IP_NF_NAT_SNMP_BASIC
 
          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
+       ---help---
+
+         This module implements an Application Layer Gateway (ALG) for
+         SNMP payloads.  In conjunction with NAT, it allows a network
+         management system to access multiple private networks with
+         conflicting addresses.  It works by modifying IP addresses
+         inside SNMP payloads to match IP-layer NAT mapping.
+
+         This is the "basic" form of SNMP-ALG, as described in RFC 2962
+
+         To compile it as a module, choose M here.  If unsure, say N.
+
+# If they want FTP, set to $CONFIG_IP_NF_NAT (m or y),
+# or $CONFIG_IP_NF_FTP (m or y), whichever is weaker.
+# From kconfig-language.txt:
+#
+#           <expr> '&&' <expr>                   (6)
+#
+# (6) Returns the result of min(/expr/, /expr/).
+config NF_NAT_PROTO_GRE
+       tristate
+       depends on NF_NAT && NF_CT_PROTO_GRE
+
+config IP_NF_NAT_FTP
+       tristate
+       depends on IP_NF_IPTABLES && IP_NF_CONNTRACK && IP_NF_NAT
+       default IP_NF_NAT && IP_NF_FTP
+
+config NF_NAT_FTP
+       tristate
+       depends on IP_NF_IPTABLES && NF_CONNTRACK && NF_NAT
+       default NF_NAT && NF_CONNTRACK_FTP
+
 config IP_NF_NAT_IRC
        tristate
        depends on IP_NF_IPTABLES!=n && IP_NF_CONNTRACK!=n && IP_NF_NAT!=n
        default IP_NF_NAT if IP_NF_IRC=y
        default m if IP_NF_IRC=m
 
-# If they want FTP, set to $CONFIG_IP_NF_NAT (m or y), 
-# or $CONFIG_IP_NF_FTP (m or y), whichever is weaker.  Argh.
-config IP_NF_NAT_FTP
+config NF_NAT_IRC
        tristate
-       depends on IP_NF_IPTABLES!=n && IP_NF_CONNTRACK!=n && IP_NF_NAT!=n
-       default IP_NF_NAT if IP_NF_FTP=y
-       default m if IP_NF_FTP=m
+       depends on IP_NF_IPTABLES && NF_CONNTRACK && NF_NAT
+       default NF_NAT && NF_CONNTRACK_IRC
 
 config IP_NF_NAT_TFTP
        tristate
@@ -509,30 +530,56 @@ config IP_NF_NAT_TFTP
        default IP_NF_NAT if IP_NF_TFTP=y
        default m if IP_NF_TFTP=m
 
+config NF_NAT_TFTP
+       tristate
+       depends on IP_NF_IPTABLES && NF_CONNTRACK && NF_NAT
+       default NF_NAT && NF_CONNTRACK_TFTP
+
 config IP_NF_NAT_AMANDA
        tristate
        depends on IP_NF_IPTABLES!=n && IP_NF_CONNTRACK!=n && IP_NF_NAT!=n
        default IP_NF_NAT if IP_NF_AMANDA=y
        default m if IP_NF_AMANDA=m
 
+config NF_NAT_AMANDA
+       tristate
+       depends on IP_NF_IPTABLES && NF_CONNTRACK && NF_NAT
+       default NF_NAT && NF_CONNTRACK_AMANDA
+
 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 NF_NAT_PPTP
+       tristate
+       depends on IP_NF_IPTABLES && NF_CONNTRACK && NF_NAT
+       default NF_NAT && NF_CONNTRACK_PPTP
+       select NF_NAT_PROTO_GRE
+
 config IP_NF_NAT_H323
        tristate
        depends on IP_NF_IPTABLES!=n && IP_NF_CONNTRACK!=n && IP_NF_NAT!=n
        default IP_NF_NAT if IP_NF_H323=y
        default m if IP_NF_H323=m
 
+config NF_NAT_H323
+       tristate
+       depends on IP_NF_IPTABLES && NF_CONNTRACK && NF_NAT
+       default NF_NAT && NF_CONNTRACK_H323
+
 config IP_NF_NAT_SIP
        tristate
        depends on IP_NF_IPTABLES!=n && IP_NF_CONNTRACK!=n && IP_NF_NAT!=n
        default IP_NF_NAT if IP_NF_SIP=y
        default m if IP_NF_SIP=m
 
+config NF_NAT_SIP
+       tristate
+       depends on IP_NF_IPTABLES && NF_CONNTRACK && NF_NAT
+       default NF_NAT && NF_CONNTRACK_SIP
+
 # mangle + specific targets
 config IP_NF_MANGLE
        tristate "Packet mangling"
@@ -568,17 +615,6 @@ config IP_NF_TARGET_ECN
 
          To compile it as a module, choose M here.  If unsure, say N.
 
-config IP_NF_TARGET_DSCP
-       tristate "DSCP target support"
-       depends on IP_NF_MANGLE
-       help
-         This option adds a `DSCP' match, which allows you to match against
-         the IPv4 header DSCP field (DSCP codepoint).
-
-         The DSCP codepoint can have any value between 0x0 and 0x4f.
-
-         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
@@ -645,114 +681,5 @@ config IP_NF_ARP_MANGLE
          Allows altering the ARP packet payload: source and destination
          hardware and network addresses.
 
-config IP_NF_SET
-       tristate "IP set support"
-       depends on INET && NETFILTER
-       help
-         This option adds IP set support to the kernel.
-         In order to define and use sets, you need the userspace utility
-         ipset(8).
-
-         To compile it as a module, choose M here.  If unsure, say N.
-
-config IP_NF_SET_MAX
-       int "Maximum number of IP sets"
-       default 256
-       range 2 65534
-       depends on IP_NF_SET
-       help
-         You can define here default value of the maximum number 
-         of IP sets for the kernel.
-
-         The value can be overriden by the 'max_sets' module
-         parameter of the 'ip_set' module.
-
-config IP_NF_SET_HASHSIZE
-       int "Hash size for bindings of IP sets"
-       default 1024
-       depends on IP_NF_SET
-       help
-         You can define here default value of the hash size for
-         bindings of IP sets.
-
-         The value can be overriden by the 'hash_size' module
-         parameter of the 'ip_set' module.
-
-config IP_NF_SET_IPMAP
-       tristate "ipmap set support"
-       depends on IP_NF_SET
-       help
-         This option adds the ipmap set type support.
-
-         To compile it as a module, choose M here.  If unsure, say N.
-
-config IP_NF_SET_MACIPMAP
-       tristate "macipmap set support"
-       depends on IP_NF_SET
-       help
-         This option adds the macipmap set type support.
-
-         To compile it as a module, choose M here.  If unsure, say N.
-
-config IP_NF_SET_PORTMAP
-       tristate "portmap set support"
-       depends on IP_NF_SET
-       help
-         This option adds the portmap set type support.
-
-         To compile it as a module, choose M here.  If unsure, say N.
-
-config IP_NF_SET_IPHASH
-       tristate "iphash set support"
-       depends on IP_NF_SET
-       help
-         This option adds the iphash set type support.
-
-         To compile it as a module, choose M here.  If unsure, say N.
-
-config IP_NF_SET_NETHASH
-       tristate "nethash set support"
-       depends on IP_NF_SET
-       help
-         This option adds the nethash set type support.
-
-         To compile it as a module, choose M here.  If unsure, say N.
-
-config IP_NF_SET_IPPORTHASH
-       tristate "ipporthash set support"
-       depends on IP_NF_SET
-       help
-         This option adds the ipporthash set type support.
-
-         To compile it as a module, choose M here.  If unsure, say N.
-
-config IP_NF_SET_IPTREE
-       tristate "iptree set support"
-       depends on IP_NF_SET
-       help
-         This option adds the iptree set type support.
-
-         To compile it as a module, choose M here.  If unsure, say N.
-
-config IP_NF_MATCH_SET
-       tristate "set match support"
-       depends on IP_NF_SET
-       help
-         Set matching matches against given IP sets.
-         You need the ipset utility to create and set up the sets.
-
-         To compile it as a module, choose M here.  If unsure, say N.
-
-config IP_NF_TARGET_SET
-       tristate "SET target support"
-       depends on IP_NF_SET
-       help
-         The SET target makes possible to add/delete entries
-         in IP sets.
-         You need the ipset utility to create and set up the sets.
-
-         To compile it as a module, choose M here.  If unsure, say N.
-
-
 endmenu