From: Luiz Angelo Daros de Luca <luizluca@gmail.com>
To: "Andrew Lunn" <andrew@lunn.ch>,
"Vladimir Oltean" <olteanv@gmail.com>,
"David S. Miller" <davem@davemloft.net>,
"Eric Dumazet" <edumazet@google.com>,
"Jakub Kicinski" <kuba@kernel.org>,
"Paolo Abeni" <pabeni@redhat.com>,
"Simon Horman" <horms@kernel.org>,
"Linus Walleij" <linusw@kernel.org>,
"Alvin Šipraga" <alsi@bang-olufsen.dk>,
"Yury Norov" <yury.norov@gmail.com>,
"Rasmus Villemoes" <linux@rasmusvillemoes.dk>,
"Russell King" <linux@armlinux.org.uk>
Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
Luiz Angelo Daros de Luca <luizluca@gmail.com>,
Abdulkader Alrezej <abdulkader.alrezej@gmail.com>,
Mieczyslaw Nalewaj <namiltd@yahoo.com>,
Yury Norov <ynorov@nvidia.com>
Subject: [net-next PATCH v4 0/8] net: dsa: realtek: rtl8365mb: bridge offloading and VLAN support
Date: Sat, 16 May 2026 00:46:16 -0300 [thread overview]
Message-ID: <20260516-realtek_forward-v4-0-8b6d6a1eefdc@gmail.com> (raw)
This series introduces bridge offloading, FDB management, and VLAN support
for the Realtek rtl8365mb DSA switch driver. The primary goal is to
enable hardware frame forwarding between bridge ports, reducing CPU
overhead and providing advanced features like VLAN and FDB isolation.
Some of these patches are based on original work by Alvin Šipraga,
subsequently adapted and updated for the current net-next state.
---
I attempted to reach Alvin for review of the final version but was
unable to establish contact. Any regressions in this version are my
responsibility.
Changes in v4:
* General:
- fixed comments/kdoc wording identified by Sashiko.
* Patch 1 (err_prt):
- added missing %pe/ERR_PTR conversion identified by Sashiko.
* Patch 2 (dsa macros):
- reorganize port setup initialization, collecting ports in upports_mask
and downports_mask.
- include a fail fast during setup if DSA links ports are detected.
* Patch 4 (table):
- added missing return value check for regmap_bulk_read in table access
(spotted by Sashiko).
* Patch 5 (vlan):
- added undo steps to rtl8365mb_port_vlan_filtering (noticed by
Sashiko).
- removed residual double max packet configuation (noticed by Sashiko).
- added meteridx and policing_en to rtl8365mb_vlan_mc_read, although
always written as zero in rtl8365mb_vlan_mc_write() (noticed by
Sashiko).
- explicitly comment that VlanMC[0] uses EVID==0 (Sashiko was worried).
- always undo previous PVID setting before applying a new one. It might
exhaust VlanMC entries if the user keeps changing PVID without removing
the port from the previous PVID VLAN (bug detected by Sashiko).
- Fixed a bug where a missing VLAN MC entry during PVID assignment would
return success instead of an error (reportd by Sashiko).
* Patch 6 (bridge join/leave):
- Added error unwinding path (undo isolation and EFID) in
rtl83xx_port_bridge_join (noticed by Sashiko).
* Patch 7 (FDB support):
- added RTL8365MB_L2_ENTRY_SIZE macro.
- fixed RTL8365MB_L2_FLUSH_CTRL2_TYPE_BOTH definition (noticed by
Sashiko).
- removed the union in rtl8365mb_l2_uc_key. Each field is independent
now (bug detected by by Sashiko).
- fixed mc->member calculation. Now it uses bitfield to rebuild the
value (bug detected by Sashiko).
- return mdb_del without errors if entry is missing.
- improve debug messages for l2 operations.
- added comment about ds->assisted_learning_on_cpu_port and
fdb_isolation in the commit message (asked by Sashiko)
- renamed some _MASK macros to _MSK to reduce the name length.
** rtl83xx_port_fdb_dump fixes:
- initialize entry as null (noticed by Sashiko)
- check return of cb() (bugfix reported by Sashiko)
- fix address overflow (noticed by Sashiko)
- Link to v3: https://patch.msgid.link/20260506-realtek_forward-v3-0-1d87c5f85a3b@gmail.com
Changes in v3:
- Fixed kernel-doc warnings
- Removed unnecessary defensive checks
- Link to v2: https://patch.msgid.link/20260503-realtek_forward-v2-0-d064e220b391@gmail.com
Changes in v2:
- added patch to use ERR_PTR()
- dropped bitfield patch. Use FIELD_PREP instead. Suggested by Yury
Norov
- tag_rtl8_4 patches were submitted on its own series (already accepted)
- dropped rtl8365mb_vlan_mc_port_{add,del}(). rtl8365mb_vlan_mc_port_set
is now called directly from PVID methods.
- reordered methods in rtl8365mb_vlan.c
- use dsa_switch_for_each_user_port() instead of simple for in bridge
port join/leave
- PVID check now uses dsa_switch_for_each_available_port instead of
dsa_switch_for_each_port
- set EFID of user ports to 0 at setup(), although it is the expected
state after reset
- STP patch was dropped and replaced by a more extensive one that
disables all ports (including unused ones) before setting CPU and user
ports. It also extended the CPU port isolation to include all user
ports.
- refactored bridge, FDB, and MDB port operations into the common
rtl83xx module, introducing new realtek_ops callbacks to abstract the
hardware access
- Collected Reviewed-by and Suggested-by tags
- Link to v1:
https://patch.msgid.link/20260331-realtek_forward-v1-0-44fb63033b7e@gmail.com
To: Linus Walleij <linusw@kernel.org>
To: Alvin Šipraga <alsi@bang-olufsen.dk>
To: Andrew Lunn <andrew@lunn.ch>
To: Vladimir Oltean <olteanv@gmail.com>
To: "David S. Miller" <davem@davemloft.net>
To: Eric Dumazet <edumazet@google.com>
To: Jakub Kicinski <kuba@kernel.org>
To: Paolo Abeni <pabeni@redhat.com>
To: Russell King <linux@armlinux.org.uk>
Cc: netdev@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
---
Alvin Šipraga (6):
net: dsa: realtek: rtl8365mb: prepare for multiple source files
net: dsa: realtek: rtl8365mb: add table lookup interface
net: dsa: realtek: rtl8365mb: add VLAN support
net: dsa: realtek: rtl8365mb: add port_bridge_{join,leave}
net: dsa: realtek: rtl8365mb: add FDB support
net: dsa: realtek: rtl8365mb: add bridge port flags
Luiz Angelo Daros de Luca (2):
net: dsa: realtek: rtl8365mb: use ERR_PTR
net: dsa: realtek: rtl8365mb: use dsa helpers for port iteration
drivers/net/dsa/realtek/Makefile | 4 +
drivers/net/dsa/realtek/realtek.h | 42 ++
drivers/net/dsa/realtek/rtl8365mb_l2.c | 554 ++++++++++++++
drivers/net/dsa/realtek/rtl8365mb_l2.h | 32 +
.../dsa/realtek/{rtl8365mb.c => rtl8365mb_main.c} | 589 +++++++++++++--
drivers/net/dsa/realtek/rtl8365mb_table.c | 216 ++++++
drivers/net/dsa/realtek/rtl8365mb_table.h | 132 ++++
drivers/net/dsa/realtek/rtl8365mb_vlan.c | 813 +++++++++++++++++++++
drivers/net/dsa/realtek/rtl8365mb_vlan.h | 25 +
drivers/net/dsa/realtek/rtl83xx.c | 536 ++++++++++++++
drivers/net/dsa/realtek/rtl83xx.h | 27 +
11 files changed, 2900 insertions(+), 70 deletions(-)
---
base-commit: edf4bee4215a173c0534d1851d7523d827149f9e
change-id: 20260323-realtek_forward-1bac3a77c664
Best regards,
--
Luiz Angelo Daros de Luca <luizluca@gmail.com>
next reply other threads:[~2026-05-16 3:47 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-16 3:46 Luiz Angelo Daros de Luca [this message]
2026-05-16 3:46 ` [net-next PATCH v4 1/8] net: dsa: realtek: rtl8365mb: use ERR_PTR Luiz Angelo Daros de Luca
2026-05-16 3:46 ` [net-next PATCH v4 2/8] net: dsa: realtek: rtl8365mb: use dsa helpers for port iteration Luiz Angelo Daros de Luca
2026-05-16 3:46 ` [net-next PATCH v4 3/8] net: dsa: realtek: rtl8365mb: prepare for multiple source files Luiz Angelo Daros de Luca
2026-05-16 3:46 ` [net-next PATCH v4 4/8] net: dsa: realtek: rtl8365mb: add table lookup interface Luiz Angelo Daros de Luca
2026-05-16 3:46 ` [net-next PATCH v4 5/8] net: dsa: realtek: rtl8365mb: add VLAN support Luiz Angelo Daros de Luca
2026-05-16 3:46 ` [net-next PATCH v4 6/8] net: dsa: realtek: rtl8365mb: add port_bridge_{join,leave} Luiz Angelo Daros de Luca
2026-05-16 3:46 ` [net-next PATCH v4 7/8] net: dsa: realtek: rtl8365mb: add FDB support Luiz Angelo Daros de Luca
2026-05-16 5:48 ` Mieczyslaw Nalewaj
2026-05-16 12:47 ` Luiz Angelo Daros de Luca
2026-05-16 3:46 ` [net-next PATCH v4 8/8] net: dsa: realtek: rtl8365mb: add bridge port flags Luiz Angelo Daros de Luca
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=20260516-realtek_forward-v4-0-8b6d6a1eefdc@gmail.com \
--to=luizluca@gmail.com \
--cc=abdulkader.alrezej@gmail.com \
--cc=alsi@bang-olufsen.dk \
--cc=andrew@lunn.ch \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=horms@kernel.org \
--cc=kuba@kernel.org \
--cc=linusw@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@armlinux.org.uk \
--cc=linux@rasmusvillemoes.dk \
--cc=namiltd@yahoo.com \
--cc=netdev@vger.kernel.org \
--cc=olteanv@gmail.com \
--cc=pabeni@redhat.com \
--cc=ynorov@nvidia.com \
--cc=yury.norov@gmail.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox