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