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 SKBPRIO_MAX_PRIORITY 64 91 struct tc_skbprio_qopt { 92 __u32 limit; 93 }; 94 #define TCQ_PRIO_BANDS 16 95 #define TCQ_MIN_PRIO_BANDS 2 96 struct tc_prio_qopt { 97 int bands; 98 __u8 priomap[TC_PRIO_MAX + 1]; 99 }; 100 struct tc_multiq_qopt { 101 __u16 bands; 102 __u16 max_bands; 103 }; 104 #define TCQ_PLUG_BUFFER 0 105 #define TCQ_PLUG_RELEASE_ONE 1 106 #define TCQ_PLUG_RELEASE_INDEFINITE 2 107 #define TCQ_PLUG_LIMIT 3 108 struct tc_plug_qopt { 109 int action; 110 __u32 limit; 111 }; 112 struct tc_tbf_qopt { 113 struct tc_ratespec rate; 114 struct tc_ratespec peakrate; 115 __u32 limit; 116 __u32 buffer; 117 __u32 mtu; 118 }; 119 enum { 120 TCA_TBF_UNSPEC, 121 TCA_TBF_PARMS, 122 TCA_TBF_RTAB, 123 TCA_TBF_PTAB, 124 TCA_TBF_RATE64, 125 TCA_TBF_PRATE64, 126 TCA_TBF_BURST, 127 TCA_TBF_PBURST, 128 TCA_TBF_PAD, 129 __TCA_TBF_MAX, 130 }; 131 #define TCA_TBF_MAX (__TCA_TBF_MAX - 1) 132 struct tc_sfq_qopt { 133 unsigned quantum; 134 int perturb_period; 135 __u32 limit; 136 unsigned divisor; 137 unsigned flows; 138 }; 139 struct tc_sfqred_stats { 140 __u32 prob_drop; 141 __u32 forced_drop; 142 __u32 prob_mark; 143 __u32 forced_mark; 144 __u32 prob_mark_head; 145 __u32 forced_mark_head; 146 }; 147 struct tc_sfq_qopt_v1 { 148 struct tc_sfq_qopt v0; 149 unsigned int depth; 150 unsigned int headdrop; 151 __u32 limit; 152 __u32 qth_min; 153 __u32 qth_max; 154 unsigned char Wlog; 155 unsigned char Plog; 156 unsigned char Scell_log; 157 unsigned char flags; 158 __u32 max_P; 159 struct tc_sfqred_stats stats; 160 }; 161 struct tc_sfq_xstats { 162 __s32 allot; 163 }; 164 enum { 165 TCA_RED_UNSPEC, 166 TCA_RED_PARMS, 167 TCA_RED_STAB, 168 TCA_RED_MAX_P, 169 __TCA_RED_MAX, 170 }; 171 #define TCA_RED_MAX (__TCA_RED_MAX - 1) 172 struct tc_red_qopt { 173 __u32 limit; 174 __u32 qth_min; 175 __u32 qth_max; 176 unsigned char Wlog; 177 unsigned char Plog; 178 unsigned char Scell_log; 179 unsigned char flags; 180 #define TC_RED_ECN 1 181 #define TC_RED_HARDDROP 2 182 #define TC_RED_ADAPTATIVE 4 183 }; 184 struct tc_red_xstats { 185 __u32 early; 186 __u32 pdrop; 187 __u32 other; 188 __u32 marked; 189 }; 190 #define MAX_DPs 16 191 enum { 192 TCA_GRED_UNSPEC, 193 TCA_GRED_PARMS, 194 TCA_GRED_STAB, 195 TCA_GRED_DPS, 196 TCA_GRED_MAX_P, 197 TCA_GRED_LIMIT, 198 TCA_GRED_VQ_LIST, 199 __TCA_GRED_MAX, 200 }; 201 #define TCA_GRED_MAX (__TCA_GRED_MAX - 1) 202 enum { 203 TCA_GRED_VQ_ENTRY_UNSPEC, 204 TCA_GRED_VQ_ENTRY, 205 __TCA_GRED_VQ_ENTRY_MAX, 206 }; 207 #define TCA_GRED_VQ_ENTRY_MAX (__TCA_GRED_VQ_ENTRY_MAX - 1) 208 enum { 209 TCA_GRED_VQ_UNSPEC, 210 TCA_GRED_VQ_PAD, 211 TCA_GRED_VQ_DP, 212 TCA_GRED_VQ_STAT_BYTES, 213 TCA_GRED_VQ_STAT_PACKETS, 214 TCA_GRED_VQ_STAT_BACKLOG, 215 TCA_GRED_VQ_STAT_PROB_DROP, 216 TCA_GRED_VQ_STAT_PROB_MARK, 217 TCA_GRED_VQ_STAT_FORCED_DROP, 218 TCA_GRED_VQ_STAT_FORCED_MARK, 219 TCA_GRED_VQ_STAT_PDROP, 220 TCA_GRED_VQ_STAT_OTHER, 221 TCA_GRED_VQ_FLAGS, 222 __TCA_GRED_VQ_MAX 223 }; 224 #define TCA_GRED_VQ_MAX (__TCA_GRED_VQ_MAX - 1) 225 struct tc_gred_qopt { 226 __u32 limit; 227 __u32 qth_min; 228 __u32 qth_max; 229 __u32 DP; 230 __u32 backlog; 231 __u32 qave; 232 __u32 forced; 233 __u32 early; 234 __u32 other; 235 __u32 pdrop; 236 __u8 Wlog; 237 __u8 Plog; 238 __u8 Scell_log; 239 __u8 prio; 240 __u32 packets; 241 __u32 bytesin; 242 }; 243 struct tc_gred_sopt { 244 __u32 DPs; 245 __u32 def_DP; 246 __u8 grio; 247 __u8 flags; 248 __u16 pad1; 249 }; 250 enum { 251 TCA_CHOKE_UNSPEC, 252 TCA_CHOKE_PARMS, 253 TCA_CHOKE_STAB, 254 TCA_CHOKE_MAX_P, 255 __TCA_CHOKE_MAX, 256 }; 257 #define TCA_CHOKE_MAX (__TCA_CHOKE_MAX - 1) 258 struct tc_choke_qopt { 259 __u32 limit; 260 __u32 qth_min; 261 __u32 qth_max; 262 unsigned char Wlog; 263 unsigned char Plog; 264 unsigned char Scell_log; 265 unsigned char flags; 266 }; 267 struct tc_choke_xstats { 268 __u32 early; 269 __u32 pdrop; 270 __u32 other; 271 __u32 marked; 272 __u32 matched; 273 }; 274 #define TC_HTB_NUMPRIO 8 275 #define TC_HTB_MAXDEPTH 8 276 #define TC_HTB_PROTOVER 3 277 struct tc_htb_opt { 278 struct tc_ratespec rate; 279 struct tc_ratespec ceil; 280 __u32 buffer; 281 __u32 cbuffer; 282 __u32 quantum; 283 __u32 level; 284 __u32 prio; 285 }; 286 struct tc_htb_glob { 287 __u32 version; 288 __u32 rate2quantum; 289 __u32 defcls; 290 __u32 debug; 291 __u32 direct_pkts; 292 }; 293 enum { 294 TCA_HTB_UNSPEC, 295 TCA_HTB_PARMS, 296 TCA_HTB_INIT, 297 TCA_HTB_CTAB, 298 TCA_HTB_RTAB, 299 TCA_HTB_DIRECT_QLEN, 300 TCA_HTB_RATE64, 301 TCA_HTB_CEIL64, 302 TCA_HTB_PAD, 303 __TCA_HTB_MAX, 304 }; 305 #define TCA_HTB_MAX (__TCA_HTB_MAX - 1) 306 struct tc_htb_xstats { 307 __u32 lends; 308 __u32 borrows; 309 __u32 giants; 310 __s32 tokens; 311 __s32 ctokens; 312 }; 313 struct tc_hfsc_qopt { 314 __u16 defcls; 315 }; 316 struct tc_service_curve { 317 __u32 m1; 318 __u32 d; 319 __u32 m2; 320 }; 321 struct tc_hfsc_stats { 322 __u64 work; 323 __u64 rtwork; 324 __u32 period; 325 __u32 level; 326 }; 327 enum { 328 TCA_HFSC_UNSPEC, 329 TCA_HFSC_RSC, 330 TCA_HFSC_FSC, 331 TCA_HFSC_USC, 332 __TCA_HFSC_MAX, 333 }; 334 #define TCA_HFSC_MAX (__TCA_HFSC_MAX - 1) 335 #define TC_CBQ_MAXPRIO 8 336 #define TC_CBQ_MAXLEVEL 8 337 #define TC_CBQ_DEF_EWMA 5 338 struct tc_cbq_lssopt { 339 unsigned char change; 340 unsigned char flags; 341 #define TCF_CBQ_LSS_BOUNDED 1 342 #define TCF_CBQ_LSS_ISOLATED 2 343 unsigned char ewma_log; 344 unsigned char level; 345 #define TCF_CBQ_LSS_FLAGS 1 346 #define TCF_CBQ_LSS_EWMA 2 347 #define TCF_CBQ_LSS_MAXIDLE 4 348 #define TCF_CBQ_LSS_MINIDLE 8 349 #define TCF_CBQ_LSS_OFFTIME 0x10 350 #define TCF_CBQ_LSS_AVPKT 0x20 351 __u32 maxidle; 352 __u32 minidle; 353 __u32 offtime; 354 __u32 avpkt; 355 }; 356 struct tc_cbq_wrropt { 357 unsigned char flags; 358 unsigned char priority; 359 unsigned char cpriority; 360 unsigned char __reserved; 361 __u32 allot; 362 __u32 weight; 363 }; 364 struct tc_cbq_ovl { 365 unsigned char strategy; 366 #define TC_CBQ_OVL_CLASSIC 0 367 #define TC_CBQ_OVL_DELAY 1 368 #define TC_CBQ_OVL_LOWPRIO 2 369 #define TC_CBQ_OVL_DROP 3 370 #define TC_CBQ_OVL_RCLASSIC 4 371 unsigned char priority2; 372 __u16 pad; 373 __u32 penalty; 374 }; 375 struct tc_cbq_police { 376 unsigned char police; 377 unsigned char __res1; 378 unsigned short __res2; 379 }; 380 struct tc_cbq_fopt { 381 __u32 split; 382 __u32 defmap; 383 __u32 defchange; 384 }; 385 struct tc_cbq_xstats { 386 __u32 borrows; 387 __u32 overactions; 388 __s32 avgidle; 389 __s32 undertime; 390 }; 391 enum { 392 TCA_CBQ_UNSPEC, 393 TCA_CBQ_LSSOPT, 394 TCA_CBQ_WRROPT, 395 TCA_CBQ_FOPT, 396 TCA_CBQ_OVL_STRATEGY, 397 TCA_CBQ_RATE, 398 TCA_CBQ_RTAB, 399 TCA_CBQ_POLICE, 400 __TCA_CBQ_MAX, 401 }; 402 #define TCA_CBQ_MAX (__TCA_CBQ_MAX - 1) 403 enum { 404 TCA_DSMARK_UNSPEC, 405 TCA_DSMARK_INDICES, 406 TCA_DSMARK_DEFAULT_INDEX, 407 TCA_DSMARK_SET_TC_INDEX, 408 TCA_DSMARK_MASK, 409 TCA_DSMARK_VALUE, 410 __TCA_DSMARK_MAX, 411 }; 412 #define TCA_DSMARK_MAX (__TCA_DSMARK_MAX - 1) 413 enum { 414 TCA_ATM_UNSPEC, 415 TCA_ATM_FD, 416 TCA_ATM_PTR, 417 TCA_ATM_HDR, 418 TCA_ATM_EXCESS, 419 TCA_ATM_ADDR, 420 TCA_ATM_STATE, 421 __TCA_ATM_MAX, 422 }; 423 #define TCA_ATM_MAX (__TCA_ATM_MAX - 1) 424 enum { 425 TCA_NETEM_UNSPEC, 426 TCA_NETEM_CORR, 427 TCA_NETEM_DELAY_DIST, 428 TCA_NETEM_REORDER, 429 TCA_NETEM_CORRUPT, 430 TCA_NETEM_LOSS, 431 TCA_NETEM_RATE, 432 TCA_NETEM_ECN, 433 TCA_NETEM_RATE64, 434 TCA_NETEM_PAD, 435 TCA_NETEM_LATENCY64, 436 TCA_NETEM_JITTER64, 437 TCA_NETEM_SLOT, 438 TCA_NETEM_SLOT_DIST, 439 __TCA_NETEM_MAX, 440 }; 441 #define TCA_NETEM_MAX (__TCA_NETEM_MAX - 1) 442 struct tc_netem_qopt { 443 __u32 latency; 444 __u32 limit; 445 __u32 loss; 446 __u32 gap; 447 __u32 duplicate; 448 __u32 jitter; 449 }; 450 struct tc_netem_corr { 451 __u32 delay_corr; 452 __u32 loss_corr; 453 __u32 dup_corr; 454 }; 455 struct tc_netem_reorder { 456 __u32 probability; 457 __u32 correlation; 458 }; 459 struct tc_netem_corrupt { 460 __u32 probability; 461 __u32 correlation; 462 }; 463 struct tc_netem_rate { 464 __u32 rate; 465 __s32 packet_overhead; 466 __u32 cell_size; 467 __s32 cell_overhead; 468 }; 469 struct tc_netem_slot { 470 __s64 min_delay; 471 __s64 max_delay; 472 __s32 max_packets; 473 __s32 max_bytes; 474 __s64 dist_delay; 475 __s64 dist_jitter; 476 }; 477 enum { 478 NETEM_LOSS_UNSPEC, 479 NETEM_LOSS_GI, 480 NETEM_LOSS_GE, 481 __NETEM_LOSS_MAX 482 }; 483 #define NETEM_LOSS_MAX (__NETEM_LOSS_MAX - 1) 484 struct tc_netem_gimodel { 485 __u32 p13; 486 __u32 p31; 487 __u32 p32; 488 __u32 p14; 489 __u32 p23; 490 }; 491 struct tc_netem_gemodel { 492 __u32 p; 493 __u32 r; 494 __u32 h; 495 __u32 k1; 496 }; 497 #define NETEM_DIST_SCALE 8192 498 #define NETEM_DIST_MAX 16384 499 enum { 500 TCA_DRR_UNSPEC, 501 TCA_DRR_QUANTUM, 502 __TCA_DRR_MAX 503 }; 504 #define TCA_DRR_MAX (__TCA_DRR_MAX - 1) 505 struct tc_drr_stats { 506 __u32 deficit; 507 }; 508 #define TC_QOPT_BITMASK 15 509 #define TC_QOPT_MAX_QUEUE 16 510 enum { 511 TC_MQPRIO_HW_OFFLOAD_NONE, 512 TC_MQPRIO_HW_OFFLOAD_TCS, 513 __TC_MQPRIO_HW_OFFLOAD_MAX 514 }; 515 #define TC_MQPRIO_HW_OFFLOAD_MAX (__TC_MQPRIO_HW_OFFLOAD_MAX - 1) 516 enum { 517 TC_MQPRIO_MODE_DCB, 518 TC_MQPRIO_MODE_CHANNEL, 519 __TC_MQPRIO_MODE_MAX 520 }; 521 #define __TC_MQPRIO_MODE_MAX (__TC_MQPRIO_MODE_MAX - 1) 522 enum { 523 TC_MQPRIO_SHAPER_DCB, 524 TC_MQPRIO_SHAPER_BW_RATE, 525 __TC_MQPRIO_SHAPER_MAX 526 }; 527 #define __TC_MQPRIO_SHAPER_MAX (__TC_MQPRIO_SHAPER_MAX - 1) 528 struct tc_mqprio_qopt { 529 __u8 num_tc; 530 __u8 prio_tc_map[TC_QOPT_BITMASK + 1]; 531 __u8 hw; 532 __u16 count[TC_QOPT_MAX_QUEUE]; 533 __u16 offset[TC_QOPT_MAX_QUEUE]; 534 }; 535 #define TC_MQPRIO_F_MODE 0x1 536 #define TC_MQPRIO_F_SHAPER 0x2 537 #define TC_MQPRIO_F_MIN_RATE 0x4 538 #define TC_MQPRIO_F_MAX_RATE 0x8 539 enum { 540 TCA_MQPRIO_UNSPEC, 541 TCA_MQPRIO_MODE, 542 TCA_MQPRIO_SHAPER, 543 TCA_MQPRIO_MIN_RATE64, 544 TCA_MQPRIO_MAX_RATE64, 545 __TCA_MQPRIO_MAX, 546 }; 547 #define TCA_MQPRIO_MAX (__TCA_MQPRIO_MAX - 1) 548 enum { 549 TCA_SFB_UNSPEC, 550 TCA_SFB_PARMS, 551 __TCA_SFB_MAX, 552 }; 553 #define TCA_SFB_MAX (__TCA_SFB_MAX - 1) 554 struct tc_sfb_qopt { 555 __u32 rehash_interval; 556 __u32 warmup_time; 557 __u32 max; 558 __u32 bin_size; 559 __u32 increment; 560 __u32 decrement; 561 __u32 limit; 562 __u32 penalty_rate; 563 __u32 penalty_burst; 564 }; 565 struct tc_sfb_xstats { 566 __u32 earlydrop; 567 __u32 penaltydrop; 568 __u32 bucketdrop; 569 __u32 queuedrop; 570 __u32 childdrop; 571 __u32 marked; 572 __u32 maxqlen; 573 __u32 maxprob; 574 __u32 avgprob; 575 }; 576 #define SFB_MAX_PROB 0xFFFF 577 enum { 578 TCA_QFQ_UNSPEC, 579 TCA_QFQ_WEIGHT, 580 TCA_QFQ_LMAX, 581 __TCA_QFQ_MAX 582 }; 583 #define TCA_QFQ_MAX (__TCA_QFQ_MAX - 1) 584 struct tc_qfq_stats { 585 __u32 weight; 586 __u32 lmax; 587 }; 588 enum { 589 TCA_CODEL_UNSPEC, 590 TCA_CODEL_TARGET, 591 TCA_CODEL_LIMIT, 592 TCA_CODEL_INTERVAL, 593 TCA_CODEL_ECN, 594 TCA_CODEL_CE_THRESHOLD, 595 __TCA_CODEL_MAX 596 }; 597 #define TCA_CODEL_MAX (__TCA_CODEL_MAX - 1) 598 struct tc_codel_xstats { 599 __u32 maxpacket; 600 __u32 count; 601 __u32 lastcount; 602 __u32 ldelay; 603 __s32 drop_next; 604 __u32 drop_overlimit; 605 __u32 ecn_mark; 606 __u32 dropping; 607 __u32 ce_mark; 608 }; 609 enum { 610 TCA_FQ_CODEL_UNSPEC, 611 TCA_FQ_CODEL_TARGET, 612 TCA_FQ_CODEL_LIMIT, 613 TCA_FQ_CODEL_INTERVAL, 614 TCA_FQ_CODEL_ECN, 615 TCA_FQ_CODEL_FLOWS, 616 TCA_FQ_CODEL_QUANTUM, 617 TCA_FQ_CODEL_CE_THRESHOLD, 618 TCA_FQ_CODEL_DROP_BATCH_SIZE, 619 TCA_FQ_CODEL_MEMORY_LIMIT, 620 __TCA_FQ_CODEL_MAX 621 }; 622 #define TCA_FQ_CODEL_MAX (__TCA_FQ_CODEL_MAX - 1) 623 enum { 624 TCA_FQ_CODEL_XSTATS_QDISC, 625 TCA_FQ_CODEL_XSTATS_CLASS, 626 }; 627 struct tc_fq_codel_qd_stats { 628 __u32 maxpacket; 629 __u32 drop_overlimit; 630 __u32 ecn_mark; 631 __u32 new_flow_count; 632 __u32 new_flows_len; 633 __u32 old_flows_len; 634 __u32 ce_mark; 635 __u32 memory_usage; 636 __u32 drop_overmemory; 637 }; 638 struct tc_fq_codel_cl_stats { 639 __s32 deficit; 640 __u32 ldelay; 641 __u32 count; 642 __u32 lastcount; 643 __u32 dropping; 644 __s32 drop_next; 645 }; 646 struct tc_fq_codel_xstats { 647 __u32 type; 648 union { 649 struct tc_fq_codel_qd_stats qdisc_stats; 650 struct tc_fq_codel_cl_stats class_stats; 651 }; 652 }; 653 enum { 654 TCA_FQ_UNSPEC, 655 TCA_FQ_PLIMIT, 656 TCA_FQ_FLOW_PLIMIT, 657 TCA_FQ_QUANTUM, 658 TCA_FQ_INITIAL_QUANTUM, 659 TCA_FQ_RATE_ENABLE, 660 TCA_FQ_FLOW_DEFAULT_RATE, 661 TCA_FQ_FLOW_MAX_RATE, 662 TCA_FQ_BUCKETS_LOG, 663 TCA_FQ_FLOW_REFILL_DELAY, 664 TCA_FQ_ORPHAN_MASK, 665 TCA_FQ_LOW_RATE_THRESHOLD, 666 TCA_FQ_CE_THRESHOLD, 667 __TCA_FQ_MAX 668 }; 669 #define TCA_FQ_MAX (__TCA_FQ_MAX - 1) 670 struct tc_fq_qd_stats { 671 __u64 gc_flows; 672 __u64 highprio_packets; 673 __u64 tcp_retrans; 674 __u64 throttled; 675 __u64 flows_plimit; 676 __u64 pkts_too_long; 677 __u64 allocation_errors; 678 __s64 time_next_delayed_flow; 679 __u32 flows; 680 __u32 inactive_flows; 681 __u32 throttled_flows; 682 __u32 unthrottle_latency_ns; 683 __u64 ce_mark; 684 }; 685 enum { 686 TCA_HHF_UNSPEC, 687 TCA_HHF_BACKLOG_LIMIT, 688 TCA_HHF_QUANTUM, 689 TCA_HHF_HH_FLOWS_LIMIT, 690 TCA_HHF_RESET_TIMEOUT, 691 TCA_HHF_ADMIT_BYTES, 692 TCA_HHF_EVICT_TIMEOUT, 693 TCA_HHF_NON_HH_WEIGHT, 694 __TCA_HHF_MAX 695 }; 696 #define TCA_HHF_MAX (__TCA_HHF_MAX - 1) 697 struct tc_hhf_xstats { 698 __u32 drop_overlimit; 699 __u32 hh_overlimit; 700 __u32 hh_tot_count; 701 __u32 hh_cur_count; 702 }; 703 enum { 704 TCA_PIE_UNSPEC, 705 TCA_PIE_TARGET, 706 TCA_PIE_LIMIT, 707 TCA_PIE_TUPDATE, 708 TCA_PIE_ALPHA, 709 TCA_PIE_BETA, 710 TCA_PIE_ECN, 711 TCA_PIE_BYTEMODE, 712 __TCA_PIE_MAX 713 }; 714 #define TCA_PIE_MAX (__TCA_PIE_MAX - 1) 715 struct tc_pie_xstats { 716 __u32 prob; 717 __u32 delay; 718 __u32 avg_dq_rate; 719 __u32 packets_in; 720 __u32 dropped; 721 __u32 overlimit; 722 __u32 maxq; 723 __u32 ecn_mark; 724 }; 725 struct tc_cbs_qopt { 726 __u8 offload; 727 __u8 _pad[3]; 728 __s32 hicredit; 729 __s32 locredit; 730 __s32 idleslope; 731 __s32 sendslope; 732 }; 733 enum { 734 TCA_CBS_UNSPEC, 735 TCA_CBS_PARMS, 736 __TCA_CBS_MAX, 737 }; 738 #define TCA_CBS_MAX (__TCA_CBS_MAX - 1) 739 struct tc_etf_qopt { 740 __s32 delta; 741 __s32 clockid; 742 __u32 flags; 743 #define TC_ETF_DEADLINE_MODE_ON BIT(0) 744 #define TC_ETF_OFFLOAD_ON BIT(1) 745 }; 746 enum { 747 TCA_ETF_UNSPEC, 748 TCA_ETF_PARMS, 749 __TCA_ETF_MAX, 750 }; 751 #define TCA_ETF_MAX (__TCA_ETF_MAX - 1) 752 enum { 753 TCA_CAKE_UNSPEC, 754 TCA_CAKE_PAD, 755 TCA_CAKE_BASE_RATE64, 756 TCA_CAKE_DIFFSERV_MODE, 757 TCA_CAKE_ATM, 758 TCA_CAKE_FLOW_MODE, 759 TCA_CAKE_OVERHEAD, 760 TCA_CAKE_RTT, 761 TCA_CAKE_TARGET, 762 TCA_CAKE_AUTORATE, 763 TCA_CAKE_MEMORY, 764 TCA_CAKE_NAT, 765 TCA_CAKE_RAW, 766 TCA_CAKE_WASH, 767 TCA_CAKE_MPU, 768 TCA_CAKE_INGRESS, 769 TCA_CAKE_ACK_FILTER, 770 TCA_CAKE_SPLIT_GSO, 771 __TCA_CAKE_MAX 772 }; 773 #define TCA_CAKE_MAX (__TCA_CAKE_MAX - 1) 774 enum { 775 __TCA_CAKE_STATS_INVALID, 776 TCA_CAKE_STATS_PAD, 777 TCA_CAKE_STATS_CAPACITY_ESTIMATE64, 778 TCA_CAKE_STATS_MEMORY_LIMIT, 779 TCA_CAKE_STATS_MEMORY_USED, 780 TCA_CAKE_STATS_AVG_NETOFF, 781 TCA_CAKE_STATS_MIN_NETLEN, 782 TCA_CAKE_STATS_MAX_NETLEN, 783 TCA_CAKE_STATS_MIN_ADJLEN, 784 TCA_CAKE_STATS_MAX_ADJLEN, 785 TCA_CAKE_STATS_TIN_STATS, 786 TCA_CAKE_STATS_DEFICIT, 787 TCA_CAKE_STATS_COBALT_COUNT, 788 TCA_CAKE_STATS_DROPPING, 789 TCA_CAKE_STATS_DROP_NEXT_US, 790 TCA_CAKE_STATS_P_DROP, 791 TCA_CAKE_STATS_BLUE_TIMER_US, 792 __TCA_CAKE_STATS_MAX 793 }; 794 #define TCA_CAKE_STATS_MAX (__TCA_CAKE_STATS_MAX - 1) 795 enum { 796 __TCA_CAKE_TIN_STATS_INVALID, 797 TCA_CAKE_TIN_STATS_PAD, 798 TCA_CAKE_TIN_STATS_SENT_PACKETS, 799 TCA_CAKE_TIN_STATS_SENT_BYTES64, 800 TCA_CAKE_TIN_STATS_DROPPED_PACKETS, 801 TCA_CAKE_TIN_STATS_DROPPED_BYTES64, 802 TCA_CAKE_TIN_STATS_ACKS_DROPPED_PACKETS, 803 TCA_CAKE_TIN_STATS_ACKS_DROPPED_BYTES64, 804 TCA_CAKE_TIN_STATS_ECN_MARKED_PACKETS, 805 TCA_CAKE_TIN_STATS_ECN_MARKED_BYTES64, 806 TCA_CAKE_TIN_STATS_BACKLOG_PACKETS, 807 TCA_CAKE_TIN_STATS_BACKLOG_BYTES, 808 TCA_CAKE_TIN_STATS_THRESHOLD_RATE64, 809 TCA_CAKE_TIN_STATS_TARGET_US, 810 TCA_CAKE_TIN_STATS_INTERVAL_US, 811 TCA_CAKE_TIN_STATS_WAY_INDIRECT_HITS, 812 TCA_CAKE_TIN_STATS_WAY_MISSES, 813 TCA_CAKE_TIN_STATS_WAY_COLLISIONS, 814 TCA_CAKE_TIN_STATS_PEAK_DELAY_US, 815 TCA_CAKE_TIN_STATS_AVG_DELAY_US, 816 TCA_CAKE_TIN_STATS_BASE_DELAY_US, 817 TCA_CAKE_TIN_STATS_SPARSE_FLOWS, 818 TCA_CAKE_TIN_STATS_BULK_FLOWS, 819 TCA_CAKE_TIN_STATS_UNRESPONSIVE_FLOWS, 820 TCA_CAKE_TIN_STATS_MAX_SKBLEN, 821 TCA_CAKE_TIN_STATS_FLOW_QUANTUM, 822 __TCA_CAKE_TIN_STATS_MAX 823 }; 824 #define TCA_CAKE_TIN_STATS_MAX (__TCA_CAKE_TIN_STATS_MAX - 1) 825 #define TC_CAKE_MAX_TINS (8) 826 enum { 827 CAKE_FLOW_NONE = 0, 828 CAKE_FLOW_SRC_IP, 829 CAKE_FLOW_DST_IP, 830 CAKE_FLOW_HOSTS, 831 CAKE_FLOW_FLOWS, 832 CAKE_FLOW_DUAL_SRC, 833 CAKE_FLOW_DUAL_DST, 834 CAKE_FLOW_TRIPLE, 835 CAKE_FLOW_MAX, 836 }; 837 enum { 838 CAKE_DIFFSERV_DIFFSERV3 = 0, 839 CAKE_DIFFSERV_DIFFSERV4, 840 CAKE_DIFFSERV_DIFFSERV8, 841 CAKE_DIFFSERV_BESTEFFORT, 842 CAKE_DIFFSERV_PRECEDENCE, 843 CAKE_DIFFSERV_MAX 844 }; 845 enum { 846 CAKE_ACK_NONE = 0, 847 CAKE_ACK_FILTER, 848 CAKE_ACK_AGGRESSIVE, 849 CAKE_ACK_MAX 850 }; 851 enum { 852 CAKE_ATM_NONE = 0, 853 CAKE_ATM_ATM, 854 CAKE_ATM_PTM, 855 CAKE_ATM_MAX 856 }; 857 enum { 858 TC_TAPRIO_CMD_SET_GATES = 0x00, 859 TC_TAPRIO_CMD_SET_AND_HOLD = 0x01, 860 TC_TAPRIO_CMD_SET_AND_RELEASE = 0x02, 861 }; 862 enum { 863 TCA_TAPRIO_SCHED_ENTRY_UNSPEC, 864 TCA_TAPRIO_SCHED_ENTRY_INDEX, 865 TCA_TAPRIO_SCHED_ENTRY_CMD, 866 TCA_TAPRIO_SCHED_ENTRY_GATE_MASK, 867 TCA_TAPRIO_SCHED_ENTRY_INTERVAL, 868 __TCA_TAPRIO_SCHED_ENTRY_MAX, 869 }; 870 #define TCA_TAPRIO_SCHED_ENTRY_MAX (__TCA_TAPRIO_SCHED_ENTRY_MAX - 1) 871 enum { 872 TCA_TAPRIO_SCHED_UNSPEC, 873 TCA_TAPRIO_SCHED_ENTRY, 874 __TCA_TAPRIO_SCHED_MAX, 875 }; 876 #define TCA_TAPRIO_SCHED_MAX (__TCA_TAPRIO_SCHED_MAX - 1) 877 enum { 878 TCA_TAPRIO_ATTR_UNSPEC, 879 TCA_TAPRIO_ATTR_PRIOMAP, 880 TCA_TAPRIO_ATTR_SCHED_ENTRY_LIST, 881 TCA_TAPRIO_ATTR_SCHED_BASE_TIME, 882 TCA_TAPRIO_ATTR_SCHED_SINGLE_ENTRY, 883 TCA_TAPRIO_ATTR_SCHED_CLOCKID, 884 TCA_TAPRIO_PAD, 885 __TCA_TAPRIO_ATTR_MAX, 886 }; 887 #define TCA_TAPRIO_ATTR_MAX (__TCA_TAPRIO_ATTR_MAX - 1) 888 #endif 889