[PATCH net-next v2 0/5] Add QoS offload support for sparx5
Daniel Machon
daniel.machon at microchip.com
Tue Sep 20 03:14:27 PDT 2022
This patch series adds support for offloading QoS features with the tc
command suite, to the sparx5 switch. The new offloadable QoS features
introduced in this patch series are:
- tc-mqprio for mapping traffic class to hardware queue. Queues are by
default mapped 1:1 in hardware, as such the mqprio qdisc is used as
an attachment point for qdiscs tbf and ets.
$ tc qdisc add dev eth0 root handle 1:0 mqprio
- tc-tbf for setting up shaping on scheduler elements of the HSCH
(Hierarchical Scheduler) block. Shaping on either port output or
queue output is supported.
Port shaper: $ tc qdisc add dev eth0 root handle 1:0 tbf rate \
10000000 burst 8192 limit 1m
Queue shaper: $ tc qdisc replace dev eth0 parent 1:5 handle 2:0 tbf \
rate 10000000 burst 8192 limit 1m
- tc-ets for setting up strict and or bandwidth-sharing bands on one
through eight priority queues.
Configure a mix of strict and bw-sharing bands:
$ tc qdisc add dev eth0 handle 1: root ets bands 8 strict 5 \
quanta 1000 1000 1000 priomap 7 6 5 4 3 2 1 0
Patch #1 Sets up the tc hook.
Patch #2 Adds support for offloading the tc-mqprio qdisc.
Patch #3 Adds support for offloading the tc-tbf qdisc.
Patch #4 Adds support for offloading the tc-ets qdisc.
Patch #5 Updates the maintainers of the sparx5 driver.
========================================================================
v1:
https://lore.kernel.org/netdev/20220919120215.3815696-1-daniel.machon@microchip.com/
v1 -> v2:
- Fix compiler warning in patch #2
- Fix comment style in patch #4
Daniel Machon (5):
net: microchip: sparx5: add tc setup hook
net: microchip: sparx5: add support for offloading mqprio qdisc
net: microchip: sparx5: add support for offloading tbf qdisc
net: microchip: sparx5: add support for offloading ets qdisc
maintainers: update MAINTAINERS file.
MAINTAINERS | 1 +
.../net/ethernet/microchip/sparx5/Makefile | 2 +-
.../ethernet/microchip/sparx5/sparx5_main.c | 7 +
.../microchip/sparx5/sparx5_main_regs.h | 165 ++++++
.../ethernet/microchip/sparx5/sparx5_netdev.c | 8 +-
.../ethernet/microchip/sparx5/sparx5_qos.c | 514 ++++++++++++++++++
.../ethernet/microchip/sparx5/sparx5_qos.h | 82 +++
.../net/ethernet/microchip/sparx5/sparx5_tc.c | 125 +++++
.../net/ethernet/microchip/sparx5/sparx5_tc.h | 15 +
9 files changed, 917 insertions(+), 2 deletions(-)
create mode 100644 drivers/net/ethernet/microchip/sparx5/sparx5_qos.c
create mode 100644 drivers/net/ethernet/microchip/sparx5/sparx5_qos.h
create mode 100644 drivers/net/ethernet/microchip/sparx5/sparx5_tc.c
create mode 100644 drivers/net/ethernet/microchip/sparx5/sparx5_tc.h
--
2.34.1
More information about the linux-arm-kernel
mailing list