netfilter: xtables: consistent struct compat_xt_counters definition
[safe/jmp/linux-2.6] / net / sched / Kconfig
index 7f34e7f..21f9c76 100644 (file)
@@ -2,10 +2,9 @@
 # Traffic control configuration.
 # 
 
-menu "QoS and/or fair queueing"
-
-config NET_SCHED
+menuconfig NET_SCHED
        bool "QoS and/or fair queueing"
+       select NET_SCH_FIFO
        ---help---
          When the kernel has several packets to send out over a network
          device, it has to decide which ones to send first, which ones to
@@ -40,69 +39,12 @@ config NET_SCHED
          The available schedulers are listed in the following questions; you
          can say Y to as many as you like. If unsure, say N now.
 
-choice
-       prompt "Packet scheduler clock source"
-       depends on NET_SCHED
-       default NET_SCH_CLK_JIFFIES
-       ---help---
-         Packet schedulers need a monotonic clock that increments at a static
-         rate. The kernel provides several suitable interfaces, each with
-         different properties:
-         
-         - high resolution (us or better)
-         - fast to read (minimal locking, no i/o access)
-         - synchronized on all processors
-         - handles cpu clock frequency changes
-
-         but nothing provides all of the above.
-
-config NET_SCH_CLK_JIFFIES
-       bool "Timer interrupt"
-       ---help---
-         Say Y here if you want to use the timer interrupt (jiffies) as clock
-         source. This clock source is fast, synchronized on all processors and
-         handles cpu clock frequency changes, but its resolution is too low
-         for accurate shaping except at very low speed.
-
-config NET_SCH_CLK_GETTIMEOFDAY
-       bool "gettimeofday"
-       ---help---
-         Say Y here if you want to use gettimeofday as clock source. This clock
-         source has high resolution, is synchronized on all processors and
-         handles cpu clock frequency changes, but it is slow.
-
-         Choose this if you need a high resolution clock source but can't use
-         the CPU's cycle counter.
-
-# don't allow on SMP x86 because they can have unsynchronized TSCs.
-# gettimeofday is a good alternative
-config NET_SCH_CLK_CPU
-       bool "CPU cycle counter"
-       depends on ((X86_TSC || X86_64) && !SMP) || ALPHA || SPARC64 || PPC64 || IA64
-       ---help---
-         Say Y here if you want to use the CPU's cycle counter as clock source.
-         This is a cheap and high resolution clock source, but on some
-         architectures it is not synchronized on all processors and doesn't
-         handle cpu clock frequency changes.
-
-         The useable cycle counters are:
-
-               x86/x86_64      - Timestamp Counter
-               alpha           - Cycle Counter
-               sparc64         - %ticks register
-               ppc64           - Time base
-               ia64            - Interval Time Counter
-
-         Choose this if your CPU's cycle counter is working properly.
-
-endchoice
+if NET_SCHED
 
 comment "Queueing/Scheduling"
-       depends on NET_SCHED
 
 config NET_SCH_CBQ
        tristate "Class Based Queueing (CBQ)"
-       depends on NET_SCHED
        ---help---
          Say Y here if you want to use the Class-Based Queueing (CBQ) packet
          scheduling algorithm. This algorithm classifies the waiting packets
@@ -120,7 +62,6 @@ config NET_SCH_CBQ
 
 config NET_SCH_HTB
        tristate "Hierarchical Token Bucket (HTB)"
-       depends on NET_SCHED
        ---help---
          Say Y here if you want to use the Hierarchical Token Buckets (HTB)
          packet scheduling algorithm. See
@@ -135,7 +76,6 @@ config NET_SCH_HTB
 
 config NET_SCH_HFSC
        tristate "Hierarchical Fair Service Curve (HFSC)"
-       depends on NET_SCHED
        ---help---
          Say Y here if you want to use the Hierarchical Fair Service Curve
          (HFSC) packet scheduling algorithm.
@@ -145,21 +85,20 @@ config NET_SCH_HFSC
 
 config NET_SCH_ATM
        tristate "ATM Virtual Circuits (ATM)"
