• Petr Machata's avatar
    mlxsw: spectrum: On port enslavement to a LAG, join upper's bridges · 987c7782
    Petr Machata authored
    Currently it never happens that a netdevice that is already a bridge slave
    would suddenly become mlxsw upper. The only case where this might be
    possible as far as mlxsw is concerned, is with LAG netdevices. But if a LAG
    already has an upper, enslaving mlxsw port to that LAG is forbidden. Thus
    the only way to install a LAG between a bridge and a mlxsw port is by first
    enslaving the port to the LAG, and then enslaving that LAG to a bridge.
    
    However in the following patches, the requirement that ports be only
    enslaved to masters without uppers, is going to be relaxed. It will
    therefore be necessary to join bridges of LAG uppers. Without this replay,
    the mlxsw bridge_port objects are not instantiated, which causes issues
    later, as a lot of code relies on their presence.
    
    Therefore in this patch, when the first mlxsw physical netdevice is
    enslaved to a LAG, consider bridges upper to the LAG (both the direct
    master, if any, and any bridge masters of VLAN uppers), and have the
    relevant netdevices join their bridges.
    Signed-off-by: default avatarPetr Machata <petrm@nvidia.com>
    Reviewed-by: default avatarDanielle Ratson <danieller@nvidia.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    987c7782
spectrum.c 153 KB