lkml.org 
[lkml]   [2022]   [May]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 5.15 056/109] mlxsw: Treat LLDP packets as control
    Date
    From: Petr Machata <petrm@nvidia.com>

    [ Upstream commit 0106668cd2f91bf913fb78972840dedfba80a3c3 ]

    When trapping packets for on-CPU processing, Spectrum machines
    differentiate between control and non-control traps. Traffic trapped
    through non-control traps is treated as data and kept in shared buffer in
    pools 0-4. Traffic trapped through control traps is kept in the dedicated
    control buffer 9. The advantage of marking traps as control is that
    pressure in the data plane does not prevent the control traffic to be
    processed.

    When the LLDP trap was introduced, it was marked as a control trap. But
    then in commit aed4b5721143 ("mlxsw: spectrum: PTP: Hook into packet
    receive path"), PTP traps were introduced. Because Ethernet-encapsulated
    PTP packets look to the Spectrum-1 ASIC as LLDP traffic and are trapped
    under the LLDP trap, this trap was reconfigured as non-control, in sync
    with the PTP traps.

    There is however no requirement that PTP traffic be handled as data.
    Besides, the usual encapsulation for PTP traffic is UDP, not bare Ethernet,
    and that is in deployments that even need PTP, which is far less common
    than LLDP. This is reflected by the default policer, which was not bumped
    up to the 19Kpps / 24Kpps that is the expected load of a PTP-enabled
    Spectrum-1 switch.

    Marking of LLDP trap as non-control was therefore probably misguided. In
    this patch, change it back to control.

    Reported-by: Maksym Yaremchuk <maksymy@nvidia.com>
    Signed-off-by: Petr Machata <petrm@nvidia.com>
    Signed-off-by: Ido Schimmel <idosch@nvidia.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/net/ethernet/mellanox/mlxsw/spectrum_trap.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_trap.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_trap.c
    index 26d01adbedad..ce6f6590a777 100644
    --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_trap.c
    +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_trap.c
    @@ -864,7 +864,7 @@ static const struct mlxsw_sp_trap_item mlxsw_sp_trap_items_arr[] = {
    .trap = MLXSW_SP_TRAP_CONTROL(LLDP, LLDP, TRAP),
    .listeners_arr = {
    MLXSW_RXL(mlxsw_sp_rx_ptp_listener, LLDP, TRAP_TO_CPU,
    - false, SP_LLDP, DISCARD),
    + true, SP_LLDP, DISCARD),
    },
    },
    {
    --
    2.35.1
    \
     
     \ /
      Last update: 2022-05-30 16:13    [W:4.051 / U:0.336 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site