Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0545a303 authored by stephen hemminger's avatar stephen hemminger Committed by David S. Miller
Browse files

pkt_sched: QFQ - quick fair queue scheduler



This is an implementation of the Quick Fair Queue scheduler developed
by Fabio Checconi. The same algorithm is already implemented in ipfw
in FreeBSD. Fabio had an earlier version developed on Linux, I just
cleaned it up.  Thanks to Eric Dumazet for testing this under load.

Signed-off-by: default avatarStephen Hemminger <shemminger@vyatta.com>
Signed-off-by: default avatarEric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent fc3e5941
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -588,4 +588,19 @@ struct tc_sfb_xstats {

#define SFB_MAX_PROB 0xFFFF

/* QFQ */
enum {
	TCA_QFQ_UNSPEC,
	TCA_QFQ_WEIGHT,
	TCA_QFQ_LMAX,
	__TCA_QFQ_MAX
};

#define TCA_QFQ_MAX	(__TCA_QFQ_MAX - 1)

struct tc_qfq_stats {
	__u32 weight;
	__u32 lmax;
};

#endif
+11 −0
Original line number Diff line number Diff line
@@ -239,6 +239,17 @@ config NET_SCH_CHOKE
	  To compile this code as a module, choose M here: the
	  module will be called sch_choke.

config NET_SCH_QFQ
	tristate "Quick Fair Queueing scheduler (QFQ)"
	help
	  Say Y here if you want to use the Quick Fair Queueing Scheduler (QFQ)
	  packet scheduling algorithm.

	  To compile this driver as a module, choose M here: the module
	  will be called sch_qfq.

	  If unsure, say N.

config NET_SCH_INGRESS
	tristate "Ingress Qdisc"
	depends on NET_CLS_ACT
+1 −0
Original line number Diff line number Diff line
@@ -35,6 +35,7 @@ obj-$(CONFIG_NET_SCH_NETEM) += sch_netem.o
obj-$(CONFIG_NET_SCH_DRR)	+= sch_drr.o
obj-$(CONFIG_NET_SCH_MQPRIO)	+= sch_mqprio.o
obj-$(CONFIG_NET_SCH_CHOKE)	+= sch_choke.o
obj-$(CONFIG_NET_SCH_QFQ)	+= sch_qfq.o

obj-$(CONFIG_NET_CLS_U32)	+= cls_u32.o
obj-$(CONFIG_NET_CLS_ROUTE4)	+= cls_route.o

net/sched/sch_qfq.c

0 → 100644
+1137 −0

File added.

Preview size limit exceeded, changes collapsed.