mbox series

[net-next,0/5] Add QoS offload support for sparx5

Message ID 20220919120215.3815696-1-daniel.machon@microchip.com (mailing list archive)
Headers show
Series Add QoS offload support for sparx5 | expand

Message

Daniel Machon Sept. 19, 2022, 12:02 p.m. UTC
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