• Petr Machata's avatar
    mlxsw: spectrum_fid: Allocate PGT for the whole FID family in one go · f5e293f9
    Petr Machata authored
    PGT blocks are allocated through the function
    mlxsw_sp_pgt_mid_alloc_range(). The interface assumes that the caller knows
    which piece of PGT exactly they want to get. That was fine while the FID
    code was the only client allocating blocks of PGT. However for SW-allocated
    LAG table, there will be an additional client: mlxsw_sp_lag_init(). The
    interface should therefore be changed to not require particular
    coordinates, but to take just the requested size, allocate the block
    wherever, and give back the PGT address.
    
    The current FID mode has one place where PGT address can be stored: the FID
    family's pgt_base. The allocation scheme should therefore be changed from
    allocating a block per FID flood table, to allocating a block per FID
    family.
    
    Do just that in this patch.
    
    The per-family allocation is going to be useful for another related feature
    as well: the CFF mode.
    Signed-off-by: default avatarPetr Machata <petrm@nvidia.com>
    Reviewed-by: default avatarIdo Schimmel <idosch@nvidia.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    f5e293f9
spectrum_fid.c 50.1 KB