-       depends on NET_SCHED && ATM
+       depends on ATM
        ---help---
          Say Y here if you want to use the ATM pseudo-scheduler.  This
          provides a framework for invoking classifiers, which in turn
          select classes of this queuing discipline.  Each class maps
          the flow(s) it is handling to a given virtual circuit.
 
-         See the top of <file:net/sched/sch_atm.c>) for more details.
+         See the top of <file:net/sched/sch_atm.c> for more details.
 
          To compile this code as a module, choose M here: the
          module will be called sch_atm.
 
 config NET_SCH_PRIO
        tristate "Multi Band Priority Queueing (PRIO)"
-       depends on NET_SCHED
        ---help---
          Say Y here if you want to use an n-band priority queue packet
          scheduler.
@@ -167,9 +106,17 @@ config NET_SCH_PRIO
          To compile this code as a module, choose M here: the
          module will be called sch_prio.
 
+config NET_SCH_MULTIQ
+       tristate "Hardware Multiqueue-aware Multi Band Queuing (MULTIQ)"
+       ---help---
+         Say Y here if you want to use an n-band queue packet scheduler
+         to support devices that have multiple hardware transmit queues.
+
+         To compile this code as a module, choose M here: the
+         module will be called sch_multiq.
+
 config NET_SCH_RED
        tristate "Random Early Detection (RED)"
-       depends on NET_SCHED
        ---help---
          Say Y here if you want to use the Random Early Detection (RED)
          packet scheduling algorithm.
@@ -181,10 +128,9 @@ config NET_SCH_RED
 
 config NET_SCH_SFQ
        tristate "Stochastic Fairness Queueing (SFQ)"
-       depends on NET_SCHED
        ---help---
          Say Y here if you want to use the Stochastic Fairness Queueing (SFQ)
-         packet scheduling algorithm .
+         packet scheduling algorithm.
 
          See the top of <file:net/sched/sch_sfq.c> for more details.
 
@@ -193,7 +139,6 @@ config NET_SCH_SFQ
 
 config NET_SCH_TEQL
        tristate "True Link Equalizer (TEQL)"
-       depends on NET_SCHED
        ---help---
          Say Y here if you want to use the True Link Equalizer (TLE) packet
          scheduling algorithm. This queueing discipline allows the combination
@@ -206,7 +151,6 @@ config NET_SCH_TEQL
 
 config NET_SCH_TBF
        tristate "Token Bucket Filter (TBF)"
-       depends on NET_SCHED
        ---help---
          Say Y here if you want to use the Token Bucket Filter (TBF) packet
          scheduling algorithm.
@@ -218,7 +162,6 @@ config NET_SCH_TBF
 
 config NET_SCH_GRED
        tristate "Generic Random Early Detection (GRED)"
-       depends on NET_SCHED
        ---help---
          Say Y here if you want to use the Generic Random Early Detection
          (GRED) packet scheduling algorithm for some of your network devices
@@ -230,7 +173,6 @@ config NET_SCH_GRED
 
 config NET_SCH_DSMARK
        tristate "Differentiated Services marker (DSMARK)"
-       depends on NET_SCHED
        ---help---
          Say Y if you want to schedule packets according to the
          Differentiated Services architecture proposed in RFC 2475.
@@ -242,7 +184,6 @@ config NET_SCH_DSMARK
 
 config NET_SCH_NETEM
        tristate "Network emulator (NETEM)"
-       depends on NET_SCHED
        ---help---
          Say Y if you want to emulate network delay, loss, and packet
          re-ordering. This is often useful to simulate networks when
@@ -253,9 +194,20 @@ config NET_SCH_NETEM
 
          If unsure, say N.
 
+config NET_SCH_DRR
+       tristate "Deficit Round Robin scheduler (DRR)"
+       help
+         Say Y here if you want to use the Deficit Round Robin (DRR) packet
+         scheduling algorithm.
+
+         To compile this driver as a module, choose M here: the module
+         will be called sch_drr.
+
+         If unsure, say N.
+
 config NET_SCH_INGRESS
        tristate "Ingress Qdisc"
-       depends on NET_SCHED 
+       depends on NET_CLS_ACT
        ---help---
          Say Y here if you want to use classifiers for incoming packets.
          If unsure, say Y.
