selftests: forwarding: generalize bail_on_lldpad from mlxsw
authorPetr Machata <petrm@nvidia.com>
Tue, 18 Apr 2023 11:14:57 +0000 (14:14 +0300)
committerJakub Kicinski <kuba@kernel.org>
Fri, 21 Apr 2023 03:03:21 +0000 (20:03 -0700)
mlxsw selftests often invoke a bail_on_lldpad() helper to make sure LLDPAD
is not running, to prevent conflicts between the QoS configuration applied
through TC or DCB command line tool, and the DCB configuration that LLDPAD
might apply. This helper might be useful to others. Move the function to
lib.sh, and parameterize to make reusable in other contexts.

Signed-off-by: Petr Machata <petrm@nvidia.com>
Reviewed-by: Danielle Ratson <danieller@nvidia.com>
Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
tools/testing/selftests/drivers/net/mlxsw/qos_headroom.sh
tools/testing/selftests/drivers/net/mlxsw/qos_lib.sh
tools/testing/selftests/drivers/net/mlxsw/qos_pfc.sh
tools/testing/selftests/drivers/net/mlxsw/sch_ets.sh
tools/testing/selftests/drivers/net/mlxsw/sch_red_core.sh
tools/testing/selftests/drivers/net/mlxsw/sch_red_ets.sh
tools/testing/selftests/drivers/net/mlxsw/sch_red_root.sh
tools/testing/selftests/drivers/net/mlxsw/sch_tbf_ets.sh
tools/testing/selftests/drivers/net/mlxsw/sch_tbf_prio.sh
tools/testing/selftests/drivers/net/mlxsw/sch_tbf_root.sh
tools/testing/selftests/net/forwarding/lib.sh

index 3569ff4..88162b4 100755 (executable)
@@ -18,7 +18,6 @@ lib_dir=$(dirname $0)/../../../net/forwarding
 NUM_NETIFS=0
 source $lib_dir/lib.sh
 source $lib_dir/devlink_lib.sh
-source qos_lib.sh
 
 swp=$NETIF_NO_CABLE
 
@@ -371,7 +370,7 @@ test_tc_int_buf()
        tc qdisc delete dev $swp root
 }
 
-bail_on_lldpad
+bail_on_lldpad "configure DCB" "configure Qdiscs"
 
 trap cleanup EXIT
 setup_wait
index faa5101..5ad092b 100644 (file)
@@ -54,31 +54,3 @@ measure_rate()
        echo $ir $er
        return $ret
 }
-
-bail_on_lldpad()
-{
-       if systemctl is-active --quiet lldpad; then
-
-               cat >/dev/stderr <<-EOF
-               WARNING: lldpad is running
-
-                       lldpad will likely configure DCB, and this test will
-                       configure Qdiscs. mlxsw does not support both at the
-                       same time, one of them is arbitrarily going to overwrite
-                       the other. That will cause spurious failures (or,
-                       unlikely, passes) of this test.
-               EOF
-
-               if [[ -z $ALLOW_LLDPAD ]]; then
-                       cat >/dev/stderr <<-EOF
-
-                               If you want to run the test anyway, please set
-                               an environment variable ALLOW_LLDPAD to a
-                               non-empty string.
-                       EOF
-                       exit 1
-               else
-                       return
-               fi
-       fi
-}
index f9858e2..42ce602 100755 (executable)
@@ -79,7 +79,6 @@ lib_dir=$(dirname $0)/../../../net/forwarding
 NUM_NETIFS=6
 source $lib_dir/lib.sh
 source $lib_dir/devlink_lib.sh
-source qos_lib.sh
 
 _1KB=1000
 _100KB=$((100 * _1KB))
@@ -393,7 +392,7 @@ test_qos_pfc()
        log_test "PFC"
 }
 
-bail_on_lldpad
+bail_on_lldpad "configure DCB" "configure Qdiscs"
 
 trap cleanup EXIT
 setup_prepare
