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