Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nftables
[cascardo/linux.git] / net / netfilter / Kconfig
index c17902c..c3b3b26 100644 (file)
@@ -414,47 +414,104 @@ config NETFILTER_SYNPROXY
 endif # NF_CONNTRACK
 
 config NF_TABLES
-       depends on NETFILTER_NETLINK
+       select NETFILTER_NETLINK
        tristate "Netfilter nf_tables support"
+       help
+         nftables is the new packet classification framework that intends to
+         replace the existing {ip,ip6,arp,eb}_tables infrastructure. It
+         provides a pseudo-state machine with an extensible instruction-set
+         (also known as expressions) that the userspace 'nft' utility
+         (http://www.netfilter.org/projects/nftables) uses to build the
+         rule-set. It also comes with the generic set infrastructure that
+         allows you to construct mappings between matchings and actions
+         for performance lookups.
+
+         To compile it as a module, choose M here.
 
 config NFT_EXTHDR
        depends on NF_TABLES
        tristate "Netfilter nf_tables IPv6 exthdr module"
+       help
+         This option adds the "exthdr" expression that you can use to match
+         IPv6 extension headers.
 
 config NFT_META
        depends on NF_TABLES
        tristate "Netfilter nf_tables meta module"
+       help
+         This option adds the "meta" expression that you can use to match and
+         to set packet metainformation such as the packet mark.
 
 config NFT_CT
        depends on NF_TABLES
        depends on NF_CONNTRACK
        tristate "Netfilter nf_tables conntrack module"
+       help
+         This option adds the "meta" expression that you can use to match
+         connection tracking information such as the flow state.
 
 config NFT_RBTREE
        depends on NF_TABLES
        tristate "Netfilter nf_tables rbtree set module"
+       help
+         This option adds the "rbtree" set type (Red Black tree) that is used
+         to build interval-based sets.
 
 config NFT_HASH
        depends on NF_TABLES
        tristate "Netfilter nf_tables hash set module"
+       help
+         This option adds the "hash" set type that is used to build one-way
+         mappings between matchings and actions.
 
 config NFT_COUNTER
        depends on NF_TABLES
        tristate "Netfilter nf_tables counter module"
+       help
+         This option adds the "counter" expression that you can use to
+         include packet and byte counters in a rule.
 
 config NFT_LOG
        depends on NF_TABLES
        tristate "Netfilter nf_tables log module"
+       help
+         This option adds the "log" expression that you can use to log
+         packets matching some criteria.
 
 config NFT_LIMIT
        depends on NF_TABLES
        tristate "Netfilter nf_tables limit module"
+       help
+         This option adds the "limit" expression that you can use to
+         ratelimit rule matchings.
 
 config NFT_NAT
        depends on NF_TABLES
        depends on NF_CONNTRACK
        depends on NF_NAT
        tristate "Netfilter nf_tables nat module"
+       help
+         This option adds the "nat" expression that you can use to perform
+         typical Network Address Translation (NAT) packet transformations.
+
+config NFT_QUEUE
+       depends on NF_TABLES
+       depends on NETFILTER_XTABLES
+       depends on NETFILTER_NETLINK_QUEUE
+       tristate "Netfilter nf_tables queue module"
+       help
+         This is required if you intend to use the userspace queueing
+         infrastructure (also known as NFQUEUE) from nftables.
+
+config NFT_REJECT
+       depends on NF_TABLES
+       depends on NF_TABLES_IPV6 || !NF_TABLES_IPV6
+       default m if NETFILTER_ADVANCED=n
+       tristate "Netfilter nf_tables reject support"
+       help
+         This option adds the "reject" expression that you can use to
+         explicitly deny and notify via TCP reset/ICMP informational errors
+         unallowed traffic.
 
 config NFT_COMPAT
        depends on NF_TABLES