• Petr Machata's avatar
    mlxsw: spectrum_span: Derive SBIB from maximum port speed & MTU · 532b49e4
    Petr Machata authored
    The SBIB register configures the size of an internal buffer that the
    Spectrum ASICs use when mirroring traffic on egress. This size should be
    taken into account when validating that the port headroom buffers are not
    larger than the chip can handle. Up until now this was not done, which is
    incidentally not a problem, because the priority group buffers that mlxsw
    auto-configures are small enough that the boundary condition could not be
    violated.
    
    However when dcbnl_setbuffer is implemented, the user has control over
    sizes of PG buffers, and they might overshoot the headroom capacity.
    However the size of the SBIB buffer depends on port speed, and that cannot
    be vetoed. Therefore SBIB size should be deduced from maximum port speed.
    
    Additionally, once the buffers are configured by hand, the user could get
    into an uncomfortable situation where their MTU change requests get vetoed,
    because the SBIB does not fit anymore. Therefore derive SBIB size from
    maximum permissible MTU as well.
    
    Remove all the code that adjusted the SBIB size whenever speed or MTU
    changed.
    Signed-off-by: default avatarPetr Machata <petrm@nvidia.com>
    Signed-off-by: default avatarIdo Schimmel <idosch@nvidia.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    532b49e4
spectrum_span.c 47.3 KB