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