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