@@ -264,14 +216,12 @@ config NET_SCH_INGRESS
          module will be called sch_ingress.
 
 comment "Classification"
-       depends on NET_SCHED
 
 config NET_CLS
        boolean
 
 config NET_CLS_BASIC
        tristate "Elementary classification (BASIC)"
-       depends NET_SCHED
        select NET_CLS
        ---help---
          Say Y here if you want to be able to classify packets using
@@ -282,7 +232,6 @@ config NET_CLS_BASIC
 
 config NET_CLS_TCINDEX
        tristate "Traffic-Control Index (TCINDEX)"
-       depends NET_SCHED
        select NET_CLS
        ---help---
          Say Y here if you want to be able to classify packets based on
@@ -294,7 +243,6 @@ config NET_CLS_TCINDEX
 
 config NET_CLS_ROUTE4
        tristate "Routing decision (ROUTE)"
-       depends NET_SCHED
        select NET_CLS_ROUTE
        select NET_CLS
        ---help---
@@ -306,11 +254,9 @@ config NET_CLS_ROUTE4
 
 config NET_CLS_ROUTE
        bool
-       default n
 
 config NET_CLS_FW
        tristate "Netfilter mark (FW)"
-       depends NET_SCHED
        select NET_CLS
        ---help---
          If you say Y here, you will be able to classify packets
@@ -321,10 +267,9 @@ config NET_CLS_FW
 
 config NET_CLS_U32
        tristate "Universal 32bit comparisons w/ hashing (U32)"
-       depends NET_SCHED
        select NET_CLS
        ---help---
-         Say Y here to be able to classify packetes using a universal
+         Say Y here to be able to classify packets using a universal
          32bit pieces based comparison scheme.
 
          To compile this code as a module, choose M here: the
@@ -339,15 +284,13 @@ config CLS_U32_PERF
 
 config CLS_U32_MARK
        bool "Netfilter marks support"
-       depends on NET_CLS_U32 && NETFILTER
+       depends on NET_CLS_U32
        ---help---
          Say Y here to be able to use netfilter marks as u32 key.
 
 config NET_CLS_RSVP
        tristate "IPv4 Resource Reservation Protocol (RSVP)"
-       depends on NET_SCHED
        select NET_CLS
-       select NET_ESTIMATOR
        ---help---
          The Resource Reservation Protocol (RSVP) permits end systems to
          request a minimum and maximum data flow rate for a connection; this
@@ -361,23 +304,39 @@ config NET_CLS_RSVP
 
 config NET_CLS_RSVP6
        tristate "IPv6 Resource Reservation Protocol (RSVP6)"
-       depends on NET_SCHED
        select NET_CLS
-       select NET_ESTIMATOR
        ---help---
          The Resource Reservation Protocol (RSVP) permits end systems to
          request a minimum and maximum data flow rate for a connection; this
          is important for real time data such as streaming sound or video.
 
          Say Y here if you want to be able to classify outgoing packets based
-         on their RSVP requests and you are using the IPv6.
+         on their RSVP requests and you are using the IPv6 protocol.
 
          To compile this code as a module, choose M here: the
          module will be called cls_rsvp6.
 
+config NET_CLS_FLOW
+       tristate "Flow classifier"
+       select NET_CLS
+       ---help---
+         If you say Y here, you will be able to classify packets based on
+         a configurable combination of packet keys. This is mostly useful
+         in combination with SFQ.
+
+         To compile this code as a module, choose M here: the
+         module will be called cls_flow.
+
+config NET_CLS_CGROUP
+       bool "Control Group Classifier"
+       select NET_CLS
+       depends on CGROUPS
+       ---help---
+         Say Y here if you want to classify packets based on the control
+         cgroup of their process.
+
 config NET_EMATCH
        bool "Extended Matches"
-       depends NET_SCHED
        select NET_CLS
        ---help---
          Say Y here if you want to use extended matches on top of classifiers
@@ -433,7 +392,7 @@ config NET_EMATCH_META
        tristate "Metadata"
        depends on NET_EMATCH
        ---help---
