OSDN Git Service

net: dsa: sja1105: manage the forwarding domain towards DSA ports
authorVladimir Oltean <vladimir.oltean@nxp.com>
Wed, 4 Aug 2021 13:54:32 +0000 (16:54 +0300)
committerDavid S. Miller <davem@davemloft.net>
Thu, 5 Aug 2021 10:05:48 +0000 (11:05 +0100)
commit3fa212707b8e6026cea6a92faea87f556e0cba9b
tree9695ae7aa50246f5219bc7f43a369cb168aac4f7
parent30a100e60cf36ade9902dc71610f93563d0bd7b0
net: dsa: sja1105: manage the forwarding domain towards DSA ports

Manage DSA links towards other switches, be they host ports or cascade
ports, the same as the CPU port, i.e. allow forwarding and flooding
unconditionally from all user ports.

We send packets as always VLAN-tagged on a DSA port, and we rely on the
cross-chip notifiers from tag_8021q to install the RX VLAN of a switch
port only on the proper remote ports of another switch (the ports that
are in the same bridging domain). So if there is no cross-chip bridging
in the system, the flooded packets will be sent on the DSA ports too,
but they will be dropped by the remote switches due to either
(a) a lack of the RX VLAN in the VLAN table of the ingress DSA port, or
(b) a lack of valid destinations for those packets, due to a lack of the
    RX VLAN on the user ports of the switch

Note that switches which only transport packets in a cross-chip bridge,
but have no user ports of their own as part of that bridge, such as
switch 1 in this case:

                    DSA link                   DSA link
  sw0p0 sw0p1 sw0p2 -------- sw1p0 sw1p2 sw1p3 -------- sw2p0 sw2p2 sw2p3

ip link set sw0p0 master br0
ip link set sw2p3 master br0

will still work, because the tag_8021q cross-chip notifiers keep the RX
VLANs installed on all DSA ports.

Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/dsa/sja1105/sja1105_main.c