aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/pkt_sched.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/pkt_sched.h')
-rw-r--r--include/linux/pkt_sched.h39
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
527enum {
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 */
538struct 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
550struct 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