• Petr Machata's avatar
    mlxsw: spectrum_router: Take VID for VLAN FIDs from RIF params · a0944b24
    Petr Machata authored
    Currently, when an IP address is added to a bridge that has no PVID, the
    operation is rejected. An IP address addition is interpreted as a request
    to create a RIF for the bridge device, but without a PVID there is no VLAN
    for which the RIF should be created. Thus the correct way to create a RIF
    for a bridge as a user is to first add a PVID, and then add the IP address.
    
    Ideally this ordering requirement would not exist. RIF would be created
    either because an IP address is added, or because a PVID is added,
    depending on which comes last.
    
    For that, the switchdev code (which notices the PVID change request) must
    be able to request that a RIF is created with a given VLAN ID, because at
    the time that the PVID notification is distributed, the PVID setting is not
    yet visible for querying.
    
    Therefore when creating a VLAN-based RIF, use mlxsw_sp_rif_params.vid to
    communicate the VID, and do not determine it ad-hoc in the fid_get
    callback.
    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>
    a0944b24
spectrum_router.c 297 KB