index ceaa76b..139175f 100755 (executable)
@@ -5,7 +5,6 @@
 lib_dir=$(dirname $0)/../../../net/forwarding
 source $lib_dir/sch_ets_core.sh
 source $lib_dir/devlink_lib.sh
-source qos_lib.sh
 
 ALL_TESTS="
        ping_ipv4
@@ -78,5 +77,5 @@ collect_stats()
        done
 }
 
-bail_on_lldpad
+bail_on_lldpad "configure DCB" "configure Qdiscs"
 ets_run
index 45b41b8..299e06a 100644 (file)
@@ -74,7 +74,6 @@ lib_dir=$(dirname $0)/../../../net/forwarding
 source $lib_dir/lib.sh
 source $lib_dir/devlink_lib.sh
 source mlxsw_lib.sh
-source qos_lib.sh
 
 ipaddr()
 {
index 0d01c7c..8ecddaf 100755 (executable)
@@ -166,7 +166,7 @@ ecn_mirror_test()
        uninstall_qdisc
 }
 
-bail_on_lldpad
+bail_on_lldpad "configure DCB" "configure Qdiscs"
 
 trap cleanup EXIT
 setup_prepare
index 8602053..159108d 100755 (executable)
@@ -73,7 +73,7 @@ red_mirror_test()
        uninstall_qdisc
 }
 
-bail_on_lldpad
+bail_on_lldpad "configure DCB" "configure Qdiscs"
 
 trap cleanup EXIT
 setup_prepare
index b9b4cdf..ecc3664 100755 (executable)
@@ -1,11 +1,9 @@
 #!/bin/bash
 # SPDX-License-Identifier: GPL-2.0
 
-source qos_lib.sh
-
 sch_tbf_pre_hook()
 {
-       bail_on_lldpad
+       bail_on_lldpad "configure DCB" "configure Qdiscs"
 }
 
 lib_dir=$(dirname $0)/../../../net/forwarding
index dff9810..2e0a4ef 100755 (executable)
@@ -1,11 +1,9 @@
 #!/bin/bash
 # SPDX-License-Identifier: GPL-2.0
 
-source qos_lib.sh
-
 sch_tbf_pre_hook()
 {
-       bail_on_lldpad
+       bail_on_lldpad "configure DCB" "configure Qdiscs"
 }
 
 lib_dir=$(dirname $0)/../../../net/forwarding
index 75406bd..6679a33 100755 (executable)
@@ -1,11 +1,9 @@
 #!/bin/bash
 # SPDX-License-Identifier: GPL-2.0
 
-source qos_lib.sh
-
 sch_tbf_pre_hook()
 {
-       bail_on_lldpad
+       bail_on_lldpad "configure DCB" "configure Qdiscs"
 }
 
 lib_dir=$(dirname $0)/../../../net/forwarding
index d47499b..efd48e1 100755 (executable)
@@ -1887,3 +1887,34 @@ mldv1_done_get()
 
        payload_template_expand_checksum "$hbh$icmpv6" $checksum
 }
+
+bail_on_lldpad()
+{
+       local reason1="$1"; shift
+       local reason2="$1"; shift
+
+       if systemctl is-active --quiet lldpad; then
+
+               cat >/dev/stderr <<-EOF
+               WARNING: lldpad is running
+
+                       lldpad will likely $reason1, and this test will
+                       $reason2. Both are not supported at the same time,
+                       one of them is arbitrarily going to overwrite the
+                       other. That will cause spurious failures (or, unlikely,
+                       passes) of this test.
+               EOF
+
+               if [[ -z $ALLOW_LLDPAD ]]; then
+                       cat >/dev/stderr <<-EOF
+
+                               If you want to run the test anyway, please set
+                               an environment variable ALLOW_LLDPAD to a
+                               non-empty string.
+                       EOF
+                       exit 1
+               else
+                       return
+               fi
+       fi
+}