• Vladimir Oltean's avatar
    net: dsa: sja1105: configure the cascade ports based on topology · 30a100e6
    Vladimir Oltean authored
    The sja1105 switch family has a feature called "cascade ports" which can
    be used in topologies where multiple SJA1105/SJA1110 switches are daisy
    chained. Upstream switches set this bit for the DSA link towards the
    downstream switches. This is used when the upstream switch receives a
    control packet (PTP, STP) from a downstream switch, because if the
    source port for a control packet is marked as a cascade port, then the
    source port, switch ID and RX timestamp will not be taken again on the
    upstream switch, it is assumed that this has already been done by the
    downstream switch (the leaf port in the tree) and that the CPU has
    everything it needs to decode the information from this packet.
    
    We need to distinguish between an upstream-facing DSA link and a
    downstream-facing DSA link, because the upstream-facing DSA links are
    "host ports" for the SJA1105/SJA1110 switches, and the downstream-facing
    DSA links are "cascade ports".
    
    Note that SJA1105 supports a single cascade port, so only daisy chain
    topologies work. With SJA1110, there can be more complex topologies such
    as:
    
                        eth0
                         |
                     host port
                         |
     sw0p0    sw0p1    sw0p2    sw0p3    sw0p4
       |        |                 |        |
     cascade  cascade            user     user
      port     port              port     port
       |        |
       |        |
       |        |
       |       host
       |       port
       |        |
       |      sw1p0    sw1p1    sw1p2    sw1p3    sw1p4
       |                 |        |        |        |
       |                user     user     user     user
      host              port     port     port     port
      port
       |
     sw2p0    sw2p1    sw2p2    sw2p3    sw2p4
                |        |        |        |
               user     user     user     user
               port     port     port     port
    Signed-off-by: default avatarVladimir Oltean <vladimir.oltean@nxp.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    30a100e6
sja1105_main.c 89.9 KB