[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20220919120215.3815696-1-daniel.machon@microchip.com>
Date: Mon, 19 Sep 2022 14:02:10 +0200
From: Daniel Machon <daniel.machon@...rochip.com>
To: <netdev@...r.kernel.org>
CC: <davem@...emloft.net>, <edumazet@...gle.com>, <kuba@...nel.org>,
<pabeni@...hat.com>, <lars.povlsen@...rochip.com>,
<Steen.Hegelund@...rochip.com>, <daniel.machon@...rochip.com>,
<UNGLinuxDriver@...rochip.com>, <horatiu.vultur@...rochip.com>,
<casper.casan@...il.com>, <rmk+kernel@...linux.org.uk>,
<linux-kernel@...r.kernel.org>,
<linux-arm-kernel@...ts.infradead.org>
Subject: [PATCH net-next 0/5] Add QoS offload support for sparx5
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.
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
Powered by blists - more mailing lists