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 117f6f35d72fac57ad87f0ed4772a50511d45cb4..2e17fe3b4872ea6aa3d25e51c1091e3d632ab6b3 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