Commit 8fcac792 authored by Petr Machata's avatar Petr Machata Committed by Jakub Kicinski

selftests: forwarding: generalize bail_on_lldpad from mlxsw

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: default avatarPetr Machata <petrm@nvidia.com>
Reviewed-by: default avatarDanielle Ratson <danieller@nvidia.com>
Signed-off-by: default avatarVladimir Oltean <vladimir.oltean@nxp.com>
Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 54e906f1
...@@ -18,7 +18,6 @@ lib_dir=$(dirname $0)/../../../net/forwarding ...@@ -18,7 +18,6 @@ lib_dir=$(dirname $0)/../../../net/forwarding
NUM_NETIFS=0 NUM_NETIFS=0
source $lib_dir/lib.sh source $lib_dir/lib.sh
source $lib_dir/devlink_lib.sh source $lib_dir/devlink_lib.sh
source qos_lib.sh
swp=$NETIF_NO_CABLE swp=$NETIF_NO_CABLE
...@@ -371,7 +370,7 @@ test_tc_int_buf() ...@@ -371,7 +370,7 @@ test_tc_int_buf()
tc qdisc delete dev $swp root tc qdisc delete dev $swp root
} }
bail_on_lldpad bail_on_lldpad "configure DCB" "configure Qdiscs"
trap cleanup EXIT trap cleanup EXIT
setup_wait setup_wait
......
...@@ -54,31 +54,3 @@ measure_rate() ...@@ -54,31 +54,3 @@ measure_rate()
echo $ir $er echo $ir $er
return $ret 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
}
...@@ -79,7 +79,6 @@ lib_dir=$(dirname $0)/../../../net/forwarding ...@@ -79,7 +79,6 @@ lib_dir=$(dirname $0)/../../../net/forwarding
NUM_NETIFS=6 NUM_NETIFS=6
source $lib_dir/lib.sh source $lib_dir/lib.sh
source $lib_dir/devlink_lib.sh source $lib_dir/devlink_lib.sh
source qos_lib.sh
_1KB=1000 _1KB=1000
_100KB=$((100 * _1KB)) _100KB=$((100 * _1KB))
...@@ -393,7 +392,7 @@ test_qos_pfc() ...@@ -393,7 +392,7 @@ test_qos_pfc()
log_test "PFC" log_test "PFC"
} }
bail_on_lldpad bail_on_lldpad "configure DCB" "configure Qdiscs"
trap cleanup EXIT trap cleanup EXIT
setup_prepare setup_prepare
......
...@@ -5,7 +5,6 @@ ...@@ -5,7 +5,6 @@
lib_dir=$(dirname $0)/../../../net/forwarding lib_dir=$(dirname $0)/../../../net/forwarding
source $lib_dir/sch_ets_core.sh source $lib_dir/sch_ets_core.sh
source $lib_dir/devlink_lib.sh source $lib_dir/devlink_lib.sh
source qos_lib.sh
ALL_TESTS=" ALL_TESTS="
ping_ipv4 ping_ipv4
...@@ -78,5 +77,5 @@ collect_stats() ...@@ -78,5 +77,5 @@ collect_stats()
done done
} }
bail_on_lldpad bail_on_lldpad "configure DCB" "configure Qdiscs"
ets_run ets_run
...@@ -74,7 +74,6 @@ lib_dir=$(dirname $0)/../../../net/forwarding ...@@ -74,7 +74,6 @@ lib_dir=$(dirname $0)/../../../net/forwarding
source $lib_dir/lib.sh source $lib_dir/lib.sh
source $lib_dir/devlink_lib.sh source $lib_dir/devlink_lib.sh
source mlxsw_lib.sh source mlxsw_lib.sh
source qos_lib.sh
ipaddr() ipaddr()
{ {
......
...@@ -166,7 +166,7 @@ ecn_mirror_test() ...@@ -166,7 +166,7 @@ ecn_mirror_test()
uninstall_qdisc uninstall_qdisc
} }
bail_on_lldpad bail_on_lldpad "configure DCB" "configure Qdiscs"
trap cleanup EXIT trap cleanup EXIT
setup_prepare setup_prepare
......
...@@ -73,7 +73,7 @@ red_mirror_test() ...@@ -73,7 +73,7 @@ red_mirror_test()
uninstall_qdisc uninstall_qdisc
} }
bail_on_lldpad bail_on_lldpad "configure DCB" "configure Qdiscs"
trap cleanup EXIT trap cleanup EXIT
setup_prepare setup_prepare
......
#!/bin/bash #!/bin/bash
# SPDX-License-Identifier: GPL-2.0 # SPDX-License-Identifier: GPL-2.0
source qos_lib.sh
sch_tbf_pre_hook() sch_tbf_pre_hook()
{ {
bail_on_lldpad bail_on_lldpad "configure DCB" "configure Qdiscs"
} }
lib_dir=$(dirname $0)/../../../net/forwarding lib_dir=$(dirname $0)/../../../net/forwarding
......
#!/bin/bash #!/bin/bash
# SPDX-License-Identifier: GPL-2.0 # SPDX-License-Identifier: GPL-2.0
source qos_lib.sh
sch_tbf_pre_hook() sch_tbf_pre_hook()
{ {
bail_on_lldpad bail_on_lldpad "configure DCB" "configure Qdiscs"
} }
lib_dir=$(dirname $0)/../../../net/forwarding lib_dir=$(dirname $0)/../../../net/forwarding
......
#!/bin/bash #!/bin/bash
# SPDX-License-Identifier: GPL-2.0 # SPDX-License-Identifier: GPL-2.0
source qos_lib.sh
sch_tbf_pre_hook() sch_tbf_pre_hook()
{ {
bail_on_lldpad bail_on_lldpad "configure DCB" "configure Qdiscs"
} }
lib_dir=$(dirname $0)/../../../net/forwarding lib_dir=$(dirname $0)/../../../net/forwarding
......
...@@ -1887,3 +1887,34 @@ mldv1_done_get() ...@@ -1887,3 +1887,34 @@ mldv1_done_get()
payload_template_expand_checksum "$hbh$icmpv6" $checksum 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
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment