[PATCH net-next 0/4] Cascaded management xmit for SJA1105 DSA driver

From: Vladimir Oltean
Date: Fri Sep 13 2024 - 09:15:52 EST


This patch set adds support for simple daisy chain topologies in the
sja1105 DSA driver:

+------------+
| eth0 |
| (conduit) |
+------------+
|
| Switch #1
+------------+
| cpu |--- user
| |--- user
| dsa |--- user
+------------+
|
| Switch #2
+------------+
| dsa |--- user
| |--- user
| |--- user
| |--- user
+------------+

Previously we did support multi-switch trees, but not the simple kind.

What is special here is that sending PTP/STP packets out through
switch #2's user ports requires the programming of management routes in
switch #1 as well. Patch 4/4 does that. It requires some extra infra in
the DSA core, handled by patch 3/4. The extra infra requires documenting
an assumption in the dt-bindings: patch 2/4. And patch 1/4 is fixing a
bug I noticed while reviewing the code, but which is pretty hard to
meaningfully trigger, so I am not considering it a 'stable' candidate.

I do not actually have a board with a switch topology as described
above. This patch set was confirmed working by customers on their
boards. I have just regression-tested it on simple, single-switch trees.

Vladimir Oltean (4):
net: dsa: free routing table on probe failure
dt-bindings: net: dsa: the adjacent DSA port must appear first in
"link" property
net: dsa: populate dp->link_dp for cascade ports
net: dsa: sja1105: implement management routes for cascaded switches

.../devicetree/bindings/net/dsa/dsa-port.yaml | 9 +-
drivers/net/dsa/sja1105/sja1105.h | 43 ++-
drivers/net/dsa/sja1105/sja1105_main.c | 253 ++++++++++++++++--
include/net/dsa.h | 9 +-
net/dsa/dsa.c | 43 ++-
5 files changed, 307 insertions(+), 50 deletions(-)

--
2.34.1