• Petr Machata's avatar
    mlxsw: spectrum_fid: Add hooks for RSP table maintenance · 315702e0
    Petr Machata authored
    In the CFF flood mode, the driver has to allocate a table within PGT, which
    holds flood vectors for router subport FIDs. For LAGs, these flood vectors
    have to obviously be maintained dynamically as port membership in a LAG
    changes. But even for physical ports, the flood vectors have to be kept
    valid, and may not contain enabled bits corresponding to non-existent
    ports. It is therefore not possible to precompute the port part of the RSP
    table, it has to be maintained as ports come and go due to splits.
    
    To support the RSP table maintenance, add to FID ops two new ops:
    fid_port_init and fid_port_fini, for when a port comes to existence, or
    joins a lag, and vice versa. Invoke these ops from
    mlxsw_sp_port_fids_init() and mlxsw_sp_port_fids_fini(), which are called
    when port is added and removed, respectively. Also add two new hooks for
    LAG maintenance, mlxsw_sp_fid_port_join_lag() / _leave_lag() which
    transitively call into the same ops.
    
    Later patches will actually add the op implementations themselves, this
    just adds the scaffolding.
    Signed-off-by: default avatarPetr Machata <petrm@nvidia.com>
    Reviewed-by: default avatarAmit Cohen <amcohen@nvidia.com>
    Reviewed-by: default avatarIdo Schimmel <idosch@nvidia.com>
    Link: https://lore.kernel.org/r/234398a23540317abb25f74f920a5c8121faecf0.1701183892.git.petrm@nvidia.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
    315702e0
spectrum.c 157 KB