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