mlxsw: spectrum_buffers: Set up a dedicated pool for BUM traffic

MC-aware mode was recently enabled by mlxsw on Spectrum switches in
commit 7b81953066 ("mlxsw: spectrum: Configure MC-aware mode on mlxsw
ports"). Unfortunately, testing has shown that the fix is incomplete and
in the presented form actually makes the problem even worse, because any
amount of MC traffic causes UC disruption.

The reason for this is that currently, mlxsw configures the MC-specific
TCs (8..15) to map to pool 0. It also configures a maximum buffer size
of 0, but for MC traffic that maximum is disregarded and not part of the
quota. Therefore MC traffic is always admitted to the egress buffer.

Fix the configuration by directing the MC TCs into pool 15, which is
dedicated to MC traffic and recognized as such by the silicon.

Fixes: 7b81953066 ("mlxsw: spectrum: Configure MC-aware mode on mlxsw ports")
Signed-off-by: Petr Machata <petrm@mellanox.com>
Acked-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Petr Machata 2018-09-05 12:16:00 +02:00 committed by David S. Miller
parent 28619527b8
commit 3a3539cd36

View File

@ -337,14 +337,14 @@ static const struct mlxsw_sp_sb_cm mlxsw_sp_sb_cms_egress[] = {
MLXSW_SP_SB_CM(1500, 9, 0), MLXSW_SP_SB_CM(1500, 9, 0),
MLXSW_SP_SB_CM(1500, 9, 0), MLXSW_SP_SB_CM(1500, 9, 0),
MLXSW_SP_SB_CM(1500, 9, 0), MLXSW_SP_SB_CM(1500, 9, 0),
MLXSW_SP_SB_CM(0, 0, 0), MLXSW_SP_SB_CM(0, 140000, 15),
MLXSW_SP_SB_CM(0, 0, 0), MLXSW_SP_SB_CM(0, 140000, 15),
MLXSW_SP_SB_CM(0, 0, 0), MLXSW_SP_SB_CM(0, 140000, 15),
MLXSW_SP_SB_CM(0, 0, 0), MLXSW_SP_SB_CM(0, 140000, 15),
MLXSW_SP_SB_CM(0, 0, 0), MLXSW_SP_SB_CM(0, 140000, 15),
MLXSW_SP_SB_CM(0, 0, 0), MLXSW_SP_SB_CM(0, 140000, 15),
MLXSW_SP_SB_CM(0, 0, 0), MLXSW_SP_SB_CM(0, 140000, 15),
MLXSW_SP_SB_CM(0, 0, 0), MLXSW_SP_SB_CM(0, 140000, 15),
MLXSW_SP_SB_CM(1, 0xff, 0), MLXSW_SP_SB_CM(1, 0xff, 0),
}; };