X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=net%2Fsched%2FKconfig;h=97a42d9eda9ea06c8cd298623c4b1ec6052f6c5f;hb=9bf4aaab3e101692164d49b7ca357651eb691cb6;hp=8931426e0243f51866f7770eca9942802636e81b;hpb=db216c3d5e4c040e557a50f8f5d35d5c415e8c1c;p=linux-2.6.git diff --git a/net/sched/Kconfig b/net/sched/Kconfig index 8931426e0..97a42d9ed 100644 --- a/net/sched/Kconfig +++ b/net/sched/Kconfig @@ -1,6 +1,61 @@ # # Traffic control configuration. # +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. + +config NET_SCH_CLK_CPU + bool "CPU cycle counter" + depends on X86_TSC || X86_64 || 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 + config NET_SCH_CBQ tristate "CBQ packet scheduler" depends on NET_SCHED @@ -49,21 +104,6 @@ config NET_SCH_HFSC To compile this code as a module, choose M here: the module will be called sch_hfsc. -config NET_SCH_CSZ - tristate "CSZ packet scheduler" - depends on NET_SCHED - ---help--- - Say Y here if you want to use the Clark-Shenker-Zhang (CSZ) packet - scheduling algorithm for some of your network devices. At the - moment, this is the only algorithm that can guarantee service for - real-time applications (see the top of - for details and references about the algorithm). - - Note: this scheduler is currently broken. - - To compile this code as a module, choose M here: the - module will be called sch_csz. - #tristate ' H-PFQ packet scheduler' CONFIG_NET_SCH_HPFQ config NET_SCH_ATM tristate "ATM pseudo-scheduler" @@ -164,20 +204,22 @@ config NET_SCH_DSMARK To compile this code as a module, choose M here: the module will be called sch_dsmark. -config NET_SCH_DELAY - tristate "Delay simulator" +config NET_SCH_NETEM + tristate "Network emulator" depends on NET_SCHED help - Say Y if you want to delay packets by a fixed amount of - time. This is often useful to simulate network delay when + Say Y if you want to emulate network delay, loss, and packet + re-ordering. This is often useful to simulate networks when testing applications or protocols. To compile this driver as a module, choose M here: the module - will be called sch_delay. + will be called sch_netem. + + If unsure, say N. config NET_SCH_INGRESS tristate "Ingress Qdisc" - depends on NET_SCHED && NETFILTER + depends on NET_SCHED help If you say Y here, you will be able to police incoming bandwidth and drop packets when this bandwidth exceeds your desired rate. @@ -242,6 +284,7 @@ config NET_CLS_TCINDEX config NET_CLS_ROUTE4 tristate "Routing table based classifier" depends on NET_CLS + select NET_CLS_ROUTE help If you say Y here, you will be able to classify outgoing packets according to the route table entry they matched. If unsure, say Y. @@ -251,8 +294,7 @@ config NET_CLS_ROUTE4 config NET_CLS_ROUTE bool - depends on NET_CLS_ROUTE4 - default y + default n config NET_CLS_FW tristate "Firewall based classifier" @@ -274,6 +316,24 @@ config NET_CLS_U32 To compile this code as a module, choose M here: the module will be called cls_u32. +config CLS_U32_PERF + bool " U32 classifier performance counters" + depends on NET_CLS_U32 + help + gathers stats that could be used to tune u32 classifier performance. + Requires a new iproute2 + You MUST NOT turn this on if you dont have an update iproute2. + +config NET_CLS_IND + bool "classify input device (slows things u32/fw) " + depends on NET_CLS_U32 || NET_CLS_FW + help + This option will be killed eventually when a + metadata action appears because it slows things a little + Available only for u32 and fw classifiers. + Requires a new iproute2 + You MUST NOT turn this on if you dont have an update iproute2. + config NET_CLS_RSVP tristate "Special RSVP classifier" depends on NET_CLS && NET_QOS @@ -303,9 +363,26 @@ config NET_CLS_RSVP6 To compile this code as a module, choose M here: the module will be called cls_rsvp6. +config NET_CLS_ACT + bool ' Packet ACTION ' + depends on EXPERIMENTAL && NET_CLS && NET_QOS + ---help--- + This option requires you have a new iproute2. It enables + tc extensions which can be used with tc classifiers. + Only the u32 and fw classifiers are supported at the moment. + You MUST NOT turn this on if you dont have an update iproute2. + +config NET_ACT_POLICE + tristate ' Policing Actions' + depends on NET_CLS_ACT + ---help--- + If you are using a newer iproute2 select this one, otherwise use one + below to select a policer. + You MUST NOT turn this on if you dont have an update iproute2. + config NET_CLS_POLICE bool "Traffic policing (needed for in/egress)" - depends on NET_CLS && NET_QOS + depends on NET_CLS && NET_QOS && NET_ACT_POLICE!=y && NET_ACT_POLICE!=m help Say Y to support traffic policing (bandwidth limits). Needed for ingress and egress rate limiting.