diff options
Diffstat (limited to 'include/linux/pkt_sched.h')
-rw-r--r-- | include/linux/pkt_sched.h | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/include/linux/pkt_sched.h b/include/linux/pkt_sched.h index d4bb6f58c90c..5afee2b238bd 100644 --- a/include/linux/pkt_sched.h +++ b/include/linux/pkt_sched.h | |||
@@ -522,4 +522,43 @@ struct tc_mqprio_qopt { | |||
522 | __u16 offset[TC_QOPT_MAX_QUEUE]; | 522 | __u16 offset[TC_QOPT_MAX_QUEUE]; |
523 | }; | 523 | }; |
524 | 524 | ||
525 | /* SFB */ | ||
526 | |||
527 | enum { | ||
528 | TCA_SFB_UNSPEC, | ||
529 | TCA_SFB_PARMS, | ||
530 | __TCA_SFB_MAX, | ||
531 | }; | ||
532 | |||
533 | #define TCA_SFB_MAX (__TCA_SFB_MAX - 1) | ||
534 | |||
535 | /* | ||
536 | * Note: increment, decrement are Q0.16 fixed-point values. | ||
537 | */ | ||
538 | struct tc_sfb_qopt { | ||
539 | __u32 rehash_interval; /* delay between hash move, in ms */ | ||
540 | __u32 warmup_time; /* double buffering warmup time in ms (warmup_time < rehash_interval) */ | ||
541 | __u32 max; /* max len of qlen_min */ | ||
542 | __u32 bin_size; /* maximum queue length per bin */ | ||
543 | __u32 increment; /* probability increment, (d1 in Blue) */ | ||
544 | __u32 decrement; /* probability decrement, (d2 in Blue) */ | ||
545 | __u32 limit; /* max SFB queue length */ | ||
546 | __u32 penalty_rate; /* inelastic flows are rate limited to 'rate' pps */ | ||
547 | __u32 penalty_burst; | ||
548 | }; | ||
549 | |||
550 | struct tc_sfb_xstats { | ||
551 | __u32 earlydrop; | ||
552 | __u32 penaltydrop; | ||
553 | __u32 bucketdrop; | ||
554 | __u32 queuedrop; | ||
555 | __u32 childdrop; /* drops in child qdisc */ | ||
556 | __u32 marked; | ||
557 | __u32 maxqlen; | ||
558 | __u32 maxprob; | ||
559 | __u32 avgprob; | ||
560 | }; | ||
561 | |||
562 | #define SFB_MAX_PROB 0xFFFF | ||
563 | |||
525 | #endif | 564 | #endif |