1# SPDX-License-Identifier: GPL-2.0-only 2# 3# Traffic control configuration. 4# 5 6menuconfig NET_SCHED 7 bool "QoS and/or fair queueing" 8 select NET_SCH_FIFO 9 help 10 When the kernel has several packets to send out over a network 11 device, it has to decide which ones to send first, which ones to 12 delay, and which ones to drop. This is the job of the queueing 13 disciplines, several different algorithms for how to do this 14 "fairly" have been proposed. 15 16 If you say N here, you will get the standard packet scheduler, which 17 is a FIFO (first come, first served). If you say Y here, you will be 18 able to choose from among several alternative algorithms which can 19 then be attached to different network devices. This is useful for 20 example if some of your network devices are real time devices that 21 need a certain minimum data flow rate, or if you need to limit the 22 maximum data flow rate for traffic which matches specified criteria. 23 This code is considered to be experimental. 24 25 To administer these schedulers, you'll need the user-level utilities 26 from the package iproute2+tc at 27 <https://www.kernel.org/pub/linux/utils/net/iproute2/>. That package 28 also contains some documentation; for more, check out 29 <http://www.linuxfoundation.org/collaborate/workgroups/networking/iproute2>. 30 31 This Quality of Service (QoS) support will enable you to use 32 Differentiated Services (diffserv) and Resource Reservation Protocol 33 (RSVP) on your Linux router if you also say Y to the corresponding 34 classifiers below. Documentation and software is at 35 <http://diffserv.sourceforge.net/>. 36 37 If you say Y here and to "/proc file system" below, you will be able 38 to read status information about packet schedulers from the file 39 /proc/net/psched. 40 41 The available schedulers are listed in the following questions; you 42 can say Y to as many as you like. If unsure, say N now. 43 44if NET_SCHED 45 46comment "Queueing/Scheduling" 47 48config NET_SCH_HTB 49 tristate "Hierarchical Token Bucket (HTB)" 50 help 51 Say Y here if you want to use the Hierarchical Token Buckets (HTB) 52 packet scheduling algorithm. See 53 <http://luxik.cdi.cz/~devik/qos/htb/> for complete manual and 54 in-depth articles. 55 56 HTB is very similar to CBQ regarding its goals however is has 57 different properties and different algorithm. 58 59 To compile this code as a module, choose M here: the 60 module will be called sch_htb. 61 62config NET_SCH_HFSC 63 tristate "Hierarchical Fair Service Curve (HFSC)" 64 help 65 Say Y here if you want to use the Hierarchical Fair Service Curve 66 (HFSC) packet scheduling algorithm. 67 68 To compile this code as a module, choose M here: the 69 module will be called sch_hfsc. 70 71config NET_SCH_PRIO 72 tristate "Multi Band Priority Queueing (PRIO)" 73 help 74 Say Y here if you want to use an n-band priority queue packet 75 scheduler. 76 77 To compile this code as a module, choose M here: the 78 module will be called sch_prio. 79 80config NET_SCH_MULTIQ 81 tristate "Hardware Multiqueue-aware Multi Band Queuing (MULTIQ)" 82 help 83 Say Y here if you want to use an n-band queue packet scheduler 84 to support devices that have multiple hardware transmit queues. 85 86 To compile this code as a module, choose M here: the 87 module will be called sch_multiq. 88 89config NET_SCH_RED 90 tristate "Random Early Detection (RED)" 91 help 92 Say Y here if you want to use the Random Early Detection (RED) 93 packet scheduling algorithm. 94 95 See the top of <file:net/sched/sch_red.c> for more details. 96 97 To compile this code as a module, choose M here: the 98 module will be called sch_red. 99 100config NET_SCH_SFB 101 tristate "Stochastic Fair Blue (SFB)" 102 help 103 Say Y here if you want to use the Stochastic Fair Blue (SFB) 104 packet scheduling algorithm. 105 106 See the top of <file:net/sched/sch_sfb.c> for more details. 107 108 To compile this code as a module, choose M here: the 109 module will be called sch_sfb. 110 111config NET_SCH_SFQ 112 tristate "Stochastic Fairness Queueing (SFQ)" 113 help 114 Say Y here if you want to use the Stochastic Fairness Queueing (SFQ) 115 packet scheduling algorithm. 116 117 See the top of <file:net/sched/sch_sfq.c> for more details. 118 119 To compile this code as a module, choose M here: the 120 module will be called sch_sfq. 121 122config NET_SCH_TEQL 123 tristate "True Link Equalizer (TEQL)" 124 help 125 Say Y here if you want to use the True Link Equalizer (TLE) packet 126 scheduling algorithm. This queueing discipline allows the combination 127 of several physical devices into one virtual device. 128 129 See the top of <file:net/sched/sch_teql.c> for more details. 130 131 To compile this code as a module, choose M here: the 132 module will be called sch_teql. 133 134config NET_SCH_TBF 135 tristate "Token Bucket Filter (TBF)" 136 help 137 Say Y here if you want to use the Token Bucket Filter (TBF) packet 138 scheduling algorithm. 139 140 See the top of <file:net/sched/sch_tbf.c> for more details. 141 142 To compile this code as a module, choose M here: the 143 module will be called sch_tbf. 144 145config NET_SCH_CBS 146 tristate "Credit Based Shaper (CBS)" 147 help 148 Say Y here if you want to use the Credit Based Shaper (CBS) packet 149 scheduling algorithm. 150 151 See the top of <file:net/sched/sch_cbs.c> for more details. 152 153 To compile this code as a module, choose M here: the 154 module will be called sch_cbs. 155 156config NET_SCH_ETF 157 tristate "Earliest TxTime First (ETF)" 158 help 159 Say Y here if you want to use the Earliest TxTime First (ETF) packet 160 scheduling algorithm. 161 162 See the top of <file:net/sched/sch_etf.c> for more details. 163 164 To compile this code as a module, choose M here: the 165 module will be called sch_etf. 166 167config NET_SCH_TAPRIO 168 tristate "Time Aware Priority (taprio) Scheduler" 169 help 170 Say Y here if you want to use the Time Aware Priority (taprio) packet 171 scheduling algorithm. 172 173 See the top of <file:net/sched/sch_taprio.c> for more details. 174 175 To compile this code as a module, choose M here: the 176 module will be called sch_taprio. 177 178config NET_SCH_GRED 179 tristate "Generic Random Early Detection (GRED)" 180 help 181 Say Y here if you want to use the Generic Random Early Detection 182 (GRED) packet scheduling algorithm for some of your network devices 183 (see the top of <file:net/sched/sch_red.c> for details and 184 references about the algorithm). 185 186 To compile this code as a module, choose M here: the 187 module will be called sch_gred. 188 189config NET_SCH_NETEM 190 tristate "Network emulator (NETEM)" 191 help 192 Say Y if you want to emulate network delay, loss, and packet 193 re-ordering. This is often useful to simulate networks when 194 testing applications or protocols. 195 196 To compile this driver as a module, choose M here: the module 197 will be called sch_netem. 198 199 If unsure, say N. 200 201config NET_SCH_DRR 202 tristate "Deficit Round Robin scheduler (DRR)" 203 help 204 Say Y here if you want to use the Deficit Round Robin (DRR) packet 205 scheduling algorithm. 206 207 To compile this driver as a module, choose M here: the module 208 will be called sch_drr. 209 210 If unsure, say N. 211 212config NET_SCH_MQPRIO 213 tristate "Multi-queue priority scheduler (MQPRIO)" 214 help 215 Say Y here if you want to use the Multi-queue Priority scheduler. 216 This scheduler allows QOS to be offloaded on NICs that have support 217 for offloading QOS schedulers. 218 219 To compile this driver as a module, choose M here: the module will 220 be called sch_mqprio. 221 222 If unsure, say N. 223 224config NET_SCH_SKBPRIO 225 tristate "SKB priority queue scheduler (SKBPRIO)" 226 help 227 Say Y here if you want to use the SKB priority queue 228 scheduler. This schedules packets according to skb->priority, 229 which is useful for request packets in DoS mitigation systems such 230 as Gatekeeper. 231 232 To compile this driver as a module, choose M here: the module will 233 be called sch_skbprio. 234 235 If unsure, say N. 236 237config NET_SCH_CHOKE 238 tristate "CHOose and Keep responsive flow scheduler (CHOKE)" 239 help 240 Say Y here if you want to use the CHOKe packet scheduler (CHOose 241 and Keep for responsive flows, CHOose and Kill for unresponsive 242 flows). This is a variation of RED which tries to penalize flows 243 that monopolize the queue. 244 245 To compile this code as a module, choose M here: the 246 module will be called sch_choke. 247 248config NET_SCH_QFQ 249 tristate "Quick Fair Queueing scheduler (QFQ)" 250 help 251 Say Y here if you want to use the Quick Fair Queueing Scheduler (QFQ) 252 packet scheduling algorithm. 253 254 To compile this driver as a module, choose M here: the module 255 will be called sch_qfq. 256 257 If unsure, say N. 258 259config NET_SCH_CODEL 260 tristate "Controlled Delay AQM (CODEL)" 261 help 262 Say Y here if you want to use the Controlled Delay (CODEL) 263 packet scheduling algorithm. 264 265 To compile this driver as a module, choose M here: the module 266 will be called sch_codel. 267 268 If unsure, say N. 269 270config NET_SCH_FQ_CODEL 271 tristate "Fair Queue Controlled Delay AQM (FQ_CODEL)" 272 help 273 Say Y here if you want to use the FQ Controlled Delay (FQ_CODEL) 274 packet scheduling algorithm. 275 276 To compile this driver as a module, choose M here: the module 277 will be called sch_fq_codel. 278 279 If unsure, say N. 280 281config NET_SCH_CAKE 282 tristate "Common Applications Kept Enhanced (CAKE)" 283 help 284 Say Y here if you want to use the Common Applications Kept Enhanced 285 (CAKE) queue management algorithm. 286 287 To compile this driver as a module, choose M here: the module 288 will be called sch_cake. 289 290 If unsure, say N. 291 292config NET_SCH_FQ 293 tristate "Fair Queue" 294 help 295 Say Y here if you want to use the FQ packet scheduling algorithm. 296 297 FQ does flow separation, and is able to respect pacing requirements 298 set by TCP stack into sk->sk_pacing_rate (for localy generated 299 traffic) 300 301 To compile this driver as a module, choose M here: the module 302 will be called sch_fq. 303 304 If unsure, say N. 305 306config NET_SCH_HHF 307 tristate "Heavy-Hitter Filter (HHF)" 308 help 309 Say Y here if you want to use the Heavy-Hitter Filter (HHF) 310 packet scheduling algorithm. 311 312 To compile this driver as a module, choose M here: the module 313 will be called sch_hhf. 314 315config NET_SCH_PIE 316 tristate "Proportional Integral controller Enhanced (PIE) scheduler" 317 help 318 Say Y here if you want to use the Proportional Integral controller 319 Enhanced scheduler packet scheduling algorithm. 320 For more information, please see https://tools.ietf.org/html/rfc8033 321 322 To compile this driver as a module, choose M here: the module 323 will be called sch_pie. 324 325 If unsure, say N. 326 327config NET_SCH_FQ_PIE 328 depends on NET_SCH_PIE 329 tristate "Flow Queue Proportional Integral controller Enhanced (FQ-PIE)" 330 help 331 Say Y here if you want to use the Flow Queue Proportional Integral 332 controller Enhanced (FQ-PIE) packet scheduling algorithm. 333 For more information, please see https://tools.ietf.org/html/rfc8033 334 335 To compile this driver as a module, choose M here: the module 336 will be called sch_fq_pie. 337 338 If unsure, say N. 339 340config NET_SCH_INGRESS 341 tristate "Ingress/classifier-action Qdisc" 342 depends on NET_CLS_ACT 343 select NET_INGRESS 344 select NET_EGRESS 345 help 346 Say Y here if you want to use classifiers for incoming and/or outgoing 347 packets. This qdisc doesn't do anything else besides running classifiers, 348 which can also have actions attached to them. In case of outgoing packets, 349 classifiers that this qdisc holds are executed in the transmit path 350 before real enqueuing to an egress qdisc happens. 351 352 If unsure, say Y. 353 354 To compile this code as a module, choose M here: the module will be 355 called sch_ingress with alias of sch_clsact. 356 357config NET_SCH_PLUG 358 tristate "Plug network traffic until release (PLUG)" 359 help 360 361 This queuing discipline allows userspace to plug/unplug a network 362 output queue, using the netlink interface. When it receives an 363 enqueue command it inserts a plug into the outbound queue that 364 causes following packets to enqueue until a dequeue command arrives 365 over netlink, causing the plug to be removed and resuming the normal 366 packet flow. 367 368 This module also provides a generic "network output buffering" 369 functionality (aka output commit), wherein upon arrival of a dequeue 370 command, only packets up to the first plug are released for delivery. 371 The Remus HA project uses this module to enable speculative execution 372 of virtual machines by allowing the generated network output to be rolled 373 back if needed. 374 375 For more information, please refer to <http://wiki.xenproject.org/wiki/Remus> 376 377 Say Y here if you are using this kernel for Xen dom0 and 378 want to protect Xen guests with Remus. 379 380 To compile this code as a module, choose M here: the 381 module will be called sch_plug. 382 383config NET_SCH_ETS 384 tristate "Enhanced transmission selection scheduler (ETS)" 385 help 386 The Enhanced Transmission Selection scheduler is a classful 387 queuing discipline that merges functionality of PRIO and DRR 388 qdiscs in one scheduler. ETS makes it easy to configure a set of 389 strict and bandwidth-sharing bands to implement the transmission 390 selection described in 802.1Qaz. 391 392 Say Y here if you want to use the ETS packet scheduling 393 algorithm. 394 395 To compile this driver as a module, choose M here: the module 396 will be called sch_ets. 397 398 If unsure, say N. 399 400menuconfig NET_SCH_DEFAULT 401 bool "Allow override default queue discipline" 402 help 403 Support for selection of default queuing discipline. 404 405 Nearly all users can safely say no here, and the default 406 of pfifo_fast will be used. Many distributions already set 407 the default value via /proc/sys/net/core/default_qdisc. 408 409 If unsure, say N. 410 411if NET_SCH_DEFAULT 412 413choice 414 prompt "Default queuing discipline" 415 default DEFAULT_PFIFO_FAST 416 help 417 Select the queueing discipline that will be used by default 418 for all network devices. 419 420 config DEFAULT_FQ 421 bool "Fair Queue" if NET_SCH_FQ 422 423 config DEFAULT_CODEL 424 bool "Controlled Delay" if NET_SCH_CODEL 425 426 config DEFAULT_FQ_CODEL 427 bool "Fair Queue Controlled Delay" if NET_SCH_FQ_CODEL 428 429 config DEFAULT_FQ_PIE 430 bool "Flow Queue Proportional Integral controller Enhanced" if NET_SCH_FQ_PIE 431 432 config DEFAULT_SFQ 433 bool "Stochastic Fair Queue" if NET_SCH_SFQ 434 435 config DEFAULT_PFIFO_FAST 436 bool "Priority FIFO Fast" 437endchoice 438 439config DEFAULT_NET_SCH 440 string 441 default "pfifo_fast" if DEFAULT_PFIFO_FAST 442 default "fq" if DEFAULT_FQ 443 default "fq_codel" if DEFAULT_FQ_CODEL 444 default "fq_pie" if DEFAULT_FQ_PIE 445 default "sfq" if DEFAULT_SFQ 446 default "pfifo_fast" 447endif 448 449comment "Classification" 450 451config NET_CLS 452 bool 453 454config NET_CLS_BASIC 455 tristate "Elementary classification (BASIC)" 456 select NET_CLS 457 help 458 Say Y here if you want to be able to classify packets using 459 only extended matches and actions. 460 461 To compile this code as a module, choose M here: the 462 module will be called cls_basic. 463 464config NET_CLS_ROUTE4 465 tristate "Routing decision (ROUTE)" 466 depends on INET 467 select IP_ROUTE_CLASSID 468 select NET_CLS 469 help 470 If you say Y here, you will be able to classify packets 471 according to the route table entry they matched. 472 473 To compile this code as a module, choose M here: the 474 module will be called cls_route. 475 476config NET_CLS_FW 477 tristate "Netfilter mark (FW)" 478 select NET_CLS 479 help 480 If you say Y here, you will be able to classify packets 481 according to netfilter/firewall marks. 482 483 To compile this code as a module, choose M here: the 484 module will be called cls_fw. 485 486config NET_CLS_U32 487 tristate "Universal 32bit comparisons w/ hashing (U32)" 488 select NET_CLS 489 help 490 Say Y here to be able to classify packets using a universal 491 32bit pieces based comparison scheme. 492 493 To compile this code as a module, choose M here: the 494 module will be called cls_u32. 495 496config CLS_U32_PERF 497 bool "Performance counters support" 498 depends on NET_CLS_U32 499 help 500 Say Y here to make u32 gather additional statistics useful for 501 fine tuning u32 classifiers. 502 503config CLS_U32_MARK 504 bool "Netfilter marks support" 505 depends on NET_CLS_U32 506 help 507 Say Y here to be able to use netfilter marks as u32 key. 508 509config NET_CLS_FLOW 510 tristate "Flow classifier" 511 select NET_CLS 512 help 513 If you say Y here, you will be able to classify packets based on 514 a configurable combination of packet keys. This is mostly useful 515 in combination with SFQ. 516 517 To compile this code as a module, choose M here: the 518 module will be called cls_flow. 519 520config NET_CLS_CGROUP 521 tristate "Control Group Classifier" 522 select NET_CLS 523 select CGROUP_NET_CLASSID 524 depends on CGROUPS 525 help 526 Say Y here if you want to classify packets based on the control 527 cgroup of their process. 528 529 To compile this code as a module, choose M here: the 530 module will be called cls_cgroup. 531 532config NET_CLS_BPF 533 tristate "BPF-based classifier" 534 select NET_CLS 535 help 536 If you say Y here, you will be able to classify packets based on 537 programmable BPF (JIT'ed) filters as an alternative to ematches. 538 539 To compile this code as a module, choose M here: the module will 540 be called cls_bpf. 541 542config NET_CLS_FLOWER 543 tristate "Flower classifier" 544 select NET_CLS 545 help 546 If you say Y here, you will be able to classify packets based on 547 a configurable combination of packet keys and masks. 548 549 To compile this code as a module, choose M here: the module will 550 be called cls_flower. 551 552config NET_CLS_MATCHALL 553 tristate "Match-all classifier" 554 select NET_CLS 555 help 556 If you say Y here, you will be able to classify packets based on 557 nothing. Every packet will match. 558 559 To compile this code as a module, choose M here: the module will 560 be called cls_matchall. 561 562config NET_EMATCH 563 bool "Extended Matches" 564 select NET_CLS 565 help 566 Say Y here if you want to use extended matches on top of classifiers 567 and select the extended matches below. 568 569 Extended matches are small classification helpers not worth writing 570 a separate classifier for. 571 572 A recent version of the iproute2 package is required to use 573 extended matches. 574 575config NET_EMATCH_STACK 576 int "Stack size" 577 depends on NET_EMATCH 578 default "32" 579 help 580 Size of the local stack variable used while evaluating the tree of 581 ematches. Limits the depth of the tree, i.e. the number of 582 encapsulated precedences. Every level requires 4 bytes of additional 583 stack space. 584 585config NET_EMATCH_CMP 586 tristate "Simple packet data comparison" 587 depends on NET_EMATCH 588 help 589 Say Y here if you want to be able to classify packets based on 590 simple packet data comparisons for 8, 16, and 32bit values. 591 592 To compile this code as a module, choose M here: the 593 module will be called em_cmp. 594 595config NET_EMATCH_NBYTE 596 tristate "Multi byte comparison" 597 depends on NET_EMATCH 598 help 599 Say Y here if you want to be able to classify packets based on 600 multiple byte comparisons mainly useful for IPv6 address comparisons. 601 602 To compile this code as a module, choose M here: the 603 module will be called em_nbyte. 604 605config NET_EMATCH_U32 606 tristate "U32 key" 607 depends on NET_EMATCH 608 help 609 Say Y here if you want to be able to classify packets using 610 the famous u32 key in combination with logic relations. 611 612 To compile this code as a module, choose M here: the 613 module will be called em_u32. 614 615config NET_EMATCH_META 616 tristate "Metadata" 617 depends on NET_EMATCH 618 help 619 Say Y here if you want to be able to classify packets based on 620 metadata such as load average, netfilter attributes, socket 621 attributes and routing decisions. 622 623 To compile this code as a module, choose M here: the 624 module will be called em_meta. 625 626config NET_EMATCH_TEXT 627 tristate "Textsearch" 628 depends on NET_EMATCH 629 select TEXTSEARCH 630 select TEXTSEARCH_KMP 631 select TEXTSEARCH_BM 632 select TEXTSEARCH_FSM 633 help 634 Say Y here if you want to be able to classify packets based on 635 textsearch comparisons. 636 637 To compile this code as a module, choose M here: the 638 module will be called em_text. 639 640config NET_EMATCH_CANID 641 tristate "CAN Identifier" 642 depends on NET_EMATCH && (CAN=y || CAN=m) 643 help 644 Say Y here if you want to be able to classify CAN frames based 645 on CAN Identifier. 646 647 To compile this code as a module, choose M here: the 648 module will be called em_canid. 649 650config NET_EMATCH_IPSET 651 tristate "IPset" 652 depends on NET_EMATCH && IP_SET 653 help 654 Say Y here if you want to be able to classify packets based on 655 ipset membership. 656 657 To compile this code as a module, choose M here: the 658 module will be called em_ipset. 659 660config NET_EMATCH_IPT 661 tristate "IPtables Matches" 662 depends on NET_EMATCH && NETFILTER && NETFILTER_XTABLES 663 help 664 Say Y here to be able to classify packets based on iptables 665 matches. 666 Current supported match is "policy" which allows packet classification 667 based on IPsec policy that was used during decapsulation 668 669 To compile this code as a module, choose M here: the 670 module will be called em_ipt. 671 672config NET_CLS_ACT 673 bool "Actions" 674 select NET_CLS 675 help 676 Say Y here if you want to use traffic control actions. Actions 677 get attached to classifiers and are invoked after a successful 678 classification. They are used to overwrite the classification 679 result, instantly drop or redirect packets, etc. 680 681 A recent version of the iproute2 package is required to use 682 extended matches. 683 684config NET_ACT_POLICE 685 tristate "Traffic Policing" 686 depends on NET_CLS_ACT 687 help 688 Say Y here if you want to do traffic policing, i.e. strict 689 bandwidth limiting. This action replaces the existing policing 690 module. 691 692 To compile this code as a module, choose M here: the 693 module will be called act_police. 694 695config NET_ACT_GACT 696 tristate "Generic actions" 697 depends on NET_CLS_ACT 698 help 699 Say Y here to take generic actions such as dropping and 700 accepting packets. 701 702 To compile this code as a module, choose M here: the 703 module will be called act_gact. 704 705config GACT_PROB 706 bool "Probability support" 707 depends on NET_ACT_GACT 708 help 709 Say Y here to use the generic action randomly or deterministically. 710 711config NET_ACT_MIRRED 712 tristate "Redirecting and Mirroring" 713 depends on NET_CLS_ACT 714 help 715 Say Y here to allow packets to be mirrored or redirected to 716 other devices. 717 718 To compile this code as a module, choose M here: the 719 module will be called act_mirred. 720 721config NET_ACT_SAMPLE 722 tristate "Traffic Sampling" 723 depends on NET_CLS_ACT 724 select PSAMPLE 725 help 726 Say Y here to allow packet sampling tc action. The packet sample 727 action consists of statistically choosing packets and sampling 728 them using the psample module. 729 730 To compile this code as a module, choose M here: the 731 module will be called act_sample. 732 733config NET_ACT_IPT 734 tristate "IPtables targets" 735 depends on NET_CLS_ACT && NETFILTER && NETFILTER_XTABLES 736 help 737 Say Y here to be able to invoke iptables targets after successful 738 classification. 739 740 To compile this code as a module, choose M here: the 741 module will be called act_ipt. 742 743config NET_ACT_NAT 744 tristate "Stateless NAT" 745 depends on NET_CLS_ACT 746 help 747 Say Y here to do stateless NAT on IPv4 packets. You should use 748 netfilter for NAT unless you know what you are doing. 749 750 To compile this code as a module, choose M here: the 751 module will be called act_nat. 752 753config NET_ACT_PEDIT 754 tristate "Packet Editing" 755 depends on NET_CLS_ACT 756 help 757 Say Y here if you want to mangle the content of packets. 758 759 To compile this code as a module, choose M here: the 760 module will be called act_pedit. 761 762config NET_ACT_SIMP 763 tristate "Simple Example (Debug)" 764 depends on NET_CLS_ACT 765 help 766 Say Y here to add a simple action for demonstration purposes. 767 It is meant as an example and for debugging purposes. It will 768 print a configured policy string followed by the packet count 769 to the console for every packet that passes by. 770 771 If unsure, say N. 772 773 To compile this code as a module, choose M here: the 774 module will be called act_simple. 775 776config NET_ACT_SKBEDIT 777 tristate "SKB Editing" 778 depends on NET_CLS_ACT 779 help 780 Say Y here to change skb priority or queue_mapping settings. 781 782 If unsure, say N. 783 784 To compile this code as a module, choose M here: the 785 module will be called act_skbedit. 786 787config NET_ACT_CSUM 788 tristate "Checksum Updating" 789 depends on NET_CLS_ACT && INET 790 select LIBCRC32C 791 help 792 Say Y here to update some common checksum after some direct 793 packet alterations. 794 795 To compile this code as a module, choose M here: the 796 module will be called act_csum. 797 798config NET_ACT_MPLS 799 tristate "MPLS manipulation" 800 depends on NET_CLS_ACT 801 help 802 Say Y here to push or pop MPLS headers. 803 804 If unsure, say N. 805 806 To compile this code as a module, choose M here: the 807 module will be called act_mpls. 808 809config NET_ACT_VLAN 810 tristate "Vlan manipulation" 811 depends on NET_CLS_ACT 812 help 813 Say Y here to push or pop vlan headers. 814 815 If unsure, say N. 816 817 To compile this code as a module, choose M here: the 818 module will be called act_vlan. 819 820config NET_ACT_BPF 821 tristate "BPF based action" 822 depends on NET_CLS_ACT 823 help 824 Say Y here to execute BPF code on packets. The BPF code will decide 825 if the packet should be dropped or not. 826 827 If unsure, say N. 828 829 To compile this code as a module, choose M here: the 830 module will be called act_bpf. 831 832config NET_ACT_CONNMARK 833 tristate "Netfilter Connection Mark Retriever" 834 depends on NET_CLS_ACT && NETFILTER 835 depends on NF_CONNTRACK && NF_CONNTRACK_MARK 836 help 837 Say Y here to allow retrieving of conn mark 838 839 If unsure, say N. 840 841 To compile this code as a module, choose M here: the 842 module will be called act_connmark. 843 844config NET_ACT_CTINFO 845 tristate "Netfilter Connection Mark Actions" 846 depends on NET_CLS_ACT && NETFILTER 847 depends on NF_CONNTRACK && NF_CONNTRACK_MARK 848 help 849 Say Y here to allow transfer of a connmark stored information. 850 Current actions transfer connmark stored DSCP into 851 ipv4/v6 diffserv and/or to transfer connmark to packet 852 mark. Both are useful for restoring egress based marks 853 back onto ingress connections for qdisc priority mapping 854 purposes. 855 856 If unsure, say N. 857 858 To compile this code as a module, choose M here: the 859 module will be called act_ctinfo. 860 861config NET_ACT_SKBMOD 862 tristate "skb data modification action" 863 depends on NET_CLS_ACT 864 help 865 Say Y here to allow modification of skb data 866 867 If unsure, say N. 868 869 To compile this code as a module, choose M here: the 870 module will be called act_skbmod. 871 872config NET_ACT_IFE 873 tristate "Inter-FE action based on IETF ForCES InterFE LFB" 874 depends on NET_CLS_ACT 875 select NET_IFE 876 help 877 Say Y here to allow for sourcing and terminating metadata 878 For details refer to netdev01 paper: 879 "Distributing Linux Traffic Control Classifier-Action Subsystem" 880 Authors: Jamal Hadi Salim and Damascene M. Joachimpillai 881 882 To compile this code as a module, choose M here: the 883 module will be called act_ife. 884 885config NET_ACT_TUNNEL_KEY 886 tristate "IP tunnel metadata manipulation" 887 depends on NET_CLS_ACT 888 help 889 Say Y here to set/release ip tunnel metadata. 890 891 If unsure, say N. 892 893 To compile this code as a module, choose M here: the 894 module will be called act_tunnel_key. 895 896config NET_ACT_CT 897 tristate "connection tracking tc action" 898 depends on NET_CLS_ACT && NF_CONNTRACK && (!NF_NAT || NF_NAT) && NF_FLOW_TABLE 899 help 900 Say Y here to allow sending the packets to conntrack module. 901 902 If unsure, say N. 903 904 To compile this code as a module, choose M here: the 905 module will be called act_ct. 906 907config NET_ACT_GATE 908 tristate "Frame gate entry list control tc action" 909 depends on NET_CLS_ACT 910 help 911 Say Y here to allow to control the ingress flow to be passed at 912 specific time slot and be dropped at other specific time slot by 913 the gate entry list. 914 915 If unsure, say N. 916 To compile this code as a module, choose M here: the 917 module will be called act_gate. 918 919config NET_IFE_SKBMARK 920 tristate "Support to encoding decoding skb mark on IFE action" 921 depends on NET_ACT_IFE 922 923config NET_IFE_SKBPRIO 924 tristate "Support to encoding decoding skb prio on IFE action" 925 depends on NET_ACT_IFE 926 927config NET_IFE_SKBTCINDEX 928 tristate "Support to encoding decoding skb tcindex on IFE action" 929 depends on NET_ACT_IFE 930 931config NET_TC_SKB_EXT 932 bool "TC recirculation support" 933 depends on NET_CLS_ACT 934 select SKB_EXTENSIONS 935 936 help 937 Say Y here to allow tc chain misses to continue in OvS datapath in 938 the correct recirc_id, and hardware chain misses to continue in 939 the correct chain in tc software datapath. 940 941 Say N here if you won't be using tc<->ovs offload or tc chains offload. 942 943endif # NET_SCHED 944 945config NET_SCH_FIFO 946 bool 947