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