162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only
262306a36Sopenharmony_ci#
362306a36Sopenharmony_ci# Traffic control configuration.
462306a36Sopenharmony_ci#
562306a36Sopenharmony_ci
662306a36Sopenharmony_cimenuconfig NET_SCHED
762306a36Sopenharmony_ci	bool "QoS and/or fair queueing"
862306a36Sopenharmony_ci	select NET_SCH_FIFO
962306a36Sopenharmony_ci	help
1062306a36Sopenharmony_ci	  When the kernel has several packets to send out over a network
1162306a36Sopenharmony_ci	  device, it has to decide which ones to send first, which ones to
1262306a36Sopenharmony_ci	  delay, and which ones to drop. This is the job of the queueing
1362306a36Sopenharmony_ci	  disciplines, several different algorithms for how to do this
1462306a36Sopenharmony_ci	  "fairly" have been proposed.
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_ci	  If you say N here, you will get the standard packet scheduler, which
1762306a36Sopenharmony_ci	  is a FIFO (first come, first served). If you say Y here, you will be
1862306a36Sopenharmony_ci	  able to choose from among several alternative algorithms which can
1962306a36Sopenharmony_ci	  then be attached to different network devices. This is useful for
2062306a36Sopenharmony_ci	  example if some of your network devices are real time devices that
2162306a36Sopenharmony_ci	  need a certain minimum data flow rate, or if you need to limit the
2262306a36Sopenharmony_ci	  maximum data flow rate for traffic which matches specified criteria.
2362306a36Sopenharmony_ci	  This code is considered to be experimental.
2462306a36Sopenharmony_ci
2562306a36Sopenharmony_ci	  To administer these schedulers, you'll need the user-level utilities
2662306a36Sopenharmony_ci	  from the package iproute2+tc at
2762306a36Sopenharmony_ci	  <https://www.kernel.org/pub/linux/utils/net/iproute2/>.  That package
2862306a36Sopenharmony_ci	  also contains some documentation; for more, check out
2962306a36Sopenharmony_ci	  <http://www.linuxfoundation.org/collaborate/workgroups/networking/iproute2>.
3062306a36Sopenharmony_ci
3162306a36Sopenharmony_ci	  This Quality of Service (QoS) support will enable you to use
3262306a36Sopenharmony_ci	  Differentiated Services (diffserv) and Resource Reservation Protocol
3362306a36Sopenharmony_ci	  (RSVP) on your Linux router if you also say Y to the corresponding
3462306a36Sopenharmony_ci	  classifiers below.  Documentation and software is at
3562306a36Sopenharmony_ci	  <http://diffserv.sourceforge.net/>.
3662306a36Sopenharmony_ci
3762306a36Sopenharmony_ci	  If you say Y here and to "/proc file system" below, you will be able
3862306a36Sopenharmony_ci	  to read status information about packet schedulers from the file
3962306a36Sopenharmony_ci	  /proc/net/psched.
4062306a36Sopenharmony_ci
4162306a36Sopenharmony_ci	  The available schedulers are listed in the following questions; you
4262306a36Sopenharmony_ci	  can say Y to as many as you like. If unsure, say N now.
4362306a36Sopenharmony_ci
4462306a36Sopenharmony_ciif NET_SCHED
4562306a36Sopenharmony_ci
4662306a36Sopenharmony_cicomment "Queueing/Scheduling"
4762306a36Sopenharmony_ci
4862306a36Sopenharmony_ciconfig NET_SCH_HTB
4962306a36Sopenharmony_ci	tristate "Hierarchical Token Bucket (HTB)"
5062306a36Sopenharmony_ci	help
5162306a36Sopenharmony_ci	  Say Y here if you want to use the Hierarchical Token Buckets (HTB)
5262306a36Sopenharmony_ci	  packet scheduling algorithm. See
5362306a36Sopenharmony_ci	  <http://luxik.cdi.cz/~devik/qos/htb/> for complete manual and
5462306a36Sopenharmony_ci	  in-depth articles.
5562306a36Sopenharmony_ci
5662306a36Sopenharmony_ci	  HTB is very similar to CBQ regarding its goals however is has
5762306a36Sopenharmony_ci	  different properties and different algorithm.
5862306a36Sopenharmony_ci
5962306a36Sopenharmony_ci	  To compile this code as a module, choose M here: the
6062306a36Sopenharmony_ci	  module will be called sch_htb.
6162306a36Sopenharmony_ci
6262306a36Sopenharmony_ciconfig NET_SCH_HFSC
6362306a36Sopenharmony_ci	tristate "Hierarchical Fair Service Curve (HFSC)"
6462306a36Sopenharmony_ci	help
6562306a36Sopenharmony_ci	  Say Y here if you want to use the Hierarchical Fair Service Curve
6662306a36Sopenharmony_ci	  (HFSC) packet scheduling algorithm.
6762306a36Sopenharmony_ci
6862306a36Sopenharmony_ci	  To compile this code as a module, choose M here: the
6962306a36Sopenharmony_ci	  module will be called sch_hfsc.
7062306a36Sopenharmony_ci
7162306a36Sopenharmony_ciconfig NET_SCH_PRIO
7262306a36Sopenharmony_ci	tristate "Multi Band Priority Queueing (PRIO)"
7362306a36Sopenharmony_ci	help
7462306a36Sopenharmony_ci	  Say Y here if you want to use an n-band priority queue packet
7562306a36Sopenharmony_ci	  scheduler.
7662306a36Sopenharmony_ci
7762306a36Sopenharmony_ci	  To compile this code as a module, choose M here: the
7862306a36Sopenharmony_ci	  module will be called sch_prio.
7962306a36Sopenharmony_ci
8062306a36Sopenharmony_ciconfig NET_SCH_MULTIQ
8162306a36Sopenharmony_ci	tristate "Hardware Multiqueue-aware Multi Band Queuing (MULTIQ)"
8262306a36Sopenharmony_ci	help
8362306a36Sopenharmony_ci	  Say Y here if you want to use an n-band queue packet scheduler
8462306a36Sopenharmony_ci	  to support devices that have multiple hardware transmit queues.
8562306a36Sopenharmony_ci
8662306a36Sopenharmony_ci	  To compile this code as a module, choose M here: the
8762306a36Sopenharmony_ci	  module will be called sch_multiq.
8862306a36Sopenharmony_ci
8962306a36Sopenharmony_ciconfig NET_SCH_RED
9062306a36Sopenharmony_ci	tristate "Random Early Detection (RED)"
9162306a36Sopenharmony_ci	help
9262306a36Sopenharmony_ci	  Say Y here if you want to use the Random Early Detection (RED)
9362306a36Sopenharmony_ci	  packet scheduling algorithm.
9462306a36Sopenharmony_ci
9562306a36Sopenharmony_ci	  See the top of <file:net/sched/sch_red.c> for more details.
9662306a36Sopenharmony_ci
9762306a36Sopenharmony_ci	  To compile this code as a module, choose M here: the
9862306a36Sopenharmony_ci	  module will be called sch_red.
9962306a36Sopenharmony_ci
10062306a36Sopenharmony_ciconfig NET_SCH_SFB
10162306a36Sopenharmony_ci	tristate "Stochastic Fair Blue (SFB)"
10262306a36Sopenharmony_ci	help
10362306a36Sopenharmony_ci	  Say Y here if you want to use the Stochastic Fair Blue (SFB)
10462306a36Sopenharmony_ci	  packet scheduling algorithm.
10562306a36Sopenharmony_ci
10662306a36Sopenharmony_ci	  See the top of <file:net/sched/sch_sfb.c> for more details.
10762306a36Sopenharmony_ci
10862306a36Sopenharmony_ci	  To compile this code as a module, choose M here: the
10962306a36Sopenharmony_ci	  module will be called sch_sfb.
11062306a36Sopenharmony_ci
11162306a36Sopenharmony_ciconfig NET_SCH_SFQ
11262306a36Sopenharmony_ci	tristate "Stochastic Fairness Queueing (SFQ)"
11362306a36Sopenharmony_ci	help
11462306a36Sopenharmony_ci	  Say Y here if you want to use the Stochastic Fairness Queueing (SFQ)
11562306a36Sopenharmony_ci	  packet scheduling algorithm.
11662306a36Sopenharmony_ci
11762306a36Sopenharmony_ci	  See the top of <file:net/sched/sch_sfq.c> for more details.
11862306a36Sopenharmony_ci
11962306a36Sopenharmony_ci	  To compile this code as a module, choose M here: the
12062306a36Sopenharmony_ci	  module will be called sch_sfq.
12162306a36Sopenharmony_ci
12262306a36Sopenharmony_ciconfig NET_SCH_TEQL
12362306a36Sopenharmony_ci	tristate "True Link Equalizer (TEQL)"
12462306a36Sopenharmony_ci	help
12562306a36Sopenharmony_ci	  Say Y here if you want to use the True Link Equalizer (TLE) packet
12662306a36Sopenharmony_ci	  scheduling algorithm. This queueing discipline allows the combination
12762306a36Sopenharmony_ci	  of several physical devices into one virtual device.
12862306a36Sopenharmony_ci
12962306a36Sopenharmony_ci	  See the top of <file:net/sched/sch_teql.c> for more details.
13062306a36Sopenharmony_ci
13162306a36Sopenharmony_ci	  To compile this code as a module, choose M here: the
13262306a36Sopenharmony_ci	  module will be called sch_teql.
13362306a36Sopenharmony_ci
13462306a36Sopenharmony_ciconfig NET_SCH_TBF
13562306a36Sopenharmony_ci	tristate "Token Bucket Filter (TBF)"
13662306a36Sopenharmony_ci	help
13762306a36Sopenharmony_ci	  Say Y here if you want to use the Token Bucket Filter (TBF) packet
13862306a36Sopenharmony_ci	  scheduling algorithm.
13962306a36Sopenharmony_ci
14062306a36Sopenharmony_ci	  See the top of <file:net/sched/sch_tbf.c> for more details.
14162306a36Sopenharmony_ci
14262306a36Sopenharmony_ci	  To compile this code as a module, choose M here: the
14362306a36Sopenharmony_ci	  module will be called sch_tbf.
14462306a36Sopenharmony_ci
14562306a36Sopenharmony_ciconfig NET_SCH_CBS
14662306a36Sopenharmony_ci	tristate "Credit Based Shaper (CBS)"
14762306a36Sopenharmony_ci	help
14862306a36Sopenharmony_ci	  Say Y here if you want to use the Credit Based Shaper (CBS) packet
14962306a36Sopenharmony_ci	  scheduling algorithm.
15062306a36Sopenharmony_ci
15162306a36Sopenharmony_ci	  See the top of <file:net/sched/sch_cbs.c> for more details.
15262306a36Sopenharmony_ci
15362306a36Sopenharmony_ci	  To compile this code as a module, choose M here: the
15462306a36Sopenharmony_ci	  module will be called sch_cbs.
15562306a36Sopenharmony_ci
15662306a36Sopenharmony_ciconfig NET_SCH_ETF
15762306a36Sopenharmony_ci	tristate "Earliest TxTime First (ETF)"
15862306a36Sopenharmony_ci	help
15962306a36Sopenharmony_ci	  Say Y here if you want to use the Earliest TxTime First (ETF) packet
16062306a36Sopenharmony_ci	  scheduling algorithm.
16162306a36Sopenharmony_ci
16262306a36Sopenharmony_ci	  See the top of <file:net/sched/sch_etf.c> for more details.
16362306a36Sopenharmony_ci
16462306a36Sopenharmony_ci	  To compile this code as a module, choose M here: the
16562306a36Sopenharmony_ci	  module will be called sch_etf.
16662306a36Sopenharmony_ci
16762306a36Sopenharmony_ciconfig NET_SCH_MQPRIO_LIB
16862306a36Sopenharmony_ci	tristate
16962306a36Sopenharmony_ci	help
17062306a36Sopenharmony_ci	  Common library for manipulating mqprio queue configurations.
17162306a36Sopenharmony_ci
17262306a36Sopenharmony_ciconfig NET_SCH_TAPRIO
17362306a36Sopenharmony_ci	tristate "Time Aware Priority (taprio) Scheduler"
17462306a36Sopenharmony_ci	select NET_SCH_MQPRIO_LIB
17562306a36Sopenharmony_ci	help
17662306a36Sopenharmony_ci	  Say Y here if you want to use the Time Aware Priority (taprio) packet
17762306a36Sopenharmony_ci	  scheduling algorithm.
17862306a36Sopenharmony_ci
17962306a36Sopenharmony_ci	  See the top of <file:net/sched/sch_taprio.c> for more details.
18062306a36Sopenharmony_ci
18162306a36Sopenharmony_ci	  To compile this code as a module, choose M here: the
18262306a36Sopenharmony_ci	  module will be called sch_taprio.
18362306a36Sopenharmony_ci
18462306a36Sopenharmony_ciconfig NET_SCH_GRED
18562306a36Sopenharmony_ci	tristate "Generic Random Early Detection (GRED)"
18662306a36Sopenharmony_ci	help
18762306a36Sopenharmony_ci	  Say Y here if you want to use the Generic Random Early Detection
18862306a36Sopenharmony_ci	  (GRED) packet scheduling algorithm for some of your network devices
18962306a36Sopenharmony_ci	  (see the top of <file:net/sched/sch_red.c> for details and
19062306a36Sopenharmony_ci	  references about the algorithm).
19162306a36Sopenharmony_ci
19262306a36Sopenharmony_ci	  To compile this code as a module, choose M here: the
19362306a36Sopenharmony_ci	  module will be called sch_gred.
19462306a36Sopenharmony_ci
19562306a36Sopenharmony_ciconfig NET_SCH_NETEM
19662306a36Sopenharmony_ci	tristate "Network emulator (NETEM)"
19762306a36Sopenharmony_ci	help
19862306a36Sopenharmony_ci	  Say Y if you want to emulate network delay, loss, and packet
19962306a36Sopenharmony_ci	  re-ordering. This is often useful to simulate networks when
20062306a36Sopenharmony_ci	  testing applications or protocols.
20162306a36Sopenharmony_ci
20262306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
20362306a36Sopenharmony_ci	  will be called sch_netem.
20462306a36Sopenharmony_ci
20562306a36Sopenharmony_ci	  If unsure, say N.
20662306a36Sopenharmony_ci
20762306a36Sopenharmony_ciconfig NET_SCH_DRR
20862306a36Sopenharmony_ci	tristate "Deficit Round Robin scheduler (DRR)"
20962306a36Sopenharmony_ci	help
21062306a36Sopenharmony_ci	  Say Y here if you want to use the Deficit Round Robin (DRR) packet
21162306a36Sopenharmony_ci	  scheduling algorithm.
21262306a36Sopenharmony_ci
21362306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
21462306a36Sopenharmony_ci	  will be called sch_drr.
21562306a36Sopenharmony_ci
21662306a36Sopenharmony_ci	  If unsure, say N.
21762306a36Sopenharmony_ci
21862306a36Sopenharmony_ciconfig NET_SCH_MQPRIO
21962306a36Sopenharmony_ci	tristate "Multi-queue priority scheduler (MQPRIO)"
22062306a36Sopenharmony_ci	select NET_SCH_MQPRIO_LIB
22162306a36Sopenharmony_ci	help
22262306a36Sopenharmony_ci	  Say Y here if you want to use the Multi-queue Priority scheduler.
22362306a36Sopenharmony_ci	  This scheduler allows QOS to be offloaded on NICs that have support
22462306a36Sopenharmony_ci	  for offloading QOS schedulers.
22562306a36Sopenharmony_ci
22662306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module will
22762306a36Sopenharmony_ci	  be called sch_mqprio.
22862306a36Sopenharmony_ci
22962306a36Sopenharmony_ci	  If unsure, say N.
23062306a36Sopenharmony_ci
23162306a36Sopenharmony_ciconfig NET_SCH_SKBPRIO
23262306a36Sopenharmony_ci	tristate "SKB priority queue scheduler (SKBPRIO)"
23362306a36Sopenharmony_ci	help
23462306a36Sopenharmony_ci	  Say Y here if you want to use the SKB priority queue
23562306a36Sopenharmony_ci	  scheduler. This schedules packets according to skb->priority,
23662306a36Sopenharmony_ci	  which is useful for request packets in DoS mitigation systems such
23762306a36Sopenharmony_ci	  as Gatekeeper.
23862306a36Sopenharmony_ci
23962306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module will
24062306a36Sopenharmony_ci	  be called sch_skbprio.
24162306a36Sopenharmony_ci
24262306a36Sopenharmony_ci	  If unsure, say N.
24362306a36Sopenharmony_ci
24462306a36Sopenharmony_ciconfig NET_SCH_CHOKE
24562306a36Sopenharmony_ci	tristate "CHOose and Keep responsive flow scheduler (CHOKE)"
24662306a36Sopenharmony_ci	help
24762306a36Sopenharmony_ci	  Say Y here if you want to use the CHOKe packet scheduler (CHOose
24862306a36Sopenharmony_ci	  and Keep for responsive flows, CHOose and Kill for unresponsive
24962306a36Sopenharmony_ci	  flows). This is a variation of RED which tries to penalize flows
25062306a36Sopenharmony_ci	  that monopolize the queue.
25162306a36Sopenharmony_ci
25262306a36Sopenharmony_ci	  To compile this code as a module, choose M here: the
25362306a36Sopenharmony_ci	  module will be called sch_choke.
25462306a36Sopenharmony_ci
25562306a36Sopenharmony_ciconfig NET_SCH_QFQ
25662306a36Sopenharmony_ci	tristate "Quick Fair Queueing scheduler (QFQ)"
25762306a36Sopenharmony_ci	help
25862306a36Sopenharmony_ci	  Say Y here if you want to use the Quick Fair Queueing Scheduler (QFQ)
25962306a36Sopenharmony_ci	  packet scheduling algorithm.
26062306a36Sopenharmony_ci
26162306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
26262306a36Sopenharmony_ci	  will be called sch_qfq.
26362306a36Sopenharmony_ci
26462306a36Sopenharmony_ci	  If unsure, say N.
26562306a36Sopenharmony_ci
26662306a36Sopenharmony_ciconfig NET_SCH_CODEL
26762306a36Sopenharmony_ci	tristate "Controlled Delay AQM (CODEL)"
26862306a36Sopenharmony_ci	help
26962306a36Sopenharmony_ci	  Say Y here if you want to use the Controlled Delay (CODEL)
27062306a36Sopenharmony_ci	  packet scheduling algorithm.
27162306a36Sopenharmony_ci
27262306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
27362306a36Sopenharmony_ci	  will be called sch_codel.
27462306a36Sopenharmony_ci
27562306a36Sopenharmony_ci	  If unsure, say N.
27662306a36Sopenharmony_ci
27762306a36Sopenharmony_ciconfig NET_SCH_FQ_CODEL
27862306a36Sopenharmony_ci	tristate "Fair Queue Controlled Delay AQM (FQ_CODEL)"
27962306a36Sopenharmony_ci	help
28062306a36Sopenharmony_ci	  Say Y here if you want to use the FQ Controlled Delay (FQ_CODEL)
28162306a36Sopenharmony_ci	  packet scheduling algorithm.
28262306a36Sopenharmony_ci
28362306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
28462306a36Sopenharmony_ci	  will be called sch_fq_codel.
28562306a36Sopenharmony_ci
28662306a36Sopenharmony_ci	  If unsure, say N.
28762306a36Sopenharmony_ci
28862306a36Sopenharmony_ciconfig NET_SCH_CAKE
28962306a36Sopenharmony_ci	tristate "Common Applications Kept Enhanced (CAKE)"
29062306a36Sopenharmony_ci	help
29162306a36Sopenharmony_ci	  Say Y here if you want to use the Common Applications Kept Enhanced
29262306a36Sopenharmony_ci	  (CAKE) queue management algorithm.
29362306a36Sopenharmony_ci
29462306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
29562306a36Sopenharmony_ci	  will be called sch_cake.
29662306a36Sopenharmony_ci
29762306a36Sopenharmony_ci	  If unsure, say N.
29862306a36Sopenharmony_ci
29962306a36Sopenharmony_ciconfig NET_SCH_FQ
30062306a36Sopenharmony_ci	tristate "Fair Queue"
30162306a36Sopenharmony_ci	help
30262306a36Sopenharmony_ci	  Say Y here if you want to use the FQ packet scheduling algorithm.
30362306a36Sopenharmony_ci
30462306a36Sopenharmony_ci	  FQ does flow separation, and is able to respect pacing requirements
30562306a36Sopenharmony_ci	  set by TCP stack into sk->sk_pacing_rate (for locally generated
30662306a36Sopenharmony_ci	  traffic)
30762306a36Sopenharmony_ci
30862306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
30962306a36Sopenharmony_ci	  will be called sch_fq.
31062306a36Sopenharmony_ci
31162306a36Sopenharmony_ci	  If unsure, say N.
31262306a36Sopenharmony_ci
31362306a36Sopenharmony_ciconfig NET_SCH_HHF
31462306a36Sopenharmony_ci	tristate "Heavy-Hitter Filter (HHF)"
31562306a36Sopenharmony_ci	help
31662306a36Sopenharmony_ci	  Say Y here if you want to use the Heavy-Hitter Filter (HHF)
31762306a36Sopenharmony_ci	  packet scheduling algorithm.
31862306a36Sopenharmony_ci
31962306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
32062306a36Sopenharmony_ci	  will be called sch_hhf.
32162306a36Sopenharmony_ci
32262306a36Sopenharmony_ciconfig NET_SCH_PIE
32362306a36Sopenharmony_ci	tristate "Proportional Integral controller Enhanced (PIE) scheduler"
32462306a36Sopenharmony_ci	help
32562306a36Sopenharmony_ci	  Say Y here if you want to use the Proportional Integral controller
32662306a36Sopenharmony_ci	  Enhanced scheduler packet scheduling algorithm.
32762306a36Sopenharmony_ci	  For more information, please see https://tools.ietf.org/html/rfc8033
32862306a36Sopenharmony_ci
32962306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
33062306a36Sopenharmony_ci	  will be called sch_pie.
33162306a36Sopenharmony_ci
33262306a36Sopenharmony_ci	  If unsure, say N.
33362306a36Sopenharmony_ci
33462306a36Sopenharmony_ciconfig NET_SCH_FQ_PIE
33562306a36Sopenharmony_ci	depends on NET_SCH_PIE
33662306a36Sopenharmony_ci	tristate "Flow Queue Proportional Integral controller Enhanced (FQ-PIE)"
33762306a36Sopenharmony_ci	help
33862306a36Sopenharmony_ci	  Say Y here if you want to use the Flow Queue Proportional Integral
33962306a36Sopenharmony_ci	  controller Enhanced (FQ-PIE) packet scheduling algorithm.
34062306a36Sopenharmony_ci	  For more information, please see https://tools.ietf.org/html/rfc8033
34162306a36Sopenharmony_ci
34262306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
34362306a36Sopenharmony_ci	  will be called sch_fq_pie.
34462306a36Sopenharmony_ci
34562306a36Sopenharmony_ci	  If unsure, say N.
34662306a36Sopenharmony_ci
34762306a36Sopenharmony_ciconfig NET_SCH_INGRESS
34862306a36Sopenharmony_ci	tristate "Ingress/classifier-action Qdisc"
34962306a36Sopenharmony_ci	depends on NET_CLS_ACT
35062306a36Sopenharmony_ci	select NET_XGRESS
35162306a36Sopenharmony_ci	help
35262306a36Sopenharmony_ci	  Say Y here if you want to use classifiers for incoming and/or outgoing
35362306a36Sopenharmony_ci	  packets. This qdisc doesn't do anything else besides running classifiers,
35462306a36Sopenharmony_ci	  which can also have actions attached to them. In case of outgoing packets,
35562306a36Sopenharmony_ci	  classifiers that this qdisc holds are executed in the transmit path
35662306a36Sopenharmony_ci	  before real enqueuing to an egress qdisc happens.
35762306a36Sopenharmony_ci
35862306a36Sopenharmony_ci	  If unsure, say Y.
35962306a36Sopenharmony_ci
36062306a36Sopenharmony_ci	  To compile this code as a module, choose M here: the module will be
36162306a36Sopenharmony_ci	  called sch_ingress with alias of sch_clsact.
36262306a36Sopenharmony_ci
36362306a36Sopenharmony_ciconfig NET_SCH_PLUG
36462306a36Sopenharmony_ci	tristate "Plug network traffic until release (PLUG)"
36562306a36Sopenharmony_ci	help
36662306a36Sopenharmony_ci
36762306a36Sopenharmony_ci	  This queuing discipline allows userspace to plug/unplug a network
36862306a36Sopenharmony_ci	  output queue, using the netlink interface.  When it receives an
36962306a36Sopenharmony_ci	  enqueue command it inserts a plug into the outbound queue that
37062306a36Sopenharmony_ci	  causes following packets to enqueue until a dequeue command arrives
37162306a36Sopenharmony_ci	  over netlink, causing the plug to be removed and resuming the normal
37262306a36Sopenharmony_ci	  packet flow.
37362306a36Sopenharmony_ci
37462306a36Sopenharmony_ci	  This module also provides a generic "network output buffering"
37562306a36Sopenharmony_ci	  functionality (aka output commit), wherein upon arrival of a dequeue
37662306a36Sopenharmony_ci	  command, only packets up to the first plug are released for delivery.
37762306a36Sopenharmony_ci	  The Remus HA project uses this module to enable speculative execution
37862306a36Sopenharmony_ci	  of virtual machines by allowing the generated network output to be rolled
37962306a36Sopenharmony_ci	  back if needed.
38062306a36Sopenharmony_ci
38162306a36Sopenharmony_ci	  For more information, please refer to <http://wiki.xenproject.org/wiki/Remus>
38262306a36Sopenharmony_ci
38362306a36Sopenharmony_ci	  Say Y here if you are using this kernel for Xen dom0 and
38462306a36Sopenharmony_ci	  want to protect Xen guests with Remus.
38562306a36Sopenharmony_ci
38662306a36Sopenharmony_ci	  To compile this code as a module, choose M here: the
38762306a36Sopenharmony_ci	  module will be called sch_plug.
38862306a36Sopenharmony_ci
38962306a36Sopenharmony_ciconfig NET_SCH_ETS
39062306a36Sopenharmony_ci	tristate "Enhanced transmission selection scheduler (ETS)"
39162306a36Sopenharmony_ci	help
39262306a36Sopenharmony_ci          The Enhanced Transmission Selection scheduler is a classful
39362306a36Sopenharmony_ci          queuing discipline that merges functionality of PRIO and DRR
39462306a36Sopenharmony_ci          qdiscs in one scheduler. ETS makes it easy to configure a set of
39562306a36Sopenharmony_ci          strict and bandwidth-sharing bands to implement the transmission
39662306a36Sopenharmony_ci          selection described in 802.1Qaz.
39762306a36Sopenharmony_ci
39862306a36Sopenharmony_ci	  Say Y here if you want to use the ETS packet scheduling
39962306a36Sopenharmony_ci	  algorithm.
40062306a36Sopenharmony_ci
40162306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
40262306a36Sopenharmony_ci	  will be called sch_ets.
40362306a36Sopenharmony_ci
40462306a36Sopenharmony_ci	  If unsure, say N.
40562306a36Sopenharmony_ci
40662306a36Sopenharmony_cimenuconfig NET_SCH_DEFAULT
40762306a36Sopenharmony_ci	bool "Allow override default queue discipline"
40862306a36Sopenharmony_ci	help
40962306a36Sopenharmony_ci	  Support for selection of default queuing discipline.
41062306a36Sopenharmony_ci
41162306a36Sopenharmony_ci	  Nearly all users can safely say no here, and the default
41262306a36Sopenharmony_ci	  of pfifo_fast will be used. Many distributions already set
41362306a36Sopenharmony_ci	  the default value via /proc/sys/net/core/default_qdisc.
41462306a36Sopenharmony_ci
41562306a36Sopenharmony_ci	  If unsure, say N.
41662306a36Sopenharmony_ci
41762306a36Sopenharmony_ciif NET_SCH_DEFAULT
41862306a36Sopenharmony_ci
41962306a36Sopenharmony_cichoice
42062306a36Sopenharmony_ci	prompt "Default queuing discipline"
42162306a36Sopenharmony_ci	default DEFAULT_PFIFO_FAST
42262306a36Sopenharmony_ci	help
42362306a36Sopenharmony_ci	  Select the queueing discipline that will be used by default
42462306a36Sopenharmony_ci	  for all network devices.
42562306a36Sopenharmony_ci
42662306a36Sopenharmony_ci	config DEFAULT_FQ
42762306a36Sopenharmony_ci		bool "Fair Queue" if NET_SCH_FQ
42862306a36Sopenharmony_ci
42962306a36Sopenharmony_ci	config DEFAULT_CODEL
43062306a36Sopenharmony_ci		bool "Controlled Delay" if NET_SCH_CODEL
43162306a36Sopenharmony_ci
43262306a36Sopenharmony_ci	config DEFAULT_FQ_CODEL
43362306a36Sopenharmony_ci		bool "Fair Queue Controlled Delay" if NET_SCH_FQ_CODEL
43462306a36Sopenharmony_ci
43562306a36Sopenharmony_ci	config DEFAULT_FQ_PIE
43662306a36Sopenharmony_ci		bool "Flow Queue Proportional Integral controller Enhanced" if NET_SCH_FQ_PIE
43762306a36Sopenharmony_ci
43862306a36Sopenharmony_ci	config DEFAULT_SFQ
43962306a36Sopenharmony_ci		bool "Stochastic Fair Queue" if NET_SCH_SFQ
44062306a36Sopenharmony_ci
44162306a36Sopenharmony_ci	config DEFAULT_PFIFO_FAST
44262306a36Sopenharmony_ci		bool "Priority FIFO Fast"
44362306a36Sopenharmony_ciendchoice
44462306a36Sopenharmony_ci
44562306a36Sopenharmony_ciconfig DEFAULT_NET_SCH
44662306a36Sopenharmony_ci	string
44762306a36Sopenharmony_ci	default "pfifo_fast" if DEFAULT_PFIFO_FAST
44862306a36Sopenharmony_ci	default "fq" if DEFAULT_FQ
44962306a36Sopenharmony_ci	default "fq_codel" if DEFAULT_FQ_CODEL
45062306a36Sopenharmony_ci	default "fq_pie" if DEFAULT_FQ_PIE
45162306a36Sopenharmony_ci	default "sfq" if DEFAULT_SFQ
45262306a36Sopenharmony_ci	default "pfifo_fast"
45362306a36Sopenharmony_ciendif
45462306a36Sopenharmony_ci
45562306a36Sopenharmony_cicomment "Classification"
45662306a36Sopenharmony_ci
45762306a36Sopenharmony_ciconfig NET_CLS
45862306a36Sopenharmony_ci	bool
45962306a36Sopenharmony_ci
46062306a36Sopenharmony_ciconfig NET_CLS_BASIC
46162306a36Sopenharmony_ci	tristate "Elementary classification (BASIC)"
46262306a36Sopenharmony_ci	select NET_CLS
46362306a36Sopenharmony_ci	help
46462306a36Sopenharmony_ci	  Say Y here if you want to be able to classify packets using
46562306a36Sopenharmony_ci	  only extended matches and actions.
46662306a36Sopenharmony_ci
46762306a36Sopenharmony_ci	  To compile this code as a module, choose M here: the
46862306a36Sopenharmony_ci	  module will be called cls_basic.
46962306a36Sopenharmony_ci
47062306a36Sopenharmony_ciconfig NET_CLS_ROUTE4
47162306a36Sopenharmony_ci	tristate "Routing decision (ROUTE)"
47262306a36Sopenharmony_ci	depends on INET
47362306a36Sopenharmony_ci	select IP_ROUTE_CLASSID
47462306a36Sopenharmony_ci	select NET_CLS
47562306a36Sopenharmony_ci	help
47662306a36Sopenharmony_ci	  If you say Y here, you will be able to classify packets
47762306a36Sopenharmony_ci	  according to the route table entry they matched.
47862306a36Sopenharmony_ci
47962306a36Sopenharmony_ci	  To compile this code as a module, choose M here: the
48062306a36Sopenharmony_ci	  module will be called cls_route.
48162306a36Sopenharmony_ci
48262306a36Sopenharmony_ciconfig NET_CLS_FW
48362306a36Sopenharmony_ci	tristate "Netfilter mark (FW)"
48462306a36Sopenharmony_ci	select NET_CLS
48562306a36Sopenharmony_ci	help
48662306a36Sopenharmony_ci	  If you say Y here, you will be able to classify packets
48762306a36Sopenharmony_ci	  according to netfilter/firewall marks.
48862306a36Sopenharmony_ci
48962306a36Sopenharmony_ci	  To compile this code as a module, choose M here: the
49062306a36Sopenharmony_ci	  module will be called cls_fw.
49162306a36Sopenharmony_ci
49262306a36Sopenharmony_ciconfig NET_CLS_U32
49362306a36Sopenharmony_ci	tristate "Universal 32bit comparisons w/ hashing (U32)"
49462306a36Sopenharmony_ci	select NET_CLS
49562306a36Sopenharmony_ci	help
49662306a36Sopenharmony_ci	  Say Y here to be able to classify packets using a universal
49762306a36Sopenharmony_ci	  32bit pieces based comparison scheme.
49862306a36Sopenharmony_ci
49962306a36Sopenharmony_ci	  To compile this code as a module, choose M here: the
50062306a36Sopenharmony_ci	  module will be called cls_u32.
50162306a36Sopenharmony_ci
50262306a36Sopenharmony_ciconfig CLS_U32_PERF
50362306a36Sopenharmony_ci	bool "Performance counters support"
50462306a36Sopenharmony_ci	depends on NET_CLS_U32
50562306a36Sopenharmony_ci	help
50662306a36Sopenharmony_ci	  Say Y here to make u32 gather additional statistics useful for
50762306a36Sopenharmony_ci	  fine tuning u32 classifiers.
50862306a36Sopenharmony_ci
50962306a36Sopenharmony_ciconfig CLS_U32_MARK
51062306a36Sopenharmony_ci	bool "Netfilter marks support"
51162306a36Sopenharmony_ci	depends on NET_CLS_U32
51262306a36Sopenharmony_ci	help
51362306a36Sopenharmony_ci	  Say Y here to be able to use netfilter marks as u32 key.
51462306a36Sopenharmony_ci
51562306a36Sopenharmony_ciconfig NET_CLS_FLOW
51662306a36Sopenharmony_ci	tristate "Flow classifier"
51762306a36Sopenharmony_ci	select NET_CLS
51862306a36Sopenharmony_ci	help
51962306a36Sopenharmony_ci	  If you say Y here, you will be able to classify packets based on
52062306a36Sopenharmony_ci	  a configurable combination of packet keys. This is mostly useful
52162306a36Sopenharmony_ci	  in combination with SFQ.
52262306a36Sopenharmony_ci
52362306a36Sopenharmony_ci	  To compile this code as a module, choose M here: the
52462306a36Sopenharmony_ci	  module will be called cls_flow.
52562306a36Sopenharmony_ci
52662306a36Sopenharmony_ciconfig NET_CLS_CGROUP
52762306a36Sopenharmony_ci	tristate "Control Group Classifier"
52862306a36Sopenharmony_ci	select NET_CLS
52962306a36Sopenharmony_ci	select CGROUP_NET_CLASSID
53062306a36Sopenharmony_ci	depends on CGROUPS
53162306a36Sopenharmony_ci	help
53262306a36Sopenharmony_ci	  Say Y here if you want to classify packets based on the control
53362306a36Sopenharmony_ci	  cgroup of their process.
53462306a36Sopenharmony_ci
53562306a36Sopenharmony_ci	  To compile this code as a module, choose M here: the
53662306a36Sopenharmony_ci	  module will be called cls_cgroup.
53762306a36Sopenharmony_ci
53862306a36Sopenharmony_ciconfig NET_CLS_BPF
53962306a36Sopenharmony_ci	tristate "BPF-based classifier"
54062306a36Sopenharmony_ci	select NET_CLS
54162306a36Sopenharmony_ci	help
54262306a36Sopenharmony_ci	  If you say Y here, you will be able to classify packets based on
54362306a36Sopenharmony_ci	  programmable BPF (JIT'ed) filters as an alternative to ematches.
54462306a36Sopenharmony_ci
54562306a36Sopenharmony_ci	  To compile this code as a module, choose M here: the module will
54662306a36Sopenharmony_ci	  be called cls_bpf.
54762306a36Sopenharmony_ci
54862306a36Sopenharmony_ciconfig NET_CLS_FLOWER
54962306a36Sopenharmony_ci	tristate "Flower classifier"
55062306a36Sopenharmony_ci	select NET_CLS
55162306a36Sopenharmony_ci	help
55262306a36Sopenharmony_ci	  If you say Y here, you will be able to classify packets based on
55362306a36Sopenharmony_ci	  a configurable combination of packet keys and masks.
55462306a36Sopenharmony_ci
55562306a36Sopenharmony_ci	  To compile this code as a module, choose M here: the module will
55662306a36Sopenharmony_ci	  be called cls_flower.
55762306a36Sopenharmony_ci
55862306a36Sopenharmony_ciconfig NET_CLS_MATCHALL
55962306a36Sopenharmony_ci	tristate "Match-all classifier"
56062306a36Sopenharmony_ci	select NET_CLS
56162306a36Sopenharmony_ci	help
56262306a36Sopenharmony_ci	  If you say Y here, you will be able to classify packets based on
56362306a36Sopenharmony_ci	  nothing. Every packet will match.
56462306a36Sopenharmony_ci
56562306a36Sopenharmony_ci	  To compile this code as a module, choose M here: the module will
56662306a36Sopenharmony_ci	  be called cls_matchall.
56762306a36Sopenharmony_ci
56862306a36Sopenharmony_ciconfig NET_EMATCH
56962306a36Sopenharmony_ci	bool "Extended Matches"
57062306a36Sopenharmony_ci	select NET_CLS
57162306a36Sopenharmony_ci	help
57262306a36Sopenharmony_ci	  Say Y here if you want to use extended matches on top of classifiers
57362306a36Sopenharmony_ci	  and select the extended matches below.
57462306a36Sopenharmony_ci
57562306a36Sopenharmony_ci	  Extended matches are small classification helpers not worth writing
57662306a36Sopenharmony_ci	  a separate classifier for.
57762306a36Sopenharmony_ci
57862306a36Sopenharmony_ci	  A recent version of the iproute2 package is required to use
57962306a36Sopenharmony_ci	  extended matches.
58062306a36Sopenharmony_ci
58162306a36Sopenharmony_ciconfig NET_EMATCH_STACK
58262306a36Sopenharmony_ci	int "Stack size"
58362306a36Sopenharmony_ci	depends on NET_EMATCH
58462306a36Sopenharmony_ci	default "32"
58562306a36Sopenharmony_ci	help
58662306a36Sopenharmony_ci	  Size of the local stack variable used while evaluating the tree of
58762306a36Sopenharmony_ci	  ematches. Limits the depth of the tree, i.e. the number of
58862306a36Sopenharmony_ci	  encapsulated precedences. Every level requires 4 bytes of additional
58962306a36Sopenharmony_ci	  stack space.
59062306a36Sopenharmony_ci
59162306a36Sopenharmony_ciconfig NET_EMATCH_CMP
59262306a36Sopenharmony_ci	tristate "Simple packet data comparison"
59362306a36Sopenharmony_ci	depends on NET_EMATCH
59462306a36Sopenharmony_ci	help
59562306a36Sopenharmony_ci	  Say Y here if you want to be able to classify packets based on
59662306a36Sopenharmony_ci	  simple packet data comparisons for 8, 16, and 32bit values.
59762306a36Sopenharmony_ci
59862306a36Sopenharmony_ci	  To compile this code as a module, choose M here: the
59962306a36Sopenharmony_ci	  module will be called em_cmp.
60062306a36Sopenharmony_ci
60162306a36Sopenharmony_ciconfig NET_EMATCH_NBYTE
60262306a36Sopenharmony_ci	tristate "Multi byte comparison"
60362306a36Sopenharmony_ci	depends on NET_EMATCH
60462306a36Sopenharmony_ci	help
60562306a36Sopenharmony_ci	  Say Y here if you want to be able to classify packets based on
60662306a36Sopenharmony_ci	  multiple byte comparisons mainly useful for IPv6 address comparisons.
60762306a36Sopenharmony_ci
60862306a36Sopenharmony_ci	  To compile this code as a module, choose M here: the
60962306a36Sopenharmony_ci	  module will be called em_nbyte.
61062306a36Sopenharmony_ci
61162306a36Sopenharmony_ciconfig NET_EMATCH_U32
61262306a36Sopenharmony_ci	tristate "U32 key"
61362306a36Sopenharmony_ci	depends on NET_EMATCH
61462306a36Sopenharmony_ci	help
61562306a36Sopenharmony_ci	  Say Y here if you want to be able to classify packets using
61662306a36Sopenharmony_ci	  the famous u32 key in combination with logic relations.
61762306a36Sopenharmony_ci
61862306a36Sopenharmony_ci	  To compile this code as a module, choose M here: the
61962306a36Sopenharmony_ci	  module will be called em_u32.
62062306a36Sopenharmony_ci
62162306a36Sopenharmony_ciconfig NET_EMATCH_META
62262306a36Sopenharmony_ci	tristate "Metadata"
62362306a36Sopenharmony_ci	depends on NET_EMATCH
62462306a36Sopenharmony_ci	help
62562306a36Sopenharmony_ci	  Say Y here if you want to be able to classify packets based on
62662306a36Sopenharmony_ci	  metadata such as load average, netfilter attributes, socket
62762306a36Sopenharmony_ci	  attributes and routing decisions.
62862306a36Sopenharmony_ci
62962306a36Sopenharmony_ci	  To compile this code as a module, choose M here: the
63062306a36Sopenharmony_ci	  module will be called em_meta.
63162306a36Sopenharmony_ci
63262306a36Sopenharmony_ciconfig NET_EMATCH_TEXT
63362306a36Sopenharmony_ci	tristate "Textsearch"
63462306a36Sopenharmony_ci	depends on NET_EMATCH
63562306a36Sopenharmony_ci	select TEXTSEARCH
63662306a36Sopenharmony_ci	select TEXTSEARCH_KMP
63762306a36Sopenharmony_ci	select TEXTSEARCH_BM
63862306a36Sopenharmony_ci	select TEXTSEARCH_FSM
63962306a36Sopenharmony_ci	help
64062306a36Sopenharmony_ci	  Say Y here if you want to be able to classify packets based on
64162306a36Sopenharmony_ci	  textsearch comparisons.
64262306a36Sopenharmony_ci
64362306a36Sopenharmony_ci	  To compile this code as a module, choose M here: the
64462306a36Sopenharmony_ci	  module will be called em_text.
64562306a36Sopenharmony_ci
64662306a36Sopenharmony_ciconfig NET_EMATCH_CANID
64762306a36Sopenharmony_ci	tristate "CAN Identifier"
64862306a36Sopenharmony_ci	depends on NET_EMATCH && (CAN=y || CAN=m)
64962306a36Sopenharmony_ci	help
65062306a36Sopenharmony_ci	  Say Y here if you want to be able to classify CAN frames based
65162306a36Sopenharmony_ci	  on CAN Identifier.
65262306a36Sopenharmony_ci
65362306a36Sopenharmony_ci	  To compile this code as a module, choose M here: the
65462306a36Sopenharmony_ci	  module will be called em_canid.
65562306a36Sopenharmony_ci
65662306a36Sopenharmony_ciconfig NET_EMATCH_IPSET
65762306a36Sopenharmony_ci	tristate "IPset"
65862306a36Sopenharmony_ci	depends on NET_EMATCH && IP_SET
65962306a36Sopenharmony_ci	help
66062306a36Sopenharmony_ci	  Say Y here if you want to be able to classify packets based on
66162306a36Sopenharmony_ci	  ipset membership.
66262306a36Sopenharmony_ci
66362306a36Sopenharmony_ci	  To compile this code as a module, choose M here: the
66462306a36Sopenharmony_ci	  module will be called em_ipset.
66562306a36Sopenharmony_ci
66662306a36Sopenharmony_ciconfig NET_EMATCH_IPT
66762306a36Sopenharmony_ci	tristate "IPtables Matches"
66862306a36Sopenharmony_ci	depends on NET_EMATCH && NETFILTER && NETFILTER_XTABLES
66962306a36Sopenharmony_ci	help
67062306a36Sopenharmony_ci	  Say Y here to be able to classify packets based on iptables
67162306a36Sopenharmony_ci	  matches.
67262306a36Sopenharmony_ci	  Current supported match is "policy" which allows packet classification
67362306a36Sopenharmony_ci	  based on IPsec policy that was used during decapsulation
67462306a36Sopenharmony_ci
67562306a36Sopenharmony_ci	  To compile this code as a module, choose M here: the
67662306a36Sopenharmony_ci	  module will be called em_ipt.
67762306a36Sopenharmony_ci
67862306a36Sopenharmony_ciconfig NET_CLS_ACT
67962306a36Sopenharmony_ci	bool "Actions"
68062306a36Sopenharmony_ci	select NET_CLS
68162306a36Sopenharmony_ci	select NET_XGRESS
68262306a36Sopenharmony_ci	help
68362306a36Sopenharmony_ci	  Say Y here if you want to use traffic control actions. Actions
68462306a36Sopenharmony_ci	  get attached to classifiers and are invoked after a successful
68562306a36Sopenharmony_ci	  classification. They are used to overwrite the classification
68662306a36Sopenharmony_ci	  result, instantly drop or redirect packets, etc.
68762306a36Sopenharmony_ci
68862306a36Sopenharmony_ci	  A recent version of the iproute2 package is required to use
68962306a36Sopenharmony_ci	  extended matches.
69062306a36Sopenharmony_ci
69162306a36Sopenharmony_ciconfig NET_ACT_POLICE
69262306a36Sopenharmony_ci	tristate "Traffic Policing"
69362306a36Sopenharmony_ci	depends on NET_CLS_ACT
69462306a36Sopenharmony_ci	help
69562306a36Sopenharmony_ci	  Say Y here if you want to do traffic policing, i.e. strict
69662306a36Sopenharmony_ci	  bandwidth limiting. This action replaces the existing policing
69762306a36Sopenharmony_ci	  module.
69862306a36Sopenharmony_ci
69962306a36Sopenharmony_ci	  To compile this code as a module, choose M here: the
70062306a36Sopenharmony_ci	  module will be called act_police.
70162306a36Sopenharmony_ci
70262306a36Sopenharmony_ciconfig NET_ACT_GACT
70362306a36Sopenharmony_ci	tristate "Generic actions"
70462306a36Sopenharmony_ci	depends on NET_CLS_ACT
70562306a36Sopenharmony_ci	help
70662306a36Sopenharmony_ci	  Say Y here to take generic actions such as dropping and
70762306a36Sopenharmony_ci	  accepting packets.
70862306a36Sopenharmony_ci
70962306a36Sopenharmony_ci	  To compile this code as a module, choose M here: the
71062306a36Sopenharmony_ci	  module will be called act_gact.
71162306a36Sopenharmony_ci
71262306a36Sopenharmony_ciconfig GACT_PROB
71362306a36Sopenharmony_ci	bool "Probability support"
71462306a36Sopenharmony_ci	depends on NET_ACT_GACT
71562306a36Sopenharmony_ci	help
71662306a36Sopenharmony_ci	  Say Y here to use the generic action randomly or deterministically.
71762306a36Sopenharmony_ci
71862306a36Sopenharmony_ciconfig NET_ACT_MIRRED
71962306a36Sopenharmony_ci	tristate "Redirecting and Mirroring"
72062306a36Sopenharmony_ci	depends on NET_CLS_ACT
72162306a36Sopenharmony_ci	help
72262306a36Sopenharmony_ci	  Say Y here to allow packets to be mirrored or redirected to
72362306a36Sopenharmony_ci	  other devices.
72462306a36Sopenharmony_ci
72562306a36Sopenharmony_ci	  To compile this code as a module, choose M here: the
72662306a36Sopenharmony_ci	  module will be called act_mirred.
72762306a36Sopenharmony_ci
72862306a36Sopenharmony_ciconfig NET_ACT_SAMPLE
72962306a36Sopenharmony_ci	tristate "Traffic Sampling"
73062306a36Sopenharmony_ci	depends on NET_CLS_ACT
73162306a36Sopenharmony_ci	select PSAMPLE
73262306a36Sopenharmony_ci	help
73362306a36Sopenharmony_ci	  Say Y here to allow packet sampling tc action. The packet sample
73462306a36Sopenharmony_ci	  action consists of statistically choosing packets and sampling
73562306a36Sopenharmony_ci	  them using the psample module.
73662306a36Sopenharmony_ci
73762306a36Sopenharmony_ci	  To compile this code as a module, choose M here: the
73862306a36Sopenharmony_ci	  module will be called act_sample.
73962306a36Sopenharmony_ci
74062306a36Sopenharmony_ciconfig NET_ACT_IPT
74162306a36Sopenharmony_ci	tristate "IPtables targets"
74262306a36Sopenharmony_ci	depends on NET_CLS_ACT && NETFILTER && NETFILTER_XTABLES
74362306a36Sopenharmony_ci	help
74462306a36Sopenharmony_ci	  Say Y here to be able to invoke iptables targets after successful
74562306a36Sopenharmony_ci	  classification.
74662306a36Sopenharmony_ci
74762306a36Sopenharmony_ci	  To compile this code as a module, choose M here: the
74862306a36Sopenharmony_ci	  module will be called act_ipt.
74962306a36Sopenharmony_ci
75062306a36Sopenharmony_ciconfig NET_ACT_NAT
75162306a36Sopenharmony_ci	tristate "Stateless NAT"
75262306a36Sopenharmony_ci	depends on NET_CLS_ACT
75362306a36Sopenharmony_ci	help
75462306a36Sopenharmony_ci	  Say Y here to do stateless NAT on IPv4 packets.  You should use
75562306a36Sopenharmony_ci	  netfilter for NAT unless you know what you are doing.
75662306a36Sopenharmony_ci
75762306a36Sopenharmony_ci	  To compile this code as a module, choose M here: the
75862306a36Sopenharmony_ci	  module will be called act_nat.
75962306a36Sopenharmony_ci
76062306a36Sopenharmony_ciconfig NET_ACT_PEDIT
76162306a36Sopenharmony_ci	tristate "Packet Editing"
76262306a36Sopenharmony_ci	depends on NET_CLS_ACT
76362306a36Sopenharmony_ci	help
76462306a36Sopenharmony_ci	  Say Y here if you want to mangle the content of packets.
76562306a36Sopenharmony_ci
76662306a36Sopenharmony_ci	  To compile this code as a module, choose M here: the
76762306a36Sopenharmony_ci	  module will be called act_pedit.
76862306a36Sopenharmony_ci
76962306a36Sopenharmony_ciconfig NET_ACT_SIMP
77062306a36Sopenharmony_ci	tristate "Simple Example (Debug)"
77162306a36Sopenharmony_ci	depends on NET_CLS_ACT
77262306a36Sopenharmony_ci	help
77362306a36Sopenharmony_ci	  Say Y here to add a simple action for demonstration purposes.
77462306a36Sopenharmony_ci	  It is meant as an example and for debugging purposes. It will
77562306a36Sopenharmony_ci	  print a configured policy string followed by the packet count
77662306a36Sopenharmony_ci	  to the console for every packet that passes by.
77762306a36Sopenharmony_ci
77862306a36Sopenharmony_ci	  If unsure, say N.
77962306a36Sopenharmony_ci
78062306a36Sopenharmony_ci	  To compile this code as a module, choose M here: the
78162306a36Sopenharmony_ci	  module will be called act_simple.
78262306a36Sopenharmony_ci
78362306a36Sopenharmony_ciconfig NET_ACT_SKBEDIT
78462306a36Sopenharmony_ci	tristate "SKB Editing"
78562306a36Sopenharmony_ci	depends on NET_CLS_ACT
78662306a36Sopenharmony_ci	help
78762306a36Sopenharmony_ci	  Say Y here to change skb priority or queue_mapping settings.
78862306a36Sopenharmony_ci
78962306a36Sopenharmony_ci	  If unsure, say N.
79062306a36Sopenharmony_ci
79162306a36Sopenharmony_ci	  To compile this code as a module, choose M here: the
79262306a36Sopenharmony_ci	  module will be called act_skbedit.
79362306a36Sopenharmony_ci
79462306a36Sopenharmony_ciconfig NET_ACT_CSUM
79562306a36Sopenharmony_ci	tristate "Checksum Updating"
79662306a36Sopenharmony_ci	depends on NET_CLS_ACT && INET
79762306a36Sopenharmony_ci	select LIBCRC32C
79862306a36Sopenharmony_ci	help
79962306a36Sopenharmony_ci	  Say Y here to update some common checksum after some direct
80062306a36Sopenharmony_ci	  packet alterations.
80162306a36Sopenharmony_ci
80262306a36Sopenharmony_ci	  To compile this code as a module, choose M here: the
80362306a36Sopenharmony_ci	  module will be called act_csum.
80462306a36Sopenharmony_ci
80562306a36Sopenharmony_ciconfig NET_ACT_MPLS
80662306a36Sopenharmony_ci	tristate "MPLS manipulation"
80762306a36Sopenharmony_ci	depends on NET_CLS_ACT
80862306a36Sopenharmony_ci	help
80962306a36Sopenharmony_ci	  Say Y here to push or pop MPLS headers.
81062306a36Sopenharmony_ci
81162306a36Sopenharmony_ci	  If unsure, say N.
81262306a36Sopenharmony_ci
81362306a36Sopenharmony_ci	  To compile this code as a module, choose M here: the
81462306a36Sopenharmony_ci	  module will be called act_mpls.
81562306a36Sopenharmony_ci
81662306a36Sopenharmony_ciconfig NET_ACT_VLAN
81762306a36Sopenharmony_ci	tristate "Vlan manipulation"
81862306a36Sopenharmony_ci	depends on NET_CLS_ACT
81962306a36Sopenharmony_ci	help
82062306a36Sopenharmony_ci	  Say Y here to push or pop vlan headers.
82162306a36Sopenharmony_ci
82262306a36Sopenharmony_ci	  If unsure, say N.
82362306a36Sopenharmony_ci
82462306a36Sopenharmony_ci	  To compile this code as a module, choose M here: the
82562306a36Sopenharmony_ci	  module will be called act_vlan.
82662306a36Sopenharmony_ci
82762306a36Sopenharmony_ciconfig NET_ACT_BPF
82862306a36Sopenharmony_ci	tristate "BPF based action"
82962306a36Sopenharmony_ci	depends on NET_CLS_ACT
83062306a36Sopenharmony_ci	help
83162306a36Sopenharmony_ci	  Say Y here to execute BPF code on packets. The BPF code will decide
83262306a36Sopenharmony_ci	  if the packet should be dropped or not.
83362306a36Sopenharmony_ci
83462306a36Sopenharmony_ci	  If unsure, say N.
83562306a36Sopenharmony_ci
83662306a36Sopenharmony_ci	  To compile this code as a module, choose M here: the
83762306a36Sopenharmony_ci	  module will be called act_bpf.
83862306a36Sopenharmony_ci
83962306a36Sopenharmony_ciconfig NET_ACT_CONNMARK
84062306a36Sopenharmony_ci	tristate "Netfilter Connection Mark Retriever"
84162306a36Sopenharmony_ci	depends on NET_CLS_ACT && NETFILTER
84262306a36Sopenharmony_ci	depends on NF_CONNTRACK && NF_CONNTRACK_MARK
84362306a36Sopenharmony_ci	help
84462306a36Sopenharmony_ci	  Say Y here to allow retrieving of conn mark
84562306a36Sopenharmony_ci
84662306a36Sopenharmony_ci	  If unsure, say N.
84762306a36Sopenharmony_ci
84862306a36Sopenharmony_ci	  To compile this code as a module, choose M here: the
84962306a36Sopenharmony_ci	  module will be called act_connmark.
85062306a36Sopenharmony_ci
85162306a36Sopenharmony_ciconfig NET_ACT_CTINFO
85262306a36Sopenharmony_ci	tristate "Netfilter Connection Mark Actions"
85362306a36Sopenharmony_ci	depends on NET_CLS_ACT && NETFILTER
85462306a36Sopenharmony_ci	depends on NF_CONNTRACK && NF_CONNTRACK_MARK
85562306a36Sopenharmony_ci	help
85662306a36Sopenharmony_ci	  Say Y here to allow transfer of a connmark stored information.
85762306a36Sopenharmony_ci	  Current actions transfer connmark stored DSCP into
85862306a36Sopenharmony_ci	  ipv4/v6 diffserv and/or to transfer connmark to packet
85962306a36Sopenharmony_ci	  mark.  Both are useful for restoring egress based marks
86062306a36Sopenharmony_ci	  back onto ingress connections for qdisc priority mapping
86162306a36Sopenharmony_ci	  purposes.
86262306a36Sopenharmony_ci
86362306a36Sopenharmony_ci	  If unsure, say N.
86462306a36Sopenharmony_ci
86562306a36Sopenharmony_ci	  To compile this code as a module, choose M here: the
86662306a36Sopenharmony_ci	  module will be called act_ctinfo.
86762306a36Sopenharmony_ci
86862306a36Sopenharmony_ciconfig NET_ACT_SKBMOD
86962306a36Sopenharmony_ci	tristate "skb data modification action"
87062306a36Sopenharmony_ci	depends on NET_CLS_ACT
87162306a36Sopenharmony_ci	help
87262306a36Sopenharmony_ci	 Say Y here to allow modification of skb data
87362306a36Sopenharmony_ci
87462306a36Sopenharmony_ci	 If unsure, say N.
87562306a36Sopenharmony_ci
87662306a36Sopenharmony_ci	 To compile this code as a module, choose M here: the
87762306a36Sopenharmony_ci	 module will be called act_skbmod.
87862306a36Sopenharmony_ci
87962306a36Sopenharmony_ciconfig NET_ACT_IFE
88062306a36Sopenharmony_ci	tristate "Inter-FE action based on IETF ForCES InterFE LFB"
88162306a36Sopenharmony_ci	depends on NET_CLS_ACT
88262306a36Sopenharmony_ci	select NET_IFE
88362306a36Sopenharmony_ci	help
88462306a36Sopenharmony_ci	  Say Y here to allow for sourcing and terminating metadata
88562306a36Sopenharmony_ci	  For details refer to netdev01 paper:
88662306a36Sopenharmony_ci	  "Distributing Linux Traffic Control Classifier-Action Subsystem"
88762306a36Sopenharmony_ci	   Authors: Jamal Hadi Salim and Damascene M. Joachimpillai
88862306a36Sopenharmony_ci
88962306a36Sopenharmony_ci	  To compile this code as a module, choose M here: the
89062306a36Sopenharmony_ci	  module will be called act_ife.
89162306a36Sopenharmony_ci
89262306a36Sopenharmony_ciconfig NET_ACT_TUNNEL_KEY
89362306a36Sopenharmony_ci	tristate "IP tunnel metadata manipulation"
89462306a36Sopenharmony_ci	depends on NET_CLS_ACT
89562306a36Sopenharmony_ci	help
89662306a36Sopenharmony_ci	  Say Y here to set/release ip tunnel metadata.
89762306a36Sopenharmony_ci
89862306a36Sopenharmony_ci	  If unsure, say N.
89962306a36Sopenharmony_ci
90062306a36Sopenharmony_ci	  To compile this code as a module, choose M here: the
90162306a36Sopenharmony_ci	  module will be called act_tunnel_key.
90262306a36Sopenharmony_ci
90362306a36Sopenharmony_ciconfig NET_ACT_CT
90462306a36Sopenharmony_ci	tristate "connection tracking tc action"
90562306a36Sopenharmony_ci	depends on NET_CLS_ACT && NF_CONNTRACK && (!NF_NAT || NF_NAT) && NF_FLOW_TABLE
90662306a36Sopenharmony_ci	select NF_CONNTRACK_OVS
90762306a36Sopenharmony_ci	select NF_NAT_OVS if NF_NAT
90862306a36Sopenharmony_ci	help
90962306a36Sopenharmony_ci	  Say Y here to allow sending the packets to conntrack module.
91062306a36Sopenharmony_ci
91162306a36Sopenharmony_ci	  If unsure, say N.
91262306a36Sopenharmony_ci
91362306a36Sopenharmony_ci	  To compile this code as a module, choose M here: the
91462306a36Sopenharmony_ci	  module will be called act_ct.
91562306a36Sopenharmony_ci
91662306a36Sopenharmony_ciconfig NET_ACT_GATE
91762306a36Sopenharmony_ci	tristate "Frame gate entry list control tc action"
91862306a36Sopenharmony_ci	depends on NET_CLS_ACT
91962306a36Sopenharmony_ci	help
92062306a36Sopenharmony_ci	  Say Y here to allow to control the ingress flow to be passed at
92162306a36Sopenharmony_ci	  specific time slot and be dropped at other specific time slot by
92262306a36Sopenharmony_ci	  the gate entry list.
92362306a36Sopenharmony_ci
92462306a36Sopenharmony_ci	  If unsure, say N.
92562306a36Sopenharmony_ci	  To compile this code as a module, choose M here: the
92662306a36Sopenharmony_ci	  module will be called act_gate.
92762306a36Sopenharmony_ci
92862306a36Sopenharmony_ciconfig NET_IFE_SKBMARK
92962306a36Sopenharmony_ci	tristate "Support to encoding decoding skb mark on IFE action"
93062306a36Sopenharmony_ci	depends on NET_ACT_IFE
93162306a36Sopenharmony_ci
93262306a36Sopenharmony_ciconfig NET_IFE_SKBPRIO
93362306a36Sopenharmony_ci	tristate "Support to encoding decoding skb prio on IFE action"
93462306a36Sopenharmony_ci	depends on NET_ACT_IFE
93562306a36Sopenharmony_ci
93662306a36Sopenharmony_ciconfig NET_IFE_SKBTCINDEX
93762306a36Sopenharmony_ci	tristate "Support to encoding decoding skb tcindex on IFE action"
93862306a36Sopenharmony_ci	depends on NET_ACT_IFE
93962306a36Sopenharmony_ci
94062306a36Sopenharmony_ciconfig NET_TC_SKB_EXT
94162306a36Sopenharmony_ci	bool "TC recirculation support"
94262306a36Sopenharmony_ci	depends on NET_CLS_ACT
94362306a36Sopenharmony_ci	select SKB_EXTENSIONS
94462306a36Sopenharmony_ci
94562306a36Sopenharmony_ci	help
94662306a36Sopenharmony_ci	  Say Y here to allow tc chain misses to continue in OvS datapath in
94762306a36Sopenharmony_ci	  the correct recirc_id, and hardware chain misses to continue in
94862306a36Sopenharmony_ci	  the correct chain in tc software datapath.
94962306a36Sopenharmony_ci
95062306a36Sopenharmony_ci	  Say N here if you won't be using tc<->ovs offload or tc chains offload.
95162306a36Sopenharmony_ci
95262306a36Sopenharmony_ciendif # NET_SCHED
95362306a36Sopenharmony_ci
95462306a36Sopenharmony_ciconfig NET_SCH_FIFO
95562306a36Sopenharmony_ci	bool
956