mlxsw: spectrum_trap: Adjust default policer burst size for Spectrum-{2, 3}
authorIdo Schimmel <idosch@mellanox.com>
Sun, 23 Aug 2020 08:06:22 +0000 (11:06 +0300)
committerDavid S. Miller <davem@davemloft.net>
Tue, 25 Aug 2020 00:36:11 +0000 (17:36 -0700)
On the Spectrum-{2,3} ASICs the minimum burst size of the packet trap
policers needs to be 40% of the configured rate. Otherwise, intermittent
drops are observed even when the incoming packet rate is slightly lower
than the configured policer rate.

Adjust the burst size of the registered packet trap policers so that
they do not violate above mentioned limitation.

Signed-off-by: Ido Schimmel <idosch@mellanox.com>
Reviewed-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/mellanox/mlxsw/spectrum_trap.c

index 2e41c55..433f14a 100644 (file)
@@ -291,7 +291,7 @@ static void mlxsw_sp_rx_sample_listener(struct sk_buff *skb, u8 local_port,
 static const struct mlxsw_sp_trap_policer_item
 mlxsw_sp_trap_policer_items_arr[] = {
        {
-               .policer = MLXSW_SP_TRAP_POLICER(1, 10 * 1024, 128),
+               .policer = MLXSW_SP_TRAP_POLICER(1, 10 * 1024, 4096),
        },
        {
                .policer = MLXSW_SP_TRAP_POLICER(2, 128, 128),
@@ -303,25 +303,25 @@ mlxsw_sp_trap_policer_items_arr[] = {
                .policer = MLXSW_SP_TRAP_POLICER(4, 128, 128),
        },
        {
-               .policer = MLXSW_SP_TRAP_POLICER(5, 16 * 1024, 128),
+               .policer = MLXSW_SP_TRAP_POLICER(5, 16 * 1024, 8192),
        },
        {
                .policer = MLXSW_SP_TRAP_POLICER(6, 128, 128),
        },
        {
-               .policer = MLXSW_SP_TRAP_POLICER(7, 1024, 128),
+               .policer = MLXSW_SP_TRAP_POLICER(7, 1024, 512),
        },
        {
-               .policer = MLXSW_SP_TRAP_POLICER(8, 20 * 1024, 1024),
+               .policer = MLXSW_SP_TRAP_POLICER(8, 20 * 1024, 8192),
        },
        {
                .policer = MLXSW_SP_TRAP_POLICER(9, 128, 128),
        },
        {
-               .policer = MLXSW_SP_TRAP_POLICER(10, 1024, 128),
+               .policer = MLXSW_SP_TRAP_POLICER(10, 1024, 512),
        },
        {
-               .policer = MLXSW_SP_TRAP_POLICER(11, 360, 128),
+               .policer = MLXSW_SP_TRAP_POLICER(11, 256, 128),
        },
        {
                .policer = MLXSW_SP_TRAP_POLICER(12, 128, 128),
@@ -330,19 +330,19 @@ mlxsw_sp_trap_policer_items_arr[] = {
                .policer = MLXSW_SP_TRAP_POLICER(13, 128, 128),
        },
        {
-               .policer = MLXSW_SP_TRAP_POLICER(14, 1024, 128),
+               .policer = MLXSW_SP_TRAP_POLICER(14, 1024, 512),
        },
        {
-               .policer = MLXSW_SP_TRAP_POLICER(15, 1024, 128),
+               .policer = MLXSW_SP_TRAP_POLICER(15, 1024, 512),
        },
        {
-               .policer = MLXSW_SP_TRAP_POLICER(16, 24 * 1024, 4096),
+               .policer = MLXSW_SP_TRAP_POLICER(16, 24 * 1024, 16384),
        },
        {
-               .policer = MLXSW_SP_TRAP_POLICER(17, 19 * 1024, 4096),
+               .policer = MLXSW_SP_TRAP_POLICER(17, 19 * 1024, 8192),
        },
        {
-               .policer = MLXSW_SP_TRAP_POLICER(18, 1024, 128),
+               .policer = MLXSW_SP_TRAP_POLICER(18, 1024, 512),
        },
        {
                .policer = MLXSW_SP_TRAP_POLICER(19, 1024, 512),