]> git.baikalelectronics.ru Git - kernel.git/commitdiff
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 2e41c5519c1b7fc589e746c8ff7cfbd303a80b2d..433f14ade464c33d0429cf35ab7e2676ff3af107 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),