11da177e4SLinus Torvalds# 21da177e4SLinus Torvalds# Traffic control configuration. 31da177e4SLinus Torvalds# 41da177e4SLinus Torvaldschoice 51da177e4SLinus Torvalds prompt "Packet scheduler clock source" 61da177e4SLinus Torvalds depends on NET_SCHED 71da177e4SLinus Torvalds default NET_SCH_CLK_JIFFIES 81da177e4SLinus Torvalds help 91da177e4SLinus Torvalds Packet schedulers need a monotonic clock that increments at a static 101da177e4SLinus Torvalds rate. The kernel provides several suitable interfaces, each with 111da177e4SLinus Torvalds different properties: 121da177e4SLinus Torvalds 131da177e4SLinus Torvalds - high resolution (us or better) 141da177e4SLinus Torvalds - fast to read (minimal locking, no i/o access) 151da177e4SLinus Torvalds - synchronized on all processors 161da177e4SLinus Torvalds - handles cpu clock frequency changes 171da177e4SLinus Torvalds 181da177e4SLinus Torvalds but nothing provides all of the above. 191da177e4SLinus Torvalds 201da177e4SLinus Torvaldsconfig NET_SCH_CLK_JIFFIES 211da177e4SLinus Torvalds bool "Timer interrupt" 221da177e4SLinus Torvalds help 231da177e4SLinus Torvalds Say Y here if you want to use the timer interrupt (jiffies) as clock 241da177e4SLinus Torvalds source. This clock source is fast, synchronized on all processors and 251da177e4SLinus Torvalds handles cpu clock frequency changes, but its resolution is too low 261da177e4SLinus Torvalds for accurate shaping except at very low speed. 271da177e4SLinus Torvalds 281da177e4SLinus Torvaldsconfig NET_SCH_CLK_GETTIMEOFDAY 291da177e4SLinus Torvalds bool "gettimeofday" 301da177e4SLinus Torvalds help 311da177e4SLinus Torvalds Say Y here if you want to use gettimeofday as clock source. This clock 321da177e4SLinus Torvalds source has high resolution, is synchronized on all processors and 331da177e4SLinus Torvalds handles cpu clock frequency changes, but it is slow. 341da177e4SLinus Torvalds 351da177e4SLinus Torvalds Choose this if you need a high resolution clock source but can't use 361da177e4SLinus Torvalds the CPU's cycle counter. 371da177e4SLinus Torvalds 381da177e4SLinus Torvaldsconfig NET_SCH_CLK_CPU 391da177e4SLinus Torvalds bool "CPU cycle counter" 401da177e4SLinus Torvalds depends on X86_TSC || X86_64 || ALPHA || SPARC64 || PPC64 || IA64 411da177e4SLinus Torvalds help 421da177e4SLinus Torvalds Say Y here if you want to use the CPU's cycle counter as clock source. 431da177e4SLinus Torvalds This is a cheap and high resolution clock source, but on some 441da177e4SLinus Torvalds architectures it is not synchronized on all processors and doesn't 451da177e4SLinus Torvalds handle cpu clock frequency changes. 461da177e4SLinus Torvalds 471da177e4SLinus Torvalds The useable cycle counters are: 481da177e4SLinus Torvalds 491da177e4SLinus Torvalds x86/x86_64 - Timestamp Counter 501da177e4SLinus Torvalds alpha - Cycle Counter 511da177e4SLinus Torvalds sparc64 - %ticks register 521da177e4SLinus Torvalds ppc64 - Time base 531da177e4SLinus Torvalds ia64 - Interval Time Counter 541da177e4SLinus Torvalds 551da177e4SLinus Torvalds Choose this if your CPU's cycle counter is working properly. 561da177e4SLinus Torvalds 571da177e4SLinus Torvaldsendchoice 581da177e4SLinus Torvalds 591da177e4SLinus Torvaldsconfig NET_SCH_CBQ 601da177e4SLinus Torvalds tristate "CBQ packet scheduler" 611da177e4SLinus Torvalds depends on NET_SCHED 621da177e4SLinus Torvalds ---help--- 631da177e4SLinus Torvalds Say Y here if you want to use the Class-Based Queueing (CBQ) packet 641da177e4SLinus Torvalds scheduling algorithm for some of your network devices. This 651da177e4SLinus Torvalds algorithm classifies the waiting packets into a tree-like hierarchy 661da177e4SLinus Torvalds of classes; the leaves of this tree are in turn scheduled by 671da177e4SLinus Torvalds separate algorithms (called "disciplines" in this context). 681da177e4SLinus Torvalds 691da177e4SLinus Torvalds See the top of <file:net/sched/sch_cbq.c> for references about the 701da177e4SLinus Torvalds CBQ algorithm. 711da177e4SLinus Torvalds 721da177e4SLinus Torvalds CBQ is a commonly used scheduler, so if you're unsure, you should 731da177e4SLinus Torvalds say Y here. Then say Y to all the queueing algorithms below that you 741da177e4SLinus Torvalds want to use as CBQ disciplines. Then say Y to "Packet classifier 751da177e4SLinus Torvalds API" and say Y to all the classifiers you want to use; a classifier 761da177e4SLinus Torvalds is a routine that allows you to sort your outgoing traffic into 771da177e4SLinus Torvalds classes based on a certain criterion. 781da177e4SLinus Torvalds 791da177e4SLinus Torvalds To compile this code as a module, choose M here: the 801da177e4SLinus Torvalds module will be called sch_cbq. 811da177e4SLinus Torvalds 821da177e4SLinus Torvaldsconfig NET_SCH_HTB 831da177e4SLinus Torvalds tristate "HTB packet scheduler" 841da177e4SLinus Torvalds depends on NET_SCHED 851da177e4SLinus Torvalds ---help--- 861da177e4SLinus Torvalds Say Y here if you want to use the Hierarchical Token Buckets (HTB) 871da177e4SLinus Torvalds packet scheduling algorithm for some of your network devices. See 881da177e4SLinus Torvalds <http://luxik.cdi.cz/~devik/qos/htb/> for complete manual and 891da177e4SLinus Torvalds in-depth articles. 901da177e4SLinus Torvalds 911da177e4SLinus Torvalds HTB is very similar to the CBQ regarding its goals however is has 921da177e4SLinus Torvalds different properties and different algorithm. 931da177e4SLinus Torvalds 941da177e4SLinus Torvalds To compile this code as a module, choose M here: the 951da177e4SLinus Torvalds module will be called sch_htb. 961da177e4SLinus Torvalds 971da177e4SLinus Torvaldsconfig NET_SCH_HFSC 981da177e4SLinus Torvalds tristate "HFSC packet scheduler" 991da177e4SLinus Torvalds depends on NET_SCHED 1001da177e4SLinus Torvalds ---help--- 1011da177e4SLinus Torvalds Say Y here if you want to use the Hierarchical Fair Service Curve 1021da177e4SLinus Torvalds (HFSC) packet scheduling algorithm for some of your network devices. 1031da177e4SLinus Torvalds 1041da177e4SLinus Torvalds To compile this code as a module, choose M here: the 1051da177e4SLinus Torvalds module will be called sch_hfsc. 1061da177e4SLinus Torvalds 1071da177e4SLinus Torvalds#tristate ' H-PFQ packet scheduler' CONFIG_NET_SCH_HPFQ 1081da177e4SLinus Torvaldsconfig NET_SCH_ATM 1091da177e4SLinus Torvalds tristate "ATM pseudo-scheduler" 1101da177e4SLinus Torvalds depends on NET_SCHED && ATM 1111da177e4SLinus Torvalds ---help--- 1121da177e4SLinus Torvalds Say Y here if you want to use the ATM pseudo-scheduler. This 1131da177e4SLinus Torvalds provides a framework for invoking classifiers (aka "filters"), which 1141da177e4SLinus Torvalds in turn select classes of this queuing discipline. Each class maps 1151da177e4SLinus Torvalds the flow(s) it is handling to a given virtual circuit (see the top of 1161da177e4SLinus Torvalds <file:net/sched/sch_atm.c>). 1171da177e4SLinus Torvalds 1181da177e4SLinus Torvalds To compile this code as a module, choose M here: the 1191da177e4SLinus Torvalds module will be called sch_atm. 1201da177e4SLinus Torvalds 1211da177e4SLinus Torvaldsconfig NET_SCH_PRIO 1221da177e4SLinus Torvalds tristate "The simplest PRIO pseudoscheduler" 1231da177e4SLinus Torvalds depends on NET_SCHED 1241da177e4SLinus Torvalds help 1251da177e4SLinus Torvalds Say Y here if you want to use an n-band priority queue packet 1261da177e4SLinus Torvalds "scheduler" for some of your network devices or as a leaf discipline 1271da177e4SLinus Torvalds for the CBQ scheduling algorithm. If unsure, say Y. 1281da177e4SLinus Torvalds 1291da177e4SLinus Torvalds To compile this code as a module, choose M here: the 1301da177e4SLinus Torvalds module will be called sch_prio. 1311da177e4SLinus Torvalds 1321da177e4SLinus Torvaldsconfig NET_SCH_RED 1331da177e4SLinus Torvalds tristate "RED queue" 1341da177e4SLinus Torvalds depends on NET_SCHED 1351da177e4SLinus Torvalds help 1361da177e4SLinus Torvalds Say Y here if you want to use the Random Early Detection (RED) 1371da177e4SLinus Torvalds packet scheduling algorithm for some of your network devices (see 1381da177e4SLinus Torvalds the top of <file:net/sched/sch_red.c> for details and references 1391da177e4SLinus Torvalds about the algorithm). 1401da177e4SLinus Torvalds 1411da177e4SLinus Torvalds To compile this code as a module, choose M here: the 1421da177e4SLinus Torvalds module will be called sch_red. 1431da177e4SLinus Torvalds 1441da177e4SLinus Torvaldsconfig NET_SCH_SFQ 1451da177e4SLinus Torvalds tristate "SFQ queue" 1461da177e4SLinus Torvalds depends on NET_SCHED 1471da177e4SLinus Torvalds ---help--- 1481da177e4SLinus Torvalds Say Y here if you want to use the Stochastic Fairness Queueing (SFQ) 1491da177e4SLinus Torvalds packet scheduling algorithm for some of your network devices or as a 1501da177e4SLinus Torvalds leaf discipline for the CBQ scheduling algorithm (see the top of 1511da177e4SLinus Torvalds <file:net/sched/sch_sfq.c> for details and references about the SFQ 1521da177e4SLinus Torvalds algorithm). 1531da177e4SLinus Torvalds 1541da177e4SLinus Torvalds To compile this code as a module, choose M here: the 1551da177e4SLinus Torvalds module will be called sch_sfq. 1561da177e4SLinus Torvalds 1571da177e4SLinus Torvaldsconfig NET_SCH_TEQL 1581da177e4SLinus Torvalds tristate "TEQL queue" 1591da177e4SLinus Torvalds depends on NET_SCHED 1601da177e4SLinus Torvalds ---help--- 1611da177e4SLinus Torvalds Say Y here if you want to use the True Link Equalizer (TLE) packet 1621da177e4SLinus Torvalds scheduling algorithm for some of your network devices or as a leaf 1631da177e4SLinus Torvalds discipline for the CBQ scheduling algorithm. This queueing 1641da177e4SLinus Torvalds discipline allows the combination of several physical devices into 1651da177e4SLinus Torvalds one virtual device. (see the top of <file:net/sched/sch_teql.c> for 1661da177e4SLinus Torvalds details). 1671da177e4SLinus Torvalds 1681da177e4SLinus Torvalds To compile this code as a module, choose M here: the 1691da177e4SLinus Torvalds module will be called sch_teql. 1701da177e4SLinus Torvalds 1711da177e4SLinus Torvaldsconfig NET_SCH_TBF 1721da177e4SLinus Torvalds tristate "TBF queue" 1731da177e4SLinus Torvalds depends on NET_SCHED 1741da177e4SLinus Torvalds help 1751da177e4SLinus Torvalds Say Y here if you want to use the Simple Token Bucket Filter (TBF) 1761da177e4SLinus Torvalds packet scheduling algorithm for some of your network devices or as a 1771da177e4SLinus Torvalds leaf discipline for the CBQ scheduling algorithm (see the top of 1781da177e4SLinus Torvalds <file:net/sched/sch_tbf.c> for a description of the TBF algorithm). 1791da177e4SLinus Torvalds 1801da177e4SLinus Torvalds To compile this code as a module, choose M here: the 1811da177e4SLinus Torvalds module will be called sch_tbf. 1821da177e4SLinus Torvalds 1831da177e4SLinus Torvaldsconfig NET_SCH_GRED 1841da177e4SLinus Torvalds tristate "GRED queue" 1851da177e4SLinus Torvalds depends on NET_SCHED 1861da177e4SLinus Torvalds help 1871da177e4SLinus Torvalds Say Y here if you want to use the Generic Random Early Detection 18820cc6befSLucas Correia Villa Real (GRED) packet scheduling algorithm for some of your network devices 1891da177e4SLinus Torvalds (see the top of <file:net/sched/sch_red.c> for details and 1901da177e4SLinus Torvalds references about the algorithm). 1911da177e4SLinus Torvalds 1921da177e4SLinus Torvalds To compile this code as a module, choose M here: the 1931da177e4SLinus Torvalds module will be called sch_gred. 1941da177e4SLinus Torvalds 1951da177e4SLinus Torvaldsconfig NET_SCH_DSMARK 1961da177e4SLinus Torvalds tristate "Diffserv field marker" 1971da177e4SLinus Torvalds depends on NET_SCHED 1981da177e4SLinus Torvalds help 1991da177e4SLinus Torvalds Say Y if you want to schedule packets according to the 2001da177e4SLinus Torvalds Differentiated Services architecture proposed in RFC 2475. 2011da177e4SLinus Torvalds Technical information on this method, with pointers to associated 2021da177e4SLinus Torvalds RFCs, is available at <http://www.gta.ufrj.br/diffserv/>. 2031da177e4SLinus Torvalds 2041da177e4SLinus Torvalds To compile this code as a module, choose M here: the 2051da177e4SLinus Torvalds module will be called sch_dsmark. 2061da177e4SLinus Torvalds 2071da177e4SLinus Torvaldsconfig NET_SCH_NETEM 2081da177e4SLinus Torvalds tristate "Network emulator" 2091da177e4SLinus Torvalds depends on NET_SCHED 2101da177e4SLinus Torvalds help 2111da177e4SLinus Torvalds Say Y if you want to emulate network delay, loss, and packet 2121da177e4SLinus Torvalds re-ordering. This is often useful to simulate networks when 2131da177e4SLinus Torvalds testing applications or protocols. 2141da177e4SLinus Torvalds 2151da177e4SLinus Torvalds To compile this driver as a module, choose M here: the module 2161da177e4SLinus Torvalds will be called sch_netem. 2171da177e4SLinus Torvalds 2181da177e4SLinus Torvalds If unsure, say N. 2191da177e4SLinus Torvalds 2201da177e4SLinus Torvaldsconfig NET_SCH_INGRESS 2211da177e4SLinus Torvalds tristate "Ingress Qdisc" 2221da177e4SLinus Torvalds depends on NET_SCHED 2231da177e4SLinus Torvalds help 2241da177e4SLinus Torvalds If you say Y here, you will be able to police incoming bandwidth 2251da177e4SLinus Torvalds and drop packets when this bandwidth exceeds your desired rate. 2261da177e4SLinus Torvalds If unsure, say Y. 2271da177e4SLinus Torvalds 2281da177e4SLinus Torvalds To compile this code as a module, choose M here: the 2291da177e4SLinus Torvalds module will be called sch_ingress. 2301da177e4SLinus Torvalds 2311da177e4SLinus Torvaldsconfig NET_QOS 2321da177e4SLinus Torvalds bool "QoS support" 2331da177e4SLinus Torvalds depends on NET_SCHED 2341da177e4SLinus Torvalds ---help--- 2351da177e4SLinus Torvalds Say Y here if you want to include Quality Of Service scheduling 2361da177e4SLinus Torvalds features, which means that you will be able to request certain 2371da177e4SLinus Torvalds rate-of-flow limits for your network devices. 2381da177e4SLinus Torvalds 2391da177e4SLinus Torvalds This Quality of Service (QoS) support will enable you to use 2401da177e4SLinus Torvalds Differentiated Services (diffserv) and Resource Reservation Protocol 2411da177e4SLinus Torvalds (RSVP) on your Linux router if you also say Y to "Packet classifier 2421da177e4SLinus Torvalds API" and to some classifiers below. Documentation and software is at 2431da177e4SLinus Torvalds <http://diffserv.sourceforge.net/>. 2441da177e4SLinus Torvalds 2451da177e4SLinus Torvalds Note that the answer to this question won't directly affect the 2461da177e4SLinus Torvalds kernel: saying N will just cause the configurator to skip all 2471da177e4SLinus Torvalds the questions about QoS support. 2481da177e4SLinus Torvalds 2491da177e4SLinus Torvaldsconfig NET_ESTIMATOR 2501da177e4SLinus Torvalds bool "Rate estimator" 2511da177e4SLinus Torvalds depends on NET_QOS 2521da177e4SLinus Torvalds help 2531da177e4SLinus Torvalds In order for Quality of Service scheduling to work, the current 2541da177e4SLinus Torvalds rate-of-flow for a network device has to be estimated; if you say Y 2551da177e4SLinus Torvalds here, the kernel will do just that. 2561da177e4SLinus Torvalds 2571da177e4SLinus Torvaldsconfig NET_CLS 2581da177e4SLinus Torvalds bool "Packet classifier API" 2591da177e4SLinus Torvalds depends on NET_SCHED 2601da177e4SLinus Torvalds ---help--- 2611da177e4SLinus Torvalds The CBQ scheduling algorithm requires that network packets which are 2621da177e4SLinus Torvalds scheduled to be sent out over a network device be classified 2631da177e4SLinus Torvalds according to some criterion. If you say Y here, you will get a 2641da177e4SLinus Torvalds choice of several different packet classifiers with the following 2651da177e4SLinus Torvalds questions. 2661da177e4SLinus Torvalds 2671da177e4SLinus Torvalds This will enable you to use Differentiated Services (diffserv) and 2681da177e4SLinus Torvalds Resource Reservation Protocol (RSVP) on your Linux router. 2691da177e4SLinus Torvalds Documentation and software is at 2701da177e4SLinus Torvalds <http://diffserv.sourceforge.net/>. 2711da177e4SLinus Torvalds 2721da177e4SLinus Torvaldsconfig NET_CLS_BASIC 2731da177e4SLinus Torvalds tristate "Basic classifier" 2741da177e4SLinus Torvalds depends on NET_CLS 2751da177e4SLinus Torvalds ---help--- 2761da177e4SLinus Torvalds Say Y here if you want to be able to classify packets using 2771da177e4SLinus Torvalds only extended matches and actions. 2781da177e4SLinus Torvalds 2791da177e4SLinus Torvalds To compile this code as a module, choose M here: the 2801da177e4SLinus Torvalds module will be called cls_basic. 2811da177e4SLinus Torvalds 2821da177e4SLinus Torvaldsconfig NET_CLS_TCINDEX 2831da177e4SLinus Torvalds tristate "TC index classifier" 2841da177e4SLinus Torvalds depends on NET_CLS 2851da177e4SLinus Torvalds help 2861da177e4SLinus Torvalds If you say Y here, you will be able to classify outgoing packets 2871da177e4SLinus Torvalds according to the tc_index field of the skb. You will want this 2881da177e4SLinus Torvalds feature if you want to implement Differentiated Services using 2891da177e4SLinus Torvalds sch_dsmark. If unsure, say Y. 2901da177e4SLinus Torvalds 2911da177e4SLinus Torvalds To compile this code as a module, choose M here: the 2921da177e4SLinus Torvalds module will be called cls_tcindex. 2931da177e4SLinus Torvalds 2941da177e4SLinus Torvaldsconfig NET_CLS_ROUTE4 2951da177e4SLinus Torvalds tristate "Routing table based classifier" 2961da177e4SLinus Torvalds depends on NET_CLS 2971da177e4SLinus Torvalds select NET_CLS_ROUTE 2981da177e4SLinus Torvalds help 2991da177e4SLinus Torvalds If you say Y here, you will be able to classify outgoing packets 3001da177e4SLinus Torvalds according to the route table entry they matched. If unsure, say Y. 3011da177e4SLinus Torvalds 3021da177e4SLinus Torvalds To compile this code as a module, choose M here: the 3031da177e4SLinus Torvalds module will be called cls_route. 3041da177e4SLinus Torvalds 3051da177e4SLinus Torvaldsconfig NET_CLS_ROUTE 3061da177e4SLinus Torvalds bool 3071da177e4SLinus Torvalds default n 3081da177e4SLinus Torvalds 3091da177e4SLinus Torvaldsconfig NET_CLS_FW 3101da177e4SLinus Torvalds tristate "Firewall based classifier" 3111da177e4SLinus Torvalds depends on NET_CLS 3121da177e4SLinus Torvalds help 3131da177e4SLinus Torvalds If you say Y here, you will be able to classify outgoing packets 3141da177e4SLinus Torvalds according to firewall criteria you specified. 3151da177e4SLinus Torvalds 3161da177e4SLinus Torvalds To compile this code as a module, choose M here: the 3171da177e4SLinus Torvalds module will be called cls_fw. 3181da177e4SLinus Torvalds 3191da177e4SLinus Torvaldsconfig NET_CLS_U32 3201da177e4SLinus Torvalds tristate "U32 classifier" 3211da177e4SLinus Torvalds depends on NET_CLS 3221da177e4SLinus Torvalds help 3231da177e4SLinus Torvalds If you say Y here, you will be able to classify outgoing packets 3241da177e4SLinus Torvalds according to their destination address. If unsure, say Y. 3251da177e4SLinus Torvalds 3261da177e4SLinus Torvalds To compile this code as a module, choose M here: the 3271da177e4SLinus Torvalds module will be called cls_u32. 3281da177e4SLinus Torvalds 3291da177e4SLinus Torvaldsconfig CLS_U32_PERF 3301da177e4SLinus Torvalds bool "U32 classifier performance counters" 3311da177e4SLinus Torvalds depends on NET_CLS_U32 3321da177e4SLinus Torvalds help 3331da177e4SLinus Torvalds gathers stats that could be used to tune u32 classifier performance. 3341da177e4SLinus Torvalds Requires a new iproute2 3351da177e4SLinus Torvalds You MUST NOT turn this on if you dont have an update iproute2. 3361da177e4SLinus Torvalds 3371da177e4SLinus Torvaldsconfig NET_CLS_IND 3381da177e4SLinus Torvalds bool "classify input device (slows things u32/fw) " 3391da177e4SLinus Torvalds depends on NET_CLS_U32 || NET_CLS_FW 3401da177e4SLinus Torvalds help 3411da177e4SLinus Torvalds This option will be killed eventually when a 3421da177e4SLinus Torvalds metadata action appears because it slows things a little 3431da177e4SLinus Torvalds Available only for u32 and fw classifiers. 3441da177e4SLinus Torvalds Requires a new iproute2 3451da177e4SLinus Torvalds You MUST NOT turn this on if you dont have an update iproute2. 3461da177e4SLinus Torvalds 3471da177e4SLinus Torvaldsconfig CLS_U32_MARK 3481da177e4SLinus Torvalds bool "Use nfmark as a key in U32 classifier" 3491da177e4SLinus Torvalds depends on NET_CLS_U32 && NETFILTER 3501da177e4SLinus Torvalds help 3511da177e4SLinus Torvalds This allows you to match mark in a u32 filter. 3521da177e4SLinus Torvalds Example: 3531da177e4SLinus Torvalds tc filter add dev eth0 protocol ip parent 1:0 prio 5 u32 \ 3541da177e4SLinus Torvalds match mark 0x0090 0xffff \ 3551da177e4SLinus Torvalds match ip dst 4.4.4.4 \ 3561da177e4SLinus Torvalds flowid 1:90 3571da177e4SLinus Torvalds You must use a new iproute2 to use this feature. 3581da177e4SLinus Torvalds 3591da177e4SLinus Torvaldsconfig NET_CLS_RSVP 3601da177e4SLinus Torvalds tristate "Special RSVP classifier" 3611da177e4SLinus Torvalds depends on NET_CLS && NET_QOS 3621da177e4SLinus Torvalds ---help--- 3631da177e4SLinus Torvalds The Resource Reservation Protocol (RSVP) permits end systems to 3641da177e4SLinus Torvalds request a minimum and maximum data flow rate for a connection; this 3651da177e4SLinus Torvalds is important for real time data such as streaming sound or video. 3661da177e4SLinus Torvalds 3671da177e4SLinus Torvalds Say Y here if you want to be able to classify outgoing packets based 3681da177e4SLinus Torvalds on their RSVP requests. 3691da177e4SLinus Torvalds 3701da177e4SLinus Torvalds To compile this code as a module, choose M here: the 3711da177e4SLinus Torvalds module will be called cls_rsvp. 3721da177e4SLinus Torvalds 3731da177e4SLinus Torvaldsconfig NET_CLS_RSVP6 3741da177e4SLinus Torvalds tristate "Special RSVP classifier for IPv6" 3751da177e4SLinus Torvalds depends on NET_CLS && NET_QOS 3761da177e4SLinus Torvalds ---help--- 3771da177e4SLinus Torvalds The Resource Reservation Protocol (RSVP) permits end systems to 3781da177e4SLinus Torvalds request a minimum and maximum data flow rate for a connection; this 3791da177e4SLinus Torvalds is important for real time data such as streaming sound or video. 3801da177e4SLinus Torvalds 3811da177e4SLinus Torvalds Say Y here if you want to be able to classify outgoing packets based 3821da177e4SLinus Torvalds on their RSVP requests and you are using the new Internet Protocol 3831da177e4SLinus Torvalds IPv6 as opposed to the older and more common IPv4. 3841da177e4SLinus Torvalds 3851da177e4SLinus Torvalds To compile this code as a module, choose M here: the 3861da177e4SLinus Torvalds module will be called cls_rsvp6. 3871da177e4SLinus Torvalds 3881da177e4SLinus Torvaldsconfig NET_EMATCH 3891da177e4SLinus Torvalds bool "Extended Matches" 3901da177e4SLinus Torvalds depends on NET_CLS 3911da177e4SLinus Torvalds ---help--- 3921da177e4SLinus Torvalds Say Y here if you want to use extended matches on top of classifiers 3931da177e4SLinus Torvalds and select the extended matches below. 3941da177e4SLinus Torvalds 3951da177e4SLinus Torvalds Extended matches are small classification helpers not worth writing 3961da177e4SLinus Torvalds a separate classifier. 3971da177e4SLinus Torvalds 3981da177e4SLinus Torvalds You must have a recent version of the iproute2 tools in order to use 3991da177e4SLinus Torvalds extended matches. 4001da177e4SLinus Torvalds 4011da177e4SLinus Torvaldsconfig NET_EMATCH_STACK 4021da177e4SLinus Torvalds int "Stack size" 4031da177e4SLinus Torvalds depends on NET_EMATCH 4041da177e4SLinus Torvalds default "32" 4051da177e4SLinus Torvalds ---help--- 4061da177e4SLinus Torvalds Size of the local stack variable used while evaluating the tree of 4071da177e4SLinus Torvalds ematches. Limits the depth of the tree, i.e. the number of 408b824979aSThomas Graf encapsulated precedences. Every level requires 4 bytes of additional 4091da177e4SLinus Torvalds stack space. 4101da177e4SLinus Torvalds 4111da177e4SLinus Torvaldsconfig NET_EMATCH_CMP 4121da177e4SLinus Torvalds tristate "Simple packet data comparison" 4131da177e4SLinus Torvalds depends on NET_EMATCH 4141da177e4SLinus Torvalds ---help--- 4151da177e4SLinus Torvalds Say Y here if you want to be able to classify packets based on 4161da177e4SLinus Torvalds simple packet data comparisons for 8, 16, and 32bit values. 4171da177e4SLinus Torvalds 4181da177e4SLinus Torvalds To compile this code as a module, choose M here: the 4191da177e4SLinus Torvalds module will be called em_cmp. 4201da177e4SLinus Torvalds 4211da177e4SLinus Torvaldsconfig NET_EMATCH_NBYTE 4221da177e4SLinus Torvalds tristate "Multi byte comparison" 4231da177e4SLinus Torvalds depends on NET_EMATCH 4241da177e4SLinus Torvalds ---help--- 4251da177e4SLinus Torvalds Say Y here if you want to be able to classify packets based on 4261da177e4SLinus Torvalds multiple byte comparisons mainly useful for IPv6 address comparisons. 4271da177e4SLinus Torvalds 4281da177e4SLinus Torvalds To compile this code as a module, choose M here: the 4291da177e4SLinus Torvalds module will be called em_nbyte. 4301da177e4SLinus Torvalds 4311da177e4SLinus Torvaldsconfig NET_EMATCH_U32 4321da177e4SLinus Torvalds tristate "U32 hashing key" 4331da177e4SLinus Torvalds depends on NET_EMATCH 4341da177e4SLinus Torvalds ---help--- 4351da177e4SLinus Torvalds Say Y here if you want to be able to classify packets using 4361da177e4SLinus Torvalds the famous u32 key in combination with logic relations. 4371da177e4SLinus Torvalds 4381da177e4SLinus Torvalds To compile this code as a module, choose M here: the 4391da177e4SLinus Torvalds module will be called em_u32. 4401da177e4SLinus Torvalds 4411da177e4SLinus Torvaldsconfig NET_EMATCH_META 4421da177e4SLinus Torvalds tristate "Metadata" 4431da177e4SLinus Torvalds depends on NET_EMATCH 4441da177e4SLinus Torvalds ---help--- 4451da177e4SLinus Torvalds Say Y here if you want to be ablt to classify packets based on 4461da177e4SLinus Torvalds metadata such as load average, netfilter attributes, socket 4471da177e4SLinus Torvalds attributes and routing decisions. 4481da177e4SLinus Torvalds 4491da177e4SLinus Torvalds To compile this code as a module, choose M here: the 4501da177e4SLinus Torvalds module will be called em_meta. 4511da177e4SLinus Torvalds 452d675c989SThomas Grafconfig NET_EMATCH_TEXT 453d675c989SThomas Graf tristate "Textsearch" 454d675c989SThomas Graf depends on NET_EMATCH 455*f2d368faSDavid S. Miller select TEXTSEARCH 456d675c989SThomas Graf ---help--- 457d675c989SThomas Graf Say Y here if you want to be ablt to classify packets based on 458d675c989SThomas Graf textsearch comparisons. Please select the appropriate textsearch 459d675c989SThomas Graf algorithms in the Library section. 460d675c989SThomas Graf 461d675c989SThomas Graf To compile this code as a module, choose M here: the 462d675c989SThomas Graf module will be called em_text. 463d675c989SThomas Graf 4641da177e4SLinus Torvaldsconfig NET_CLS_ACT 4651da177e4SLinus Torvalds bool "Packet ACTION" 4661da177e4SLinus Torvalds depends on EXPERIMENTAL && NET_CLS && NET_QOS 4671da177e4SLinus Torvalds ---help--- 4681da177e4SLinus Torvalds This option requires you have a new iproute2. It enables 4691da177e4SLinus Torvalds tc extensions which can be used with tc classifiers. 4701da177e4SLinus Torvalds You MUST NOT turn this on if you dont have an update iproute2. 4711da177e4SLinus Torvalds 4721da177e4SLinus Torvaldsconfig NET_ACT_POLICE 4731da177e4SLinus Torvalds tristate "Policing Actions" 4741da177e4SLinus Torvalds depends on NET_CLS_ACT 4751da177e4SLinus Torvalds ---help--- 4761da177e4SLinus Torvalds If you are using a newer iproute2 select this one, otherwise use one 4771da177e4SLinus Torvalds below to select a policer. 4781da177e4SLinus Torvalds You MUST NOT turn this on if you dont have an update iproute2. 4791da177e4SLinus Torvalds 4801da177e4SLinus Torvaldsconfig NET_ACT_GACT 4811da177e4SLinus Torvalds tristate "generic Actions" 4821da177e4SLinus Torvalds depends on NET_CLS_ACT 4831da177e4SLinus Torvalds ---help--- 4841da177e4SLinus Torvalds You must have new iproute2 to use this feature. 4851da177e4SLinus Torvalds This adds simple filtering actions like drop, accept etc. 4861da177e4SLinus Torvalds 4871da177e4SLinus Torvaldsconfig GACT_PROB 4881da177e4SLinus Torvalds bool "generic Actions probability" 4891da177e4SLinus Torvalds depends on NET_ACT_GACT 4901da177e4SLinus Torvalds ---help--- 4911da177e4SLinus Torvalds Allows generic actions to be randomly or deterministically used. 4921da177e4SLinus Torvalds 4931da177e4SLinus Torvaldsconfig NET_ACT_MIRRED 4941da177e4SLinus Torvalds tristate "Packet In/Egress redirecton/mirror Actions" 4951da177e4SLinus Torvalds depends on NET_CLS_ACT 4961da177e4SLinus Torvalds ---help--- 4971da177e4SLinus Torvalds requires new iproute2 4981da177e4SLinus Torvalds This allows packets to be mirrored or redirected to netdevices 4991da177e4SLinus Torvalds 5001da177e4SLinus Torvaldsconfig NET_ACT_IPT 5011da177e4SLinus Torvalds tristate "iptables Actions" 5021da177e4SLinus Torvalds depends on NET_CLS_ACT && NETFILTER && IP_NF_IPTABLES 5031da177e4SLinus Torvalds ---help--- 5041da177e4SLinus Torvalds requires new iproute2 5051da177e4SLinus Torvalds This allows iptables targets to be used by tc filters 5061da177e4SLinus Torvalds 5071da177e4SLinus Torvaldsconfig NET_ACT_PEDIT 5081da177e4SLinus Torvalds tristate "Generic Packet Editor Actions" 5091da177e4SLinus Torvalds depends on NET_CLS_ACT 5101da177e4SLinus Torvalds ---help--- 5111da177e4SLinus Torvalds requires new iproute2 5121da177e4SLinus Torvalds This allows for packets to be generically edited 5131da177e4SLinus Torvalds 5141da177e4SLinus Torvaldsconfig NET_CLS_POLICE 5151da177e4SLinus Torvalds bool "Traffic policing (needed for in/egress)" 5161da177e4SLinus Torvalds depends on NET_CLS && NET_QOS && NET_CLS_ACT!=y 5171da177e4SLinus Torvalds help 5181da177e4SLinus Torvalds Say Y to support traffic policing (bandwidth limits). Needed for 5191da177e4SLinus Torvalds ingress and egress rate limiting. 5201da177e4SLinus Torvalds 521db753079SJamal Hadi Salimconfig NET_ACT_SIMP 522db753079SJamal Hadi Salim tristate "Simple action" 523db753079SJamal Hadi Salim depends on NET_CLS_ACT 524db753079SJamal Hadi Salim ---help--- 525db753079SJamal Hadi Salim You must have new iproute2 to use this feature. 526db753079SJamal Hadi Salim This adds a very simple action for demonstration purposes 527db753079SJamal Hadi Salim The idea is to give action authors a basic example to look at. 528db753079SJamal Hadi Salim All this action will do is print on the console the configured 529db753079SJamal Hadi Salim policy string followed by _ then packet count. 530db753079SJamal Hadi Salim 531