selftests: mlxsw: qos_mc_aware: Configure shared buffers
authorPetr Machata <petrm@mellanox.com>
Thu, 28 Mar 2019 12:12:25 +0000 (12:12 +0000)
committerDavid S. Miller <davem@davemloft.net>
Fri, 29 Mar 2019 00:20:52 +0000 (17:20 -0700)
This test runs two streams of traffic from two independent ports to
create congestion on one egress port. It is necessary to configure the
shared buffer thresholds correctly, to make sure that there is traffic
from both streams in the shared buffer. Only then can the test actually
test prioritization among these streams.

Without this configuration, it is possible, that one of the streams
takes all of port-pool quota, and the other stream is not even admitted,
thus invalidating the result.

On Spectrum-1, this is not a problem, because MC traffic uses a separate
pool. But for Spectrum-2, MC and UC share the same pool, and the correct
configuration is important.

Signed-off-by: Petr Machata <petrm@mellanox.com>
Signed-off-by: Ido Schimmel <idosch@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
tools/testing/selftests/drivers/net/mlxsw/qos_mc_aware.sh

index 117f6f3..2e17fe3 100755 (executable)
@@ -67,6 +67,7 @@ lib_dir=$(dirname $0)/../../../net/forwarding
 
 NUM_NETIFS=6
 source $lib_dir/lib.sh
+source $lib_dir/devlink_lib.sh
 
 h1_create()
 {
@@ -140,10 +141,28 @@ switch_create()
        ip link set dev br111 up
        ip link set dev $swp2.111 master br111
        ip link set dev $swp3.111 master br111
+
+       # Make sure that ingress quotas are smaller than egress so that there is
+       # room for both streams of traffic to be admitted to shared buffer.
+       devlink_port_pool_th_set $swp1 0 5
+       devlink_tc_bind_pool_th_set $swp1 0 ingress 0 5
+
+       devlink_port_pool_th_set $swp2 0 5
+       devlink_tc_bind_pool_th_set $swp2 1 ingress 0 5
+
+       devlink_port_pool_th_set $swp3 4 12
 }
 
 switch_destroy()
 {
+       devlink_port_pool_th_restore $swp3 4
+
+       devlink_tc_bind_pool_th_restore $swp2 1 ingress
+       devlink_port_pool_th_restore $swp2 0
+
+       devlink_tc_bind_pool_th_restore $swp1 0 ingress
+       devlink_port_pool_th_restore $swp1 0
+
        ip link del dev br111
        ip link del dev br1