You've already forked linux-rockchip
mirror of
https://github.com/armbian/linux-rockchip.git
synced 2026-01-06 11:08:10 -08:00
net: sch_ets: Add a new Qdisc
Introduces a new Qdisc, which is based on 802.1Q-2014 wording. It is PRIO-like in how it is configured, meaning one needs to specify how many bands there are, how many are strict and how many are dwrr, quanta for the latter, and priomap. The new Qdisc operates like the PRIO / DRR combo would when configured as per the standard. The strict classes, if any, are tried for traffic first. When there's no traffic in any of the strict queues, the ETS ones (if any) are treated in the same way as in DRR. Signed-off-by: Petr Machata <petrm@mellanox.com> Acked-by: Jiri Pirko <jiri@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
9cf9b925d5
commit
dcc68b4d80
@@ -1187,4 +1187,21 @@ enum {
|
||||
|
||||
#define TCA_TAPRIO_ATTR_MAX (__TCA_TAPRIO_ATTR_MAX - 1)
|
||||
|
||||
/* ETS */
|
||||
|
||||
#define TCQ_ETS_MAX_BANDS 16
|
||||
|
||||
enum {
|
||||
TCA_ETS_UNSPEC,
|
||||
TCA_ETS_NBANDS, /* u8 */
|
||||
TCA_ETS_NSTRICT, /* u8 */
|
||||
TCA_ETS_QUANTA, /* nested TCA_ETS_QUANTA_BAND */
|
||||
TCA_ETS_QUANTA_BAND, /* u32 */
|
||||
TCA_ETS_PRIOMAP, /* nested TCA_ETS_PRIOMAP_BAND */
|
||||
TCA_ETS_PRIOMAP_BAND, /* u8 */
|
||||
__TCA_ETS_MAX,
|
||||
};
|
||||
|
||||
#define TCA_ETS_MAX (__TCA_ETS_MAX - 1)
|
||||
|
||||
#endif
|
||||
|
||||
@@ -409,6 +409,23 @@ config NET_SCH_PLUG
|
||||
To compile this code as a module, choose M here: the
|
||||
module will be called sch_plug.
|
||||
|
||||
config NET_SCH_ETS
|
||||
tristate "Enhanced transmission selection scheduler (ETS)"
|
||||
help
|
||||
The Enhanced Transmission Selection scheduler is a classful
|
||||
queuing discipline that merges functionality of PRIO and DRR
|
||||
qdiscs in one scheduler. ETS makes it easy to configure a set of
|
||||
strict and bandwidth-sharing bands to implement the transmission
|
||||
selection described in 802.1Qaz.
|
||||
|
||||
Say Y here if you want to use the ETS packet scheduling
|
||||
algorithm.
|
||||
|
||||
To compile this driver as a module, choose M here: the module
|
||||
will be called sch_ets.
|
||||
|
||||
If unsure, say N.
|
||||
|
||||
menuconfig NET_SCH_DEFAULT
|
||||
bool "Allow override default queue discipline"
|
||||
---help---
|
||||
|
||||
@@ -48,6 +48,7 @@ obj-$(CONFIG_NET_SCH_ATM) += sch_atm.o
|
||||
obj-$(CONFIG_NET_SCH_NETEM) += sch_netem.o
|
||||
obj-$(CONFIG_NET_SCH_DRR) += sch_drr.o
|
||||
obj-$(CONFIG_NET_SCH_PLUG) += sch_plug.o
|
||||
obj-$(CONFIG_NET_SCH_ETS) += sch_ets.o
|
||||
obj-$(CONFIG_NET_SCH_MQPRIO) += sch_mqprio.o
|
||||
obj-$(CONFIG_NET_SCH_SKBPRIO) += sch_skbprio.o
|
||||
obj-$(CONFIG_NET_SCH_CHOKE) += sch_choke.o
|
||||
|
||||
733
net/sched/sch_ets.c
Normal file
733
net/sched/sch_ets.c
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user