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