[PATCH v2 0/4] net: renesas: rswitch: R-Car S4 add HW offloading for layer 2 switching
From: Michael Dege
Date: Tue Jul 08 2025 - 05:28:09 EST
Hello!
The current R-Car S4 rswitch driver only supports port based fowarding.
This patch set adds HW offloading for L2 switching/bridgeing. The driver
hooks into switchdev.
1. Rename the base driver file to keep the driver name (rswitch.ko)
2. Add setting of default MAC ageing time in hardware.
3. Add the L2 driver extension in a separate file. The HW offloading
is automatically configured when a port is added to the bridge device.
Usage example:
ip link add name br0 type bridge
ip link set dev tsn0 master br0
ip link set dev tsn1 master br0
ip link set dev br0 up
ip link set dev tsn0 up
ip link set dev tsn1 up
Layer 2 traffic is now fowarded by HW from port TSN0 to port TSN1.
4. Provides the functionality to set the MAC table ageing time in the
Rswitch.
Usage example:
ip link change dev br0 type bridge ageing 100
Changes in v2:
- Pulled default ageing setting into separate patch.
- Changed logging priority from info to dbg.
- Updated usage examples.
- Fixed passing of ageing parameter. Parameter is already in seconds
no need to convert. Parameter checking improved.
- Updated commit message of [3/4] to point out that the switch hardware
only supports the offloading of one bridge device.
- Link to v1: https://lore.kernel.org/r/20250704-add_l2_switching-v1-0-ff882aacb258@xxxxxxxxxxx
Thanks,
Michael
Signed-off-by: Michael Dege <michael.dege@xxxxxxxxxxx>
Signed-off-by: Nikita Yushchenko <nikita.yoush@xxxxxxxxxxxxxxxxxx>
---
To: Niklas Söderlund <niklas.soderlund@xxxxxxxxxxxx>
To: Paul Barker <paul@xxxxxxxxxxx>
To: Yoshihiro Shimoda <yoshihiro.shimoda.uh@xxxxxxxxxxx>
To: Andrew Lunn <andrew+netdev@xxxxxxx>
To: David S. Miller <davem@xxxxxxxxxxxxx>
To: Eric Dumazet <edumazet@xxxxxxxxxx>
To: Jakub Kicinski <kuba@xxxxxxxxxx>
To: Paolo Abeni <pabeni@xxxxxxxxxx>
Cc: netdev@xxxxxxxxxxxxxxx
Cc: linux-renesas-soc@xxxxxxxxxxxxxxx
Cc: linux-kernel@xxxxxxxxxxxxxxx
---
Michael Dege (4):
net: renesas: rswitch: rename rswitch.c to rswitch_main.c
net: renesas: rswitch: configure default ageing time
net: renesas: rswitch: add offloading for L2 switching
net: renesas: rswitch: add modifiable ageing time
drivers/net/ethernet/renesas/Makefile | 1 +
drivers/net/ethernet/renesas/rswitch.h | 42 ++-
drivers/net/ethernet/renesas/rswitch_l2.c | 339 +++++++++++++++++++++
drivers/net/ethernet/renesas/rswitch_l2.h | 15 +
.../ethernet/renesas/{rswitch.c => rswitch_main.c} | 88 +++++-
5 files changed, 479 insertions(+), 6 deletions(-)
---
base-commit: 19272b37aa4f83ca52bdf9c16d5d81bdd1354494
change-id: 20250616-add_l2_switching-345117105d0d
Best regards,
--
Michael Dege <michael.dege@xxxxxxxxxxx>