1*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0-only 2*4882a593Smuzhiyun# 3*4882a593Smuzhiyun# Traffic control configuration. 4*4882a593Smuzhiyun# 5*4882a593Smuzhiyun 6*4882a593Smuzhiyunmenuconfig NET_SCHED 7*4882a593Smuzhiyun bool "QoS and/or fair queueing" 8*4882a593Smuzhiyun select NET_SCH_FIFO 9*4882a593Smuzhiyun help 10*4882a593Smuzhiyun When the kernel has several packets to send out over a network 11*4882a593Smuzhiyun device, it has to decide which ones to send first, which ones to 12*4882a593Smuzhiyun delay, and which ones to drop. This is the job of the queueing 13*4882a593Smuzhiyun disciplines, several different algorithms for how to do this 14*4882a593Smuzhiyun "fairly" have been proposed. 15*4882a593Smuzhiyun 16*4882a593Smuzhiyun If you say N here, you will get the standard packet scheduler, which 17*4882a593Smuzhiyun is a FIFO (first come, first served). If you say Y here, you will be 18*4882a593Smuzhiyun able to choose from among several alternative algorithms which can 19*4882a593Smuzhiyun then be attached to different network devices. This is useful for 20*4882a593Smuzhiyun example if some of your network devices are real time devices that 21*4882a593Smuzhiyun need a certain minimum data flow rate, or if you need to limit the 22*4882a593Smuzhiyun maximum data flow rate for traffic which matches specified criteria. 23*4882a593Smuzhiyun This code is considered to be experimental. 24*4882a593Smuzhiyun 25*4882a593Smuzhiyun To administer these schedulers, you'll need the user-level utilities 26*4882a593Smuzhiyun from the package iproute2+tc at 27*4882a593Smuzhiyun <https://www.kernel.org/pub/linux/utils/net/iproute2/>. That package 28*4882a593Smuzhiyun also contains some documentation; for more, check out 29*4882a593Smuzhiyun <http://www.linuxfoundation.org/collaborate/workgroups/networking/iproute2>. 30*4882a593Smuzhiyun 31*4882a593Smuzhiyun This Quality of Service (QoS) support will enable you to use 32*4882a593Smuzhiyun Differentiated Services (diffserv) and Resource Reservation Protocol 33*4882a593Smuzhiyun (RSVP) on your Linux router if you also say Y to the corresponding 34*4882a593Smuzhiyun classifiers below. Documentation and software is at 35*4882a593Smuzhiyun <http://diffserv.sourceforge.net/>. 36*4882a593Smuzhiyun 37*4882a593Smuzhiyun If you say Y here and to "/proc file system" below, you will be able 38*4882a593Smuzhiyun to read status information about packet schedulers from the file 39*4882a593Smuzhiyun /proc/net/psched. 40*4882a593Smuzhiyun 41*4882a593Smuzhiyun The available schedulers are listed in the following questions; you 42*4882a593Smuzhiyun can say Y to as many as you like. If unsure, say N now. 43*4882a593Smuzhiyun 44*4882a593Smuzhiyunif NET_SCHED 45*4882a593Smuzhiyun 46*4882a593Smuzhiyuncomment "Queueing/Scheduling" 47*4882a593Smuzhiyun 48*4882a593Smuzhiyunconfig NET_SCH_CBQ 49*4882a593Smuzhiyun tristate "Class Based Queueing (CBQ)" 50*4882a593Smuzhiyun help 51*4882a593Smuzhiyun Say Y here if you want to use the Class-Based Queueing (CBQ) packet 52*4882a593Smuzhiyun scheduling algorithm. This algorithm classifies the waiting packets 53*4882a593Smuzhiyun into a tree-like hierarchy of classes; the leaves of this tree are 54*4882a593Smuzhiyun in turn scheduled by separate algorithms. 55*4882a593Smuzhiyun 56*4882a593Smuzhiyun See the top of <file:net/sched/sch_cbq.c> for more details. 57*4882a593Smuzhiyun 58*4882a593Smuzhiyun CBQ is a commonly used scheduler, so if you're unsure, you should 59*4882a593Smuzhiyun say Y here. Then say Y to all the queueing algorithms below that you 60*4882a593Smuzhiyun want to use as leaf disciplines. 61*4882a593Smuzhiyun 62*4882a593Smuzhiyun To compile this code as a module, choose M here: the 63*4882a593Smuzhiyun module will be called sch_cbq. 64*4882a593Smuzhiyun 65*4882a593Smuzhiyunconfig NET_SCH_HTB 66*4882a593Smuzhiyun tristate "Hierarchical Token Bucket (HTB)" 67*4882a593Smuzhiyun help 68*4882a593Smuzhiyun Say Y here if you want to use the Hierarchical Token Buckets (HTB) 69*4882a593Smuzhiyun packet scheduling algorithm. See 70*4882a593Smuzhiyun <http://luxik.cdi.cz/~devik/qos/htb/> for complete manual and 71*4882a593Smuzhiyun in-depth articles. 72*4882a593Smuzhiyun 73*4882a593Smuzhiyun HTB is very similar to CBQ regarding its goals however is has 74*4882a593Smuzhiyun different properties and different algorithm. 75*4882a593Smuzhiyun 76*4882a593Smuzhiyun To compile this code as a module, choose M here: the 77*4882a593Smuzhiyun module will be called sch_htb. 78*4882a593Smuzhiyun 79*4882a593Smuzhiyunconfig NET_SCH_HFSC 80*4882a593Smuzhiyun tristate "Hierarchical Fair Service Curve (HFSC)" 81*4882a593Smuzhiyun help 82*4882a593Smuzhiyun Say Y here if you want to use the Hierarchical Fair Service Curve 83*4882a593Smuzhiyun (HFSC) packet scheduling algorithm. 84*4882a593Smuzhiyun 85*4882a593Smuzhiyun To compile this code as a module, choose M here: the 86*4882a593Smuzhiyun module will be called sch_hfsc. 87*4882a593Smuzhiyun 88*4882a593Smuzhiyunconfig NET_SCH_ATM 89*4882a593Smuzhiyun tristate "ATM Virtual Circuits (ATM)" 90*4882a593Smuzhiyun depends on ATM 91*4882a593Smuzhiyun help 92*4882a593Smuzhiyun Say Y here if you want to use the ATM pseudo-scheduler. This 93*4882a593Smuzhiyun provides a framework for invoking classifiers, which in turn 94*4882a593Smuzhiyun select classes of this queuing discipline. Each class maps 95*4882a593Smuzhiyun the flow(s) it is handling to a given virtual circuit. 96*4882a593Smuzhiyun 97*4882a593Smuzhiyun See the top of <file:net/sched/sch_atm.c> for more details. 98*4882a593Smuzhiyun 99*4882a593Smuzhiyun To compile this code as a module, choose M here: the 100*4882a593Smuzhiyun module will be called sch_atm. 101*4882a593Smuzhiyun 102*4882a593Smuzhiyunconfig NET_SCH_PRIO 103*4882a593Smuzhiyun tristate "Multi Band Priority Queueing (PRIO)" 104*4882a593Smuzhiyun help 105*4882a593Smuzhiyun Say Y here if you want to use an n-band priority queue packet 106*4882a593Smuzhiyun scheduler. 107*4882a593Smuzhiyun 108*4882a593Smuzhiyun To compile this code as a module, choose M here: the 109*4882a593Smuzhiyun module will be called sch_prio. 110*4882a593Smuzhiyun 111*4882a593Smuzhiyunconfig NET_SCH_MULTIQ 112*4882a593Smuzhiyun tristate "Hardware Multiqueue-aware Multi Band Queuing (MULTIQ)" 113*4882a593Smuzhiyun help 114*4882a593Smuzhiyun Say Y here if you want to use an n-band queue packet scheduler 115*4882a593Smuzhiyun to support devices that have multiple hardware transmit queues. 116*4882a593Smuzhiyun 117*4882a593Smuzhiyun To compile this code as a module, choose M here: the 118*4882a593Smuzhiyun module will be called sch_multiq. 119*4882a593Smuzhiyun 120*4882a593Smuzhiyunconfig NET_SCH_RED 121*4882a593Smuzhiyun tristate "Random Early Detection (RED)" 122*4882a593Smuzhiyun help 123*4882a593Smuzhiyun Say Y here if you want to use the Random Early Detection (RED) 124*4882a593Smuzhiyun packet scheduling algorithm. 125*4882a593Smuzhiyun 126*4882a593Smuzhiyun See the top of <file:net/sched/sch_red.c> for more details. 127*4882a593Smuzhiyun 128*4882a593Smuzhiyun To compile this code as a module, choose M here: the 129*4882a593Smuzhiyun module will be called sch_red. 130*4882a593Smuzhiyun 131*4882a593Smuzhiyunconfig NET_SCH_SFB 132*4882a593Smuzhiyun tristate "Stochastic Fair Blue (SFB)" 133*4882a593Smuzhiyun help 134*4882a593Smuzhiyun Say Y here if you want to use the Stochastic Fair Blue (SFB) 135*4882a593Smuzhiyun packet scheduling algorithm. 136*4882a593Smuzhiyun 137*4882a593Smuzhiyun See the top of <file:net/sched/sch_sfb.c> for more details. 138*4882a593Smuzhiyun 139*4882a593Smuzhiyun To compile this code as a module, choose M here: the 140*4882a593Smuzhiyun module will be called sch_sfb. 141*4882a593Smuzhiyun 142*4882a593Smuzhiyunconfig NET_SCH_SFQ 143*4882a593Smuzhiyun tristate "Stochastic Fairness Queueing (SFQ)" 144*4882a593Smuzhiyun help 145*4882a593Smuzhiyun Say Y here if you want to use the Stochastic Fairness Queueing (SFQ) 146*4882a593Smuzhiyun packet scheduling algorithm. 147*4882a593Smuzhiyun 148*4882a593Smuzhiyun See the top of <file:net/sched/sch_sfq.c> for more details. 149*4882a593Smuzhiyun 150*4882a593Smuzhiyun To compile this code as a module, choose M here: the 151*4882a593Smuzhiyun module will be called sch_sfq. 152*4882a593Smuzhiyun 153*4882a593Smuzhiyunconfig NET_SCH_TEQL 154*4882a593Smuzhiyun tristate "True Link Equalizer (TEQL)" 155*4882a593Smuzhiyun help 156*4882a593Smuzhiyun Say Y here if you want to use the True Link Equalizer (TLE) packet 157*4882a593Smuzhiyun scheduling algorithm. This queueing discipline allows the combination 158*4882a593Smuzhiyun of several physical devices into one virtual device. 159*4882a593Smuzhiyun 160*4882a593Smuzhiyun See the top of <file:net/sched/sch_teql.c> for more details. 161*4882a593Smuzhiyun 162*4882a593Smuzhiyun To compile this code as a module, choose M here: the 163*4882a593Smuzhiyun module will be called sch_teql. 164*4882a593Smuzhiyun 165*4882a593Smuzhiyunconfig NET_SCH_TBF 166*4882a593Smuzhiyun tristate "Token Bucket Filter (TBF)" 167*4882a593Smuzhiyun help 168*4882a593Smuzhiyun Say Y here if you want to use the Token Bucket Filter (TBF) packet 169*4882a593Smuzhiyun scheduling algorithm. 170*4882a593Smuzhiyun 171*4882a593Smuzhiyun See the top of <file:net/sched/sch_tbf.c> for more details. 172*4882a593Smuzhiyun 173*4882a593Smuzhiyun To compile this code as a module, choose M here: the 174*4882a593Smuzhiyun module will be called sch_tbf. 175*4882a593Smuzhiyun 176*4882a593Smuzhiyunconfig NET_SCH_CBS 177*4882a593Smuzhiyun tristate "Credit Based Shaper (CBS)" 178*4882a593Smuzhiyun help 179*4882a593Smuzhiyun Say Y here if you want to use the Credit Based Shaper (CBS) packet 180*4882a593Smuzhiyun scheduling algorithm. 181*4882a593Smuzhiyun 182*4882a593Smuzhiyun See the top of <file:net/sched/sch_cbs.c> for more details. 183*4882a593Smuzhiyun 184*4882a593Smuzhiyun To compile this code as a module, choose M here: the 185*4882a593Smuzhiyun module will be called sch_cbs. 186*4882a593Smuzhiyun 187*4882a593Smuzhiyunconfig NET_SCH_ETF 188*4882a593Smuzhiyun tristate "Earliest TxTime First (ETF)" 189*4882a593Smuzhiyun help 190*4882a593Smuzhiyun Say Y here if you want to use the Earliest TxTime First (ETF) packet 191*4882a593Smuzhiyun scheduling algorithm. 192*4882a593Smuzhiyun 193*4882a593Smuzhiyun See the top of <file:net/sched/sch_etf.c> for more details. 194*4882a593Smuzhiyun 195*4882a593Smuzhiyun To compile this code as a module, choose M here: the 196*4882a593Smuzhiyun module will be called sch_etf. 197*4882a593Smuzhiyun 198*4882a593Smuzhiyunconfig NET_SCH_TAPRIO 199*4882a593Smuzhiyun tristate "Time Aware Priority (taprio) Scheduler" 200*4882a593Smuzhiyun help 201*4882a593Smuzhiyun Say Y here if you want to use the Time Aware Priority (taprio) packet 202*4882a593Smuzhiyun scheduling algorithm. 203*4882a593Smuzhiyun 204*4882a593Smuzhiyun See the top of <file:net/sched/sch_taprio.c> for more details. 205*4882a593Smuzhiyun 206*4882a593Smuzhiyun To compile this code as a module, choose M here: the 207*4882a593Smuzhiyun module will be called sch_taprio. 208*4882a593Smuzhiyun 209*4882a593Smuzhiyunconfig NET_SCH_GRED 210*4882a593Smuzhiyun tristate "Generic Random Early Detection (GRED)" 211*4882a593Smuzhiyun help 212*4882a593Smuzhiyun Say Y here if you want to use the Generic Random Early Detection 213*4882a593Smuzhiyun (GRED) packet scheduling algorithm for some of your network devices 214*4882a593Smuzhiyun (see the top of <file:net/sched/sch_red.c> for details and 215*4882a593Smuzhiyun references about the algorithm). 216*4882a593Smuzhiyun 217*4882a593Smuzhiyun To compile this code as a module, choose M here: the 218*4882a593Smuzhiyun module will be called sch_gred. 219*4882a593Smuzhiyun 220*4882a593Smuzhiyunconfig NET_SCH_DSMARK 221*4882a593Smuzhiyun tristate "Differentiated Services marker (DSMARK)" 222*4882a593Smuzhiyun help 223*4882a593Smuzhiyun Say Y if you want to schedule packets according to the 224*4882a593Smuzhiyun Differentiated Services architecture proposed in RFC 2475. 225*4882a593Smuzhiyun Technical information on this method, with pointers to associated 226*4882a593Smuzhiyun RFCs, is available at <http://www.gta.ufrj.br/diffserv/>. 227*4882a593Smuzhiyun 228*4882a593Smuzhiyun To compile this code as a module, choose M here: the 229*4882a593Smuzhiyun module will be called sch_dsmark. 230*4882a593Smuzhiyun 231*4882a593Smuzhiyunconfig NET_SCH_NETEM 232*4882a593Smuzhiyun tristate "Network emulator (NETEM)" 233*4882a593Smuzhiyun help 234*4882a593Smuzhiyun Say Y if you want to emulate network delay, loss, and packet 235*4882a593Smuzhiyun re-ordering. This is often useful to simulate networks when 236*4882a593Smuzhiyun testing applications or protocols. 237*4882a593Smuzhiyun 238*4882a593Smuzhiyun To compile this driver as a module, choose M here: the module 239*4882a593Smuzhiyun will be called sch_netem. 240*4882a593Smuzhiyun 241*4882a593Smuzhiyun If unsure, say N. 242*4882a593Smuzhiyun 243*4882a593Smuzhiyunconfig NET_SCH_DRR 244*4882a593Smuzhiyun tristate "Deficit Round Robin scheduler (DRR)" 245*4882a593Smuzhiyun help 246*4882a593Smuzhiyun Say Y here if you want to use the Deficit Round Robin (DRR) packet 247*4882a593Smuzhiyun scheduling algorithm. 248*4882a593Smuzhiyun 249*4882a593Smuzhiyun To compile this driver as a module, choose M here: the module 250*4882a593Smuzhiyun will be called sch_drr. 251*4882a593Smuzhiyun 252*4882a593Smuzhiyun If unsure, say N. 253*4882a593Smuzhiyun 254*4882a593Smuzhiyunconfig NET_SCH_MQPRIO 255*4882a593Smuzhiyun tristate "Multi-queue priority scheduler (MQPRIO)" 256*4882a593Smuzhiyun help 257*4882a593Smuzhiyun Say Y here if you want to use the Multi-queue Priority scheduler. 258*4882a593Smuzhiyun This scheduler allows QOS to be offloaded on NICs that have support 259*4882a593Smuzhiyun for offloading QOS schedulers. 260*4882a593Smuzhiyun 261*4882a593Smuzhiyun To compile this driver as a module, choose M here: the module will 262*4882a593Smuzhiyun be called sch_mqprio. 263*4882a593Smuzhiyun 264*4882a593Smuzhiyun If unsure, say N. 265*4882a593Smuzhiyun 266*4882a593Smuzhiyunconfig NET_SCH_SKBPRIO 267*4882a593Smuzhiyun tristate "SKB priority queue scheduler (SKBPRIO)" 268*4882a593Smuzhiyun help 269*4882a593Smuzhiyun Say Y here if you want to use the SKB priority queue 270*4882a593Smuzhiyun scheduler. This schedules packets according to skb->priority, 271*4882a593Smuzhiyun which is useful for request packets in DoS mitigation systems such 272*4882a593Smuzhiyun as Gatekeeper. 273*4882a593Smuzhiyun 274*4882a593Smuzhiyun To compile this driver as a module, choose M here: the module will 275*4882a593Smuzhiyun be called sch_skbprio. 276*4882a593Smuzhiyun 277*4882a593Smuzhiyun If unsure, say N. 278*4882a593Smuzhiyun 279*4882a593Smuzhiyunconfig NET_SCH_CHOKE 280*4882a593Smuzhiyun tristate "CHOose and Keep responsive flow scheduler (CHOKE)" 281*4882a593Smuzhiyun help 282*4882a593Smuzhiyun Say Y here if you want to use the CHOKe packet scheduler (CHOose 283*4882a593Smuzhiyun and Keep for responsive flows, CHOose and Kill for unresponsive 284*4882a593Smuzhiyun flows). This is a variation of RED which trys to penalize flows 285*4882a593Smuzhiyun that monopolize the queue. 286*4882a593Smuzhiyun 287*4882a593Smuzhiyun To compile this code as a module, choose M here: the 288*4882a593Smuzhiyun module will be called sch_choke. 289*4882a593Smuzhiyun 290*4882a593Smuzhiyunconfig NET_SCH_QFQ 291*4882a593Smuzhiyun tristate "Quick Fair Queueing scheduler (QFQ)" 292*4882a593Smuzhiyun help 293*4882a593Smuzhiyun Say Y here if you want to use the Quick Fair Queueing Scheduler (QFQ) 294*4882a593Smuzhiyun packet scheduling algorithm. 295*4882a593Smuzhiyun 296*4882a593Smuzhiyun To compile this driver as a module, choose M here: the module 297*4882a593Smuzhiyun will be called sch_qfq. 298*4882a593Smuzhiyun 299*4882a593Smuzhiyun If unsure, say N. 300*4882a593Smuzhiyun 301*4882a593Smuzhiyunconfig NET_SCH_CODEL 302*4882a593Smuzhiyun tristate "Controlled Delay AQM (CODEL)" 303*4882a593Smuzhiyun help 304*4882a593Smuzhiyun Say Y here if you want to use the Controlled Delay (CODEL) 305*4882a593Smuzhiyun packet scheduling algorithm. 306*4882a593Smuzhiyun 307*4882a593Smuzhiyun To compile this driver as a module, choose M here: the module 308*4882a593Smuzhiyun will be called sch_codel. 309*4882a593Smuzhiyun 310*4882a593Smuzhiyun If unsure, say N. 311*4882a593Smuzhiyun 312*4882a593Smuzhiyunconfig NET_SCH_FQ_CODEL 313*4882a593Smuzhiyun tristate "Fair Queue Controlled Delay AQM (FQ_CODEL)" 314*4882a593Smuzhiyun help 315*4882a593Smuzhiyun Say Y here if you want to use the FQ Controlled Delay (FQ_CODEL) 316*4882a593Smuzhiyun packet scheduling algorithm. 317*4882a593Smuzhiyun 318*4882a593Smuzhiyun To compile this driver as a module, choose M here: the module 319*4882a593Smuzhiyun will be called sch_fq_codel. 320*4882a593Smuzhiyun 321*4882a593Smuzhiyun If unsure, say N. 322*4882a593Smuzhiyun 323*4882a593Smuzhiyunconfig NET_SCH_CAKE 324*4882a593Smuzhiyun tristate "Common Applications Kept Enhanced (CAKE)" 325*4882a593Smuzhiyun help 326*4882a593Smuzhiyun Say Y here if you want to use the Common Applications Kept Enhanced 327*4882a593Smuzhiyun (CAKE) queue management algorithm. 328*4882a593Smuzhiyun 329*4882a593Smuzhiyun To compile this driver as a module, choose M here: the module 330*4882a593Smuzhiyun will be called sch_cake. 331*4882a593Smuzhiyun 332*4882a593Smuzhiyun If unsure, say N. 333*4882a593Smuzhiyun 334*4882a593Smuzhiyunconfig NET_SCH_FQ 335*4882a593Smuzhiyun tristate "Fair Queue" 336*4882a593Smuzhiyun help 337*4882a593Smuzhiyun Say Y here if you want to use the FQ packet scheduling algorithm. 338*4882a593Smuzhiyun 339*4882a593Smuzhiyun FQ does flow separation, and is able to respect pacing requirements 340*4882a593Smuzhiyun set by TCP stack into sk->sk_pacing_rate (for localy generated 341*4882a593Smuzhiyun traffic) 342*4882a593Smuzhiyun 343*4882a593Smuzhiyun To compile this driver as a module, choose M here: the module 344*4882a593Smuzhiyun will be called sch_fq. 345*4882a593Smuzhiyun 346*4882a593Smuzhiyun If unsure, say N. 347*4882a593Smuzhiyun 348*4882a593Smuzhiyunconfig NET_SCH_HHF 349*4882a593Smuzhiyun tristate "Heavy-Hitter Filter (HHF)" 350*4882a593Smuzhiyun help 351*4882a593Smuzhiyun Say Y here if you want to use the Heavy-Hitter Filter (HHF) 352*4882a593Smuzhiyun packet scheduling algorithm. 353*4882a593Smuzhiyun 354*4882a593Smuzhiyun To compile this driver as a module, choose M here: the module 355*4882a593Smuzhiyun will be called sch_hhf. 356*4882a593Smuzhiyun 357*4882a593Smuzhiyunconfig NET_SCH_PIE 358*4882a593Smuzhiyun tristate "Proportional Integral controller Enhanced (PIE) scheduler" 359*4882a593Smuzhiyun help 360*4882a593Smuzhiyun Say Y here if you want to use the Proportional Integral controller 361*4882a593Smuzhiyun Enhanced scheduler packet scheduling algorithm. 362*4882a593Smuzhiyun For more information, please see https://tools.ietf.org/html/rfc8033 363*4882a593Smuzhiyun 364*4882a593Smuzhiyun To compile this driver as a module, choose M here: the module 365*4882a593Smuzhiyun will be called sch_pie. 366*4882a593Smuzhiyun 367*4882a593Smuzhiyun If unsure, say N. 368*4882a593Smuzhiyun 369*4882a593Smuzhiyunconfig NET_SCH_FQ_PIE 370*4882a593Smuzhiyun depends on NET_SCH_PIE 371*4882a593Smuzhiyun tristate "Flow Queue Proportional Integral controller Enhanced (FQ-PIE)" 372*4882a593Smuzhiyun help 373*4882a593Smuzhiyun Say Y here if you want to use the Flow Queue Proportional Integral 374*4882a593Smuzhiyun controller Enhanced (FQ-PIE) packet scheduling algorithm. 375*4882a593Smuzhiyun For more information, please see https://tools.ietf.org/html/rfc8033 376*4882a593Smuzhiyun 377*4882a593Smuzhiyun To compile this driver as a module, choose M here: the module 378*4882a593Smuzhiyun will be called sch_fq_pie. 379*4882a593Smuzhiyun 380*4882a593Smuzhiyun If unsure, say N. 381*4882a593Smuzhiyun 382*4882a593Smuzhiyunconfig NET_SCH_INGRESS 383*4882a593Smuzhiyun tristate "Ingress/classifier-action Qdisc" 384*4882a593Smuzhiyun depends on NET_CLS_ACT 385*4882a593Smuzhiyun select NET_INGRESS 386*4882a593Smuzhiyun select NET_EGRESS 387*4882a593Smuzhiyun help 388*4882a593Smuzhiyun Say Y here if you want to use classifiers for incoming and/or outgoing 389*4882a593Smuzhiyun packets. This qdisc doesn't do anything else besides running classifiers, 390*4882a593Smuzhiyun which can also have actions attached to them. In case of outgoing packets, 391*4882a593Smuzhiyun classifiers that this qdisc holds are executed in the transmit path 392*4882a593Smuzhiyun before real enqueuing to an egress qdisc happens. 393*4882a593Smuzhiyun 394*4882a593Smuzhiyun If unsure, say Y. 395*4882a593Smuzhiyun 396*4882a593Smuzhiyun To compile this code as a module, choose M here: the module will be 397*4882a593Smuzhiyun called sch_ingress with alias of sch_clsact. 398*4882a593Smuzhiyun 399*4882a593Smuzhiyunconfig NET_SCH_PLUG 400*4882a593Smuzhiyun tristate "Plug network traffic until release (PLUG)" 401*4882a593Smuzhiyun help 402*4882a593Smuzhiyun 403*4882a593Smuzhiyun This queuing discipline allows userspace to plug/unplug a network 404*4882a593Smuzhiyun output queue, using the netlink interface. When it receives an 405*4882a593Smuzhiyun enqueue command it inserts a plug into the outbound queue that 406*4882a593Smuzhiyun causes following packets to enqueue until a dequeue command arrives 407*4882a593Smuzhiyun over netlink, causing the plug to be removed and resuming the normal 408*4882a593Smuzhiyun packet flow. 409*4882a593Smuzhiyun 410*4882a593Smuzhiyun This module also provides a generic "network output buffering" 411*4882a593Smuzhiyun functionality (aka output commit), wherein upon arrival of a dequeue 412*4882a593Smuzhiyun command, only packets up to the first plug are released for delivery. 413*4882a593Smuzhiyun The Remus HA project uses this module to enable speculative execution 414*4882a593Smuzhiyun of virtual machines by allowing the generated network output to be rolled 415*4882a593Smuzhiyun back if needed. 416*4882a593Smuzhiyun 417*4882a593Smuzhiyun For more information, please refer to <http://wiki.xenproject.org/wiki/Remus> 418*4882a593Smuzhiyun 419*4882a593Smuzhiyun Say Y here if you are using this kernel for Xen dom0 and 420*4882a593Smuzhiyun want to protect Xen guests with Remus. 421*4882a593Smuzhiyun 422*4882a593Smuzhiyun To compile this code as a module, choose M here: the 423*4882a593Smuzhiyun module will be called sch_plug. 424*4882a593Smuzhiyun 425*4882a593Smuzhiyunconfig NET_SCH_ETS 426*4882a593Smuzhiyun tristate "Enhanced transmission selection scheduler (ETS)" 427*4882a593Smuzhiyun help 428*4882a593Smuzhiyun The Enhanced Transmission Selection scheduler is a classful 429*4882a593Smuzhiyun queuing discipline that merges functionality of PRIO and DRR 430*4882a593Smuzhiyun qdiscs in one scheduler. ETS makes it easy to configure a set of 431*4882a593Smuzhiyun strict and bandwidth-sharing bands to implement the transmission 432*4882a593Smuzhiyun selection described in 802.1Qaz. 433*4882a593Smuzhiyun 434*4882a593Smuzhiyun Say Y here if you want to use the ETS packet scheduling 435*4882a593Smuzhiyun algorithm. 436*4882a593Smuzhiyun 437*4882a593Smuzhiyun To compile this driver as a module, choose M here: the module 438*4882a593Smuzhiyun will be called sch_ets. 439*4882a593Smuzhiyun 440*4882a593Smuzhiyun If unsure, say N. 441*4882a593Smuzhiyun 442*4882a593Smuzhiyunmenuconfig NET_SCH_DEFAULT 443*4882a593Smuzhiyun bool "Allow override default queue discipline" 444*4882a593Smuzhiyun help 445*4882a593Smuzhiyun Support for selection of default queuing discipline. 446*4882a593Smuzhiyun 447*4882a593Smuzhiyun Nearly all users can safely say no here, and the default 448*4882a593Smuzhiyun of pfifo_fast will be used. Many distributions already set 449*4882a593Smuzhiyun the default value via /proc/sys/net/core/default_qdisc. 450*4882a593Smuzhiyun 451*4882a593Smuzhiyun If unsure, say N. 452*4882a593Smuzhiyun 453*4882a593Smuzhiyunif NET_SCH_DEFAULT 454*4882a593Smuzhiyun 455*4882a593Smuzhiyunchoice 456*4882a593Smuzhiyun prompt "Default queuing discipline" 457*4882a593Smuzhiyun default DEFAULT_PFIFO_FAST 458*4882a593Smuzhiyun help 459*4882a593Smuzhiyun Select the queueing discipline that will be used by default 460*4882a593Smuzhiyun for all network devices. 461*4882a593Smuzhiyun 462*4882a593Smuzhiyun config DEFAULT_FQ 463*4882a593Smuzhiyun bool "Fair Queue" if NET_SCH_FQ 464*4882a593Smuzhiyun 465*4882a593Smuzhiyun config DEFAULT_CODEL 466*4882a593Smuzhiyun bool "Controlled Delay" if NET_SCH_CODEL 467*4882a593Smuzhiyun 468*4882a593Smuzhiyun config DEFAULT_FQ_CODEL 469*4882a593Smuzhiyun bool "Fair Queue Controlled Delay" if NET_SCH_FQ_CODEL 470*4882a593Smuzhiyun 471*4882a593Smuzhiyun config DEFAULT_FQ_PIE 472*4882a593Smuzhiyun bool "Flow Queue Proportional Integral controller Enhanced" if NET_SCH_FQ_PIE 473*4882a593Smuzhiyun 474*4882a593Smuzhiyun config DEFAULT_SFQ 475*4882a593Smuzhiyun bool "Stochastic Fair Queue" if NET_SCH_SFQ 476*4882a593Smuzhiyun 477*4882a593Smuzhiyun config DEFAULT_PFIFO_FAST 478*4882a593Smuzhiyun bool "Priority FIFO Fast" 479*4882a593Smuzhiyunendchoice 480*4882a593Smuzhiyun 481*4882a593Smuzhiyunconfig DEFAULT_NET_SCH 482*4882a593Smuzhiyun string 483*4882a593Smuzhiyun default "pfifo_fast" if DEFAULT_PFIFO_FAST 484*4882a593Smuzhiyun default "fq" if DEFAULT_FQ 485*4882a593Smuzhiyun default "fq_codel" if DEFAULT_FQ_CODEL 486*4882a593Smuzhiyun default "fq_pie" if DEFAULT_FQ_PIE 487*4882a593Smuzhiyun default "sfq" if DEFAULT_SFQ 488*4882a593Smuzhiyun default "pfifo_fast" 489*4882a593Smuzhiyunendif 490*4882a593Smuzhiyun 491*4882a593Smuzhiyuncomment "Classification" 492*4882a593Smuzhiyun 493*4882a593Smuzhiyunconfig NET_CLS 494*4882a593Smuzhiyun bool 495*4882a593Smuzhiyun 496*4882a593Smuzhiyunconfig NET_CLS_BASIC 497*4882a593Smuzhiyun tristate "Elementary classification (BASIC)" 498*4882a593Smuzhiyun select NET_CLS 499*4882a593Smuzhiyun help 500*4882a593Smuzhiyun Say Y here if you want to be able to classify packets using 501*4882a593Smuzhiyun only extended matches and actions. 502*4882a593Smuzhiyun 503*4882a593Smuzhiyun To compile this code as a module, choose M here: the 504*4882a593Smuzhiyun module will be called cls_basic. 505*4882a593Smuzhiyun 506*4882a593Smuzhiyunconfig NET_CLS_TCINDEX 507*4882a593Smuzhiyun tristate "Traffic-Control Index (TCINDEX)" 508*4882a593Smuzhiyun select NET_CLS 509*4882a593Smuzhiyun help 510*4882a593Smuzhiyun Say Y here if you want to be able to classify packets based on 511*4882a593Smuzhiyun traffic control indices. You will want this feature if you want 512*4882a593Smuzhiyun to implement Differentiated Services together with DSMARK. 513*4882a593Smuzhiyun 514*4882a593Smuzhiyun To compile this code as a module, choose M here: the 515*4882a593Smuzhiyun module will be called cls_tcindex. 516*4882a593Smuzhiyun 517*4882a593Smuzhiyunconfig NET_CLS_ROUTE4 518*4882a593Smuzhiyun tristate "Routing decision (ROUTE)" 519*4882a593Smuzhiyun depends on INET 520*4882a593Smuzhiyun select IP_ROUTE_CLASSID 521*4882a593Smuzhiyun select NET_CLS 522*4882a593Smuzhiyun help 523*4882a593Smuzhiyun If you say Y here, you will be able to classify packets 524*4882a593Smuzhiyun according to the route table entry they matched. 525*4882a593Smuzhiyun 526*4882a593Smuzhiyun To compile this code as a module, choose M here: the 527*4882a593Smuzhiyun module will be called cls_route. 528*4882a593Smuzhiyun 529*4882a593Smuzhiyunconfig NET_CLS_FW 530*4882a593Smuzhiyun tristate "Netfilter mark (FW)" 531*4882a593Smuzhiyun select NET_CLS 532*4882a593Smuzhiyun help 533*4882a593Smuzhiyun If you say Y here, you will be able to classify packets 534*4882a593Smuzhiyun according to netfilter/firewall marks. 535*4882a593Smuzhiyun 536*4882a593Smuzhiyun To compile this code as a module, choose M here: the 537*4882a593Smuzhiyun module will be called cls_fw. 538*4882a593Smuzhiyun 539*4882a593Smuzhiyunconfig NET_CLS_U32 540*4882a593Smuzhiyun tristate "Universal 32bit comparisons w/ hashing (U32)" 541*4882a593Smuzhiyun select NET_CLS 542*4882a593Smuzhiyun help 543*4882a593Smuzhiyun Say Y here to be able to classify packets using a universal 544*4882a593Smuzhiyun 32bit pieces based comparison scheme. 545*4882a593Smuzhiyun 546*4882a593Smuzhiyun To compile this code as a module, choose M here: the 547*4882a593Smuzhiyun module will be called cls_u32. 548*4882a593Smuzhiyun 549*4882a593Smuzhiyunconfig CLS_U32_PERF 550*4882a593Smuzhiyun bool "Performance counters support" 551*4882a593Smuzhiyun depends on NET_CLS_U32 552*4882a593Smuzhiyun help 553*4882a593Smuzhiyun Say Y here to make u32 gather additional statistics useful for 554*4882a593Smuzhiyun fine tuning u32 classifiers. 555*4882a593Smuzhiyun 556*4882a593Smuzhiyunconfig CLS_U32_MARK 557*4882a593Smuzhiyun bool "Netfilter marks support" 558*4882a593Smuzhiyun depends on NET_CLS_U32 559*4882a593Smuzhiyun help 560*4882a593Smuzhiyun Say Y here to be able to use netfilter marks as u32 key. 561*4882a593Smuzhiyun 562*4882a593Smuzhiyunconfig NET_CLS_RSVP 563*4882a593Smuzhiyun tristate "IPv4 Resource Reservation Protocol (RSVP)" 564*4882a593Smuzhiyun select NET_CLS 565*4882a593Smuzhiyun help 566*4882a593Smuzhiyun The Resource Reservation Protocol (RSVP) permits end systems to 567*4882a593Smuzhiyun request a minimum and maximum data flow rate for a connection; this 568*4882a593Smuzhiyun is important for real time data such as streaming sound or video. 569*4882a593Smuzhiyun 570*4882a593Smuzhiyun Say Y here if you want to be able to classify outgoing packets based 571*4882a593Smuzhiyun on their RSVP requests. 572*4882a593Smuzhiyun 573*4882a593Smuzhiyun To compile this code as a module, choose M here: the 574*4882a593Smuzhiyun module will be called cls_rsvp. 575*4882a593Smuzhiyun 576*4882a593Smuzhiyunconfig NET_CLS_RSVP6 577*4882a593Smuzhiyun tristate "IPv6 Resource Reservation Protocol (RSVP6)" 578*4882a593Smuzhiyun select NET_CLS 579*4882a593Smuzhiyun help 580*4882a593Smuzhiyun The Resource Reservation Protocol (RSVP) permits end systems to 581*4882a593Smuzhiyun request a minimum and maximum data flow rate for a connection; this 582*4882a593Smuzhiyun is important for real time data such as streaming sound or video. 583*4882a593Smuzhiyun 584*4882a593Smuzhiyun Say Y here if you want to be able to classify outgoing packets based 585*4882a593Smuzhiyun on their RSVP requests and you are using the IPv6 protocol. 586*4882a593Smuzhiyun 587*4882a593Smuzhiyun To compile this code as a module, choose M here: the 588*4882a593Smuzhiyun module will be called cls_rsvp6. 589*4882a593Smuzhiyun 590*4882a593Smuzhiyunconfig NET_CLS_FLOW 591*4882a593Smuzhiyun tristate "Flow classifier" 592*4882a593Smuzhiyun select NET_CLS 593*4882a593Smuzhiyun help 594*4882a593Smuzhiyun If you say Y here, you will be able to classify packets based on 595*4882a593Smuzhiyun a configurable combination of packet keys. This is mostly useful 596*4882a593Smuzhiyun in combination with SFQ. 597*4882a593Smuzhiyun 598*4882a593Smuzhiyun To compile this code as a module, choose M here: the 599*4882a593Smuzhiyun module will be called cls_flow. 600*4882a593Smuzhiyun 601*4882a593Smuzhiyunconfig NET_CLS_CGROUP 602*4882a593Smuzhiyun tristate "Control Group Classifier" 603*4882a593Smuzhiyun select NET_CLS 604*4882a593Smuzhiyun select CGROUP_NET_CLASSID 605*4882a593Smuzhiyun depends on CGROUPS 606*4882a593Smuzhiyun help 607*4882a593Smuzhiyun Say Y here if you want to classify packets based on the control 608*4882a593Smuzhiyun cgroup of their process. 609*4882a593Smuzhiyun 610*4882a593Smuzhiyun To compile this code as a module, choose M here: the 611*4882a593Smuzhiyun module will be called cls_cgroup. 612*4882a593Smuzhiyun 613*4882a593Smuzhiyunconfig NET_CLS_BPF 614*4882a593Smuzhiyun tristate "BPF-based classifier" 615*4882a593Smuzhiyun select NET_CLS 616*4882a593Smuzhiyun help 617*4882a593Smuzhiyun If you say Y here, you will be able to classify packets based on 618*4882a593Smuzhiyun programmable BPF (JIT'ed) filters as an alternative to ematches. 619*4882a593Smuzhiyun 620*4882a593Smuzhiyun To compile this code as a module, choose M here: the module will 621*4882a593Smuzhiyun be called cls_bpf. 622*4882a593Smuzhiyun 623*4882a593Smuzhiyunconfig NET_CLS_FLOWER 624*4882a593Smuzhiyun tristate "Flower classifier" 625*4882a593Smuzhiyun select NET_CLS 626*4882a593Smuzhiyun help 627*4882a593Smuzhiyun If you say Y here, you will be able to classify packets based on 628*4882a593Smuzhiyun a configurable combination of packet keys and masks. 629*4882a593Smuzhiyun 630*4882a593Smuzhiyun To compile this code as a module, choose M here: the module will 631*4882a593Smuzhiyun be called cls_flower. 632*4882a593Smuzhiyun 633*4882a593Smuzhiyunconfig NET_CLS_MATCHALL 634*4882a593Smuzhiyun tristate "Match-all classifier" 635*4882a593Smuzhiyun select NET_CLS 636*4882a593Smuzhiyun help 637*4882a593Smuzhiyun If you say Y here, you will be able to classify packets based on 638*4882a593Smuzhiyun nothing. Every packet will match. 639*4882a593Smuzhiyun 640*4882a593Smuzhiyun To compile this code as a module, choose M here: the module will 641*4882a593Smuzhiyun be called cls_matchall. 642*4882a593Smuzhiyun 643*4882a593Smuzhiyunconfig NET_EMATCH 644*4882a593Smuzhiyun bool "Extended Matches" 645*4882a593Smuzhiyun select NET_CLS 646*4882a593Smuzhiyun help 647*4882a593Smuzhiyun Say Y here if you want to use extended matches on top of classifiers 648*4882a593Smuzhiyun and select the extended matches below. 649*4882a593Smuzhiyun 650*4882a593Smuzhiyun Extended matches are small classification helpers not worth writing 651*4882a593Smuzhiyun a separate classifier for. 652*4882a593Smuzhiyun 653*4882a593Smuzhiyun A recent version of the iproute2 package is required to use 654*4882a593Smuzhiyun extended matches. 655*4882a593Smuzhiyun 656*4882a593Smuzhiyunconfig NET_EMATCH_STACK 657*4882a593Smuzhiyun int "Stack size" 658*4882a593Smuzhiyun depends on NET_EMATCH 659*4882a593Smuzhiyun default "32" 660*4882a593Smuzhiyun help 661*4882a593Smuzhiyun Size of the local stack variable used while evaluating the tree of 662*4882a593Smuzhiyun ematches. Limits the depth of the tree, i.e. the number of 663*4882a593Smuzhiyun encapsulated precedences. Every level requires 4 bytes of additional 664*4882a593Smuzhiyun stack space. 665*4882a593Smuzhiyun 666*4882a593Smuzhiyunconfig NET_EMATCH_CMP 667*4882a593Smuzhiyun tristate "Simple packet data comparison" 668*4882a593Smuzhiyun depends on NET_EMATCH 669*4882a593Smuzhiyun help 670*4882a593Smuzhiyun Say Y here if you want to be able to classify packets based on 671*4882a593Smuzhiyun simple packet data comparisons for 8, 16, and 32bit values. 672*4882a593Smuzhiyun 673*4882a593Smuzhiyun To compile this code as a module, choose M here: the 674*4882a593Smuzhiyun module will be called em_cmp. 675*4882a593Smuzhiyun 676*4882a593Smuzhiyunconfig NET_EMATCH_NBYTE 677*4882a593Smuzhiyun tristate "Multi byte comparison" 678*4882a593Smuzhiyun depends on NET_EMATCH 679*4882a593Smuzhiyun help 680*4882a593Smuzhiyun Say Y here if you want to be able to classify packets based on 681*4882a593Smuzhiyun multiple byte comparisons mainly useful for IPv6 address comparisons. 682*4882a593Smuzhiyun 683*4882a593Smuzhiyun To compile this code as a module, choose M here: the 684*4882a593Smuzhiyun module will be called em_nbyte. 685*4882a593Smuzhiyun 686*4882a593Smuzhiyunconfig NET_EMATCH_U32 687*4882a593Smuzhiyun tristate "U32 key" 688*4882a593Smuzhiyun depends on NET_EMATCH 689*4882a593Smuzhiyun help 690*4882a593Smuzhiyun Say Y here if you want to be able to classify packets using 691*4882a593Smuzhiyun the famous u32 key in combination with logic relations. 692*4882a593Smuzhiyun 693*4882a593Smuzhiyun To compile this code as a module, choose M here: the 694*4882a593Smuzhiyun module will be called em_u32. 695*4882a593Smuzhiyun 696*4882a593Smuzhiyunconfig NET_EMATCH_META 697*4882a593Smuzhiyun tristate "Metadata" 698*4882a593Smuzhiyun depends on NET_EMATCH 699*4882a593Smuzhiyun help 700*4882a593Smuzhiyun Say Y here if you want to be able to classify packets based on 701*4882a593Smuzhiyun metadata such as load average, netfilter attributes, socket 702*4882a593Smuzhiyun attributes and routing decisions. 703*4882a593Smuzhiyun 704*4882a593Smuzhiyun To compile this code as a module, choose M here: the 705*4882a593Smuzhiyun module will be called em_meta. 706*4882a593Smuzhiyun 707*4882a593Smuzhiyunconfig NET_EMATCH_TEXT 708*4882a593Smuzhiyun tristate "Textsearch" 709*4882a593Smuzhiyun depends on NET_EMATCH 710*4882a593Smuzhiyun select TEXTSEARCH 711*4882a593Smuzhiyun select TEXTSEARCH_KMP 712*4882a593Smuzhiyun select TEXTSEARCH_BM 713*4882a593Smuzhiyun select TEXTSEARCH_FSM 714*4882a593Smuzhiyun help 715*4882a593Smuzhiyun Say Y here if you want to be able to classify packets based on 716*4882a593Smuzhiyun textsearch comparisons. 717*4882a593Smuzhiyun 718*4882a593Smuzhiyun To compile this code as a module, choose M here: the 719*4882a593Smuzhiyun module will be called em_text. 720*4882a593Smuzhiyun 721*4882a593Smuzhiyunconfig NET_EMATCH_CANID 722*4882a593Smuzhiyun tristate "CAN Identifier" 723*4882a593Smuzhiyun depends on NET_EMATCH && (CAN=y || CAN=m) 724*4882a593Smuzhiyun help 725*4882a593Smuzhiyun Say Y here if you want to be able to classify CAN frames based 726*4882a593Smuzhiyun on CAN Identifier. 727*4882a593Smuzhiyun 728*4882a593Smuzhiyun To compile this code as a module, choose M here: the 729*4882a593Smuzhiyun module will be called em_canid. 730*4882a593Smuzhiyun 731*4882a593Smuzhiyunconfig NET_EMATCH_IPSET 732*4882a593Smuzhiyun tristate "IPset" 733*4882a593Smuzhiyun depends on NET_EMATCH && IP_SET 734*4882a593Smuzhiyun help 735*4882a593Smuzhiyun Say Y here if you want to be able to classify packets based on 736*4882a593Smuzhiyun ipset membership. 737*4882a593Smuzhiyun 738*4882a593Smuzhiyun To compile this code as a module, choose M here: the 739*4882a593Smuzhiyun module will be called em_ipset. 740*4882a593Smuzhiyun 741*4882a593Smuzhiyunconfig NET_EMATCH_IPT 742*4882a593Smuzhiyun tristate "IPtables Matches" 743*4882a593Smuzhiyun depends on NET_EMATCH && NETFILTER && NETFILTER_XTABLES 744*4882a593Smuzhiyun help 745*4882a593Smuzhiyun Say Y here to be able to classify packets based on iptables 746*4882a593Smuzhiyun matches. 747*4882a593Smuzhiyun Current supported match is "policy" which allows packet classification 748*4882a593Smuzhiyun based on IPsec policy that was used during decapsulation 749*4882a593Smuzhiyun 750*4882a593Smuzhiyun To compile this code as a module, choose M here: the 751*4882a593Smuzhiyun module will be called em_ipt. 752*4882a593Smuzhiyun 753*4882a593Smuzhiyunconfig NET_CLS_ACT 754*4882a593Smuzhiyun bool "Actions" 755*4882a593Smuzhiyun select NET_CLS 756*4882a593Smuzhiyun help 757*4882a593Smuzhiyun Say Y here if you want to use traffic control actions. Actions 758*4882a593Smuzhiyun get attached to classifiers and are invoked after a successful 759*4882a593Smuzhiyun classification. They are used to overwrite the classification 760*4882a593Smuzhiyun result, instantly drop or redirect packets, etc. 761*4882a593Smuzhiyun 762*4882a593Smuzhiyun A recent version of the iproute2 package is required to use 763*4882a593Smuzhiyun extended matches. 764*4882a593Smuzhiyun 765*4882a593Smuzhiyunconfig NET_ACT_POLICE 766*4882a593Smuzhiyun tristate "Traffic Policing" 767*4882a593Smuzhiyun depends on NET_CLS_ACT 768*4882a593Smuzhiyun help 769*4882a593Smuzhiyun Say Y here if you want to do traffic policing, i.e. strict 770*4882a593Smuzhiyun bandwidth limiting. This action replaces the existing policing 771*4882a593Smuzhiyun module. 772*4882a593Smuzhiyun 773*4882a593Smuzhiyun To compile this code as a module, choose M here: the 774*4882a593Smuzhiyun module will be called act_police. 775*4882a593Smuzhiyun 776*4882a593Smuzhiyunconfig NET_ACT_GACT 777*4882a593Smuzhiyun tristate "Generic actions" 778*4882a593Smuzhiyun depends on NET_CLS_ACT 779*4882a593Smuzhiyun help 780*4882a593Smuzhiyun Say Y here to take generic actions such as dropping and 781*4882a593Smuzhiyun accepting packets. 782*4882a593Smuzhiyun 783*4882a593Smuzhiyun To compile this code as a module, choose M here: the 784*4882a593Smuzhiyun module will be called act_gact. 785*4882a593Smuzhiyun 786*4882a593Smuzhiyunconfig GACT_PROB 787*4882a593Smuzhiyun bool "Probability support" 788*4882a593Smuzhiyun depends on NET_ACT_GACT 789*4882a593Smuzhiyun help 790*4882a593Smuzhiyun Say Y here to use the generic action randomly or deterministically. 791*4882a593Smuzhiyun 792*4882a593Smuzhiyunconfig NET_ACT_MIRRED 793*4882a593Smuzhiyun tristate "Redirecting and Mirroring" 794*4882a593Smuzhiyun depends on NET_CLS_ACT 795*4882a593Smuzhiyun help 796*4882a593Smuzhiyun Say Y here to allow packets to be mirrored or redirected to 797*4882a593Smuzhiyun other devices. 798*4882a593Smuzhiyun 799*4882a593Smuzhiyun To compile this code as a module, choose M here: the 800*4882a593Smuzhiyun module will be called act_mirred. 801*4882a593Smuzhiyun 802*4882a593Smuzhiyunconfig NET_ACT_SAMPLE 803*4882a593Smuzhiyun tristate "Traffic Sampling" 804*4882a593Smuzhiyun depends on NET_CLS_ACT 805*4882a593Smuzhiyun select PSAMPLE 806*4882a593Smuzhiyun help 807*4882a593Smuzhiyun Say Y here to allow packet sampling tc action. The packet sample 808*4882a593Smuzhiyun action consists of statistically choosing packets and sampling 809*4882a593Smuzhiyun them using the psample module. 810*4882a593Smuzhiyun 811*4882a593Smuzhiyun To compile this code as a module, choose M here: the 812*4882a593Smuzhiyun module will be called act_sample. 813*4882a593Smuzhiyun 814*4882a593Smuzhiyunconfig NET_ACT_IPT 815*4882a593Smuzhiyun tristate "IPtables targets" 816*4882a593Smuzhiyun depends on NET_CLS_ACT && NETFILTER && NETFILTER_XTABLES 817*4882a593Smuzhiyun help 818*4882a593Smuzhiyun Say Y here to be able to invoke iptables targets after successful 819*4882a593Smuzhiyun classification. 820*4882a593Smuzhiyun 821*4882a593Smuzhiyun To compile this code as a module, choose M here: the 822*4882a593Smuzhiyun module will be called act_ipt. 823*4882a593Smuzhiyun 824*4882a593Smuzhiyunconfig NET_ACT_NAT 825*4882a593Smuzhiyun tristate "Stateless NAT" 826*4882a593Smuzhiyun depends on NET_CLS_ACT 827*4882a593Smuzhiyun help 828*4882a593Smuzhiyun Say Y here to do stateless NAT on IPv4 packets. You should use 829*4882a593Smuzhiyun netfilter for NAT unless you know what you are doing. 830*4882a593Smuzhiyun 831*4882a593Smuzhiyun To compile this code as a module, choose M here: the 832*4882a593Smuzhiyun module will be called act_nat. 833*4882a593Smuzhiyun 834*4882a593Smuzhiyunconfig NET_ACT_PEDIT 835*4882a593Smuzhiyun tristate "Packet Editing" 836*4882a593Smuzhiyun depends on NET_CLS_ACT 837*4882a593Smuzhiyun help 838*4882a593Smuzhiyun Say Y here if you want to mangle the content of packets. 839*4882a593Smuzhiyun 840*4882a593Smuzhiyun To compile this code as a module, choose M here: the 841*4882a593Smuzhiyun module will be called act_pedit. 842*4882a593Smuzhiyun 843*4882a593Smuzhiyunconfig NET_ACT_SIMP 844*4882a593Smuzhiyun tristate "Simple Example (Debug)" 845*4882a593Smuzhiyun depends on NET_CLS_ACT 846*4882a593Smuzhiyun help 847*4882a593Smuzhiyun Say Y here to add a simple action for demonstration purposes. 848*4882a593Smuzhiyun It is meant as an example and for debugging purposes. It will 849*4882a593Smuzhiyun print a configured policy string followed by the packet count 850*4882a593Smuzhiyun to the console for every packet that passes by. 851*4882a593Smuzhiyun 852*4882a593Smuzhiyun If unsure, say N. 853*4882a593Smuzhiyun 854*4882a593Smuzhiyun To compile this code as a module, choose M here: the 855*4882a593Smuzhiyun module will be called act_simple. 856*4882a593Smuzhiyun 857*4882a593Smuzhiyunconfig NET_ACT_SKBEDIT 858*4882a593Smuzhiyun tristate "SKB Editing" 859*4882a593Smuzhiyun depends on NET_CLS_ACT 860*4882a593Smuzhiyun help 861*4882a593Smuzhiyun Say Y here to change skb priority or queue_mapping settings. 862*4882a593Smuzhiyun 863*4882a593Smuzhiyun If unsure, say N. 864*4882a593Smuzhiyun 865*4882a593Smuzhiyun To compile this code as a module, choose M here: the 866*4882a593Smuzhiyun module will be called act_skbedit. 867*4882a593Smuzhiyun 868*4882a593Smuzhiyunconfig NET_ACT_CSUM 869*4882a593Smuzhiyun tristate "Checksum Updating" 870*4882a593Smuzhiyun depends on NET_CLS_ACT && INET 871*4882a593Smuzhiyun select LIBCRC32C 872*4882a593Smuzhiyun help 873*4882a593Smuzhiyun Say Y here to update some common checksum after some direct 874*4882a593Smuzhiyun packet alterations. 875*4882a593Smuzhiyun 876*4882a593Smuzhiyun To compile this code as a module, choose M here: the 877*4882a593Smuzhiyun module will be called act_csum. 878*4882a593Smuzhiyun 879*4882a593Smuzhiyunconfig NET_ACT_MPLS 880*4882a593Smuzhiyun tristate "MPLS manipulation" 881*4882a593Smuzhiyun depends on NET_CLS_ACT 882*4882a593Smuzhiyun help 883*4882a593Smuzhiyun Say Y here to push or pop MPLS headers. 884*4882a593Smuzhiyun 885*4882a593Smuzhiyun If unsure, say N. 886*4882a593Smuzhiyun 887*4882a593Smuzhiyun To compile this code as a module, choose M here: the 888*4882a593Smuzhiyun module will be called act_mpls. 889*4882a593Smuzhiyun 890*4882a593Smuzhiyunconfig NET_ACT_VLAN 891*4882a593Smuzhiyun tristate "Vlan manipulation" 892*4882a593Smuzhiyun depends on NET_CLS_ACT 893*4882a593Smuzhiyun help 894*4882a593Smuzhiyun Say Y here to push or pop vlan headers. 895*4882a593Smuzhiyun 896*4882a593Smuzhiyun If unsure, say N. 897*4882a593Smuzhiyun 898*4882a593Smuzhiyun To compile this code as a module, choose M here: the 899*4882a593Smuzhiyun module will be called act_vlan. 900*4882a593Smuzhiyun 901*4882a593Smuzhiyunconfig NET_ACT_BPF 902*4882a593Smuzhiyun tristate "BPF based action" 903*4882a593Smuzhiyun depends on NET_CLS_ACT 904*4882a593Smuzhiyun help 905*4882a593Smuzhiyun Say Y here to execute BPF code on packets. The BPF code will decide 906*4882a593Smuzhiyun if the packet should be dropped or not. 907*4882a593Smuzhiyun 908*4882a593Smuzhiyun If unsure, say N. 909*4882a593Smuzhiyun 910*4882a593Smuzhiyun To compile this code as a module, choose M here: the 911*4882a593Smuzhiyun module will be called act_bpf. 912*4882a593Smuzhiyun 913*4882a593Smuzhiyunconfig NET_ACT_CONNMARK 914*4882a593Smuzhiyun tristate "Netfilter Connection Mark Retriever" 915*4882a593Smuzhiyun depends on NET_CLS_ACT && NETFILTER 916*4882a593Smuzhiyun depends on NF_CONNTRACK && NF_CONNTRACK_MARK 917*4882a593Smuzhiyun help 918*4882a593Smuzhiyun Say Y here to allow retrieving of conn mark 919*4882a593Smuzhiyun 920*4882a593Smuzhiyun If unsure, say N. 921*4882a593Smuzhiyun 922*4882a593Smuzhiyun To compile this code as a module, choose M here: the 923*4882a593Smuzhiyun module will be called act_connmark. 924*4882a593Smuzhiyun 925*4882a593Smuzhiyunconfig NET_ACT_CTINFO 926*4882a593Smuzhiyun tristate "Netfilter Connection Mark Actions" 927*4882a593Smuzhiyun depends on NET_CLS_ACT && NETFILTER 928*4882a593Smuzhiyun depends on NF_CONNTRACK && NF_CONNTRACK_MARK 929*4882a593Smuzhiyun help 930*4882a593Smuzhiyun Say Y here to allow transfer of a connmark stored information. 931*4882a593Smuzhiyun Current actions transfer connmark stored DSCP into 932*4882a593Smuzhiyun ipv4/v6 diffserv and/or to transfer connmark to packet 933*4882a593Smuzhiyun mark. Both are useful for restoring egress based marks 934*4882a593Smuzhiyun back onto ingress connections for qdisc priority mapping 935*4882a593Smuzhiyun purposes. 936*4882a593Smuzhiyun 937*4882a593Smuzhiyun If unsure, say N. 938*4882a593Smuzhiyun 939*4882a593Smuzhiyun To compile this code as a module, choose M here: the 940*4882a593Smuzhiyun module will be called act_ctinfo. 941*4882a593Smuzhiyun 942*4882a593Smuzhiyunconfig NET_ACT_SKBMOD 943*4882a593Smuzhiyun tristate "skb data modification action" 944*4882a593Smuzhiyun depends on NET_CLS_ACT 945*4882a593Smuzhiyun help 946*4882a593Smuzhiyun Say Y here to allow modification of skb data 947*4882a593Smuzhiyun 948*4882a593Smuzhiyun If unsure, say N. 949*4882a593Smuzhiyun 950*4882a593Smuzhiyun To compile this code as a module, choose M here: the 951*4882a593Smuzhiyun module will be called act_skbmod. 952*4882a593Smuzhiyun 953*4882a593Smuzhiyunconfig NET_ACT_IFE 954*4882a593Smuzhiyun tristate "Inter-FE action based on IETF ForCES InterFE LFB" 955*4882a593Smuzhiyun depends on NET_CLS_ACT 956*4882a593Smuzhiyun select NET_IFE 957*4882a593Smuzhiyun help 958*4882a593Smuzhiyun Say Y here to allow for sourcing and terminating metadata 959*4882a593Smuzhiyun For details refer to netdev01 paper: 960*4882a593Smuzhiyun "Distributing Linux Traffic Control Classifier-Action Subsystem" 961*4882a593Smuzhiyun Authors: Jamal Hadi Salim and Damascene M. Joachimpillai 962*4882a593Smuzhiyun 963*4882a593Smuzhiyun To compile this code as a module, choose M here: the 964*4882a593Smuzhiyun module will be called act_ife. 965*4882a593Smuzhiyun 966*4882a593Smuzhiyunconfig NET_ACT_TUNNEL_KEY 967*4882a593Smuzhiyun tristate "IP tunnel metadata manipulation" 968*4882a593Smuzhiyun depends on NET_CLS_ACT 969*4882a593Smuzhiyun help 970*4882a593Smuzhiyun Say Y here to set/release ip tunnel metadata. 971*4882a593Smuzhiyun 972*4882a593Smuzhiyun If unsure, say N. 973*4882a593Smuzhiyun 974*4882a593Smuzhiyun To compile this code as a module, choose M here: the 975*4882a593Smuzhiyun module will be called act_tunnel_key. 976*4882a593Smuzhiyun 977*4882a593Smuzhiyunconfig NET_ACT_CT 978*4882a593Smuzhiyun tristate "connection tracking tc action" 979*4882a593Smuzhiyun depends on NET_CLS_ACT && NF_CONNTRACK && (!NF_NAT || NF_NAT) && NF_FLOW_TABLE 980*4882a593Smuzhiyun help 981*4882a593Smuzhiyun Say Y here to allow sending the packets to conntrack module. 982*4882a593Smuzhiyun 983*4882a593Smuzhiyun If unsure, say N. 984*4882a593Smuzhiyun 985*4882a593Smuzhiyun To compile this code as a module, choose M here: the 986*4882a593Smuzhiyun module will be called act_ct. 987*4882a593Smuzhiyun 988*4882a593Smuzhiyunconfig NET_ACT_GATE 989*4882a593Smuzhiyun tristate "Frame gate entry list control tc action" 990*4882a593Smuzhiyun depends on NET_CLS_ACT 991*4882a593Smuzhiyun help 992*4882a593Smuzhiyun Say Y here to allow to control the ingress flow to be passed at 993*4882a593Smuzhiyun specific time slot and be dropped at other specific time slot by 994*4882a593Smuzhiyun the gate entry list. 995*4882a593Smuzhiyun 996*4882a593Smuzhiyun If unsure, say N. 997*4882a593Smuzhiyun To compile this code as a module, choose M here: the 998*4882a593Smuzhiyun module will be called act_gate. 999*4882a593Smuzhiyun 1000*4882a593Smuzhiyunconfig NET_IFE_SKBMARK 1001*4882a593Smuzhiyun tristate "Support to encoding decoding skb mark on IFE action" 1002*4882a593Smuzhiyun depends on NET_ACT_IFE 1003*4882a593Smuzhiyun 1004*4882a593Smuzhiyunconfig NET_IFE_SKBPRIO 1005*4882a593Smuzhiyun tristate "Support to encoding decoding skb prio on IFE action" 1006*4882a593Smuzhiyun depends on NET_ACT_IFE 1007*4882a593Smuzhiyun 1008*4882a593Smuzhiyunconfig NET_IFE_SKBTCINDEX 1009*4882a593Smuzhiyun tristate "Support to encoding decoding skb tcindex on IFE action" 1010*4882a593Smuzhiyun depends on NET_ACT_IFE 1011*4882a593Smuzhiyun 1012*4882a593Smuzhiyunconfig NET_TC_SKB_EXT 1013*4882a593Smuzhiyun bool "TC recirculation support" 1014*4882a593Smuzhiyun depends on NET_CLS_ACT 1015*4882a593Smuzhiyun select SKB_EXTENSIONS 1016*4882a593Smuzhiyun 1017*4882a593Smuzhiyun help 1018*4882a593Smuzhiyun Say Y here to allow tc chain misses to continue in OvS datapath in 1019*4882a593Smuzhiyun the correct recirc_id, and hardware chain misses to continue in 1020*4882a593Smuzhiyun the correct chain in tc software datapath. 1021*4882a593Smuzhiyun 1022*4882a593Smuzhiyun Say N here if you won't be using tc<->ovs offload or tc chains offload. 1023*4882a593Smuzhiyun 1024*4882a593Smuzhiyunendif # NET_SCHED 1025*4882a593Smuzhiyun 1026*4882a593Smuzhiyunconfig NET_SCH_FIFO 1027*4882a593Smuzhiyun bool 1028