1 /**************************************************************************** 2 **************************************************************************** 3 *** 4 *** This header was automatically generated from a Linux kernel header 5 *** of the same name, to make information necessary for userspace to 6 *** call into the kernel available to libc. It contains only constants, 7 *** structures, and macros generated from the original header, and thus, 8 *** contains no copyrightable information. 9 *** 10 *** To edit the content of this header, modify the corresponding 11 *** source file (e.g. under external/kernel-headers/original/) then 12 *** run bionic/libc/kernel/tools/update_all.py 13 *** 14 *** Any manual change here will be lost the next time this script will 15 *** be run. You've been warned! 16 *** 17 **************************************************************************** 18 ****************************************************************************/ 19 #ifndef __LINUX_PKT_SCHED_H 20 #define __LINUX_PKT_SCHED_H 21 #include <linux/types.h> 22 #define TC_PRIO_BESTEFFORT 0 23 #define TC_PRIO_FILLER 1 24 #define TC_PRIO_BULK 2 25 #define TC_PRIO_INTERACTIVE_BULK 4 26 #define TC_PRIO_INTERACTIVE 6 27 #define TC_PRIO_CONTROL 7 28 #define TC_PRIO_MAX 15 29 struct tc_stats { 30 __u64 bytes; 31 __u32 packets; 32 __u32 drops; 33 __u32 overlimits; 34 __u32 bps; 35 __u32 pps; 36 __u32 qlen; 37 __u32 backlog; 38 }; 39 struct tc_estimator { 40 signed char interval; 41 unsigned char ewma_log; 42 }; 43 #define TC_H_MAJ_MASK (0xFFFF0000U) 44 #define TC_H_MIN_MASK (0x0000FFFFU) 45 #define TC_H_MAJ(h) ((h) & TC_H_MAJ_MASK) 46 #define TC_H_MIN(h) ((h) & TC_H_MIN_MASK) 47 #define TC_H_MAKE(maj,min) (((maj) & TC_H_MAJ_MASK) | ((min) & TC_H_MIN_MASK)) 48 #define TC_H_UNSPEC (0U) 49 #define TC_H_ROOT (0xFFFFFFFFU) 50 #define TC_H_INGRESS (0xFFFFFFF1U) 51 #define TC_H_CLSACT TC_H_INGRESS 52 #define TC_H_MIN_PRIORITY 0xFFE0U 53 #define TC_H_MIN_INGRESS 0xFFF2U 54 #define TC_H_MIN_EGRESS 0xFFF3U 55 enum tc_link_layer { 56 TC_LINKLAYER_UNAWARE, 57 TC_LINKLAYER_ETHERNET, 58 TC_LINKLAYER_ATM, 59 }; 60 #define TC_LINKLAYER_MASK 0x0F 61 struct tc_ratespec { 62 unsigned char cell_log; 63 __u8 linklayer; 64 unsigned short overhead; 65 short cell_align; 66 unsigned short mpu; 67 __u32 rate; 68 }; 69 #define TC_RTAB_SIZE 1024 70 struct tc_sizespec { 71 unsigned char cell_log; 72 unsigned char size_log; 73 short cell_align; 74 int overhead; 75 unsigned int linklayer; 76 unsigned int mpu; 77 unsigned int mtu; 78 unsigned int tsize; 79 }; 80 enum { 81 TCA_STAB_UNSPEC, 82 TCA_STAB_BASE, 83 TCA_STAB_DATA, 84 __TCA_STAB_MAX 85 }; 86 #define TCA_STAB_MAX (__TCA_STAB_MAX - 1) 87 struct tc_fifo_qopt { 88 __u32 limit; 89 }; 90 #define TCQ_PRIO_BANDS 16 91 #define TCQ_MIN_PRIO_BANDS 2 92 struct tc_prio_qopt { 93 int bands; 94 __u8 priomap[TC_PRIO_MAX + 1]; 95 }; 96 struct tc_multiq_qopt { 97 __u16 bands; 98 __u16 max_bands; 99 }; 100 #define TCQ_PLUG_BUFFER 0 101 #define TCQ_PLUG_RELEASE_ONE 1 102 #define TCQ_PLUG_RELEASE_INDEFINITE 2 103 #define TCQ_PLUG_LIMIT 3 104 struct tc_plug_qopt { 105 int action; 106 __u32 limit; 107 }; 108 struct tc_tbf_qopt { 109 struct tc_ratespec rate; 110 struct tc_ratespec peakrate; 111 __u32 limit; 112 __u32 buffer; 113 __u32 mtu; 114 }; 115 enum { 116 TCA_TBF_UNSPEC, 117 TCA_TBF_PARMS, 118 TCA_TBF_RTAB, 119 TCA_TBF_PTAB, 120 TCA_TBF_RATE64, 121 TCA_TBF_PRATE64, 122 TCA_TBF_BURST, 123 TCA_TBF_PBURST, 124 TCA_TBF_PAD, 125 __TCA_TBF_MAX, 126 }; 127 #define TCA_TBF_MAX (__TCA_TBF_MAX - 1) 128 struct tc_sfq_qopt { 129 unsigned quantum; 130 int perturb_period; 131 __u32 limit; 132 unsigned divisor; 133 unsigned flows; 134 }; 135 struct tc_sfqred_stats { 136 __u32 prob_drop; 137 __u32 forced_drop; 138 __u32 prob_mark; 139 __u32 forced_mark; 140 __u32 prob_mark_head; 141 __u32 forced_mark_head; 142 }; 143 struct tc_sfq_qopt_v1 { 144 struct tc_sfq_qopt v0; 145 unsigned int depth; 146 unsigned int headdrop; 147 __u32 limit; 148 __u32 qth_min; 149 __u32 qth_max; 150 unsigned char Wlog; 151 unsigned char Plog; 152 unsigned char Scell_log; 153 unsigned char flags; 154 __u32 max_P; 155 struct tc_sfqred_stats stats; 156 }; 157 struct tc_sfq_xstats { 158 __s32 allot; 159 }; 160 enum { 161 TCA_RED_UNSPEC, 162 TCA_RED_PARMS, 163 TCA_RED_STAB, 164 TCA_RED_MAX_P, 165 __TCA_RED_MAX, 166 }; 167 #define TCA_RED_MAX (__TCA_RED_MAX - 1) 168 struct tc_red_qopt { 169 __u32 limit; 170 __u32 qth_min; 171 __u32 qth_max; 172 unsigned char Wlog; 173 unsigned char Plog; 174 unsigned char Scell_log; 175 unsigned char flags; 176 #define TC_RED_ECN 1 177 #define TC_RED_HARDDROP 2 178 #define TC_RED_ADAPTATIVE 4 179 }; 180 struct tc_red_xstats { 181 __u32 early; 182 __u32 pdrop; 183 __u32 other; 184 __u32 marked; 185 }; 186 #define MAX_DPs 16 187 enum { 188 TCA_GRED_UNSPEC, 189 TCA_GRED_PARMS, 190 TCA_GRED_STAB, 191 TCA_GRED_DPS, 192 TCA_GRED_MAX_P, 193 TCA_GRED_LIMIT, 194 __TCA_GRED_MAX, 195 }; 196 #define TCA_GRED_MAX (__TCA_GRED_MAX - 1) 197 struct tc_gred_qopt { 198 __u32 limit; 199 __u32 qth_min; 200 __u32 qth_max; 201 __u32 DP; 202 __u32 backlog; 203 __u32 qave; 204 __u32 forced; 205 __u32 early; 206 __u32 other; 207 __u32 pdrop; 208 __u8 Wlog; 209 __u8 Plog; 210 __u8 Scell_log; 211 __u8 prio; 212 __u32 packets; 213 __u32 bytesin; 214 }; 215 struct tc_gred_sopt { 216 __u32 DPs; 217 __u32 def_DP; 218 __u8 grio; 219 __u8 flags; 220 __u16 pad1; 221 }; 222 enum { 223 TCA_CHOKE_UNSPEC, 224 TCA_CHOKE_PARMS, 225 TCA_CHOKE_STAB, 226 TCA_CHOKE_MAX_P, 227 __TCA_CHOKE_MAX, 228 }; 229 #define TCA_CHOKE_MAX (__TCA_CHOKE_MAX - 1) 230 struct tc_choke_qopt { 231 __u32 limit; 232 __u32 qth_min; 233 __u32 qth_max; 234 unsigned char Wlog; 235 unsigned char Plog; 236 unsigned char Scell_log; 237 unsigned char flags; 238 }; 239 struct tc_choke_xstats { 240 __u32 early; 241 __u32 pdrop; 242 __u32 other; 243 __u32 marked; 244 __u32 matched; 245 }; 246 #define TC_HTB_NUMPRIO 8 247 #define TC_HTB_MAXDEPTH 8 248 #define TC_HTB_PROTOVER 3 249 struct tc_htb_opt { 250 struct tc_ratespec rate; 251 struct tc_ratespec ceil; 252 __u32 buffer; 253 __u32 cbuffer; 254 __u32 quantum; 255 __u32 level; 256 __u32 prio; 257 }; 258 struct tc_htb_glob { 259 __u32 version; 260 __u32 rate2quantum; 261 __u32 defcls; 262 __u32 debug; 263 __u32 direct_pkts; 264 }; 265 enum { 266 TCA_HTB_UNSPEC, 267 TCA_HTB_PARMS, 268 TCA_HTB_INIT, 269 TCA_HTB_CTAB, 270 TCA_HTB_RTAB, 271 TCA_HTB_DIRECT_QLEN, 272 TCA_HTB_RATE64, 273 TCA_HTB_CEIL64, 274 TCA_HTB_PAD, 275 __TCA_HTB_MAX, 276 }; 277 #define TCA_HTB_MAX (__TCA_HTB_MAX - 1) 278 struct tc_htb_xstats { 279 __u32 lends; 280 __u32 borrows; 281 __u32 giants; 282 __u32 tokens; 283 __u32 ctokens; 284 }; 285 struct tc_hfsc_qopt { 286 __u16 defcls; 287 }; 288 struct tc_service_curve { 289 __u32 m1; 290 __u32 d; 291 __u32 m2; 292 }; 293 struct tc_hfsc_stats { 294 __u64 work; 295 __u64 rtwork; 296 __u32 period; 297 __u32 level; 298 }; 299 enum { 300 TCA_HFSC_UNSPEC, 301 TCA_HFSC_RSC, 302 TCA_HFSC_FSC, 303 TCA_HFSC_USC, 304 __TCA_HFSC_MAX, 305 }; 306 #define TCA_HFSC_MAX (__TCA_HFSC_MAX - 1) 307 #define TC_CBQ_MAXPRIO 8 308 #define TC_CBQ_MAXLEVEL 8 309 #define TC_CBQ_DEF_EWMA 5 310 struct tc_cbq_lssopt { 311 unsigned char change; 312 unsigned char flags; 313 #define TCF_CBQ_LSS_BOUNDED 1 314 #define TCF_CBQ_LSS_ISOLATED 2 315 unsigned char ewma_log; 316 unsigned char level; 317 #define TCF_CBQ_LSS_FLAGS 1 318 #define TCF_CBQ_LSS_EWMA 2 319 #define TCF_CBQ_LSS_MAXIDLE 4 320 #define TCF_CBQ_LSS_MINIDLE 8 321 #define TCF_CBQ_LSS_OFFTIME 0x10 322 #define TCF_CBQ_LSS_AVPKT 0x20 323 __u32 maxidle; 324 __u32 minidle; 325 __u32 offtime; 326 __u32 avpkt; 327 }; 328 struct tc_cbq_wrropt { 329 unsigned char flags; 330 unsigned char priority; 331 unsigned char cpriority; 332 unsigned char __reserved; 333 __u32 allot; 334 __u32 weight; 335 }; 336 struct tc_cbq_ovl { 337 unsigned char strategy; 338 #define TC_CBQ_OVL_CLASSIC 0 339 #define TC_CBQ_OVL_DELAY 1 340 #define TC_CBQ_OVL_LOWPRIO 2 341 #define TC_CBQ_OVL_DROP 3 342 #define TC_CBQ_OVL_RCLASSIC 4 343 unsigned char priority2; 344 __u16 pad; 345 __u32 penalty; 346 }; 347 struct tc_cbq_police { 348 unsigned char police; 349 unsigned char __res1; 350 unsigned short __res2; 351 }; 352 struct tc_cbq_fopt { 353 __u32 split; 354 __u32 defmap; 355 __u32 defchange; 356 }; 357 struct tc_cbq_xstats { 358 __u32 borrows; 359 __u32 overactions; 360 __s32 avgidle; 361 __s32 undertime; 362 }; 363 enum { 364 TCA_CBQ_UNSPEC, 365 TCA_CBQ_LSSOPT, 366 TCA_CBQ_WRROPT, 367 TCA_CBQ_FOPT, 368 TCA_CBQ_OVL_STRATEGY, 369 TCA_CBQ_RATE, 370 TCA_CBQ_RTAB, 371 TCA_CBQ_POLICE, 372 __TCA_CBQ_MAX, 373 }; 374 #define TCA_CBQ_MAX (__TCA_CBQ_MAX - 1) 375 enum { 376 TCA_DSMARK_UNSPEC, 377 TCA_DSMARK_INDICES, 378 TCA_DSMARK_DEFAULT_INDEX, 379 TCA_DSMARK_SET_TC_INDEX, 380 TCA_DSMARK_MASK, 381 TCA_DSMARK_VALUE, 382 __TCA_DSMARK_MAX, 383 }; 384 #define TCA_DSMARK_MAX (__TCA_DSMARK_MAX - 1) 385 enum { 386 TCA_ATM_UNSPEC, 387 TCA_ATM_FD, 388 TCA_ATM_PTR, 389 TCA_ATM_HDR, 390 TCA_ATM_EXCESS, 391 TCA_ATM_ADDR, 392 TCA_ATM_STATE, 393 __TCA_ATM_MAX, 394 }; 395 #define TCA_ATM_MAX (__TCA_ATM_MAX - 1) 396 enum { 397 TCA_NETEM_UNSPEC, 398 TCA_NETEM_CORR, 399 TCA_NETEM_DELAY_DIST, 400 TCA_NETEM_REORDER, 401 TCA_NETEM_CORRUPT, 402 TCA_NETEM_LOSS, 403 TCA_NETEM_RATE, 404 TCA_NETEM_ECN, 405 TCA_NETEM_RATE64, 406 TCA_NETEM_PAD, 407 TCA_NETEM_LATENCY64, 408 TCA_NETEM_JITTER64, 409 TCA_NETEM_SLOT, 410 __TCA_NETEM_MAX, 411 }; 412 #define TCA_NETEM_MAX (__TCA_NETEM_MAX - 1) 413 struct tc_netem_qopt { 414 __u32 latency; 415 __u32 limit; 416 __u32 loss; 417 __u32 gap; 418 __u32 duplicate; 419 __u32 jitter; 420 }; 421 struct tc_netem_corr { 422 __u32 delay_corr; 423 __u32 loss_corr; 424 __u32 dup_corr; 425 }; 426 struct tc_netem_reorder { 427 __u32 probability; 428 __u32 correlation; 429 }; 430 struct tc_netem_corrupt { 431 __u32 probability; 432 __u32 correlation; 433 }; 434 struct tc_netem_rate { 435 __u32 rate; 436 __s32 packet_overhead; 437 __u32 cell_size; 438 __s32 cell_overhead; 439 }; 440 struct tc_netem_slot { 441 __s64 min_delay; 442 __s64 max_delay; 443 __s32 max_packets; 444 __s32 max_bytes; 445 }; 446 enum { 447 NETEM_LOSS_UNSPEC, 448 NETEM_LOSS_GI, 449 NETEM_LOSS_GE, 450 __NETEM_LOSS_MAX 451 }; 452 #define NETEM_LOSS_MAX (__NETEM_LOSS_MAX - 1) 453 struct tc_netem_gimodel { 454 __u32 p13; 455 __u32 p31; 456 __u32 p32; 457 __u32 p14; 458 __u32 p23; 459 }; 460 struct tc_netem_gemodel { 461 __u32 p; 462 __u32 r; 463 __u32 h; 464 __u32 k1; 465 }; 466 #define NETEM_DIST_SCALE 8192 467 #define NETEM_DIST_MAX 16384 468 enum { 469 TCA_DRR_UNSPEC, 470 TCA_DRR_QUANTUM, 471 __TCA_DRR_MAX 472 }; 473 #define TCA_DRR_MAX (__TCA_DRR_MAX - 1) 474 struct tc_drr_stats { 475 __u32 deficit; 476 }; 477 #define TC_QOPT_BITMASK 15 478 #define TC_QOPT_MAX_QUEUE 16 479 enum { 480 TC_MQPRIO_HW_OFFLOAD_NONE, 481 TC_MQPRIO_HW_OFFLOAD_TCS, 482 __TC_MQPRIO_HW_OFFLOAD_MAX 483 }; 484 #define TC_MQPRIO_HW_OFFLOAD_MAX (__TC_MQPRIO_HW_OFFLOAD_MAX - 1) 485 enum { 486 TC_MQPRIO_MODE_DCB, 487 TC_MQPRIO_MODE_CHANNEL, 488 __TC_MQPRIO_MODE_MAX 489 }; 490 #define __TC_MQPRIO_MODE_MAX (__TC_MQPRIO_MODE_MAX - 1) 491 enum { 492 TC_MQPRIO_SHAPER_DCB, 493 TC_MQPRIO_SHAPER_BW_RATE, 494 __TC_MQPRIO_SHAPER_MAX 495 }; 496 #define __TC_MQPRIO_SHAPER_MAX (__TC_MQPRIO_SHAPER_MAX - 1) 497 struct tc_mqprio_qopt { 498 __u8 num_tc; 499 __u8 prio_tc_map[TC_QOPT_BITMASK + 1]; 500 __u8 hw; 501 __u16 count[TC_QOPT_MAX_QUEUE]; 502 __u16 offset[TC_QOPT_MAX_QUEUE]; 503 }; 504 #define TC_MQPRIO_F_MODE 0x1 505 #define TC_MQPRIO_F_SHAPER 0x2 506 #define TC_MQPRIO_F_MIN_RATE 0x4 507 #define TC_MQPRIO_F_MAX_RATE 0x8 508 enum { 509 TCA_MQPRIO_UNSPEC, 510 TCA_MQPRIO_MODE, 511 TCA_MQPRIO_SHAPER, 512 TCA_MQPRIO_MIN_RATE64, 513 TCA_MQPRIO_MAX_RATE64, 514 __TCA_MQPRIO_MAX, 515 }; 516 #define TCA_MQPRIO_MAX (__TCA_MQPRIO_MAX - 1) 517 enum { 518 TCA_SFB_UNSPEC, 519 TCA_SFB_PARMS, 520 __TCA_SFB_MAX, 521 }; 522 #define TCA_SFB_MAX (__TCA_SFB_MAX - 1) 523 struct tc_sfb_qopt { 524 __u32 rehash_interval; 525 __u32 warmup_time; 526 __u32 max; 527 __u32 bin_size; 528 __u32 increment; 529 __u32 decrement; 530 __u32 limit; 531 __u32 penalty_rate; 532 __u32 penalty_burst; 533 }; 534 struct tc_sfb_xstats { 535 __u32 earlydrop; 536 __u32 penaltydrop; 537 __u32 bucketdrop; 538 __u32 queuedrop; 539 __u32 childdrop; 540 __u32 marked; 541 __u32 maxqlen; 542 __u32 maxprob; 543 __u32 avgprob; 544 }; 545 #define SFB_MAX_PROB 0xFFFF 546 enum { 547 TCA_QFQ_UNSPEC, 548 TCA_QFQ_WEIGHT, 549 TCA_QFQ_LMAX, 550 __TCA_QFQ_MAX 551 }; 552 #define TCA_QFQ_MAX (__TCA_QFQ_MAX - 1) 553 struct tc_qfq_stats { 554 __u32 weight; 555 __u32 lmax; 556 }; 557 enum { 558 TCA_CODEL_UNSPEC, 559 TCA_CODEL_TARGET, 560 TCA_CODEL_LIMIT, 561 TCA_CODEL_INTERVAL, 562 TCA_CODEL_ECN, 563 TCA_CODEL_CE_THRESHOLD, 564 __TCA_CODEL_MAX 565 }; 566 #define TCA_CODEL_MAX (__TCA_CODEL_MAX - 1) 567 struct tc_codel_xstats { 568 __u32 maxpacket; 569 __u32 count; 570 __u32 lastcount; 571 __u32 ldelay; 572 __s32 drop_next; 573 __u32 drop_overlimit; 574 __u32 ecn_mark; 575 __u32 dropping; 576 __u32 ce_mark; 577 }; 578 enum { 579 TCA_FQ_CODEL_UNSPEC, 580 TCA_FQ_CODEL_TARGET, 581 TCA_FQ_CODEL_LIMIT, 582 TCA_FQ_CODEL_INTERVAL, 583 TCA_FQ_CODEL_ECN, 584 TCA_FQ_CODEL_FLOWS, 585 TCA_FQ_CODEL_QUANTUM, 586 TCA_FQ_CODEL_CE_THRESHOLD, 587 TCA_FQ_CODEL_DROP_BATCH_SIZE, 588 TCA_FQ_CODEL_MEMORY_LIMIT, 589 __TCA_FQ_CODEL_MAX 590 }; 591 #define TCA_FQ_CODEL_MAX (__TCA_FQ_CODEL_MAX - 1) 592 enum { 593 TCA_FQ_CODEL_XSTATS_QDISC, 594 TCA_FQ_CODEL_XSTATS_CLASS, 595 }; 596 struct tc_fq_codel_qd_stats { 597 __u32 maxpacket; 598 __u32 drop_overlimit; 599 __u32 ecn_mark; 600 __u32 new_flow_count; 601 __u32 new_flows_len; 602 __u32 old_flows_len; 603 __u32 ce_mark; 604 __u32 memory_usage; 605 __u32 drop_overmemory; 606 }; 607 struct tc_fq_codel_cl_stats { 608 __s32 deficit; 609 __u32 ldelay; 610 __u32 count; 611 __u32 lastcount; 612 __u32 dropping; 613 __s32 drop_next; 614 }; 615 struct tc_fq_codel_xstats { 616 __u32 type; 617 union { 618 struct tc_fq_codel_qd_stats qdisc_stats; 619 struct tc_fq_codel_cl_stats class_stats; 620 }; 621 }; 622 enum { 623 TCA_FQ_UNSPEC, 624 TCA_FQ_PLIMIT, 625 TCA_FQ_FLOW_PLIMIT, 626 TCA_FQ_QUANTUM, 627 TCA_FQ_INITIAL_QUANTUM, 628 TCA_FQ_RATE_ENABLE, 629 TCA_FQ_FLOW_DEFAULT_RATE, 630 TCA_FQ_FLOW_MAX_RATE, 631 TCA_FQ_BUCKETS_LOG, 632 TCA_FQ_FLOW_REFILL_DELAY, 633 TCA_FQ_ORPHAN_MASK, 634 TCA_FQ_LOW_RATE_THRESHOLD, 635 __TCA_FQ_MAX 636 }; 637 #define TCA_FQ_MAX (__TCA_FQ_MAX - 1) 638 struct tc_fq_qd_stats { 639 __u64 gc_flows; 640 __u64 highprio_packets; 641 __u64 tcp_retrans; 642 __u64 throttled; 643 __u64 flows_plimit; 644 __u64 pkts_too_long; 645 __u64 allocation_errors; 646 __s64 time_next_delayed_flow; 647 __u32 flows; 648 __u32 inactive_flows; 649 __u32 throttled_flows; 650 __u32 unthrottle_latency_ns; 651 }; 652 enum { 653 TCA_HHF_UNSPEC, 654 TCA_HHF_BACKLOG_LIMIT, 655 TCA_HHF_QUANTUM, 656 TCA_HHF_HH_FLOWS_LIMIT, 657 TCA_HHF_RESET_TIMEOUT, 658 TCA_HHF_ADMIT_BYTES, 659 TCA_HHF_EVICT_TIMEOUT, 660 TCA_HHF_NON_HH_WEIGHT, 661 __TCA_HHF_MAX 662 }; 663 #define TCA_HHF_MAX (__TCA_HHF_MAX - 1) 664 struct tc_hhf_xstats { 665 __u32 drop_overlimit; 666 __u32 hh_overlimit; 667 __u32 hh_tot_count; 668 __u32 hh_cur_count; 669 }; 670 enum { 671 TCA_PIE_UNSPEC, 672 TCA_PIE_TARGET, 673 TCA_PIE_LIMIT, 674 TCA_PIE_TUPDATE, 675 TCA_PIE_ALPHA, 676 TCA_PIE_BETA, 677 TCA_PIE_ECN, 678 TCA_PIE_BYTEMODE, 679 __TCA_PIE_MAX 680 }; 681 #define TCA_PIE_MAX (__TCA_PIE_MAX - 1) 682 struct tc_pie_xstats { 683 __u32 prob; 684 __u32 delay; 685 __u32 avg_dq_rate; 686 __u32 packets_in; 687 __u32 dropped; 688 __u32 overlimit; 689 __u32 maxq; 690 __u32 ecn_mark; 691 }; 692 struct tc_cbs_qopt { 693 __u8 offload; 694 __u8 _pad[3]; 695 __s32 hicredit; 696 __s32 locredit; 697 __s32 idleslope; 698 __s32 sendslope; 699 }; 700 enum { 701 TCA_CBS_UNSPEC, 702 TCA_CBS_PARMS, 703 __TCA_CBS_MAX, 704 }; 705 #define TCA_CBS_MAX (__TCA_CBS_MAX - 1) 706 #endif 707