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_CBS 176 tristate "Credit Based Shaper (CBS)" 177 ---help--- 178 Say Y here if you want to use the Credit Based Shaper (CBS) packet 179 scheduling algorithm. 180 181 See the top of <file:net/sched/sch_cbs.c> for more details. 182 183 To compile this code as a module, choose M here: the 184 module will be called sch_cbs. 185 186config NET_SCH_ETF 187 tristate "Earliest TxTime First (ETF)" 188 help 189 Say Y here if you want to use the Earliest TxTime First (ETF) packet 190 scheduling algorithm. 191 192 See the top of <file:net/sched/sch_etf.c> for more details. 193 194 To compile this code as a module, choose M here: the 195 module will be called sch_etf. 196 197config NET_SCH_GRED 198 tristate "Generic Random Early Detection (GRED)" 199 ---help--- 200 Say Y here if you want to use the Generic Random Early Detection 201 (GRED) packet scheduling algorithm for some of your network devices 202 (see the top of <file:net/sched/sch_red.c> for details and 203 references about the algorithm). 204 205 To compile this code as a module, choose M here: the 206 module will be called sch_gred. 207 208config NET_SCH_DSMARK 209 tristate "Differentiated Services marker (DSMARK)" 210 ---help--- 211 Say Y if you want to schedule packets according to the 212 Differentiated Services architecture proposed in RFC 2475. 213 Technical information on this method, with pointers to associated 214 RFCs, is available at <http://www.gta.ufrj.br/diffserv/>. 215 216 To compile this code as a module, choose M here: the 217 module will be called sch_dsmark. 218 219config NET_SCH_NETEM 220 tristate "Network emulator (NETEM)" 221 ---help--- 222 Say Y if you want to emulate network delay, loss, and packet 223 re-ordering. This is often useful to simulate networks when 224 testing applications or protocols. 225 226 To compile this driver as a module, choose M here: the module 227 will be called sch_netem. 228 229 If unsure, say N. 230 231config NET_SCH_DRR 232 tristate "Deficit Round Robin scheduler (DRR)" 233 help 234 Say Y here if you want to use the Deficit Round Robin (DRR) packet 235 scheduling algorithm. 236 237 To compile this driver as a module, choose M here: the module 238 will be called sch_drr. 239 240 If unsure, say N. 241 242config NET_SCH_MQPRIO 243 tristate "Multi-queue priority scheduler (MQPRIO)" 244 help 245 Say Y here if you want to use the Multi-queue Priority scheduler. 246 This scheduler allows QOS to be offloaded on NICs that have support 247 for offloading QOS schedulers. 248 249 To compile this driver as a module, choose M here: the module will 250 be called sch_mqprio. 251 252 If unsure, say N. 253 254config NET_SCH_CHOKE 255 tristate "CHOose and Keep responsive flow scheduler (CHOKE)" 256 help 257 Say Y here if you want to use the CHOKe packet scheduler (CHOose 258 and Keep for responsive flows, CHOose and Kill for unresponsive 259 flows). This is a variation of RED which trys to penalize flows 260 that monopolize the queue. 261 262 To compile this code as a module, choose M here: the 263 module will be called sch_choke. 264 265config NET_SCH_QFQ 266 tristate "Quick Fair Queueing scheduler (QFQ)" 267 help 268 Say Y here if you want to use the Quick Fair Queueing Scheduler (QFQ) 269 packet scheduling algorithm. 270 271 To compile this driver as a module, choose M here: the module 272 will be called sch_qfq. 273 274 If unsure, say N. 275 276config NET_SCH_CODEL 277 tristate "Controlled Delay AQM (CODEL)" 278 help 279 Say Y here if you want to use the Controlled Delay (CODEL) 280 packet scheduling algorithm. 281 282 To compile this driver as a module, choose M here: the module 283 will be called sch_codel. 284 285 If unsure, say N. 286 287config NET_SCH_FQ_CODEL 288 tristate "Fair Queue Controlled Delay AQM (FQ_CODEL)" 289 help 290 Say Y here if you want to use the FQ Controlled Delay (FQ_CODEL) 291 packet scheduling algorithm. 292 293 To compile this driver as a module, choose M here: the module 294 will be called sch_fq_codel. 295 296 If unsure, say N. 297 298config NET_SCH_CAKE 299 tristate "Common Applications Kept Enhanced (CAKE)" 300 help 301 Say Y here if you want to use the Common Applications Kept Enhanced 302 (CAKE) queue management algorithm. 303 304 To compile this driver as a module, choose M here: the module 305 will be called sch_cake. 306 307 If unsure, say N. 308 309config NET_SCH_FQ 310 tristate "Fair Queue" 311 help 312 Say Y here if you want to use the FQ packet scheduling algorithm. 313 314 FQ does flow separation, and is able to respect pacing requirements 315 set by TCP stack into sk->sk_pacing_rate (for localy generated 316 traffic) 317 318 To compile this driver as a module, choose M here: the module 319 will be called sch_fq. 320 321 If unsure, say N. 322 323config NET_SCH_HHF 324 tristate "Heavy-Hitter Filter (HHF)" 325 help 326 Say Y here if you want to use the Heavy-Hitter Filter (HHF) 327 packet scheduling algorithm. 328 329 To compile this driver as a module, choose M here: the module 330 will be called sch_hhf. 331 332config NET_SCH_PIE 333 tristate "Proportional Integral controller Enhanced (PIE) scheduler" 334 help 335 Say Y here if you want to use the Proportional Integral controller 336 Enhanced scheduler packet scheduling algorithm. 337 For more information, please see 338 http://tools.ietf.org/html/draft-pan-tsvwg-pie-00 339 340 To compile this driver as a module, choose M here: the module 341 will be called sch_pie. 342 343 If unsure, say N. 344 345config NET_SCH_INGRESS 346 tristate "Ingress/classifier-action Qdisc" 347 depends on NET_CLS_ACT 348 select NET_INGRESS 349 select NET_EGRESS 350 ---help--- 351 Say Y here if you want to use classifiers for incoming and/or outgoing 352 packets. This qdisc doesn't do anything else besides running classifiers, 353 which can also have actions attached to them. In case of outgoing packets, 354 classifiers that this qdisc holds are executed in the transmit path 355 before real enqueuing to an egress qdisc happens. 356 357 If unsure, say Y. 358 359 To compile this code as a module, choose M here: the module will be 360 called sch_ingress with alias of sch_clsact. 361 362config NET_SCH_PLUG 363 tristate "Plug network traffic until release (PLUG)" 364 ---help--- 365 366 This queuing discipline allows userspace to plug/unplug a network 367 output queue, using the netlink interface. When it receives an 368 enqueue command it inserts a plug into the outbound queue that 369 causes following packets to enqueue until a dequeue command arrives 370 over netlink, causing the plug to be removed and resuming the normal 371 packet flow. 372 373 This module also provides a generic "network output buffering" 374 functionality (aka output commit), wherein upon arrival of a dequeue 375 command, only packets up to the first plug are released for delivery. 376 The Remus HA project uses this module to enable speculative execution 377 of virtual machines by allowing the generated network output to be rolled 378 back if needed. 379 380 For more information, please refer to <http://wiki.xenproject.org/wiki/Remus> 381 382 Say Y here if you are using this kernel for Xen dom0 and 383 want to protect Xen guests with Remus. 384 385 To compile this code as a module, choose M here: the 386 module will be called sch_plug. 387 388menuconfig NET_SCH_DEFAULT 389 bool "Allow override default queue discipline" 390 ---help--- 391 Support for selection of default queuing discipline. 392 393 Nearly all users can safely say no here, and the default 394 of pfifo_fast will be used. Many distributions already set 395 the default value via /proc/sys/net/core/default_qdisc. 396 397 If unsure, say N. 398 399if NET_SCH_DEFAULT 400 401choice 402 prompt "Default queuing discipline" 403 default DEFAULT_PFIFO_FAST 404 help 405 Select the queueing discipline that will be used by default 406 for all network devices. 407 408 config DEFAULT_FQ 409 bool "Fair Queue" if NET_SCH_FQ 410 411 config DEFAULT_CODEL 412 bool "Controlled Delay" if NET_SCH_CODEL 413 414 config DEFAULT_FQ_CODEL 415 bool "Fair Queue Controlled Delay" if NET_SCH_FQ_CODEL 416 417 config DEFAULT_SFQ 418 bool "Stochastic Fair Queue" if NET_SCH_SFQ 419 420 config DEFAULT_PFIFO_FAST 421 bool "Priority FIFO Fast" 422endchoice 423 424config DEFAULT_NET_SCH 425 string 426 default "pfifo_fast" if DEFAULT_PFIFO_FAST 427 default "fq" if DEFAULT_FQ 428 default "fq_codel" if DEFAULT_FQ_CODEL 429 default "sfq" if DEFAULT_SFQ 430 default "pfifo_fast" 431endif 432 433comment "Classification" 434 435config NET_CLS 436 bool 437 438config NET_CLS_BASIC 439 tristate "Elementary classification (BASIC)" 440 select NET_CLS 441 ---help--- 442 Say Y here if you want to be able to classify packets using 443 only extended matches and actions. 444 445 To compile this code as a module, choose M here: the 446 module will be called cls_basic. 447 448config NET_CLS_TCINDEX 449 tristate "Traffic-Control Index (TCINDEX)" 450 select NET_CLS 451 ---help--- 452 Say Y here if you want to be able to classify packets based on 453 traffic control indices. You will want this feature if you want 454 to implement Differentiated Services together with DSMARK. 455 456 To compile this code as a module, choose M here: the 457 module will be called cls_tcindex. 458 459config NET_CLS_ROUTE4 460 tristate "Routing decision (ROUTE)" 461 depends on INET 462 select IP_ROUTE_CLASSID 463 select NET_CLS 464 ---help--- 465 If you say Y here, you will be able to classify packets 466 according to the route table entry they matched. 467 468 To compile this code as a module, choose M here: the 469 module will be called cls_route. 470 471config NET_CLS_FW 472 tristate "Netfilter mark (FW)" 473 select NET_CLS 474 ---help--- 475 If you say Y here, you will be able to classify packets 476 according to netfilter/firewall marks. 477 478 To compile this code as a module, choose M here: the 479 module will be called cls_fw. 480 481config NET_CLS_U32 482 tristate "Universal 32bit comparisons w/ hashing (U32)" 483 select NET_CLS 484 ---help--- 485 Say Y here to be able to classify packets using a universal 486 32bit pieces based comparison scheme. 487 488 To compile this code as a module, choose M here: the 489 module will be called cls_u32. 490 491config CLS_U32_PERF 492 bool "Performance counters support" 493 depends on NET_CLS_U32 494 ---help--- 495 Say Y here to make u32 gather additional statistics useful for 496 fine tuning u32 classifiers. 497 498config CLS_U32_MARK 499 bool "Netfilter marks support" 500 depends on NET_CLS_U32 501 ---help--- 502 Say Y here to be able to use netfilter marks as u32 key. 503 504config NET_CLS_RSVP 505 tristate "IPv4 Resource Reservation Protocol (RSVP)" 506 select NET_CLS 507 ---help--- 508 The Resource Reservation Protocol (RSVP) permits end systems to 509 request a minimum and maximum data flow rate for a connection; this 510 is important for real time data such as streaming sound or video. 511 512 Say Y here if you want to be able to classify outgoing packets based 513 on their RSVP requests. 514 515 To compile this code as a module, choose M here: the 516 module will be called cls_rsvp. 517 518config NET_CLS_RSVP6 519 tristate "IPv6 Resource Reservation Protocol (RSVP6)" 520 select NET_CLS 521 ---help--- 522 The Resource Reservation Protocol (RSVP) permits end systems to 523 request a minimum and maximum data flow rate for a connection; this 524 is important for real time data such as streaming sound or video. 525 526 Say Y here if you want to be able to classify outgoing packets based 527 on their RSVP requests and you are using the IPv6 protocol. 528 529 To compile this code as a module, choose M here: the 530 module will be called cls_rsvp6. 531 532config NET_CLS_FLOW 533 tristate "Flow 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. This is mostly useful 538 in combination with SFQ. 539 540 To compile this code as a module, choose M here: the 541 module will be called cls_flow. 542 543config NET_CLS_CGROUP 544 tristate "Control Group Classifier" 545 select NET_CLS 546 select CGROUP_NET_CLASSID 547 depends on CGROUPS 548 ---help--- 549 Say Y here if you want to classify packets based on the control 550 cgroup of their process. 551 552 To compile this code as a module, choose M here: the 553 module will be called cls_cgroup. 554 555config NET_CLS_BPF 556 tristate "BPF-based classifier" 557 select NET_CLS 558 ---help--- 559 If you say Y here, you will be able to classify packets based on 560 programmable BPF (JIT'ed) filters as an alternative to ematches. 561 562 To compile this code as a module, choose M here: the module will 563 be called cls_bpf. 564 565config NET_CLS_FLOWER 566 tristate "Flower classifier" 567 select NET_CLS 568 ---help--- 569 If you say Y here, you will be able to classify packets based on 570 a configurable combination of packet keys and masks. 571 572 To compile this code as a module, choose M here: the module will 573 be called cls_flower. 574 575config NET_CLS_MATCHALL 576 tristate "Match-all classifier" 577 select NET_CLS 578 ---help--- 579 If you say Y here, you will be able to classify packets based on 580 nothing. Every packet will match. 581 582 To compile this code as a module, choose M here: the module will 583 be called cls_matchall. 584 585config NET_EMATCH 586 bool "Extended Matches" 587 select NET_CLS 588 ---help--- 589 Say Y here if you want to use extended matches on top of classifiers 590 and select the extended matches below. 591 592 Extended matches are small classification helpers not worth writing 593 a separate classifier for. 594 595 A recent version of the iproute2 package is required to use 596 extended matches. 597 598config NET_EMATCH_STACK 599 int "Stack size" 600 depends on NET_EMATCH 601 default "32" 602 ---help--- 603 Size of the local stack variable used while evaluating the tree of 604 ematches. Limits the depth of the tree, i.e. the number of 605 encapsulated precedences. Every level requires 4 bytes of additional 606 stack space. 607 608config NET_EMATCH_CMP 609 tristate "Simple packet data comparison" 610 depends on NET_EMATCH 611 ---help--- 612 Say Y here if you want to be able to classify packets based on 613 simple packet data comparisons for 8, 16, and 32bit values. 614 615 To compile this code as a module, choose M here: the 616 module will be called em_cmp. 617 618config NET_EMATCH_NBYTE 619 tristate "Multi byte comparison" 620 depends on NET_EMATCH 621 ---help--- 622 Say Y here if you want to be able to classify packets based on 623 multiple byte comparisons mainly useful for IPv6 address comparisons. 624 625 To compile this code as a module, choose M here: the 626 module will be called em_nbyte. 627 628config NET_EMATCH_U32 629 tristate "U32 key" 630 depends on NET_EMATCH 631 ---help--- 632 Say Y here if you want to be able to classify packets using 633 the famous u32 key in combination with logic relations. 634 635 To compile this code as a module, choose M here: the 636 module will be called em_u32. 637 638config NET_EMATCH_META 639 tristate "Metadata" 640 depends on NET_EMATCH 641 ---help--- 642 Say Y here if you want to be able to classify packets based on 643 metadata such as load average, netfilter attributes, socket 644 attributes and routing decisions. 645 646 To compile this code as a module, choose M here: the 647 module will be called em_meta. 648 649config NET_EMATCH_TEXT 650 tristate "Textsearch" 651 depends on NET_EMATCH 652 select TEXTSEARCH 653 select TEXTSEARCH_KMP 654 select TEXTSEARCH_BM 655 select TEXTSEARCH_FSM 656 ---help--- 657 Say Y here if you want to be able to classify packets based on 658 textsearch comparisons. 659 660 To compile this code as a module, choose M here: the 661 module will be called em_text. 662 663config NET_EMATCH_CANID 664 tristate "CAN Identifier" 665 depends on NET_EMATCH && (CAN=y || CAN=m) 666 ---help--- 667 Say Y here if you want to be able to classify CAN frames based 668 on CAN Identifier. 669 670 To compile this code as a module, choose M here: the 671 module will be called em_canid. 672 673config NET_EMATCH_IPSET 674 tristate "IPset" 675 depends on NET_EMATCH && IP_SET 676 ---help--- 677 Say Y here if you want to be able to classify packets based on 678 ipset membership. 679 680 To compile this code as a module, choose M here: the 681 module will be called em_ipset. 682 683config NET_EMATCH_IPT 684 tristate "IPtables Matches" 685 depends on NET_EMATCH && NETFILTER && NETFILTER_XTABLES 686 ---help--- 687 Say Y here to be able to classify packets based on iptables 688 matches. 689 Current supported match is "policy" which allows packet classification 690 based on IPsec policy that was used during decapsulation 691 692 To compile this code as a module, choose M here: the 693 module will be called em_ipt. 694 695config NET_CLS_ACT 696 bool "Actions" 697 select NET_CLS 698 ---help--- 699 Say Y here if you want to use traffic control actions. Actions 700 get attached to classifiers and are invoked after a successful 701 classification. They are used to overwrite the classification 702 result, instantly drop or redirect packets, etc. 703 704 A recent version of the iproute2 package is required to use 705 extended matches. 706 707config NET_ACT_POLICE 708 tristate "Traffic Policing" 709 depends on NET_CLS_ACT 710 ---help--- 711 Say Y here if you want to do traffic policing, i.e. strict 712 bandwidth limiting. This action replaces the existing policing 713 module. 714 715 To compile this code as a module, choose M here: the 716 module will be called act_police. 717 718config NET_ACT_GACT 719 tristate "Generic actions" 720 depends on NET_CLS_ACT 721 ---help--- 722 Say Y here to take generic actions such as dropping and 723 accepting packets. 724 725 To compile this code as a module, choose M here: the 726 module will be called act_gact. 727 728config GACT_PROB 729 bool "Probability support" 730 depends on NET_ACT_GACT 731 ---help--- 732 Say Y here to use the generic action randomly or deterministically. 733 734config NET_ACT_MIRRED 735 tristate "Redirecting and Mirroring" 736 depends on NET_CLS_ACT 737 ---help--- 738 Say Y here to allow packets to be mirrored or redirected to 739 other devices. 740 741 To compile this code as a module, choose M here: the 742 module will be called act_mirred. 743 744config NET_ACT_SAMPLE 745 tristate "Traffic Sampling" 746 depends on NET_CLS_ACT 747 select PSAMPLE 748 ---help--- 749 Say Y here to allow packet sampling tc action. The packet sample 750 action consists of statistically choosing packets and sampling 751 them using the psample module. 752 753 To compile this code as a module, choose M here: the 754 module will be called act_sample. 755 756config NET_ACT_IPT 757 tristate "IPtables targets" 758 depends on NET_CLS_ACT && NETFILTER && IP_NF_IPTABLES 759 ---help--- 760 Say Y here to be able to invoke iptables targets after successful 761 classification. 762 763 To compile this code as a module, choose M here: the 764 module will be called act_ipt. 765 766config NET_ACT_NAT 767 tristate "Stateless NAT" 768 depends on NET_CLS_ACT 769 ---help--- 770 Say Y here to do stateless NAT on IPv4 packets. You should use 771 netfilter for NAT unless you know what you are doing. 772 773 To compile this code as a module, choose M here: the 774 module will be called act_nat. 775 776config NET_ACT_PEDIT 777 tristate "Packet Editing" 778 depends on NET_CLS_ACT 779 ---help--- 780 Say Y here if you want to mangle the content of packets. 781 782 To compile this code as a module, choose M here: the 783 module will be called act_pedit. 784 785config NET_ACT_SIMP 786 tristate "Simple Example (Debug)" 787 depends on NET_CLS_ACT 788 ---help--- 789 Say Y here to add a simple action for demonstration purposes. 790 It is meant as an example and for debugging purposes. It will 791 print a configured policy string followed by the packet count 792 to the console for every packet that passes by. 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_simple. 798 799config NET_ACT_SKBEDIT 800 tristate "SKB Editing" 801 depends on NET_CLS_ACT 802 ---help--- 803 Say Y here to change skb priority or queue_mapping settings. 804 805 If unsure, say N. 806 807 To compile this code as a module, choose M here: the 808 module will be called act_skbedit. 809 810config NET_ACT_CSUM 811 tristate "Checksum Updating" 812 depends on NET_CLS_ACT && INET 813 select LIBCRC32C 814 ---help--- 815 Say Y here to update some common checksum after some direct 816 packet alterations. 817 818 To compile this code as a module, choose M here: the 819 module will be called act_csum. 820 821config NET_ACT_VLAN 822 tristate "Vlan manipulation" 823 depends on NET_CLS_ACT 824 ---help--- 825 Say Y here to push or pop vlan headers. 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_vlan. 831 832config NET_ACT_BPF 833 tristate "BPF based action" 834 depends on NET_CLS_ACT 835 ---help--- 836 Say Y here to execute BPF code on packets. The BPF code will decide 837 if the packet should be dropped or not. 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_bpf. 843 844config NET_ACT_CONNMARK 845 tristate "Netfilter Connection Mark Retriever" 846 depends on NET_CLS_ACT && NETFILTER && IP_NF_IPTABLES 847 depends on NF_CONNTRACK && NF_CONNTRACK_MARK 848 ---help--- 849 Say Y here to allow retrieving of conn mark 850 851 If unsure, say N. 852 853 To compile this code as a module, choose M here: the 854 module will be called act_connmark. 855 856config NET_ACT_SKBMOD 857 tristate "skb data modification action" 858 depends on NET_CLS_ACT 859 ---help--- 860 Say Y here to allow modification of skb data 861 862 If unsure, say N. 863 864 To compile this code as a module, choose M here: the 865 module will be called act_skbmod. 866 867config NET_ACT_IFE 868 tristate "Inter-FE action based on IETF ForCES InterFE LFB" 869 depends on NET_CLS_ACT 870 select NET_IFE 871 ---help--- 872 Say Y here to allow for sourcing and terminating metadata 873 For details refer to netdev01 paper: 874 "Distributing Linux Traffic Control Classifier-Action Subsystem" 875 Authors: Jamal Hadi Salim and Damascene M. Joachimpillai 876 877 To compile this code as a module, choose M here: the 878 module will be called act_ife. 879 880config NET_ACT_TUNNEL_KEY 881 tristate "IP tunnel metadata manipulation" 882 depends on NET_CLS_ACT 883 ---help--- 884 Say Y here to set/release ip tunnel metadata. 885 886 If unsure, say N. 887 888 To compile this code as a module, choose M here: the 889 module will be called act_tunnel_key. 890 891config NET_IFE_SKBMARK 892 tristate "Support to encoding decoding skb mark on IFE action" 893 depends on NET_ACT_IFE 894 895config NET_IFE_SKBPRIO 896 tristate "Support to encoding decoding skb prio on IFE action" 897 depends on NET_ACT_IFE 898 899config NET_IFE_SKBTCINDEX 900 tristate "Support to encoding decoding skb tcindex on IFE action" 901 depends on NET_ACT_IFE 902 903config NET_CLS_IND 904 bool "Incoming device classification" 905 depends on NET_CLS_U32 || NET_CLS_FW 906 ---help--- 907 Say Y here to extend the u32 and fw classifier to support 908 classification based on the incoming device. This option is 909 likely to disappear in favour of the metadata ematch. 910 911endif # NET_SCHED 912 913config NET_SCH_FIFO 914 bool 915