All of lore.kernel.org
 help / color / mirror / Atom feed
From: Luke Howard <lukeh@padl.com>
To: netdev@vger.kernel.org
Cc: Luke Howard <lukeh@padl.com>, Kieran Tyrrell <kieran@sienda.com>,
	Max Hunter <max@huntershome.org>,
	Cedric Jehasse <cedric.jehasse@luminex.be>
Subject: [PATCH net-next 0/6] net: dsa: mv88e6xxx: add MQPRIO/CBS offload
Date: Wed, 27 May 2026 10:42:46 +1000	[thread overview]
Message-ID: <cover.1779841530.git.lukeh@padl.com> (raw)

This series adds hardware offload of 802.1Qav (Credit Based Shaper) for
conforming Marvell switches. It also introduces a new bridge MDB flag,
MDB_FLAGS_STREAM_RESERVED, that userspace can set on RTM_NEWMDB to mark a
multicast destination as belonging to a reserved stream; the flag is
propagated through switchdev to hardware drivers that can enforce
admission of AVB / SR priority traffic only to flagged destinations.

The patches were originally proposed as an RFC in September 2025 [1], but have
been updated to absorb most of Cedric Jehasse's recent CBS changes [2] (with
the exception of support for more than two shaped queues). The principal
application is hardware-offloaded switching of AVB/TSN traffic rather than
host-initiated traffic.

In addition to programming the per-queue shaper, the following related
registers are configured:

* global isochronous queue pointer threshold
* strict-priority queue scheduling while CBS is active on a port
* in Enhanced/Secure AVB mode, hardware drops frames with AVB priorities
  whose destination MAC has not been added to the MDB with the new
  MDB_FLAGS_STREAM_RESERVED flag

A more detailed overview is given in drivers/net/dsa/mv88e6xxx/avb.h.

Support for MDB_FLAGS_STREAM_RESERVED in the software bridge will be submitted
as a separate patch series.

[1] https://lore.kernel.org/netdev/20250927070724.734933-1-lukeh@padl.com/
[2] https://lore.kernel.org/netdev/20260522-net-next-mv88e6xxx-cbs-v1-2-c87a8e6bcc0c@luminex.be/

Luke Howard (6):
  net: bridge: mdb: add MDB_FLAGS_STREAM_RESERVED flag
  net: dsa: mv88e6xxx: add num_tx_queues to chip info structure
  net: dsa: mv88e6xxx: add MV88E6XXX_G1_ATU_CTL_MAC_AVB setter
  net: dsa: mv88e6xxx: MQPRIO support
  net: dsa: mv88e6xxx: CBS support
  dt-bindings: net: dsa: mv88e6xxx: add mv88e6xxx-avb-mode property

 .../bindings/net/dsa/marvell,mv88e6xxx.yaml   |  26 +
 drivers/net/dsa/mv88e6xxx/Makefile            |   3 +-
 drivers/net/dsa/mv88e6xxx/avb.c               | 633 ++++++++++++++++++
 drivers/net/dsa/mv88e6xxx/avb.h               | 228 +++++++
 drivers/net/dsa/mv88e6xxx/chip.c              | 372 +++++++++-
 drivers/net/dsa/mv88e6xxx/chip.h              | 101 +++
 drivers/net/dsa/mv88e6xxx/global1.c           |   9 +-
 drivers/net/dsa/mv88e6xxx/global1.h           |  47 +-
 drivers/net/dsa/mv88e6xxx/global1_atu.c       |  17 +
 drivers/net/dsa/mv88e6xxx/global2.h           |  14 +-
 drivers/net/dsa/mv88e6xxx/global2_avb.c       | 205 +++++-
 drivers/net/dsa/mv88e6xxx/port.c              |  54 ++
 drivers/net/dsa/mv88e6xxx/port.h              |  22 +
 include/linux/platform_data/mv88e6xxx.h       |   1 +
 include/net/switchdev.h                       |   4 +
 include/uapi/linux/if_bridge.h                |   2 +
 net/bridge/br_mdb.c                           |  12 +
 net/bridge/br_private.h                       |   2 +
 net/bridge/br_switchdev.c                     |  17 +-
 19 files changed, 1744 insertions(+), 25 deletions(-)
 create mode 100644 drivers/net/dsa/mv88e6xxx/avb.c
 create mode 100644 drivers/net/dsa/mv88e6xxx/avb.h

-- 
2.43.0


             reply	other threads:[~2026-05-27  0:43 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-05-27  0:42 Luke Howard [this message]
2026-05-27  0:42 ` [PATCH net-next 1/6] net: bridge: mdb: add MDB_FLAGS_STREAM_RESERVED flag Luke Howard
2026-05-27  7:05   ` Nikolay Aleksandrov
2026-05-27  7:15     ` Luke Howard
2026-05-27  0:42 ` [PATCH net-next 2/6] net: dsa: mv88e6xxx: add num_tx_queues to chip info structure Luke Howard
2026-05-27  0:42 ` [PATCH net-next 3/6] net: dsa: mv88e6xxx: add MV88E6XXX_G1_ATU_CTL_MAC_AVB setter Luke Howard
2026-05-27  0:42 ` [PATCH net-next 4/6] net: dsa: mv88e6xxx: MQPRIO support Luke Howard
2026-05-27  0:42 ` [PATCH net-next 5/6] net: dsa: mv88e6xxx: CBS support Luke Howard
2026-05-27  9:28   ` Cedric Jehasse
2026-05-27 11:04     ` Luke Howard
2026-05-27  0:42 ` [PATCH net-next 6/6] dt-bindings: net: dsa: mv88e6xxx: add mv88e6xxx-avb-mode property Luke Howard
2026-05-27 15:04   ` Conor Dooley
2026-05-30  0:49   ` sashiko-bot
2026-05-30  2:01     ` Luke Howard

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=cover.1779841530.git.lukeh@padl.com \
    --to=lukeh@padl.com \
    --cc=cedric.jehasse@luminex.be \
    --cc=kieran@sienda.com \
    --cc=max@huntershome.org \
    --cc=netdev@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.