11da177e4SLinus Torvalds# 21da177e4SLinus Torvalds# Traffic control configuration. 31da177e4SLinus Torvalds# 46a2e9b73SSam Ravnborg 552ab4ac2SThomas Grafmenu "QoS and/or fair queueing" 652ab4ac2SThomas Graf 752ab4ac2SThomas Grafconfig NET_SCHED 86a2e9b73SSam Ravnborg bool "QoS and/or fair queueing" 93c62f75aSDavid Kimdon select NET_SCH_FIFO 106a2e9b73SSam Ravnborg ---help--- 116a2e9b73SSam Ravnborg When the kernel has several packets to send out over a network 126a2e9b73SSam Ravnborg device, it has to decide which ones to send first, which ones to 1352ab4ac2SThomas Graf delay, and which ones to drop. This is the job of the queueing 1452ab4ac2SThomas Graf disciplines, several different algorithms for how to do this 156a2e9b73SSam Ravnborg "fairly" have been proposed. 166a2e9b73SSam Ravnborg 176a2e9b73SSam Ravnborg If you say N here, you will get the standard packet scheduler, which 186a2e9b73SSam Ravnborg is a FIFO (first come, first served). If you say Y here, you will be 196a2e9b73SSam Ravnborg able to choose from among several alternative algorithms which can 206a2e9b73SSam Ravnborg then be attached to different network devices. This is useful for 216a2e9b73SSam Ravnborg example if some of your network devices are real time devices that 226a2e9b73SSam Ravnborg need a certain minimum data flow rate, or if you need to limit the 236a2e9b73SSam Ravnborg maximum data flow rate for traffic which matches specified criteria. 246a2e9b73SSam Ravnborg This code is considered to be experimental. 256a2e9b73SSam Ravnborg 266a2e9b73SSam Ravnborg To administer these schedulers, you'll need the user-level utilities 276a2e9b73SSam Ravnborg from the package iproute2+tc at <ftp://ftp.tux.org/pub/net/ip-routing/>. 286a2e9b73SSam Ravnborg That package also contains some documentation; for more, check out 2952ab4ac2SThomas Graf <http://linux-net.osdl.org/index.php/Iproute2>. 306a2e9b73SSam Ravnborg 316a2e9b73SSam Ravnborg This Quality of Service (QoS) support will enable you to use 326a2e9b73SSam Ravnborg Differentiated Services (diffserv) and Resource Reservation Protocol 3352ab4ac2SThomas Graf (RSVP) on your Linux router if you also say Y to the corresponding 3452ab4ac2SThomas Graf classifiers below. Documentation and software is at 3552ab4ac2SThomas Graf <http://diffserv.sourceforge.net/>. 366a2e9b73SSam Ravnborg 376a2e9b73SSam Ravnborg If you say Y here and to "/proc file system" below, you will be able 386a2e9b73SSam Ravnborg to read status information about packet schedulers from the file 396a2e9b73SSam Ravnborg /proc/net/psched. 406a2e9b73SSam Ravnborg 416a2e9b73SSam Ravnborg The available schedulers are listed in the following questions; you 426a2e9b73SSam Ravnborg can say Y to as many as you like. If unsure, say N now. 436a2e9b73SSam Ravnborg 443c62f75aSDavid Kimdonconfig NET_SCH_FIFO 453c62f75aSDavid Kimdon bool 463c62f75aSDavid Kimdon 4705b8b0faSRoman Zippelif NET_SCHED 4805b8b0faSRoman Zippel 4952ab4ac2SThomas Grafcomment "Queueing/Scheduling" 5052ab4ac2SThomas Graf 511da177e4SLinus Torvaldsconfig NET_SCH_CBQ 5252ab4ac2SThomas Graf tristate "Class Based Queueing (CBQ)" 531da177e4SLinus Torvalds ---help--- 541da177e4SLinus Torvalds Say Y here if you want to use the Class-Based Queueing (CBQ) packet 5552ab4ac2SThomas Graf scheduling algorithm. This algorithm classifies the waiting packets 5652ab4ac2SThomas Graf into a tree-like hierarchy of classes; the leaves of this tree are 5752ab4ac2SThomas Graf in turn scheduled by separate algorithms. 581da177e4SLinus Torvalds 5952ab4ac2SThomas Graf See the top of <file:net/sched/sch_cbq.c> for more details. 601da177e4SLinus Torvalds 611da177e4SLinus Torvalds CBQ is a commonly used scheduler, so if you're unsure, you should 621da177e4SLinus Torvalds say Y here. Then say Y to all the queueing algorithms below that you 6352ab4ac2SThomas Graf want to use as leaf disciplines. 641da177e4SLinus Torvalds 651da177e4SLinus Torvalds To compile this code as a module, choose M here: the 661da177e4SLinus Torvalds module will be called sch_cbq. 671da177e4SLinus Torvalds 681da177e4SLinus Torvaldsconfig NET_SCH_HTB 6952ab4ac2SThomas Graf tristate "Hierarchical Token Bucket (HTB)" 701da177e4SLinus Torvalds ---help--- 711da177e4SLinus Torvalds Say Y here if you want to use the Hierarchical Token Buckets (HTB) 7252ab4ac2SThomas Graf packet scheduling algorithm. See 731da177e4SLinus Torvalds <http://luxik.cdi.cz/~devik/qos/htb/> for complete manual and 741da177e4SLinus Torvalds in-depth articles. 751da177e4SLinus Torvalds 7652ab4ac2SThomas Graf HTB is very similar to CBQ regarding its goals however is has 771da177e4SLinus Torvalds different properties and different algorithm. 781da177e4SLinus Torvalds 791da177e4SLinus Torvalds To compile this code as a module, choose M here: the 801da177e4SLinus Torvalds module will be called sch_htb. 811da177e4SLinus Torvalds 821da177e4SLinus Torvaldsconfig NET_SCH_HFSC 8352ab4ac2SThomas Graf tristate "Hierarchical Fair Service Curve (HFSC)" 841da177e4SLinus Torvalds ---help--- 851da177e4SLinus Torvalds Say Y here if you want to use the Hierarchical Fair Service Curve 8652ab4ac2SThomas Graf (HFSC) packet scheduling algorithm. 871da177e4SLinus Torvalds 881da177e4SLinus Torvalds To compile this code as a module, choose M here: the 891da177e4SLinus Torvalds module will be called sch_hfsc. 901da177e4SLinus Torvalds 911da177e4SLinus Torvaldsconfig NET_SCH_ATM 9252ab4ac2SThomas Graf tristate "ATM Virtual Circuits (ATM)" 9305b8b0faSRoman Zippel depends on ATM 941da177e4SLinus Torvalds ---help--- 951da177e4SLinus Torvalds Say Y here if you want to use the ATM pseudo-scheduler. This 9652ab4ac2SThomas Graf provides a framework for invoking classifiers, which in turn 9752ab4ac2SThomas Graf select classes of this queuing discipline. Each class maps 9852ab4ac2SThomas Graf the flow(s) it is handling to a given virtual circuit. 9952ab4ac2SThomas Graf 10052ab4ac2SThomas Graf See the top of <file:net/sched/sch_atm.c>) for more details. 1011da177e4SLinus Torvalds 1021da177e4SLinus Torvalds To compile this code as a module, choose M here: the 1031da177e4SLinus Torvalds module will be called sch_atm. 1041da177e4SLinus Torvalds 1051da177e4SLinus Torvaldsconfig NET_SCH_PRIO 10652ab4ac2SThomas Graf tristate "Multi Band Priority Queueing (PRIO)" 10752ab4ac2SThomas Graf ---help--- 1081da177e4SLinus Torvalds Say Y here if you want to use an n-band priority queue packet 10952ab4ac2SThomas Graf scheduler. 1101da177e4SLinus Torvalds 1111da177e4SLinus Torvalds To compile this code as a module, choose M here: the 1121da177e4SLinus Torvalds module will be called sch_prio. 1131da177e4SLinus Torvalds 114*d62733c8SPeter P Waskiewicz Jrconfig NET_SCH_RR 115*d62733c8SPeter P Waskiewicz Jr tristate "Multi Band Round Robin Queuing (RR)" 116*d62733c8SPeter P Waskiewicz Jr select NET_SCH_PRIO 117*d62733c8SPeter P Waskiewicz Jr ---help--- 118*d62733c8SPeter P Waskiewicz Jr Say Y here if you want to use an n-band round robin packet 119*d62733c8SPeter P Waskiewicz Jr scheduler. 120*d62733c8SPeter P Waskiewicz Jr 121*d62733c8SPeter P Waskiewicz Jr The module uses sch_prio for its framework and is aliased as 122*d62733c8SPeter P Waskiewicz Jr sch_rr, so it will load sch_prio, although it is referred 123*d62733c8SPeter P Waskiewicz Jr to using sch_rr. 124*d62733c8SPeter P Waskiewicz Jr 1251da177e4SLinus Torvaldsconfig NET_SCH_RED 12652ab4ac2SThomas Graf tristate "Random Early Detection (RED)" 12752ab4ac2SThomas Graf ---help--- 1281da177e4SLinus Torvalds Say Y here if you want to use the Random Early Detection (RED) 12952ab4ac2SThomas Graf packet scheduling algorithm. 13052ab4ac2SThomas Graf 13152ab4ac2SThomas Graf See the top of <file:net/sched/sch_red.c> for more details. 1321da177e4SLinus Torvalds 1331da177e4SLinus Torvalds To compile this code as a module, choose M here: the 1341da177e4SLinus Torvalds module will be called sch_red. 1351da177e4SLinus Torvalds 1361da177e4SLinus Torvaldsconfig NET_SCH_SFQ 13752ab4ac2SThomas Graf tristate "Stochastic Fairness Queueing (SFQ)" 1381da177e4SLinus Torvalds ---help--- 1391da177e4SLinus Torvalds Say Y here if you want to use the Stochastic Fairness Queueing (SFQ) 14052ab4ac2SThomas Graf packet scheduling algorithm . 14152ab4ac2SThomas Graf 14252ab4ac2SThomas Graf See the top of <file:net/sched/sch_sfq.c> for more details. 1431da177e4SLinus Torvalds 1441da177e4SLinus Torvalds To compile this code as a module, choose M here: the 1451da177e4SLinus Torvalds module will be called sch_sfq. 1461da177e4SLinus Torvalds 1471da177e4SLinus Torvaldsconfig NET_SCH_TEQL 14852ab4ac2SThomas Graf tristate "True Link Equalizer (TEQL)" 1491da177e4SLinus Torvalds ---help--- 1501da177e4SLinus Torvalds Say Y here if you want to use the True Link Equalizer (TLE) packet 15152ab4ac2SThomas Graf scheduling algorithm. This queueing discipline allows the combination 15252ab4ac2SThomas Graf of several physical devices into one virtual device. 15352ab4ac2SThomas Graf 15452ab4ac2SThomas Graf See the top of <file:net/sched/sch_teql.c> for more details. 1551da177e4SLinus Torvalds 1561da177e4SLinus Torvalds To compile this code as a module, choose M here: the 1571da177e4SLinus Torvalds module will be called sch_teql. 1581da177e4SLinus Torvalds 1591da177e4SLinus Torvaldsconfig NET_SCH_TBF 16052ab4ac2SThomas Graf tristate "Token Bucket Filter (TBF)" 16152ab4ac2SThomas Graf ---help--- 16252ab4ac2SThomas Graf Say Y here if you want to use the Token Bucket Filter (TBF) packet 16352ab4ac2SThomas Graf scheduling algorithm. 16452ab4ac2SThomas Graf 16552ab4ac2SThomas Graf See the top of <file:net/sched/sch_tbf.c> for more details. 1661da177e4SLinus Torvalds 1671da177e4SLinus Torvalds To compile this code as a module, choose M here: the 1681da177e4SLinus Torvalds module will be called sch_tbf. 1691da177e4SLinus Torvalds 1701da177e4SLinus Torvaldsconfig NET_SCH_GRED 17152ab4ac2SThomas Graf tristate "Generic Random Early Detection (GRED)" 17252ab4ac2SThomas Graf ---help--- 1731da177e4SLinus Torvalds Say Y here if you want to use the Generic Random Early Detection 17420cc6befSLucas Correia Villa Real (GRED) packet scheduling algorithm for some of your network devices 1751da177e4SLinus Torvalds (see the top of <file:net/sched/sch_red.c> for details and 1761da177e4SLinus Torvalds references about the algorithm). 1771da177e4SLinus Torvalds 1781da177e4SLinus Torvalds To compile this code as a module, choose M here: the 1791da177e4SLinus Torvalds module will be called sch_gred. 1801da177e4SLinus Torvalds 1811da177e4SLinus Torvaldsconfig NET_SCH_DSMARK 18252ab4ac2SThomas Graf tristate "Differentiated Services marker (DSMARK)" 18352ab4ac2SThomas Graf ---help--- 1841da177e4SLinus Torvalds Say Y if you want to schedule packets according to the 1851da177e4SLinus Torvalds Differentiated Services architecture proposed in RFC 2475. 1861da177e4SLinus Torvalds Technical information on this method, with pointers to associated 1871da177e4SLinus Torvalds RFCs, is available at <http://www.gta.ufrj.br/diffserv/>. 1881da177e4SLinus Torvalds 1891da177e4SLinus Torvalds To compile this code as a module, choose M here: the 1901da177e4SLinus Torvalds module will be called sch_dsmark. 1911da177e4SLinus Torvalds 1921da177e4SLinus Torvaldsconfig NET_SCH_NETEM 19352ab4ac2SThomas Graf tristate "Network emulator (NETEM)" 19452ab4ac2SThomas Graf ---help--- 1951da177e4SLinus Torvalds Say Y if you want to emulate network delay, loss, and packet 1961da177e4SLinus Torvalds re-ordering. This is often useful to simulate networks when 1971da177e4SLinus Torvalds testing applications or protocols. 1981da177e4SLinus Torvalds 1991da177e4SLinus Torvalds To compile this driver as a module, choose M here: the module 2001da177e4SLinus Torvalds will be called sch_netem. 2011da177e4SLinus Torvalds 2021da177e4SLinus Torvalds If unsure, say N. 2031da177e4SLinus Torvalds 2041da177e4SLinus Torvaldsconfig NET_SCH_INGRESS 2051da177e4SLinus Torvalds tristate "Ingress Qdisc" 20652ab4ac2SThomas Graf ---help--- 20752ab4ac2SThomas Graf Say Y here if you want to use classifiers for incoming packets. 2081da177e4SLinus Torvalds If unsure, say Y. 2091da177e4SLinus Torvalds 2101da177e4SLinus Torvalds To compile this code as a module, choose M here: the 2111da177e4SLinus Torvalds module will be called sch_ingress. 2121da177e4SLinus Torvalds 21352ab4ac2SThomas Grafcomment "Classification" 2141da177e4SLinus Torvalds 2151da177e4SLinus Torvaldsconfig NET_CLS 21652ab4ac2SThomas Graf boolean 2171da177e4SLinus Torvalds 2181da177e4SLinus Torvaldsconfig NET_CLS_BASIC 21952ab4ac2SThomas Graf tristate "Elementary classification (BASIC)" 22052ab4ac2SThomas Graf select NET_CLS 2211da177e4SLinus Torvalds ---help--- 2221da177e4SLinus Torvalds Say Y here if you want to be able to classify packets using 2231da177e4SLinus Torvalds only extended matches and actions. 2241da177e4SLinus Torvalds 2251da177e4SLinus Torvalds To compile this code as a module, choose M here: the 2261da177e4SLinus Torvalds module will be called cls_basic. 2271da177e4SLinus Torvalds 2281da177e4SLinus Torvaldsconfig NET_CLS_TCINDEX 22952ab4ac2SThomas Graf tristate "Traffic-Control Index (TCINDEX)" 23052ab4ac2SThomas Graf select NET_CLS 23152ab4ac2SThomas Graf ---help--- 23252ab4ac2SThomas Graf Say Y here if you want to be able to classify packets based on 23352ab4ac2SThomas Graf traffic control indices. You will want this feature if you want 23452ab4ac2SThomas Graf to implement Differentiated Services together with DSMARK. 2351da177e4SLinus Torvalds 2361da177e4SLinus Torvalds To compile this code as a module, choose M here: the 2371da177e4SLinus Torvalds module will be called cls_tcindex. 2381da177e4SLinus Torvalds 2391da177e4SLinus Torvaldsconfig NET_CLS_ROUTE4 24052ab4ac2SThomas Graf tristate "Routing decision (ROUTE)" 2411da177e4SLinus Torvalds select NET_CLS_ROUTE 24252ab4ac2SThomas Graf select NET_CLS 24352ab4ac2SThomas Graf ---help--- 24452ab4ac2SThomas Graf If you say Y here, you will be able to classify packets 24552ab4ac2SThomas Graf according to the route table entry they matched. 2461da177e4SLinus Torvalds 2471da177e4SLinus Torvalds To compile this code as a module, choose M here: the 2481da177e4SLinus Torvalds module will be called cls_route. 2491da177e4SLinus Torvalds 2501da177e4SLinus Torvaldsconfig NET_CLS_ROUTE 2511da177e4SLinus Torvalds bool 2521da177e4SLinus Torvalds 2531da177e4SLinus Torvaldsconfig NET_CLS_FW 25452ab4ac2SThomas Graf tristate "Netfilter mark (FW)" 25552ab4ac2SThomas Graf select NET_CLS 25652ab4ac2SThomas Graf ---help--- 25752ab4ac2SThomas Graf If you say Y here, you will be able to classify packets 25852ab4ac2SThomas Graf according to netfilter/firewall marks. 2591da177e4SLinus Torvalds 2601da177e4SLinus Torvalds To compile this code as a module, choose M here: the 2611da177e4SLinus Torvalds module will be called cls_fw. 2621da177e4SLinus Torvalds 2631da177e4SLinus Torvaldsconfig NET_CLS_U32 26452ab4ac2SThomas Graf tristate "Universal 32bit comparisons w/ hashing (U32)" 26552ab4ac2SThomas Graf select NET_CLS 26652ab4ac2SThomas Graf ---help--- 2673539c272SMatt LaPlante Say Y here to be able to classify packets using a universal 26852ab4ac2SThomas Graf 32bit pieces based comparison scheme. 2691da177e4SLinus Torvalds 2701da177e4SLinus Torvalds To compile this code as a module, choose M here: the 2711da177e4SLinus Torvalds module will be called cls_u32. 2721da177e4SLinus Torvalds 2731da177e4SLinus Torvaldsconfig CLS_U32_PERF 27452ab4ac2SThomas Graf bool "Performance counters support" 2751da177e4SLinus Torvalds depends on NET_CLS_U32 27652ab4ac2SThomas Graf ---help--- 27752ab4ac2SThomas Graf Say Y here to make u32 gather additional statistics useful for 27852ab4ac2SThomas Graf fine tuning u32 classifiers. 2791da177e4SLinus Torvalds 2801da177e4SLinus Torvaldsconfig CLS_U32_MARK 28152ab4ac2SThomas Graf bool "Netfilter marks support" 28282e91ffeSThomas Graf depends on NET_CLS_U32 28352ab4ac2SThomas Graf ---help--- 28452ab4ac2SThomas Graf Say Y here to be able to use netfilter marks as u32 key. 2851da177e4SLinus Torvalds 2861da177e4SLinus Torvaldsconfig NET_CLS_RSVP 28752ab4ac2SThomas Graf tristate "IPv4 Resource Reservation Protocol (RSVP)" 28852ab4ac2SThomas Graf select NET_CLS 28952ab4ac2SThomas Graf select NET_ESTIMATOR 2901da177e4SLinus Torvalds ---help--- 2911da177e4SLinus Torvalds The Resource Reservation Protocol (RSVP) permits end systems to 2921da177e4SLinus Torvalds request a minimum and maximum data flow rate for a connection; this 2931da177e4SLinus Torvalds is important for real time data such as streaming sound or video. 2941da177e4SLinus Torvalds 2951da177e4SLinus Torvalds Say Y here if you want to be able to classify outgoing packets based 2961da177e4SLinus Torvalds on their RSVP requests. 2971da177e4SLinus Torvalds 2981da177e4SLinus Torvalds To compile this code as a module, choose M here: the 2991da177e4SLinus Torvalds module will be called cls_rsvp. 3001da177e4SLinus Torvalds 3011da177e4SLinus Torvaldsconfig NET_CLS_RSVP6 30252ab4ac2SThomas Graf tristate "IPv6 Resource Reservation Protocol (RSVP6)" 30352ab4ac2SThomas Graf select NET_CLS 30452ab4ac2SThomas Graf select NET_ESTIMATOR 3051da177e4SLinus Torvalds ---help--- 3061da177e4SLinus Torvalds The Resource Reservation Protocol (RSVP) permits end systems to 3071da177e4SLinus Torvalds request a minimum and maximum data flow rate for a connection; this 3081da177e4SLinus Torvalds is important for real time data such as streaming sound or video. 3091da177e4SLinus Torvalds 3101da177e4SLinus Torvalds Say Y here if you want to be able to classify outgoing packets based 31152ab4ac2SThomas Graf on their RSVP requests and you are using the IPv6. 3121da177e4SLinus Torvalds 3131da177e4SLinus Torvalds To compile this code as a module, choose M here: the 3141da177e4SLinus Torvalds module will be called cls_rsvp6. 3151da177e4SLinus Torvalds 3161da177e4SLinus Torvaldsconfig NET_EMATCH 3171da177e4SLinus Torvalds bool "Extended Matches" 31852ab4ac2SThomas Graf select NET_CLS 3191da177e4SLinus Torvalds ---help--- 3201da177e4SLinus Torvalds Say Y here if you want to use extended matches on top of classifiers 3211da177e4SLinus Torvalds and select the extended matches below. 3221da177e4SLinus Torvalds 3231da177e4SLinus Torvalds Extended matches are small classification helpers not worth writing 32452ab4ac2SThomas Graf a separate classifier for. 3251da177e4SLinus Torvalds 32652ab4ac2SThomas Graf A recent version of the iproute2 package is required to use 3271da177e4SLinus Torvalds extended matches. 3281da177e4SLinus Torvalds 3291da177e4SLinus Torvaldsconfig NET_EMATCH_STACK 3301da177e4SLinus Torvalds int "Stack size" 3311da177e4SLinus Torvalds depends on NET_EMATCH 3321da177e4SLinus Torvalds default "32" 3331da177e4SLinus Torvalds ---help--- 3341da177e4SLinus Torvalds Size of the local stack variable used while evaluating the tree of 3351da177e4SLinus Torvalds ematches. Limits the depth of the tree, i.e. the number of 336b824979aSThomas Graf encapsulated precedences. Every level requires 4 bytes of additional 3371da177e4SLinus Torvalds stack space. 3381da177e4SLinus Torvalds 3391da177e4SLinus Torvaldsconfig NET_EMATCH_CMP 3401da177e4SLinus Torvalds tristate "Simple packet data comparison" 3411da177e4SLinus Torvalds depends on NET_EMATCH 3421da177e4SLinus Torvalds ---help--- 3431da177e4SLinus Torvalds Say Y here if you want to be able to classify packets based on 3441da177e4SLinus Torvalds simple packet data comparisons for 8, 16, and 32bit values. 3451da177e4SLinus Torvalds 3461da177e4SLinus Torvalds To compile this code as a module, choose M here: the 3471da177e4SLinus Torvalds module will be called em_cmp. 3481da177e4SLinus Torvalds 3491da177e4SLinus Torvaldsconfig NET_EMATCH_NBYTE 3501da177e4SLinus Torvalds tristate "Multi byte comparison" 3511da177e4SLinus Torvalds depends on NET_EMATCH 3521da177e4SLinus Torvalds ---help--- 3531da177e4SLinus Torvalds Say Y here if you want to be able to classify packets based on 3541da177e4SLinus Torvalds multiple byte comparisons mainly useful for IPv6 address comparisons. 3551da177e4SLinus Torvalds 3561da177e4SLinus Torvalds To compile this code as a module, choose M here: the 3571da177e4SLinus Torvalds module will be called em_nbyte. 3581da177e4SLinus Torvalds 3591da177e4SLinus Torvaldsconfig NET_EMATCH_U32 36052ab4ac2SThomas Graf tristate "U32 key" 3611da177e4SLinus Torvalds depends on NET_EMATCH 3621da177e4SLinus Torvalds ---help--- 3631da177e4SLinus Torvalds Say Y here if you want to be able to classify packets using 3641da177e4SLinus Torvalds the famous u32 key in combination with logic relations. 3651da177e4SLinus Torvalds 3661da177e4SLinus Torvalds To compile this code as a module, choose M here: the 3671da177e4SLinus Torvalds module will be called em_u32. 3681da177e4SLinus Torvalds 3691da177e4SLinus Torvaldsconfig NET_EMATCH_META 3701da177e4SLinus Torvalds tristate "Metadata" 3711da177e4SLinus Torvalds depends on NET_EMATCH 3721da177e4SLinus Torvalds ---help--- 373bb7e8c5aSAdrian Bunk Say Y here if you want to be able to classify packets based on 3741da177e4SLinus Torvalds metadata such as load average, netfilter attributes, socket 3751da177e4SLinus Torvalds attributes and routing decisions. 3761da177e4SLinus Torvalds 3771da177e4SLinus Torvalds To compile this code as a module, choose M here: the 3781da177e4SLinus Torvalds module will be called em_meta. 3791da177e4SLinus Torvalds 380d675c989SThomas Grafconfig NET_EMATCH_TEXT 381d675c989SThomas Graf tristate "Textsearch" 382d675c989SThomas Graf depends on NET_EMATCH 383f2d368faSDavid S. Miller select TEXTSEARCH 384f7704347SDavid S. Miller select TEXTSEARCH_KMP 38529cb9f9cSDavid S. Miller select TEXTSEARCH_BM 386f7704347SDavid S. Miller select TEXTSEARCH_FSM 387d675c989SThomas Graf ---help--- 38852ab4ac2SThomas Graf Say Y here if you want to be able to classify packets based on 389f7704347SDavid S. Miller textsearch comparisons. 390d675c989SThomas Graf 391d675c989SThomas Graf To compile this code as a module, choose M here: the 392d675c989SThomas Graf module will be called em_text. 393d675c989SThomas Graf 3941da177e4SLinus Torvaldsconfig NET_CLS_ACT 39552ab4ac2SThomas Graf bool "Actions" 39652ab4ac2SThomas Graf select NET_ESTIMATOR 3971da177e4SLinus Torvalds ---help--- 39852ab4ac2SThomas Graf Say Y here if you want to use traffic control actions. Actions 39952ab4ac2SThomas Graf get attached to classifiers and are invoked after a successful 40052ab4ac2SThomas Graf classification. They are used to overwrite the classification 40152ab4ac2SThomas Graf result, instantly drop or redirect packets, etc. 40252ab4ac2SThomas Graf 40352ab4ac2SThomas Graf A recent version of the iproute2 package is required to use 40452ab4ac2SThomas Graf extended matches. 4051da177e4SLinus Torvalds 4061da177e4SLinus Torvaldsconfig NET_ACT_POLICE 40752ab4ac2SThomas Graf tristate "Traffic Policing" 4081da177e4SLinus Torvalds depends on NET_CLS_ACT 4091da177e4SLinus Torvalds ---help--- 41052ab4ac2SThomas Graf Say Y here if you want to do traffic policing, i.e. strict 41152ab4ac2SThomas Graf bandwidth limiting. This action replaces the existing policing 41252ab4ac2SThomas Graf module. 41352ab4ac2SThomas Graf 41452ab4ac2SThomas Graf To compile this code as a module, choose M here: the 41552ab4ac2SThomas Graf module will be called police. 4161da177e4SLinus Torvalds 4171da177e4SLinus Torvaldsconfig NET_ACT_GACT 41852ab4ac2SThomas Graf tristate "Generic actions" 4191da177e4SLinus Torvalds depends on NET_CLS_ACT 4201da177e4SLinus Torvalds ---help--- 42152ab4ac2SThomas Graf Say Y here to take generic actions such as dropping and 42252ab4ac2SThomas Graf accepting packets. 42352ab4ac2SThomas Graf 42452ab4ac2SThomas Graf To compile this code as a module, choose M here: the 42552ab4ac2SThomas Graf module will be called gact. 4261da177e4SLinus Torvalds 4271da177e4SLinus Torvaldsconfig GACT_PROB 42852ab4ac2SThomas Graf bool "Probability support" 4291da177e4SLinus Torvalds depends on NET_ACT_GACT 4301da177e4SLinus Torvalds ---help--- 43152ab4ac2SThomas Graf Say Y here to use the generic action randomly or deterministically. 4321da177e4SLinus Torvalds 4331da177e4SLinus Torvaldsconfig NET_ACT_MIRRED 43452ab4ac2SThomas Graf tristate "Redirecting and Mirroring" 4351da177e4SLinus Torvalds depends on NET_CLS_ACT 4361da177e4SLinus Torvalds ---help--- 43752ab4ac2SThomas Graf Say Y here to allow packets to be mirrored or redirected to 43852ab4ac2SThomas Graf other devices. 43952ab4ac2SThomas Graf 44052ab4ac2SThomas Graf To compile this code as a module, choose M here: the 44152ab4ac2SThomas Graf module will be called mirred. 4421da177e4SLinus Torvalds 4431da177e4SLinus Torvaldsconfig NET_ACT_IPT 44452ab4ac2SThomas Graf tristate "IPtables targets" 4451da177e4SLinus Torvalds depends on NET_CLS_ACT && NETFILTER && IP_NF_IPTABLES 4461da177e4SLinus Torvalds ---help--- 4473539c272SMatt LaPlante Say Y here to be able to invoke iptables targets after successful 44852ab4ac2SThomas Graf classification. 44952ab4ac2SThomas Graf 45052ab4ac2SThomas Graf To compile this code as a module, choose M here: the 45152ab4ac2SThomas Graf module will be called ipt. 4521da177e4SLinus Torvalds 4531da177e4SLinus Torvaldsconfig NET_ACT_PEDIT 45452ab4ac2SThomas Graf tristate "Packet Editing" 4551da177e4SLinus Torvalds depends on NET_CLS_ACT 4561da177e4SLinus Torvalds ---help--- 45752ab4ac2SThomas Graf Say Y here if you want to mangle the content of packets. 4581da177e4SLinus Torvalds 45952ab4ac2SThomas Graf To compile this code as a module, choose M here: the 46052ab4ac2SThomas Graf module will be called pedit. 4611da177e4SLinus Torvalds 462db753079SJamal Hadi Salimconfig NET_ACT_SIMP 46352ab4ac2SThomas Graf tristate "Simple Example (Debug)" 464db753079SJamal Hadi Salim depends on NET_CLS_ACT 465db753079SJamal Hadi Salim ---help--- 46652ab4ac2SThomas Graf Say Y here to add a simple action for demonstration purposes. 46752ab4ac2SThomas Graf It is meant as an example and for debugging purposes. It will 46852ab4ac2SThomas Graf print a configured policy string followed by the packet count 46952ab4ac2SThomas Graf to the console for every packet that passes by. 470db753079SJamal Hadi Salim 47152ab4ac2SThomas Graf If unsure, say N. 47252ab4ac2SThomas Graf 47352ab4ac2SThomas Graf To compile this code as a module, choose M here: the 47452ab4ac2SThomas Graf module will be called simple. 47552ab4ac2SThomas Graf 47652ab4ac2SThomas Grafconfig NET_CLS_POLICE 47752ab4ac2SThomas Graf bool "Traffic Policing (obsolete)" 47805b8b0faSRoman Zippel depends on NET_CLS_ACT!=y 47952ab4ac2SThomas Graf select NET_ESTIMATOR 48052ab4ac2SThomas Graf ---help--- 48152ab4ac2SThomas Graf Say Y here if you want to do traffic policing, i.e. strict 48252ab4ac2SThomas Graf bandwidth limiting. This option is obsoleted by the traffic 48352ab4ac2SThomas Graf policer implemented as action, it stays here for compatibility 48452ab4ac2SThomas Graf reasons. 48552ab4ac2SThomas Graf 48652ab4ac2SThomas Grafconfig NET_CLS_IND 48752ab4ac2SThomas Graf bool "Incoming device classification" 48805b8b0faSRoman Zippel depends on NET_CLS_U32 || NET_CLS_FW 48952ab4ac2SThomas Graf ---help--- 49052ab4ac2SThomas Graf Say Y here to extend the u32 and fw classifier to support 49152ab4ac2SThomas Graf classification based on the incoming device. This option is 49252ab4ac2SThomas Graf likely to disappear in favour of the metadata ematch. 49352ab4ac2SThomas Graf 49452ab4ac2SThomas Grafconfig NET_ESTIMATOR 49552ab4ac2SThomas Graf bool "Rate estimator" 49652ab4ac2SThomas Graf ---help--- 49752ab4ac2SThomas Graf Say Y here to allow using rate estimators to estimate the current 49852ab4ac2SThomas Graf rate-of-flow for network devices, queues, etc. This module is 4993539c272SMatt LaPlante automatically selected if needed but can be selected manually for 5003539c272SMatt LaPlante statistical purposes. 50152ab4ac2SThomas Graf 50205b8b0faSRoman Zippelendif # NET_SCHED 50305b8b0faSRoman Zippel 50452ab4ac2SThomas Grafendmenu 505