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