18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only
28c2ecf20Sopenharmony_ci#
38c2ecf20Sopenharmony_ci# Traffic control configuration.
48c2ecf20Sopenharmony_ci#
58c2ecf20Sopenharmony_ci
68c2ecf20Sopenharmony_cimenuconfig NET_SCHED
78c2ecf20Sopenharmony_ci	bool "QoS and/or fair queueing"
88c2ecf20Sopenharmony_ci	select NET_SCH_FIFO
98c2ecf20Sopenharmony_ci	help
108c2ecf20Sopenharmony_ci	  When the kernel has several packets to send out over a network
118c2ecf20Sopenharmony_ci	  device, it has to decide which ones to send first, which ones to
128c2ecf20Sopenharmony_ci	  delay, and which ones to drop. This is the job of the queueing
138c2ecf20Sopenharmony_ci	  disciplines, several different algorithms for how to do this
148c2ecf20Sopenharmony_ci	  "fairly" have been proposed.
158c2ecf20Sopenharmony_ci
168c2ecf20Sopenharmony_ci	  If you say N here, you will get the standard packet scheduler, which
178c2ecf20Sopenharmony_ci	  is a FIFO (first come, first served). If you say Y here, you will be
188c2ecf20Sopenharmony_ci	  able to choose from among several alternative algorithms which can
198c2ecf20Sopenharmony_ci	  then be attached to different network devices. This is useful for
208c2ecf20Sopenharmony_ci	  example if some of your network devices are real time devices that
218c2ecf20Sopenharmony_ci	  need a certain minimum data flow rate, or if you need to limit the
228c2ecf20Sopenharmony_ci	  maximum data flow rate for traffic which matches specified criteria.
238c2ecf20Sopenharmony_ci	  This code is considered to be experimental.
248c2ecf20Sopenharmony_ci
258c2ecf20Sopenharmony_ci	  To administer these schedulers, you'll need the user-level utilities
268c2ecf20Sopenharmony_ci	  from the package iproute2+tc at
278c2ecf20Sopenharmony_ci	  <https://www.kernel.org/pub/linux/utils/net/iproute2/>.  That package
288c2ecf20Sopenharmony_ci	  also contains some documentation; for more, check out
298c2ecf20Sopenharmony_ci	  <http://www.linuxfoundation.org/collaborate/workgroups/networking/iproute2>.
308c2ecf20Sopenharmony_ci
318c2ecf20Sopenharmony_ci	  This Quality of Service (QoS) support will enable you to use
328c2ecf20Sopenharmony_ci	  Differentiated Services (diffserv) and Resource Reservation Protocol
338c2ecf20Sopenharmony_ci	  (RSVP) on your Linux router if you also say Y to the corresponding
348c2ecf20Sopenharmony_ci	  classifiers below.  Documentation and software is at
358c2ecf20Sopenharmony_ci	  <http://diffserv.sourceforge.net/>.
368c2ecf20Sopenharmony_ci
378c2ecf20Sopenharmony_ci	  If you say Y here and to "/proc file system" below, you will be able
388c2ecf20Sopenharmony_ci	  to read status information about packet schedulers from the file
398c2ecf20Sopenharmony_ci	  /proc/net/psched.
408c2ecf20Sopenharmony_ci
418c2ecf20Sopenharmony_ci	  The available schedulers are listed in the following questions; you
428c2ecf20Sopenharmony_ci	  can say Y to as many as you like. If unsure, say N now.
438c2ecf20Sopenharmony_ci
448c2ecf20Sopenharmony_ciif NET_SCHED
458c2ecf20Sopenharmony_ci
468c2ecf20Sopenharmony_cicomment "Queueing/Scheduling"
478c2ecf20Sopenharmony_ci
488c2ecf20Sopenharmony_ciconfig NET_SCH_CBQ
498c2ecf20Sopenharmony_ci	tristate "Class Based Queueing (CBQ)"
508c2ecf20Sopenharmony_ci	help
518c2ecf20Sopenharmony_ci	  Say Y here if you want to use the Class-Based Queueing (CBQ) packet
528c2ecf20Sopenharmony_ci	  scheduling algorithm. This algorithm classifies the waiting packets
538c2ecf20Sopenharmony_ci	  into a tree-like hierarchy of classes; the leaves of this tree are
548c2ecf20Sopenharmony_ci	  in turn scheduled by separate algorithms.
558c2ecf20Sopenharmony_ci
568c2ecf20Sopenharmony_ci	  See the top of <file:net/sched/sch_cbq.c> for more details.
578c2ecf20Sopenharmony_ci
588c2ecf20Sopenharmony_ci	  CBQ is a commonly used scheduler, so if you're unsure, you should
598c2ecf20Sopenharmony_ci	  say Y here. Then say Y to all the queueing algorithms below that you
608c2ecf20Sopenharmony_ci	  want to use as leaf disciplines.
618c2ecf20Sopenharmony_ci
628c2ecf20Sopenharmony_ci	  To compile this code as a module, choose M here: the
638c2ecf20Sopenharmony_ci	  module will be called sch_cbq.
648c2ecf20Sopenharmony_ci
658c2ecf20Sopenharmony_ciconfig NET_SCH_HTB
668c2ecf20Sopenharmony_ci	tristate "Hierarchical Token Bucket (HTB)"
678c2ecf20Sopenharmony_ci	help
688c2ecf20Sopenharmony_ci	  Say Y here if you want to use the Hierarchical Token Buckets (HTB)
698c2ecf20Sopenharmony_ci	  packet scheduling algorithm. See
708c2ecf20Sopenharmony_ci	  <http://luxik.cdi.cz/~devik/qos/htb/> for complete manual and
718c2ecf20Sopenharmony_ci	  in-depth articles.
728c2ecf20Sopenharmony_ci
738c2ecf20Sopenharmony_ci	  HTB is very similar to CBQ regarding its goals however is has
748c2ecf20Sopenharmony_ci	  different properties and different algorithm.
758c2ecf20Sopenharmony_ci
768c2ecf20Sopenharmony_ci	  To compile this code as a module, choose M here: the
778c2ecf20Sopenharmony_ci	  module will be called sch_htb.
788c2ecf20Sopenharmony_ci
798c2ecf20Sopenharmony_ciconfig NET_SCH_HFSC
808c2ecf20Sopenharmony_ci	tristate "Hierarchical Fair Service Curve (HFSC)"
818c2ecf20Sopenharmony_ci	help
828c2ecf20Sopenharmony_ci	  Say Y here if you want to use the Hierarchical Fair Service Curve
838c2ecf20Sopenharmony_ci	  (HFSC) packet scheduling algorithm.
848c2ecf20Sopenharmony_ci
858c2ecf20Sopenharmony_ci	  To compile this code as a module, choose M here: the
868c2ecf20Sopenharmony_ci	  module will be called sch_hfsc.
878c2ecf20Sopenharmony_ci
888c2ecf20Sopenharmony_ciconfig NET_SCH_ATM
898c2ecf20Sopenharmony_ci	tristate "ATM Virtual Circuits (ATM)"
908c2ecf20Sopenharmony_ci	depends on ATM
918c2ecf20Sopenharmony_ci	help
928c2ecf20Sopenharmony_ci	  Say Y here if you want to use the ATM pseudo-scheduler.  This
938c2ecf20Sopenharmony_ci	  provides a framework for invoking classifiers, which in turn
948c2ecf20Sopenharmony_ci	  select classes of this queuing discipline.  Each class maps
958c2ecf20Sopenharmony_ci	  the flow(s) it is handling to a given virtual circuit.
968c2ecf20Sopenharmony_ci
978c2ecf20Sopenharmony_ci	  See the top of <file:net/sched/sch_atm.c> for more details.
988c2ecf20Sopenharmony_ci
998c2ecf20Sopenharmony_ci	  To compile this code as a module, choose M here: the
1008c2ecf20Sopenharmony_ci	  module will be called sch_atm.
1018c2ecf20Sopenharmony_ci
1028c2ecf20Sopenharmony_ciconfig NET_SCH_PRIO
1038c2ecf20Sopenharmony_ci	tristate "Multi Band Priority Queueing (PRIO)"
1048c2ecf20Sopenharmony_ci	help
1058c2ecf20Sopenharmony_ci	  Say Y here if you want to use an n-band priority queue packet
1068c2ecf20Sopenharmony_ci	  scheduler.
1078c2ecf20Sopenharmony_ci
1088c2ecf20Sopenharmony_ci	  To compile this code as a module, choose M here: the
1098c2ecf20Sopenharmony_ci	  module will be called sch_prio.
1108c2ecf20Sopenharmony_ci
1118c2ecf20Sopenharmony_ciconfig NET_SCH_MULTIQ
1128c2ecf20Sopenharmony_ci	tristate "Hardware Multiqueue-aware Multi Band Queuing (MULTIQ)"
1138c2ecf20Sopenharmony_ci	help
1148c2ecf20Sopenharmony_ci	  Say Y here if you want to use an n-band queue packet scheduler
1158c2ecf20Sopenharmony_ci	  to support devices that have multiple hardware transmit queues.
1168c2ecf20Sopenharmony_ci
1178c2ecf20Sopenharmony_ci	  To compile this code as a module, choose M here: the
1188c2ecf20Sopenharmony_ci	  module will be called sch_multiq.
1198c2ecf20Sopenharmony_ci
1208c2ecf20Sopenharmony_ciconfig NET_SCH_RED
1218c2ecf20Sopenharmony_ci	tristate "Random Early Detection (RED)"
1228c2ecf20Sopenharmony_ci	help
1238c2ecf20Sopenharmony_ci	  Say Y here if you want to use the Random Early Detection (RED)
1248c2ecf20Sopenharmony_ci	  packet scheduling algorithm.
1258c2ecf20Sopenharmony_ci
1268c2ecf20Sopenharmony_ci	  See the top of <file:net/sched/sch_red.c> for more details.
1278c2ecf20Sopenharmony_ci
1288c2ecf20Sopenharmony_ci	  To compile this code as a module, choose M here: the
1298c2ecf20Sopenharmony_ci	  module will be called sch_red.
1308c2ecf20Sopenharmony_ci
1318c2ecf20Sopenharmony_ciconfig NET_SCH_SFB
1328c2ecf20Sopenharmony_ci	tristate "Stochastic Fair Blue (SFB)"
1338c2ecf20Sopenharmony_ci	help
1348c2ecf20Sopenharmony_ci	  Say Y here if you want to use the Stochastic Fair Blue (SFB)
1358c2ecf20Sopenharmony_ci	  packet scheduling algorithm.
1368c2ecf20Sopenharmony_ci
1378c2ecf20Sopenharmony_ci	  See the top of <file:net/sched/sch_sfb.c> for more details.
1388c2ecf20Sopenharmony_ci
1398c2ecf20Sopenharmony_ci	  To compile this code as a module, choose M here: the
1408c2ecf20Sopenharmony_ci	  module will be called sch_sfb.
1418c2ecf20Sopenharmony_ci
1428c2ecf20Sopenharmony_ciconfig NET_SCH_SFQ
1438c2ecf20Sopenharmony_ci	tristate "Stochastic Fairness Queueing (SFQ)"
1448c2ecf20Sopenharmony_ci	help
1458c2ecf20Sopenharmony_ci	  Say Y here if you want to use the Stochastic Fairness Queueing (SFQ)
1468c2ecf20Sopenharmony_ci	  packet scheduling algorithm.
1478c2ecf20Sopenharmony_ci
1488c2ecf20Sopenharmony_ci	  See the top of <file:net/sched/sch_sfq.c> for more details.
1498c2ecf20Sopenharmony_ci
1508c2ecf20Sopenharmony_ci	  To compile this code as a module, choose M here: the
1518c2ecf20Sopenharmony_ci	  module will be called sch_sfq.
1528c2ecf20Sopenharmony_ci
1538c2ecf20Sopenharmony_ciconfig NET_SCH_TEQL
1548c2ecf20Sopenharmony_ci	tristate "True Link Equalizer (TEQL)"
1558c2ecf20Sopenharmony_ci	help
1568c2ecf20Sopenharmony_ci	  Say Y here if you want to use the True Link Equalizer (TLE) packet
1578c2ecf20Sopenharmony_ci	  scheduling algorithm. This queueing discipline allows the combination
1588c2ecf20Sopenharmony_ci	  of several physical devices into one virtual device.
1598c2ecf20Sopenharmony_ci
1608c2ecf20Sopenharmony_ci	  See the top of <file:net/sched/sch_teql.c> for more details.
1618c2ecf20Sopenharmony_ci
1628c2ecf20Sopenharmony_ci	  To compile this code as a module, choose M here: the
1638c2ecf20Sopenharmony_ci	  module will be called sch_teql.
1648c2ecf20Sopenharmony_ci
1658c2ecf20Sopenharmony_ciconfig NET_SCH_TBF
1668c2ecf20Sopenharmony_ci	tristate "Token Bucket Filter (TBF)"
1678c2ecf20Sopenharmony_ci	help
1688c2ecf20Sopenharmony_ci	  Say Y here if you want to use the Token Bucket Filter (TBF) packet
1698c2ecf20Sopenharmony_ci	  scheduling algorithm.
1708c2ecf20Sopenharmony_ci
1718c2ecf20Sopenharmony_ci	  See the top of <file:net/sched/sch_tbf.c> for more details.
1728c2ecf20Sopenharmony_ci
1738c2ecf20Sopenharmony_ci	  To compile this code as a module, choose M here: the
1748c2ecf20Sopenharmony_ci	  module will be called sch_tbf.
1758c2ecf20Sopenharmony_ci
1768c2ecf20Sopenharmony_ciconfig NET_SCH_CBS
1778c2ecf20Sopenharmony_ci	tristate "Credit Based Shaper (CBS)"
1788c2ecf20Sopenharmony_ci	help
1798c2ecf20Sopenharmony_ci	  Say Y here if you want to use the Credit Based Shaper (CBS) packet
1808c2ecf20Sopenharmony_ci	  scheduling algorithm.
1818c2ecf20Sopenharmony_ci
1828c2ecf20Sopenharmony_ci	  See the top of <file:net/sched/sch_cbs.c> for more details.
1838c2ecf20Sopenharmony_ci
1848c2ecf20Sopenharmony_ci	  To compile this code as a module, choose M here: the
1858c2ecf20Sopenharmony_ci	  module will be called sch_cbs.
1868c2ecf20Sopenharmony_ci
1878c2ecf20Sopenharmony_ciconfig NET_SCH_ETF
1888c2ecf20Sopenharmony_ci	tristate "Earliest TxTime First (ETF)"
1898c2ecf20Sopenharmony_ci	help
1908c2ecf20Sopenharmony_ci	  Say Y here if you want to use the Earliest TxTime First (ETF) packet
1918c2ecf20Sopenharmony_ci	  scheduling algorithm.
1928c2ecf20Sopenharmony_ci
1938c2ecf20Sopenharmony_ci	  See the top of <file:net/sched/sch_etf.c> for more details.
1948c2ecf20Sopenharmony_ci
1958c2ecf20Sopenharmony_ci	  To compile this code as a module, choose M here: the
1968c2ecf20Sopenharmony_ci	  module will be called sch_etf.
1978c2ecf20Sopenharmony_ci
1988c2ecf20Sopenharmony_ciconfig NET_SCH_TAPRIO
1998c2ecf20Sopenharmony_ci	tristate "Time Aware Priority (taprio) Scheduler"
2008c2ecf20Sopenharmony_ci	help
2018c2ecf20Sopenharmony_ci	  Say Y here if you want to use the Time Aware Priority (taprio) packet
2028c2ecf20Sopenharmony_ci	  scheduling algorithm.
2038c2ecf20Sopenharmony_ci
2048c2ecf20Sopenharmony_ci	  See the top of <file:net/sched/sch_taprio.c> for more details.
2058c2ecf20Sopenharmony_ci
2068c2ecf20Sopenharmony_ci	  To compile this code as a module, choose M here: the
2078c2ecf20Sopenharmony_ci	  module will be called sch_taprio.
2088c2ecf20Sopenharmony_ci
2098c2ecf20Sopenharmony_ciconfig NET_SCH_GRED
2108c2ecf20Sopenharmony_ci	tristate "Generic Random Early Detection (GRED)"
2118c2ecf20Sopenharmony_ci	help
2128c2ecf20Sopenharmony_ci	  Say Y here if you want to use the Generic Random Early Detection
2138c2ecf20Sopenharmony_ci	  (GRED) packet scheduling algorithm for some of your network devices
2148c2ecf20Sopenharmony_ci	  (see the top of <file:net/sched/sch_red.c> for details and
2158c2ecf20Sopenharmony_ci	  references about the algorithm).
2168c2ecf20Sopenharmony_ci
2178c2ecf20Sopenharmony_ci	  To compile this code as a module, choose M here: the
2188c2ecf20Sopenharmony_ci	  module will be called sch_gred.
2198c2ecf20Sopenharmony_ci
2208c2ecf20Sopenharmony_ciconfig NET_SCH_DSMARK
2218c2ecf20Sopenharmony_ci	tristate "Differentiated Services marker (DSMARK)"
2228c2ecf20Sopenharmony_ci	help
2238c2ecf20Sopenharmony_ci	  Say Y if you want to schedule packets according to the
2248c2ecf20Sopenharmony_ci	  Differentiated Services architecture proposed in RFC 2475.
2258c2ecf20Sopenharmony_ci	  Technical information on this method, with pointers to associated
2268c2ecf20Sopenharmony_ci	  RFCs, is available at <http://www.gta.ufrj.br/diffserv/>.
2278c2ecf20Sopenharmony_ci
2288c2ecf20Sopenharmony_ci	  To compile this code as a module, choose M here: the
2298c2ecf20Sopenharmony_ci	  module will be called sch_dsmark.
2308c2ecf20Sopenharmony_ci
2318c2ecf20Sopenharmony_ciconfig NET_SCH_NETEM
2328c2ecf20Sopenharmony_ci	tristate "Network emulator (NETEM)"
2338c2ecf20Sopenharmony_ci	help
2348c2ecf20Sopenharmony_ci	  Say Y if you want to emulate network delay, loss, and packet
2358c2ecf20Sopenharmony_ci	  re-ordering. This is often useful to simulate networks when
2368c2ecf20Sopenharmony_ci	  testing applications or protocols.
2378c2ecf20Sopenharmony_ci
2388c2ecf20Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
2398c2ecf20Sopenharmony_ci	  will be called sch_netem.
2408c2ecf20Sopenharmony_ci
2418c2ecf20Sopenharmony_ci	  If unsure, say N.
2428c2ecf20Sopenharmony_ci
2438c2ecf20Sopenharmony_ciconfig NET_SCH_DRR
2448c2ecf20Sopenharmony_ci	tristate "Deficit Round Robin scheduler (DRR)"
2458c2ecf20Sopenharmony_ci	help
2468c2ecf20Sopenharmony_ci	  Say Y here if you want to use the Deficit Round Robin (DRR) packet
2478c2ecf20Sopenharmony_ci	  scheduling algorithm.
2488c2ecf20Sopenharmony_ci
2498c2ecf20Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
2508c2ecf20Sopenharmony_ci	  will be called sch_drr.
2518c2ecf20Sopenharmony_ci
2528c2ecf20Sopenharmony_ci	  If unsure, say N.
2538c2ecf20Sopenharmony_ci
2548c2ecf20Sopenharmony_ciconfig NET_SCH_MQPRIO
2558c2ecf20Sopenharmony_ci	tristate "Multi-queue priority scheduler (MQPRIO)"
2568c2ecf20Sopenharmony_ci	help
2578c2ecf20Sopenharmony_ci	  Say Y here if you want to use the Multi-queue Priority scheduler.
2588c2ecf20Sopenharmony_ci	  This scheduler allows QOS to be offloaded on NICs that have support
2598c2ecf20Sopenharmony_ci	  for offloading QOS schedulers.
2608c2ecf20Sopenharmony_ci
2618c2ecf20Sopenharmony_ci	  To compile this driver as a module, choose M here: the module will
2628c2ecf20Sopenharmony_ci	  be called sch_mqprio.
2638c2ecf20Sopenharmony_ci
2648c2ecf20Sopenharmony_ci	  If unsure, say N.
2658c2ecf20Sopenharmony_ci
2668c2ecf20Sopenharmony_ciconfig NET_SCH_SKBPRIO
2678c2ecf20Sopenharmony_ci	tristate "SKB priority queue scheduler (SKBPRIO)"
2688c2ecf20Sopenharmony_ci	help
2698c2ecf20Sopenharmony_ci	  Say Y here if you want to use the SKB priority queue
2708c2ecf20Sopenharmony_ci	  scheduler. This schedules packets according to skb->priority,
2718c2ecf20Sopenharmony_ci	  which is useful for request packets in DoS mitigation systems such
2728c2ecf20Sopenharmony_ci	  as Gatekeeper.
2738c2ecf20Sopenharmony_ci
2748c2ecf20Sopenharmony_ci	  To compile this driver as a module, choose M here: the module will
2758c2ecf20Sopenharmony_ci	  be called sch_skbprio.
2768c2ecf20Sopenharmony_ci
2778c2ecf20Sopenharmony_ci	  If unsure, say N.
2788c2ecf20Sopenharmony_ci
2798c2ecf20Sopenharmony_ciconfig NET_SCH_CHOKE
2808c2ecf20Sopenharmony_ci	tristate "CHOose and Keep responsive flow scheduler (CHOKE)"
2818c2ecf20Sopenharmony_ci	help
2828c2ecf20Sopenharmony_ci	  Say Y here if you want to use the CHOKe packet scheduler (CHOose
2838c2ecf20Sopenharmony_ci	  and Keep for responsive flows, CHOose and Kill for unresponsive
2848c2ecf20Sopenharmony_ci	  flows). This is a variation of RED which trys to penalize flows
2858c2ecf20Sopenharmony_ci	  that monopolize the queue.
2868c2ecf20Sopenharmony_ci
2878c2ecf20Sopenharmony_ci	  To compile this code as a module, choose M here: the
2888c2ecf20Sopenharmony_ci	  module will be called sch_choke.
2898c2ecf20Sopenharmony_ci
2908c2ecf20Sopenharmony_ciconfig NET_SCH_QFQ
2918c2ecf20Sopenharmony_ci	tristate "Quick Fair Queueing scheduler (QFQ)"
2928c2ecf20Sopenharmony_ci	help
2938c2ecf20Sopenharmony_ci	  Say Y here if you want to use the Quick Fair Queueing Scheduler (QFQ)
2948c2ecf20Sopenharmony_ci	  packet scheduling algorithm.
2958c2ecf20Sopenharmony_ci
2968c2ecf20Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
2978c2ecf20Sopenharmony_ci	  will be called sch_qfq.
2988c2ecf20Sopenharmony_ci
2998c2ecf20Sopenharmony_ci	  If unsure, say N.
3008c2ecf20Sopenharmony_ci
3018c2ecf20Sopenharmony_ciconfig NET_SCH_CODEL
3028c2ecf20Sopenharmony_ci	tristate "Controlled Delay AQM (CODEL)"
3038c2ecf20Sopenharmony_ci	help
3048c2ecf20Sopenharmony_ci	  Say Y here if you want to use the Controlled Delay (CODEL)
3058c2ecf20Sopenharmony_ci	  packet scheduling algorithm.
3068c2ecf20Sopenharmony_ci
3078c2ecf20Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
3088c2ecf20Sopenharmony_ci	  will be called sch_codel.
3098c2ecf20Sopenharmony_ci
3108c2ecf20Sopenharmony_ci	  If unsure, say N.
3118c2ecf20Sopenharmony_ci
3128c2ecf20Sopenharmony_ciconfig NET_SCH_FQ_CODEL
3138c2ecf20Sopenharmony_ci	tristate "Fair Queue Controlled Delay AQM (FQ_CODEL)"
3148c2ecf20Sopenharmony_ci	help
3158c2ecf20Sopenharmony_ci	  Say Y here if you want to use the FQ Controlled Delay (FQ_CODEL)
3168c2ecf20Sopenharmony_ci	  packet scheduling algorithm.
3178c2ecf20Sopenharmony_ci
3188c2ecf20Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
3198c2ecf20Sopenharmony_ci	  will be called sch_fq_codel.
3208c2ecf20Sopenharmony_ci
3218c2ecf20Sopenharmony_ci	  If unsure, say N.
3228c2ecf20Sopenharmony_ci
3238c2ecf20Sopenharmony_ciconfig NET_SCH_CAKE
3248c2ecf20Sopenharmony_ci	tristate "Common Applications Kept Enhanced (CAKE)"
3258c2ecf20Sopenharmony_ci	help
3268c2ecf20Sopenharmony_ci	  Say Y here if you want to use the Common Applications Kept Enhanced
3278c2ecf20Sopenharmony_ci	  (CAKE) queue management algorithm.
3288c2ecf20Sopenharmony_ci
3298c2ecf20Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
3308c2ecf20Sopenharmony_ci	  will be called sch_cake.
3318c2ecf20Sopenharmony_ci
3328c2ecf20Sopenharmony_ci	  If unsure, say N.
3338c2ecf20Sopenharmony_ci
3348c2ecf20Sopenharmony_ciconfig NET_SCH_FQ
3358c2ecf20Sopenharmony_ci	tristate "Fair Queue"
3368c2ecf20Sopenharmony_ci	help
3378c2ecf20Sopenharmony_ci	  Say Y here if you want to use the FQ packet scheduling algorithm.
3388c2ecf20Sopenharmony_ci
3398c2ecf20Sopenharmony_ci	  FQ does flow separation, and is able to respect pacing requirements
3408c2ecf20Sopenharmony_ci	  set by TCP stack into sk->sk_pacing_rate (for localy generated
3418c2ecf20Sopenharmony_ci	  traffic)
3428c2ecf20Sopenharmony_ci
3438c2ecf20Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
3448c2ecf20Sopenharmony_ci	  will be called sch_fq.
3458c2ecf20Sopenharmony_ci
3468c2ecf20Sopenharmony_ci	  If unsure, say N.
3478c2ecf20Sopenharmony_ci
3488c2ecf20Sopenharmony_ciconfig NET_SCH_HHF
3498c2ecf20Sopenharmony_ci	tristate "Heavy-Hitter Filter (HHF)"
3508c2ecf20Sopenharmony_ci	help
3518c2ecf20Sopenharmony_ci	  Say Y here if you want to use the Heavy-Hitter Filter (HHF)
3528c2ecf20Sopenharmony_ci	  packet scheduling algorithm.
3538c2ecf20Sopenharmony_ci
3548c2ecf20Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
3558c2ecf20Sopenharmony_ci	  will be called sch_hhf.
3568c2ecf20Sopenharmony_ci
3578c2ecf20Sopenharmony_ciconfig NET_SCH_PIE
3588c2ecf20Sopenharmony_ci	tristate "Proportional Integral controller Enhanced (PIE) scheduler"
3598c2ecf20Sopenharmony_ci	help
3608c2ecf20Sopenharmony_ci	  Say Y here if you want to use the Proportional Integral controller
3618c2ecf20Sopenharmony_ci	  Enhanced scheduler packet scheduling algorithm.
3628c2ecf20Sopenharmony_ci	  For more information, please see https://tools.ietf.org/html/rfc8033
3638c2ecf20Sopenharmony_ci
3648c2ecf20Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
3658c2ecf20Sopenharmony_ci	  will be called sch_pie.
3668c2ecf20Sopenharmony_ci
3678c2ecf20Sopenharmony_ci	  If unsure, say N.
3688c2ecf20Sopenharmony_ci
3698c2ecf20Sopenharmony_ciconfig NET_SCH_FQ_PIE
3708c2ecf20Sopenharmony_ci	depends on NET_SCH_PIE
3718c2ecf20Sopenharmony_ci	tristate "Flow Queue Proportional Integral controller Enhanced (FQ-PIE)"
3728c2ecf20Sopenharmony_ci	help
3738c2ecf20Sopenharmony_ci	  Say Y here if you want to use the Flow Queue Proportional Integral
3748c2ecf20Sopenharmony_ci	  controller Enhanced (FQ-PIE) packet scheduling algorithm.
3758c2ecf20Sopenharmony_ci	  For more information, please see https://tools.ietf.org/html/rfc8033
3768c2ecf20Sopenharmony_ci
3778c2ecf20Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
3788c2ecf20Sopenharmony_ci	  will be called sch_fq_pie.
3798c2ecf20Sopenharmony_ci
3808c2ecf20Sopenharmony_ci	  If unsure, say N.
3818c2ecf20Sopenharmony_ci
3828c2ecf20Sopenharmony_ciconfig NET_SCH_INGRESS
3838c2ecf20Sopenharmony_ci	tristate "Ingress/classifier-action Qdisc"
3848c2ecf20Sopenharmony_ci	depends on NET_CLS_ACT
3858c2ecf20Sopenharmony_ci	select NET_INGRESS
3868c2ecf20Sopenharmony_ci	select NET_EGRESS
3878c2ecf20Sopenharmony_ci	help
3888c2ecf20Sopenharmony_ci	  Say Y here if you want to use classifiers for incoming and/or outgoing
3898c2ecf20Sopenharmony_ci	  packets. This qdisc doesn't do anything else besides running classifiers,
3908c2ecf20Sopenharmony_ci	  which can also have actions attached to them. In case of outgoing packets,
3918c2ecf20Sopenharmony_ci	  classifiers that this qdisc holds are executed in the transmit path
3928c2ecf20Sopenharmony_ci	  before real enqueuing to an egress qdisc happens.
3938c2ecf20Sopenharmony_ci
3948c2ecf20Sopenharmony_ci	  If unsure, say Y.
3958c2ecf20Sopenharmony_ci
3968c2ecf20Sopenharmony_ci	  To compile this code as a module, choose M here: the module will be
3978c2ecf20Sopenharmony_ci	  called sch_ingress with alias of sch_clsact.
3988c2ecf20Sopenharmony_ci
3998c2ecf20Sopenharmony_ciconfig NET_SCH_PLUG
4008c2ecf20Sopenharmony_ci	tristate "Plug network traffic until release (PLUG)"
4018c2ecf20Sopenharmony_ci	help
4028c2ecf20Sopenharmony_ci
4038c2ecf20Sopenharmony_ci	  This queuing discipline allows userspace to plug/unplug a network
4048c2ecf20Sopenharmony_ci	  output queue, using the netlink interface.  When it receives an
4058c2ecf20Sopenharmony_ci	  enqueue command it inserts a plug into the outbound queue that
4068c2ecf20Sopenharmony_ci	  causes following packets to enqueue until a dequeue command arrives
4078c2ecf20Sopenharmony_ci	  over netlink, causing the plug to be removed and resuming the normal
4088c2ecf20Sopenharmony_ci	  packet flow.
4098c2ecf20Sopenharmony_ci
4108c2ecf20Sopenharmony_ci	  This module also provides a generic "network output buffering"
4118c2ecf20Sopenharmony_ci	  functionality (aka output commit), wherein upon arrival of a dequeue
4128c2ecf20Sopenharmony_ci	  command, only packets up to the first plug are released for delivery.
4138c2ecf20Sopenharmony_ci	  The Remus HA project uses this module to enable speculative execution
4148c2ecf20Sopenharmony_ci	  of virtual machines by allowing the generated network output to be rolled
4158c2ecf20Sopenharmony_ci	  back if needed.
4168c2ecf20Sopenharmony_ci
4178c2ecf20Sopenharmony_ci	  For more information, please refer to <http://wiki.xenproject.org/wiki/Remus>
4188c2ecf20Sopenharmony_ci
4198c2ecf20Sopenharmony_ci	  Say Y here if you are using this kernel for Xen dom0 and
4208c2ecf20Sopenharmony_ci	  want to protect Xen guests with Remus.
4218c2ecf20Sopenharmony_ci
4228c2ecf20Sopenharmony_ci	  To compile this code as a module, choose M here: the
4238c2ecf20Sopenharmony_ci	  module will be called sch_plug.
4248c2ecf20Sopenharmony_ci
4258c2ecf20Sopenharmony_ciconfig NET_SCH_ETS
4268c2ecf20Sopenharmony_ci	tristate "Enhanced transmission selection scheduler (ETS)"
4278c2ecf20Sopenharmony_ci	help
4288c2ecf20Sopenharmony_ci          The Enhanced Transmission Selection scheduler is a classful
4298c2ecf20Sopenharmony_ci          queuing discipline that merges functionality of PRIO and DRR
4308c2ecf20Sopenharmony_ci          qdiscs in one scheduler. ETS makes it easy to configure a set of
4318c2ecf20Sopenharmony_ci          strict and bandwidth-sharing bands to implement the transmission
4328c2ecf20Sopenharmony_ci          selection described in 802.1Qaz.
4338c2ecf20Sopenharmony_ci
4348c2ecf20Sopenharmony_ci	  Say Y here if you want to use the ETS packet scheduling
4358c2ecf20Sopenharmony_ci	  algorithm.
4368c2ecf20Sopenharmony_ci
4378c2ecf20Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
4388c2ecf20Sopenharmony_ci	  will be called sch_ets.
4398c2ecf20Sopenharmony_ci
4408c2ecf20Sopenharmony_ci	  If unsure, say N.
4418c2ecf20Sopenharmony_ci
4428c2ecf20Sopenharmony_cimenuconfig NET_SCH_DEFAULT
4438c2ecf20Sopenharmony_ci	bool "Allow override default queue discipline"
4448c2ecf20Sopenharmony_ci	help
4458c2ecf20Sopenharmony_ci	  Support for selection of default queuing discipline.
4468c2ecf20Sopenharmony_ci
4478c2ecf20Sopenharmony_ci	  Nearly all users can safely say no here, and the default
4488c2ecf20Sopenharmony_ci	  of pfifo_fast will be used. Many distributions already set
4498c2ecf20Sopenharmony_ci	  the default value via /proc/sys/net/core/default_qdisc.
4508c2ecf20Sopenharmony_ci
4518c2ecf20Sopenharmony_ci	  If unsure, say N.
4528c2ecf20Sopenharmony_ci
4538c2ecf20Sopenharmony_ciif NET_SCH_DEFAULT
4548c2ecf20Sopenharmony_ci
4558c2ecf20Sopenharmony_cichoice
4568c2ecf20Sopenharmony_ci	prompt "Default queuing discipline"
4578c2ecf20Sopenharmony_ci	default DEFAULT_PFIFO_FAST
4588c2ecf20Sopenharmony_ci	help
4598c2ecf20Sopenharmony_ci	  Select the queueing discipline that will be used by default
4608c2ecf20Sopenharmony_ci	  for all network devices.
4618c2ecf20Sopenharmony_ci
4628c2ecf20Sopenharmony_ci	config DEFAULT_FQ
4638c2ecf20Sopenharmony_ci		bool "Fair Queue" if NET_SCH_FQ
4648c2ecf20Sopenharmony_ci
4658c2ecf20Sopenharmony_ci	config DEFAULT_CODEL
4668c2ecf20Sopenharmony_ci		bool "Controlled Delay" if NET_SCH_CODEL
4678c2ecf20Sopenharmony_ci
4688c2ecf20Sopenharmony_ci	config DEFAULT_FQ_CODEL
4698c2ecf20Sopenharmony_ci		bool "Fair Queue Controlled Delay" if NET_SCH_FQ_CODEL
4708c2ecf20Sopenharmony_ci
4718c2ecf20Sopenharmony_ci	config DEFAULT_FQ_PIE
4728c2ecf20Sopenharmony_ci		bool "Flow Queue Proportional Integral controller Enhanced" if NET_SCH_FQ_PIE
4738c2ecf20Sopenharmony_ci
4748c2ecf20Sopenharmony_ci	config DEFAULT_SFQ
4758c2ecf20Sopenharmony_ci		bool "Stochastic Fair Queue" if NET_SCH_SFQ
4768c2ecf20Sopenharmony_ci
4778c2ecf20Sopenharmony_ci	config DEFAULT_PFIFO_FAST
4788c2ecf20Sopenharmony_ci		bool "Priority FIFO Fast"
4798c2ecf20Sopenharmony_ciendchoice
4808c2ecf20Sopenharmony_ci
4818c2ecf20Sopenharmony_ciconfig DEFAULT_NET_SCH
4828c2ecf20Sopenharmony_ci	string
4838c2ecf20Sopenharmony_ci	default "pfifo_fast" if DEFAULT_PFIFO_FAST
4848c2ecf20Sopenharmony_ci	default "fq" if DEFAULT_FQ
4858c2ecf20Sopenharmony_ci	default "fq_codel" if DEFAULT_FQ_CODEL
4868c2ecf20Sopenharmony_ci	default "fq_pie" if DEFAULT_FQ_PIE
4878c2ecf20Sopenharmony_ci	default "sfq" if DEFAULT_SFQ
4888c2ecf20Sopenharmony_ci	default "pfifo_fast"
4898c2ecf20Sopenharmony_ciendif
4908c2ecf20Sopenharmony_ci
4918c2ecf20Sopenharmony_cicomment "Classification"
4928c2ecf20Sopenharmony_ci
4938c2ecf20Sopenharmony_ciconfig NET_CLS
4948c2ecf20Sopenharmony_ci	bool
4958c2ecf20Sopenharmony_ci
4968c2ecf20Sopenharmony_ciconfig NET_CLS_BASIC
4978c2ecf20Sopenharmony_ci	tristate "Elementary classification (BASIC)"
4988c2ecf20Sopenharmony_ci	select NET_CLS
4998c2ecf20Sopenharmony_ci	help
5008c2ecf20Sopenharmony_ci	  Say Y here if you want to be able to classify packets using
5018c2ecf20Sopenharmony_ci	  only extended matches and actions.
5028c2ecf20Sopenharmony_ci
5038c2ecf20Sopenharmony_ci	  To compile this code as a module, choose M here: the
5048c2ecf20Sopenharmony_ci	  module will be called cls_basic.
5058c2ecf20Sopenharmony_ci
5068c2ecf20Sopenharmony_ciconfig NET_CLS_ROUTE4
5078c2ecf20Sopenharmony_ci	tristate "Routing decision (ROUTE)"
5088c2ecf20Sopenharmony_ci	depends on INET
5098c2ecf20Sopenharmony_ci	select IP_ROUTE_CLASSID
5108c2ecf20Sopenharmony_ci	select NET_CLS
5118c2ecf20Sopenharmony_ci	help
5128c2ecf20Sopenharmony_ci	  If you say Y here, you will be able to classify packets
5138c2ecf20Sopenharmony_ci	  according to the route table entry they matched.
5148c2ecf20Sopenharmony_ci
5158c2ecf20Sopenharmony_ci	  To compile this code as a module, choose M here: the
5168c2ecf20Sopenharmony_ci	  module will be called cls_route.
5178c2ecf20Sopenharmony_ci
5188c2ecf20Sopenharmony_ciconfig NET_CLS_FW
5198c2ecf20Sopenharmony_ci	tristate "Netfilter mark (FW)"
5208c2ecf20Sopenharmony_ci	select NET_CLS
5218c2ecf20Sopenharmony_ci	help
5228c2ecf20Sopenharmony_ci	  If you say Y here, you will be able to classify packets
5238c2ecf20Sopenharmony_ci	  according to netfilter/firewall marks.
5248c2ecf20Sopenharmony_ci
5258c2ecf20Sopenharmony_ci	  To compile this code as a module, choose M here: the
5268c2ecf20Sopenharmony_ci	  module will be called cls_fw.
5278c2ecf20Sopenharmony_ci
5288c2ecf20Sopenharmony_ciconfig NET_CLS_U32
5298c2ecf20Sopenharmony_ci	tristate "Universal 32bit comparisons w/ hashing (U32)"
5308c2ecf20Sopenharmony_ci	select NET_CLS
5318c2ecf20Sopenharmony_ci	help
5328c2ecf20Sopenharmony_ci	  Say Y here to be able to classify packets using a universal
5338c2ecf20Sopenharmony_ci	  32bit pieces based comparison scheme.
5348c2ecf20Sopenharmony_ci
5358c2ecf20Sopenharmony_ci	  To compile this code as a module, choose M here: the
5368c2ecf20Sopenharmony_ci	  module will be called cls_u32.
5378c2ecf20Sopenharmony_ci
5388c2ecf20Sopenharmony_ciconfig CLS_U32_PERF
5398c2ecf20Sopenharmony_ci	bool "Performance counters support"
5408c2ecf20Sopenharmony_ci	depends on NET_CLS_U32
5418c2ecf20Sopenharmony_ci	help
5428c2ecf20Sopenharmony_ci	  Say Y here to make u32 gather additional statistics useful for
5438c2ecf20Sopenharmony_ci	  fine tuning u32 classifiers.
5448c2ecf20Sopenharmony_ci
5458c2ecf20Sopenharmony_ciconfig CLS_U32_MARK
5468c2ecf20Sopenharmony_ci	bool "Netfilter marks support"
5478c2ecf20Sopenharmony_ci	depends on NET_CLS_U32
5488c2ecf20Sopenharmony_ci	help
5498c2ecf20Sopenharmony_ci	  Say Y here to be able to use netfilter marks as u32 key.
5508c2ecf20Sopenharmony_ci
5518c2ecf20Sopenharmony_ciconfig NET_CLS_FLOW
5528c2ecf20Sopenharmony_ci	tristate "Flow classifier"
5538c2ecf20Sopenharmony_ci	select NET_CLS
5548c2ecf20Sopenharmony_ci	help
5558c2ecf20Sopenharmony_ci	  If you say Y here, you will be able to classify packets based on
5568c2ecf20Sopenharmony_ci	  a configurable combination of packet keys. This is mostly useful
5578c2ecf20Sopenharmony_ci	  in combination with SFQ.
5588c2ecf20Sopenharmony_ci
5598c2ecf20Sopenharmony_ci	  To compile this code as a module, choose M here: the
5608c2ecf20Sopenharmony_ci	  module will be called cls_flow.
5618c2ecf20Sopenharmony_ci
5628c2ecf20Sopenharmony_ciconfig NET_CLS_CGROUP
5638c2ecf20Sopenharmony_ci	tristate "Control Group Classifier"
5648c2ecf20Sopenharmony_ci	select NET_CLS
5658c2ecf20Sopenharmony_ci	select CGROUP_NET_CLASSID
5668c2ecf20Sopenharmony_ci	depends on CGROUPS
5678c2ecf20Sopenharmony_ci	help
5688c2ecf20Sopenharmony_ci	  Say Y here if you want to classify packets based on the control
5698c2ecf20Sopenharmony_ci	  cgroup of their process.
5708c2ecf20Sopenharmony_ci
5718c2ecf20Sopenharmony_ci	  To compile this code as a module, choose M here: the
5728c2ecf20Sopenharmony_ci	  module will be called cls_cgroup.
5738c2ecf20Sopenharmony_ci
5748c2ecf20Sopenharmony_ciconfig NET_CLS_BPF
5758c2ecf20Sopenharmony_ci	tristate "BPF-based classifier"
5768c2ecf20Sopenharmony_ci	select NET_CLS
5778c2ecf20Sopenharmony_ci	help
5788c2ecf20Sopenharmony_ci	  If you say Y here, you will be able to classify packets based on
5798c2ecf20Sopenharmony_ci	  programmable BPF (JIT'ed) filters as an alternative to ematches.
5808c2ecf20Sopenharmony_ci
5818c2ecf20Sopenharmony_ci	  To compile this code as a module, choose M here: the module will
5828c2ecf20Sopenharmony_ci	  be called cls_bpf.
5838c2ecf20Sopenharmony_ci
5848c2ecf20Sopenharmony_ciconfig NET_CLS_FLOWER
5858c2ecf20Sopenharmony_ci	tristate "Flower classifier"
5868c2ecf20Sopenharmony_ci	select NET_CLS
5878c2ecf20Sopenharmony_ci	help
5888c2ecf20Sopenharmony_ci	  If you say Y here, you will be able to classify packets based on
5898c2ecf20Sopenharmony_ci	  a configurable combination of packet keys and masks.
5908c2ecf20Sopenharmony_ci
5918c2ecf20Sopenharmony_ci	  To compile this code as a module, choose M here: the module will
5928c2ecf20Sopenharmony_ci	  be called cls_flower.
5938c2ecf20Sopenharmony_ci
5948c2ecf20Sopenharmony_ciconfig NET_CLS_MATCHALL
5958c2ecf20Sopenharmony_ci	tristate "Match-all classifier"
5968c2ecf20Sopenharmony_ci	select NET_CLS
5978c2ecf20Sopenharmony_ci	help
5988c2ecf20Sopenharmony_ci	  If you say Y here, you will be able to classify packets based on
5998c2ecf20Sopenharmony_ci	  nothing. Every packet will match.
6008c2ecf20Sopenharmony_ci
6018c2ecf20Sopenharmony_ci	  To compile this code as a module, choose M here: the module will
6028c2ecf20Sopenharmony_ci	  be called cls_matchall.
6038c2ecf20Sopenharmony_ci
6048c2ecf20Sopenharmony_ciconfig NET_EMATCH
6058c2ecf20Sopenharmony_ci	bool "Extended Matches"
6068c2ecf20Sopenharmony_ci	select NET_CLS
6078c2ecf20Sopenharmony_ci	help
6088c2ecf20Sopenharmony_ci	  Say Y here if you want to use extended matches on top of classifiers
6098c2ecf20Sopenharmony_ci	  and select the extended matches below.
6108c2ecf20Sopenharmony_ci
6118c2ecf20Sopenharmony_ci	  Extended matches are small classification helpers not worth writing
6128c2ecf20Sopenharmony_ci	  a separate classifier for.
6138c2ecf20Sopenharmony_ci
6148c2ecf20Sopenharmony_ci	  A recent version of the iproute2 package is required to use
6158c2ecf20Sopenharmony_ci	  extended matches.
6168c2ecf20Sopenharmony_ci
6178c2ecf20Sopenharmony_ciconfig NET_EMATCH_STACK
6188c2ecf20Sopenharmony_ci	int "Stack size"
6198c2ecf20Sopenharmony_ci	depends on NET_EMATCH
6208c2ecf20Sopenharmony_ci	default "32"
6218c2ecf20Sopenharmony_ci	help
6228c2ecf20Sopenharmony_ci	  Size of the local stack variable used while evaluating the tree of
6238c2ecf20Sopenharmony_ci	  ematches. Limits the depth of the tree, i.e. the number of
6248c2ecf20Sopenharmony_ci	  encapsulated precedences. Every level requires 4 bytes of additional
6258c2ecf20Sopenharmony_ci	  stack space.
6268c2ecf20Sopenharmony_ci
6278c2ecf20Sopenharmony_ciconfig NET_EMATCH_CMP
6288c2ecf20Sopenharmony_ci	tristate "Simple packet data comparison"
6298c2ecf20Sopenharmony_ci	depends on NET_EMATCH
6308c2ecf20Sopenharmony_ci	help
6318c2ecf20Sopenharmony_ci	  Say Y here if you want to be able to classify packets based on
6328c2ecf20Sopenharmony_ci	  simple packet data comparisons for 8, 16, and 32bit values.
6338c2ecf20Sopenharmony_ci
6348c2ecf20Sopenharmony_ci	  To compile this code as a module, choose M here: the
6358c2ecf20Sopenharmony_ci	  module will be called em_cmp.
6368c2ecf20Sopenharmony_ci
6378c2ecf20Sopenharmony_ciconfig NET_EMATCH_NBYTE
6388c2ecf20Sopenharmony_ci	tristate "Multi byte comparison"
6398c2ecf20Sopenharmony_ci	depends on NET_EMATCH
6408c2ecf20Sopenharmony_ci	help
6418c2ecf20Sopenharmony_ci	  Say Y here if you want to be able to classify packets based on
6428c2ecf20Sopenharmony_ci	  multiple byte comparisons mainly useful for IPv6 address comparisons.
6438c2ecf20Sopenharmony_ci
6448c2ecf20Sopenharmony_ci	  To compile this code as a module, choose M here: the
6458c2ecf20Sopenharmony_ci	  module will be called em_nbyte.
6468c2ecf20Sopenharmony_ci
6478c2ecf20Sopenharmony_ciconfig NET_EMATCH_U32
6488c2ecf20Sopenharmony_ci	tristate "U32 key"
6498c2ecf20Sopenharmony_ci	depends on NET_EMATCH
6508c2ecf20Sopenharmony_ci	help
6518c2ecf20Sopenharmony_ci	  Say Y here if you want to be able to classify packets using
6528c2ecf20Sopenharmony_ci	  the famous u32 key in combination with logic relations.
6538c2ecf20Sopenharmony_ci
6548c2ecf20Sopenharmony_ci	  To compile this code as a module, choose M here: the
6558c2ecf20Sopenharmony_ci	  module will be called em_u32.
6568c2ecf20Sopenharmony_ci
6578c2ecf20Sopenharmony_ciconfig NET_EMATCH_META
6588c2ecf20Sopenharmony_ci	tristate "Metadata"
6598c2ecf20Sopenharmony_ci	depends on NET_EMATCH
6608c2ecf20Sopenharmony_ci	help
6618c2ecf20Sopenharmony_ci	  Say Y here if you want to be able to classify packets based on
6628c2ecf20Sopenharmony_ci	  metadata such as load average, netfilter attributes, socket
6638c2ecf20Sopenharmony_ci	  attributes and routing decisions.
6648c2ecf20Sopenharmony_ci
6658c2ecf20Sopenharmony_ci	  To compile this code as a module, choose M here: the
6668c2ecf20Sopenharmony_ci	  module will be called em_meta.
6678c2ecf20Sopenharmony_ci
6688c2ecf20Sopenharmony_ciconfig NET_EMATCH_TEXT
6698c2ecf20Sopenharmony_ci	tristate "Textsearch"
6708c2ecf20Sopenharmony_ci	depends on NET_EMATCH
6718c2ecf20Sopenharmony_ci	select TEXTSEARCH
6728c2ecf20Sopenharmony_ci	select TEXTSEARCH_KMP
6738c2ecf20Sopenharmony_ci	select TEXTSEARCH_BM
6748c2ecf20Sopenharmony_ci	select TEXTSEARCH_FSM
6758c2ecf20Sopenharmony_ci	help
6768c2ecf20Sopenharmony_ci	  Say Y here if you want to be able to classify packets based on
6778c2ecf20Sopenharmony_ci	  textsearch comparisons.
6788c2ecf20Sopenharmony_ci
6798c2ecf20Sopenharmony_ci	  To compile this code as a module, choose M here: the
6808c2ecf20Sopenharmony_ci	  module will be called em_text.
6818c2ecf20Sopenharmony_ci
6828c2ecf20Sopenharmony_ciconfig NET_EMATCH_CANID
6838c2ecf20Sopenharmony_ci	tristate "CAN Identifier"
6848c2ecf20Sopenharmony_ci	depends on NET_EMATCH && (CAN=y || CAN=m)
6858c2ecf20Sopenharmony_ci	help
6868c2ecf20Sopenharmony_ci	  Say Y here if you want to be able to classify CAN frames based
6878c2ecf20Sopenharmony_ci	  on CAN Identifier.
6888c2ecf20Sopenharmony_ci
6898c2ecf20Sopenharmony_ci	  To compile this code as a module, choose M here: the
6908c2ecf20Sopenharmony_ci	  module will be called em_canid.
6918c2ecf20Sopenharmony_ci
6928c2ecf20Sopenharmony_ciconfig NET_EMATCH_IPSET
6938c2ecf20Sopenharmony_ci	tristate "IPset"
6948c2ecf20Sopenharmony_ci	depends on NET_EMATCH && IP_SET
6958c2ecf20Sopenharmony_ci	help
6968c2ecf20Sopenharmony_ci	  Say Y here if you want to be able to classify packets based on
6978c2ecf20Sopenharmony_ci	  ipset membership.
6988c2ecf20Sopenharmony_ci
6998c2ecf20Sopenharmony_ci	  To compile this code as a module, choose M here: the
7008c2ecf20Sopenharmony_ci	  module will be called em_ipset.
7018c2ecf20Sopenharmony_ci
7028c2ecf20Sopenharmony_ciconfig NET_EMATCH_IPT
7038c2ecf20Sopenharmony_ci	tristate "IPtables Matches"
7048c2ecf20Sopenharmony_ci	depends on NET_EMATCH && NETFILTER && NETFILTER_XTABLES
7058c2ecf20Sopenharmony_ci	help
7068c2ecf20Sopenharmony_ci	  Say Y here to be able to classify packets based on iptables
7078c2ecf20Sopenharmony_ci	  matches.
7088c2ecf20Sopenharmony_ci	  Current supported match is "policy" which allows packet classification
7098c2ecf20Sopenharmony_ci	  based on IPsec policy that was used during decapsulation
7108c2ecf20Sopenharmony_ci
7118c2ecf20Sopenharmony_ci	  To compile this code as a module, choose M here: the
7128c2ecf20Sopenharmony_ci	  module will be called em_ipt.
7138c2ecf20Sopenharmony_ci
7148c2ecf20Sopenharmony_ciconfig NET_CLS_ACT
7158c2ecf20Sopenharmony_ci	bool "Actions"
7168c2ecf20Sopenharmony_ci	select NET_CLS
7178c2ecf20Sopenharmony_ci	help
7188c2ecf20Sopenharmony_ci	  Say Y here if you want to use traffic control actions. Actions
7198c2ecf20Sopenharmony_ci	  get attached to classifiers and are invoked after a successful
7208c2ecf20Sopenharmony_ci	  classification. They are used to overwrite the classification
7218c2ecf20Sopenharmony_ci	  result, instantly drop or redirect packets, etc.
7228c2ecf20Sopenharmony_ci
7238c2ecf20Sopenharmony_ci	  A recent version of the iproute2 package is required to use
7248c2ecf20Sopenharmony_ci	  extended matches.
7258c2ecf20Sopenharmony_ci
7268c2ecf20Sopenharmony_ciconfig NET_ACT_POLICE
7278c2ecf20Sopenharmony_ci	tristate "Traffic Policing"
7288c2ecf20Sopenharmony_ci	depends on NET_CLS_ACT
7298c2ecf20Sopenharmony_ci	help
7308c2ecf20Sopenharmony_ci	  Say Y here if you want to do traffic policing, i.e. strict
7318c2ecf20Sopenharmony_ci	  bandwidth limiting. This action replaces the existing policing
7328c2ecf20Sopenharmony_ci	  module.
7338c2ecf20Sopenharmony_ci
7348c2ecf20Sopenharmony_ci	  To compile this code as a module, choose M here: the
7358c2ecf20Sopenharmony_ci	  module will be called act_police.
7368c2ecf20Sopenharmony_ci
7378c2ecf20Sopenharmony_ciconfig NET_ACT_GACT
7388c2ecf20Sopenharmony_ci	tristate "Generic actions"
7398c2ecf20Sopenharmony_ci	depends on NET_CLS_ACT
7408c2ecf20Sopenharmony_ci	help
7418c2ecf20Sopenharmony_ci	  Say Y here to take generic actions such as dropping and
7428c2ecf20Sopenharmony_ci	  accepting packets.
7438c2ecf20Sopenharmony_ci
7448c2ecf20Sopenharmony_ci	  To compile this code as a module, choose M here: the
7458c2ecf20Sopenharmony_ci	  module will be called act_gact.
7468c2ecf20Sopenharmony_ci
7478c2ecf20Sopenharmony_ciconfig GACT_PROB
7488c2ecf20Sopenharmony_ci	bool "Probability support"
7498c2ecf20Sopenharmony_ci	depends on NET_ACT_GACT
7508c2ecf20Sopenharmony_ci	help
7518c2ecf20Sopenharmony_ci	  Say Y here to use the generic action randomly or deterministically.
7528c2ecf20Sopenharmony_ci
7538c2ecf20Sopenharmony_ciconfig NET_ACT_MIRRED
7548c2ecf20Sopenharmony_ci	tristate "Redirecting and Mirroring"
7558c2ecf20Sopenharmony_ci	depends on NET_CLS_ACT
7568c2ecf20Sopenharmony_ci	help
7578c2ecf20Sopenharmony_ci	  Say Y here to allow packets to be mirrored or redirected to
7588c2ecf20Sopenharmony_ci	  other devices.
7598c2ecf20Sopenharmony_ci
7608c2ecf20Sopenharmony_ci	  To compile this code as a module, choose M here: the
7618c2ecf20Sopenharmony_ci	  module will be called act_mirred.
7628c2ecf20Sopenharmony_ci
7638c2ecf20Sopenharmony_ciconfig NET_ACT_SAMPLE
7648c2ecf20Sopenharmony_ci	tristate "Traffic Sampling"
7658c2ecf20Sopenharmony_ci	depends on NET_CLS_ACT
7668c2ecf20Sopenharmony_ci	select PSAMPLE
7678c2ecf20Sopenharmony_ci	help
7688c2ecf20Sopenharmony_ci	  Say Y here to allow packet sampling tc action. The packet sample
7698c2ecf20Sopenharmony_ci	  action consists of statistically choosing packets and sampling
7708c2ecf20Sopenharmony_ci	  them using the psample module.
7718c2ecf20Sopenharmony_ci
7728c2ecf20Sopenharmony_ci	  To compile this code as a module, choose M here: the
7738c2ecf20Sopenharmony_ci	  module will be called act_sample.
7748c2ecf20Sopenharmony_ci
7758c2ecf20Sopenharmony_ciconfig NET_ACT_IPT
7768c2ecf20Sopenharmony_ci	tristate "IPtables targets"
7778c2ecf20Sopenharmony_ci	depends on NET_CLS_ACT && NETFILTER && NETFILTER_XTABLES
7788c2ecf20Sopenharmony_ci	help
7798c2ecf20Sopenharmony_ci	  Say Y here to be able to invoke iptables targets after successful
7808c2ecf20Sopenharmony_ci	  classification.
7818c2ecf20Sopenharmony_ci
7828c2ecf20Sopenharmony_ci	  To compile this code as a module, choose M here: the
7838c2ecf20Sopenharmony_ci	  module will be called act_ipt.
7848c2ecf20Sopenharmony_ci
7858c2ecf20Sopenharmony_ciconfig NET_ACT_NAT
7868c2ecf20Sopenharmony_ci	tristate "Stateless NAT"
7878c2ecf20Sopenharmony_ci	depends on NET_CLS_ACT
7888c2ecf20Sopenharmony_ci	help
7898c2ecf20Sopenharmony_ci	  Say Y here to do stateless NAT on IPv4 packets.  You should use
7908c2ecf20Sopenharmony_ci	  netfilter for NAT unless you know what you are doing.
7918c2ecf20Sopenharmony_ci
7928c2ecf20Sopenharmony_ci	  To compile this code as a module, choose M here: the
7938c2ecf20Sopenharmony_ci	  module will be called act_nat.
7948c2ecf20Sopenharmony_ci
7958c2ecf20Sopenharmony_ciconfig NET_ACT_PEDIT
7968c2ecf20Sopenharmony_ci	tristate "Packet Editing"
7978c2ecf20Sopenharmony_ci	depends on NET_CLS_ACT
7988c2ecf20Sopenharmony_ci	help
7998c2ecf20Sopenharmony_ci	  Say Y here if you want to mangle the content of packets.
8008c2ecf20Sopenharmony_ci
8018c2ecf20Sopenharmony_ci	  To compile this code as a module, choose M here: the
8028c2ecf20Sopenharmony_ci	  module will be called act_pedit.
8038c2ecf20Sopenharmony_ci
8048c2ecf20Sopenharmony_ciconfig NET_ACT_SIMP
8058c2ecf20Sopenharmony_ci	tristate "Simple Example (Debug)"
8068c2ecf20Sopenharmony_ci	depends on NET_CLS_ACT
8078c2ecf20Sopenharmony_ci	help
8088c2ecf20Sopenharmony_ci	  Say Y here to add a simple action for demonstration purposes.
8098c2ecf20Sopenharmony_ci	  It is meant as an example and for debugging purposes. It will
8108c2ecf20Sopenharmony_ci	  print a configured policy string followed by the packet count
8118c2ecf20Sopenharmony_ci	  to the console for every packet that passes by.
8128c2ecf20Sopenharmony_ci
8138c2ecf20Sopenharmony_ci	  If unsure, say N.
8148c2ecf20Sopenharmony_ci
8158c2ecf20Sopenharmony_ci	  To compile this code as a module, choose M here: the
8168c2ecf20Sopenharmony_ci	  module will be called act_simple.
8178c2ecf20Sopenharmony_ci
8188c2ecf20Sopenharmony_ciconfig NET_ACT_SKBEDIT
8198c2ecf20Sopenharmony_ci	tristate "SKB Editing"
8208c2ecf20Sopenharmony_ci	depends on NET_CLS_ACT
8218c2ecf20Sopenharmony_ci	help
8228c2ecf20Sopenharmony_ci	  Say Y here to change skb priority or queue_mapping settings.
8238c2ecf20Sopenharmony_ci
8248c2ecf20Sopenharmony_ci	  If unsure, say N.
8258c2ecf20Sopenharmony_ci
8268c2ecf20Sopenharmony_ci	  To compile this code as a module, choose M here: the
8278c2ecf20Sopenharmony_ci	  module will be called act_skbedit.
8288c2ecf20Sopenharmony_ci
8298c2ecf20Sopenharmony_ciconfig NET_ACT_CSUM
8308c2ecf20Sopenharmony_ci	tristate "Checksum Updating"
8318c2ecf20Sopenharmony_ci	depends on NET_CLS_ACT && INET
8328c2ecf20Sopenharmony_ci	select LIBCRC32C
8338c2ecf20Sopenharmony_ci	help
8348c2ecf20Sopenharmony_ci	  Say Y here to update some common checksum after some direct
8358c2ecf20Sopenharmony_ci	  packet alterations.
8368c2ecf20Sopenharmony_ci
8378c2ecf20Sopenharmony_ci	  To compile this code as a module, choose M here: the
8388c2ecf20Sopenharmony_ci	  module will be called act_csum.
8398c2ecf20Sopenharmony_ci
8408c2ecf20Sopenharmony_ciconfig NET_ACT_MPLS
8418c2ecf20Sopenharmony_ci	tristate "MPLS manipulation"
8428c2ecf20Sopenharmony_ci	depends on NET_CLS_ACT
8438c2ecf20Sopenharmony_ci	help
8448c2ecf20Sopenharmony_ci	  Say Y here to push or pop MPLS headers.
8458c2ecf20Sopenharmony_ci
8468c2ecf20Sopenharmony_ci	  If unsure, say N.
8478c2ecf20Sopenharmony_ci
8488c2ecf20Sopenharmony_ci	  To compile this code as a module, choose M here: the
8498c2ecf20Sopenharmony_ci	  module will be called act_mpls.
8508c2ecf20Sopenharmony_ci
8518c2ecf20Sopenharmony_ciconfig NET_ACT_VLAN
8528c2ecf20Sopenharmony_ci	tristate "Vlan manipulation"
8538c2ecf20Sopenharmony_ci	depends on NET_CLS_ACT
8548c2ecf20Sopenharmony_ci	help
8558c2ecf20Sopenharmony_ci	  Say Y here to push or pop vlan headers.
8568c2ecf20Sopenharmony_ci
8578c2ecf20Sopenharmony_ci	  If unsure, say N.
8588c2ecf20Sopenharmony_ci
8598c2ecf20Sopenharmony_ci	  To compile this code as a module, choose M here: the
8608c2ecf20Sopenharmony_ci	  module will be called act_vlan.
8618c2ecf20Sopenharmony_ci
8628c2ecf20Sopenharmony_ciconfig NET_ACT_BPF
8638c2ecf20Sopenharmony_ci	tristate "BPF based action"
8648c2ecf20Sopenharmony_ci	depends on NET_CLS_ACT
8658c2ecf20Sopenharmony_ci	help
8668c2ecf20Sopenharmony_ci	  Say Y here to execute BPF code on packets. The BPF code will decide
8678c2ecf20Sopenharmony_ci	  if the packet should be dropped or not.
8688c2ecf20Sopenharmony_ci
8698c2ecf20Sopenharmony_ci	  If unsure, say N.
8708c2ecf20Sopenharmony_ci
8718c2ecf20Sopenharmony_ci	  To compile this code as a module, choose M here: the
8728c2ecf20Sopenharmony_ci	  module will be called act_bpf.
8738c2ecf20Sopenharmony_ci
8748c2ecf20Sopenharmony_ciconfig NET_ACT_CONNMARK
8758c2ecf20Sopenharmony_ci	tristate "Netfilter Connection Mark Retriever"
8768c2ecf20Sopenharmony_ci	depends on NET_CLS_ACT && NETFILTER
8778c2ecf20Sopenharmony_ci	depends on NF_CONNTRACK && NF_CONNTRACK_MARK
8788c2ecf20Sopenharmony_ci	help
8798c2ecf20Sopenharmony_ci	  Say Y here to allow retrieving of conn mark
8808c2ecf20Sopenharmony_ci
8818c2ecf20Sopenharmony_ci	  If unsure, say N.
8828c2ecf20Sopenharmony_ci
8838c2ecf20Sopenharmony_ci	  To compile this code as a module, choose M here: the
8848c2ecf20Sopenharmony_ci	  module will be called act_connmark.
8858c2ecf20Sopenharmony_ci
8868c2ecf20Sopenharmony_ciconfig NET_ACT_CTINFO
8878c2ecf20Sopenharmony_ci	tristate "Netfilter Connection Mark Actions"
8888c2ecf20Sopenharmony_ci	depends on NET_CLS_ACT && NETFILTER
8898c2ecf20Sopenharmony_ci	depends on NF_CONNTRACK && NF_CONNTRACK_MARK
8908c2ecf20Sopenharmony_ci	help
8918c2ecf20Sopenharmony_ci	  Say Y here to allow transfer of a connmark stored information.
8928c2ecf20Sopenharmony_ci	  Current actions transfer connmark stored DSCP into
8938c2ecf20Sopenharmony_ci	  ipv4/v6 diffserv and/or to transfer connmark to packet
8948c2ecf20Sopenharmony_ci	  mark.  Both are useful for restoring egress based marks
8958c2ecf20Sopenharmony_ci	  back onto ingress connections for qdisc priority mapping
8968c2ecf20Sopenharmony_ci	  purposes.
8978c2ecf20Sopenharmony_ci
8988c2ecf20Sopenharmony_ci	  If unsure, say N.
8998c2ecf20Sopenharmony_ci
9008c2ecf20Sopenharmony_ci	  To compile this code as a module, choose M here: the
9018c2ecf20Sopenharmony_ci	  module will be called act_ctinfo.
9028c2ecf20Sopenharmony_ci
9038c2ecf20Sopenharmony_ciconfig NET_ACT_SKBMOD
9048c2ecf20Sopenharmony_ci	tristate "skb data modification action"
9058c2ecf20Sopenharmony_ci	depends on NET_CLS_ACT
9068c2ecf20Sopenharmony_ci	help
9078c2ecf20Sopenharmony_ci	 Say Y here to allow modification of skb data
9088c2ecf20Sopenharmony_ci
9098c2ecf20Sopenharmony_ci	 If unsure, say N.
9108c2ecf20Sopenharmony_ci
9118c2ecf20Sopenharmony_ci	 To compile this code as a module, choose M here: the
9128c2ecf20Sopenharmony_ci	 module will be called act_skbmod.
9138c2ecf20Sopenharmony_ci
9148c2ecf20Sopenharmony_ciconfig NET_ACT_IFE
9158c2ecf20Sopenharmony_ci	tristate "Inter-FE action based on IETF ForCES InterFE LFB"
9168c2ecf20Sopenharmony_ci	depends on NET_CLS_ACT
9178c2ecf20Sopenharmony_ci	select NET_IFE
9188c2ecf20Sopenharmony_ci	help
9198c2ecf20Sopenharmony_ci	  Say Y here to allow for sourcing and terminating metadata
9208c2ecf20Sopenharmony_ci	  For details refer to netdev01 paper:
9218c2ecf20Sopenharmony_ci	  "Distributing Linux Traffic Control Classifier-Action Subsystem"
9228c2ecf20Sopenharmony_ci	   Authors: Jamal Hadi Salim and Damascene M. Joachimpillai
9238c2ecf20Sopenharmony_ci
9248c2ecf20Sopenharmony_ci	  To compile this code as a module, choose M here: the
9258c2ecf20Sopenharmony_ci	  module will be called act_ife.
9268c2ecf20Sopenharmony_ci
9278c2ecf20Sopenharmony_ciconfig NET_ACT_TUNNEL_KEY
9288c2ecf20Sopenharmony_ci	tristate "IP tunnel metadata manipulation"
9298c2ecf20Sopenharmony_ci	depends on NET_CLS_ACT
9308c2ecf20Sopenharmony_ci	help
9318c2ecf20Sopenharmony_ci	  Say Y here to set/release ip tunnel metadata.
9328c2ecf20Sopenharmony_ci
9338c2ecf20Sopenharmony_ci	  If unsure, say N.
9348c2ecf20Sopenharmony_ci
9358c2ecf20Sopenharmony_ci	  To compile this code as a module, choose M here: the
9368c2ecf20Sopenharmony_ci	  module will be called act_tunnel_key.
9378c2ecf20Sopenharmony_ci
9388c2ecf20Sopenharmony_ciconfig NET_ACT_CT
9398c2ecf20Sopenharmony_ci	tristate "connection tracking tc action"
9408c2ecf20Sopenharmony_ci	depends on NET_CLS_ACT && NF_CONNTRACK && (!NF_NAT || NF_NAT) && NF_FLOW_TABLE
9418c2ecf20Sopenharmony_ci	help
9428c2ecf20Sopenharmony_ci	  Say Y here to allow sending the packets to conntrack module.
9438c2ecf20Sopenharmony_ci
9448c2ecf20Sopenharmony_ci	  If unsure, say N.
9458c2ecf20Sopenharmony_ci
9468c2ecf20Sopenharmony_ci	  To compile this code as a module, choose M here: the
9478c2ecf20Sopenharmony_ci	  module will be called act_ct.
9488c2ecf20Sopenharmony_ci
9498c2ecf20Sopenharmony_ciconfig NET_ACT_GATE
9508c2ecf20Sopenharmony_ci	tristate "Frame gate entry list control tc action"
9518c2ecf20Sopenharmony_ci	depends on NET_CLS_ACT
9528c2ecf20Sopenharmony_ci	help
9538c2ecf20Sopenharmony_ci	  Say Y here to allow to control the ingress flow to be passed at
9548c2ecf20Sopenharmony_ci	  specific time slot and be dropped at other specific time slot by
9558c2ecf20Sopenharmony_ci	  the gate entry list.
9568c2ecf20Sopenharmony_ci
9578c2ecf20Sopenharmony_ci	  If unsure, say N.
9588c2ecf20Sopenharmony_ci	  To compile this code as a module, choose M here: the
9598c2ecf20Sopenharmony_ci	  module will be called act_gate.
9608c2ecf20Sopenharmony_ci
9618c2ecf20Sopenharmony_ciconfig NET_IFE_SKBMARK
9628c2ecf20Sopenharmony_ci	tristate "Support to encoding decoding skb mark on IFE action"
9638c2ecf20Sopenharmony_ci	depends on NET_ACT_IFE
9648c2ecf20Sopenharmony_ci
9658c2ecf20Sopenharmony_ciconfig NET_IFE_SKBPRIO
9668c2ecf20Sopenharmony_ci	tristate "Support to encoding decoding skb prio on IFE action"
9678c2ecf20Sopenharmony_ci	depends on NET_ACT_IFE
9688c2ecf20Sopenharmony_ci
9698c2ecf20Sopenharmony_ciconfig NET_IFE_SKBTCINDEX
9708c2ecf20Sopenharmony_ci	tristate "Support to encoding decoding skb tcindex on IFE action"
9718c2ecf20Sopenharmony_ci	depends on NET_ACT_IFE
9728c2ecf20Sopenharmony_ci
9738c2ecf20Sopenharmony_ciconfig NET_TC_SKB_EXT
9748c2ecf20Sopenharmony_ci	bool "TC recirculation support"
9758c2ecf20Sopenharmony_ci	depends on NET_CLS_ACT
9768c2ecf20Sopenharmony_ci	select SKB_EXTENSIONS
9778c2ecf20Sopenharmony_ci
9788c2ecf20Sopenharmony_ci	help
9798c2ecf20Sopenharmony_ci	  Say Y here to allow tc chain misses to continue in OvS datapath in
9808c2ecf20Sopenharmony_ci	  the correct recirc_id, and hardware chain misses to continue in
9818c2ecf20Sopenharmony_ci	  the correct chain in tc software datapath.
9828c2ecf20Sopenharmony_ci
9838c2ecf20Sopenharmony_ci	  Say N here if you won't be using tc<->ovs offload or tc chains offload.
9848c2ecf20Sopenharmony_ci
9858c2ecf20Sopenharmony_ciendif # NET_SCHED
9868c2ecf20Sopenharmony_ci
9878c2ecf20Sopenharmony_ciconfig NET_SCH_FIFO
9888c2ecf20Sopenharmony_ci	bool
989