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
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
......
......@@ -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
}
......@@ -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
......
......@@ -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
......@@ -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()
{
......
......@@ -166,7 +166,7 @@ ecn_mirror_test()
uninstall_qdisc
}
bail_on_lldpad
bail_on_lldpad "configure DCB" "configure Qdiscs"
trap cleanup EXIT
setup_prepare
......
......@@ -73,7 +73,7 @@ red_mirror_test()
uninstall_qdisc
}
bail_on_lldpad
bail_on_lldpad "configure DCB" "configure Qdiscs"
trap cleanup EXIT
setup_prepare
......
#!/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
......
#!/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
......
#!/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
......
......@@ -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
}
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