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 3569ff45f7d564a0d0434fb946f8edd5a795b904..88162b4027c0adbe04887beff78480621d48086a 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 faa51012cdaca05255eddf0bb4ed607145565166..5ad092b9bf10a708d2423381ab6f4c53fcfe1b84 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 f9858e221996c17cd24776937769a7e77bef3e0b..42ce602d8d492e5fb64b305f0a28149df87b28b0 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 ceaa76b17a43c18e31ef13698f1ad3abbfddac10..139175fd03e725ff99fec598f7a6e3a8c8e67204 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 45b41b8f323224c211aeb26e24f4ce079409b851..299e06a5808c2920a660d9f92e8e0c8940936cc4 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 0d01c7cd82a182ca73c09329404ce54d048279e2..8ecddafa79b3f5de92eb6920130ea3f8fcb0b54e 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 860205338e6fb6ad940488a75eddb7e32c3e08f0..159108d02895a929f89077d7c17bfdcb751d7a7b 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 b9b4cdf14ceb0d330d751c92636d05aae621e35a..ecc3664376b3be701966598631e971331d1b88c9 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 dff9810ee04fb438b8a77b5e801c4d26e8838586..2e0a4efb17033a03b35bfbd25031f00cd124ae93 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 75406bd7036e1c7ebca07ebeacf2c2e404525a8e..6679a338dfc45c37ae4252e3446538f252385d36 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 d47499ba81c7f986cf9369c1f03e88aed21b39b8..efd48e1cadd2d6dcec9852c5ebe0995e2bcec513 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
+}