• Ido Schimmel's avatar
    mlxsw: spectrum: Configure FIDs based on bridge events · 701b186e
    Ido Schimmel authored
    Before introducing support for L3 interfaces on top of the VLAN-aware
    bridge we need to add some missing infrastructure.
    
    Such an interface can either be the bridge device itself or a VLAN
    device on top of it. In the first case the router interface (RIF) is
    associated with FID 1, which is created whenever the first port netdev
    joins the bridge. We currently assume the default PVID is 1 and that
    it's already created, as it seems reasonable. This can be extended in
    the future.
    
    However, in the second case it's entirely possible we've yet to create a
    matching FID. This can happen if the VLAN device was configured before
    making any bridge port member in the VLAN.
    
    Prevent such ordering problems by using the VLAN device's CHANGEUPPER
    event to configure the FID. Make the VLAN device hold a reference to the
    FID and prevent it from being destroyed even if none of the port netdevs
    is using it.
    Signed-off-by: default avatarIdo Schimmel <idosch@mellanox.com>
    Signed-off-by: default avatarJiri Pirko <jiri@mellanox.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    701b186e
spectrum_switchdev.c 40.7 KB