• Tobias Waldekranz's avatar
    net: dsa: mv88e6xxx: Improve multichip isolation of standalone ports · d352b20f
    Tobias Waldekranz authored
    Given that standalone ports are now configured to bypass the ATU and
    forward all frames towards the upstream port, extend the ATU bypass to
    multichip systems.
    
    Load VID 0 (standalone) into the VTU with the policy bit set. Since
    VID 4095 (bridged) is already loaded, we now know that all VIDs in use
    are always available in all VTUs. Therefore, we can safely enable
    802.1Q on DSA ports.
    
    Setting the DSA ports' VTU policy to TRAP means that all incoming
    frames on VID 0 will be classified as MGMT - as a result, the ATU is
    bypassed on all subsequent switches.
    
    With this isolation in place, we are able to support configurations
    that are simultaneously very quirky and very useful. Quirky because it
    involves looping cables between local switchports like in this
    example:
    
       CPU
        |     .------.
    .---0---. | .----0----.
    |  sw0  | | |   sw1   |
    '-1-2-3-' | '-1-2-3-4-'
      $ @ '---'   $ @ % %
    
    We have three physically looped pairs ($, @, and %).
    
    This is very useful because it allows us to run the kernel's
    kselftests for the bridge on mv88e6xxx hardware.
    Signed-off-by: default avatarTobias Waldekranz <tobias@waldekranz.com>
    Reviewed-by: default avatarVladimir Oltean <olteanv@gmail.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    d352b20f
chip.c 189 KB