-         Say Y here if you want to be ablt to classify packets based on
+         Say Y here if you want to be able to classify packets based on
          metadata such as load average, netfilter attributes, socket
          attributes and routing decisions.
 
@@ -456,8 +415,6 @@ config NET_EMATCH_TEXT
 
 config NET_CLS_ACT
        bool "Actions"
-       depends on EXPERIMENTAL && NET_SCHED
-       select NET_ESTIMATOR
        ---help---
          Say Y here if you want to use traffic control actions. Actions
          get attached to classifiers and are invoked after a successful
@@ -476,7 +433,7 @@ config NET_ACT_POLICE
          module.
 
          To compile this code as a module, choose M here: the
-         module will be called police.
+         module will be called act_police.
 
 config NET_ACT_GACT
         tristate "Generic actions"
@@ -486,7 +443,7 @@ config NET_ACT_GACT
          accepting packets.
 
          To compile this code as a module, choose M here: the
-         module will be called gact.
+         module will be called act_gact.
 
 config GACT_PROB
         bool "Probability support"
@@ -502,17 +459,27 @@ config NET_ACT_MIRRED
          other devices.
 
          To compile this code as a module, choose M here: the
-         module will be called mirred.
+         module will be called act_mirred.
 
 config NET_ACT_IPT
         tristate "IPtables targets"
         depends on NET_CLS_ACT && NETFILTER && IP_NF_IPTABLES
         ---help---
-         Say Y here to be able to invoke iptables targets after succesful
+         Say Y here to be able to invoke iptables targets after successful
          classification.
 
          To compile this code as a module, choose M here: the
-         module will be called ipt.
+         module will be called act_ipt.
+
+config NET_ACT_NAT
+        tristate "Stateless NAT"
+        depends on NET_CLS_ACT
+        ---help---
+         Say Y here to do stateless NAT on IPv4 packets.  You should use
+         netfilter for NAT unless you know what you are doing.
+
+         To compile this code as a module, choose M here: the
+         module will be called act_nat.
 
 config NET_ACT_PEDIT
         tristate "Packet Editing"
@@ -521,7 +488,7 @@ config NET_ACT_PEDIT
          Say Y here if you want to mangle the content of packets.
 
          To compile this code as a module, choose M here: the
-         module will be called pedit.
+         module will be called act_pedit.
 
 config NET_ACT_SIMP
         tristate "Simple Example (Debug)"
@@ -535,33 +502,28 @@ config NET_ACT_SIMP
          If unsure, say N.
 
          To compile this code as a module, choose M here: the
-         module will be called simple.
+         module will be called act_simple.
 
-config NET_CLS_POLICE
-       bool "Traffic Policing (obsolete)"
-       depends on NET_SCHED && NET_CLS_ACT!=y
-       select NET_ESTIMATOR
-       ---help---
-         Say Y here if you want to do traffic policing, i.e. strict
-         bandwidth limiting. This option is obsoleted by the traffic
-         policer implemented as action, it stays here for compatibility
-         reasons.
+config NET_ACT_SKBEDIT
+        tristate "SKB Editing"
+        depends on NET_CLS_ACT
+        ---help---
+         Say Y here to change skb priority or queue_mapping settings.
+
+         If unsure, say N.
+
+         To compile this code as a module, choose M here: the
+         module will be called act_skbedit.
 
 config NET_CLS_IND
        bool "Incoming device classification"
-       depends on NET_SCHED && (NET_CLS_U32 || NET_CLS_FW)
+       depends on NET_CLS_U32 || NET_CLS_FW
        ---help---
          Say Y here to extend the u32 and fw classifier to support
          classification based on the incoming device. This option is
          likely to disappear in favour of the metadata ematch.
 
-config NET_ESTIMATOR
-       bool "Rate estimator"
-       depends on NET_SCHED
-       ---help---
-         Say Y here to allow using rate estimators to estimate the current
-         rate-of-flow for network devices, queues, etc. This module is
-         automaticaly selected if needed but can be selected manually for
-         statstical purposes.
+endif # NET_SCHED
 
-endmenu
+config NET_SCH_FIFO
+       bool