File tree Expand file tree Collapse file tree 4 files changed +690
-0
lines changed Expand file tree Collapse file tree 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 {
681681 __u32 dropping ; /* are we in dropping state ? */
682682};
683683
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+
684738#endif
Original file line number Diff line number Diff line change @@ -261,6 +261,17 @@ config NET_SCH_CODEL
261261
262262 If unsure, say N.
263263
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+
264275config NET_SCH_INGRESS
265276 tristate "Ingress Qdisc"
266277 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
3838obj-$(CONFIG_NET_SCH_CHOKE) += sch_choke.o
3939obj-$(CONFIG_NET_SCH_QFQ) += sch_qfq.o
4040obj-$(CONFIG_NET_SCH_CODEL) += sch_codel.o
41+ obj-$(CONFIG_NET_SCH_FQ_CODEL) += sch_fq_codel.o
4142
4243obj-$(CONFIG_NET_CLS_U32) += cls_u32.o
4344obj-$(CONFIG_NET_CLS_ROUTE4) += cls_route.o
You can’t perform that action at this time.
0 commit comments