File tree 4 files changed +690
-0
lines changed 4 files changed +690
-0
lines changed Original file line number Diff line number Diff line change @@ -681,4 +681,58 @@ struct tc_codel_xstats {
681
681
__u32 dropping ; /* are we in dropping state ? */
682
682
};
683
683
684
+ /* FQ_CODEL */
685
+
686
+ enum {
687
+ TCA_FQ_CODEL_UNSPEC ,
688
+ TCA_FQ_CODEL_TARGET ,
689
+ TCA_FQ_CODEL_LIMIT ,
690
+ TCA_FQ_CODEL_INTERVAL ,
691
+ TCA_FQ_CODEL_ECN ,
692
+ TCA_FQ_CODEL_FLOWS ,
693
+ TCA_FQ_CODEL_QUANTUM ,
694
+ __TCA_FQ_CODEL_MAX
695
+ };
696
+
697
+ #define TCA_FQ_CODEL_MAX (__TCA_FQ_CODEL_MAX - 1)
698
+
699
+ enum {
700
+ TCA_FQ_CODEL_XSTATS_QDISC ,
701
+ TCA_FQ_CODEL_XSTATS_CLASS ,
702
+ };
703
+
704
+ struct tc_fq_codel_qd_stats {
705
+ __u32 maxpacket ; /* largest packet we've seen so far */
706
+ __u32 drop_overlimit ; /* number of time max qdisc
707
+ * packet limit was hit
708
+ */
709
+ __u32 ecn_mark ; /* number of packets we ECN marked
710
+ * instead of being dropped
711
+ */
712
+ __u32 new_flow_count ; /* number of time packets
713
+ * created a 'new flow'
714
+ */
715
+ __u32 new_flows_len ; /* count of flows in new list */
716
+ __u32 old_flows_len ; /* count of flows in old list */
717
+ };
718
+
719
+ struct tc_fq_codel_cl_stats {
720
+ __s32 deficit ;
721
+ __u32 ldelay ; /* in-queue delay seen by most recently
722
+ * dequeued packet
723
+ */
724
+ __u32 count ;
725
+ __u32 lastcount ;
726
+ __u32 dropping ;
727
+ __s32 drop_next ;
728
+ };
729
+
730
+ struct tc_fq_codel_xstats {
731
+ __u32 type ;
732
+ union {
733
+ struct tc_fq_codel_qd_stats qdisc_stats ;
734
+ struct tc_fq_codel_cl_stats class_stats ;
735
+ };
736
+ };
737
+
684
738
#endif
Original file line number Diff line number Diff line change @@ -261,6 +261,17 @@ config NET_SCH_CODEL
261
261
262
262
If unsure, say N.
263
263
264
+ config NET_SCH_FQ_CODEL
265
+ tristate "Fair Queue Controlled Delay AQM (FQ_CODEL)"
266
+ help
267
+ Say Y here if you want to use the FQ Controlled Delay (FQ_CODEL)
268
+ packet scheduling algorithm.
269
+
270
+ To compile this driver as a module, choose M here: the module
271
+ will be called sch_fq_codel.
272
+
273
+ If unsure, say N.
274
+
264
275
config NET_SCH_INGRESS
265
276
tristate "Ingress Qdisc"
266
277
depends on NET_CLS_ACT
Original file line number Diff line number Diff line change @@ -38,6 +38,7 @@ obj-$(CONFIG_NET_SCH_MQPRIO) += sch_mqprio.o
38
38
obj-$(CONFIG_NET_SCH_CHOKE) += sch_choke.o
39
39
obj-$(CONFIG_NET_SCH_QFQ) += sch_qfq.o
40
40
obj-$(CONFIG_NET_SCH_CODEL) += sch_codel.o
41
+ obj-$(CONFIG_NET_SCH_FQ_CODEL) += sch_fq_codel.o
41
42
42
43
obj-$(CONFIG_NET_CLS_U32) += cls_u32.o
43
44
obj-$(CONFIG_NET_CLS_ROUTE4) += cls_route.o
You can’t perform that action at this time.
0 commit comments