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