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