Commit 67971c38 authored by Jakub Kicinski's avatar Jakub Kicinski

Merge branch 'selftests-mlxsw-convert-to-iproute2-dcb'

Petr Machata says:

====================
selftests: mlxsw: Convert to iproute2 dcb

There is a dedicated tool for configuration of DCB in iproute2. Use it
in the selftests instead of lldpad.

Patches #1-#3 convert three tests. Patch #4 drops the now-unnecessary
lldpad helpers.
====================

Link: https://lore.kernel.org/r/cover.1675096231.git.petrm@nvidia.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parents 88b49402 bd32ff68
...@@ -5,18 +5,18 @@ ...@@ -5,18 +5,18 @@
# prioritized according to the default priority specified at the port. # prioritized according to the default priority specified at the port.
# rx_octets_prio_* counters are used to verify the prioritization. # rx_octets_prio_* counters are used to verify the prioritization.
# #
# +-----------------------+ # +----------------------------------+
# | H1 | # | H1 |
# | + $h1 | # | + $h1 |
# | | 192.0.2.1/28 | # | | 192.0.2.1/28 |
# +----|------------------+ # +----|-----------------------------+
# | # |
# +----|------------------+ # +----|-----------------------------+
# | SW | | # | SW | |
# | + $swp1 | # | + $swp1 |
# | 192.0.2.2/28 | # | 192.0.2.2/28 |
# | APP=<prio>,1,0 | # | dcb app default-prio <prio> |
# +-----------------------+ # +----------------------------------+
ALL_TESTS=" ALL_TESTS="
ping_ipv4 ping_ipv4
...@@ -29,42 +29,6 @@ NUM_NETIFS=2 ...@@ -29,42 +29,6 @@ NUM_NETIFS=2
: ${HIT_TIMEOUT:=1000} # ms : ${HIT_TIMEOUT:=1000} # ms
source $lib_dir/lib.sh source $lib_dir/lib.sh
declare -a APP
defprio_install()
{
local dev=$1; shift
local prio=$1; shift
local app="app=$prio,1,0"
lldptool -T -i $dev -V APP $app >/dev/null
lldpad_app_wait_set $dev
APP[$prio]=$app
}
defprio_uninstall()
{
local dev=$1; shift
local prio=$1; shift
local app=${APP[$prio]}
lldptool -T -i $dev -V APP -d $app >/dev/null
lldpad_app_wait_del
unset APP[$prio]
}
defprio_flush()
{
local dev=$1; shift
local prio
if ((${#APP[@]})); then
lldptool -T -i $dev -V APP -d ${APP[@]} >/dev/null
fi
lldpad_app_wait_del
APP=()
}
h1_create() h1_create()
{ {
simple_if_init $h1 192.0.2.1/28 simple_if_init $h1 192.0.2.1/28
...@@ -83,7 +47,7 @@ switch_create() ...@@ -83,7 +47,7 @@ switch_create()
switch_destroy() switch_destroy()
{ {
defprio_flush $swp1 dcb app flush dev $swp1 default-prio
ip addr del dev $swp1 192.0.2.2/28 ip addr del dev $swp1 192.0.2.2/28
ip link set dev $swp1 down ip link set dev $swp1 down
} }
...@@ -124,7 +88,7 @@ __test_defprio() ...@@ -124,7 +88,7 @@ __test_defprio()
RET=0 RET=0
defprio_install $swp1 $prio_install dcb app add dev $swp1 default-prio $prio_install
local t0=$(ethtool_stats_get $swp1 rx_frames_prio_$prio_observe) local t0=$(ethtool_stats_get $swp1 rx_frames_prio_$prio_observe)
mausezahn -q $h1 -d 100m -c 10 -t arp reply mausezahn -q $h1 -d 100m -c 10 -t arp reply
...@@ -134,7 +98,7 @@ __test_defprio() ...@@ -134,7 +98,7 @@ __test_defprio()
check_err $? "Default priority $prio_install/$prio_observe: Expected to capture 10 packets, got $((t1 - t0))." check_err $? "Default priority $prio_install/$prio_observe: Expected to capture 10 packets, got $((t1 - t0))."
log_test "Default priority $prio_install/$prio_observe" log_test "Default priority $prio_install/$prio_observe"
defprio_uninstall $swp1 $prio_install dcb app del dev $swp1 default-prio $prio_install
} }
test_defprio() test_defprio()
...@@ -145,7 +109,7 @@ test_defprio() ...@@ -145,7 +109,7 @@ test_defprio()
__test_defprio $prio $prio __test_defprio $prio $prio
done done
defprio_install $swp1 3 dcb app add dev $swp1 default-prio 3
__test_defprio 0 3 __test_defprio 0 3
__test_defprio 1 3 __test_defprio 1 3
__test_defprio 2 3 __test_defprio 2 3
...@@ -153,7 +117,7 @@ test_defprio() ...@@ -153,7 +117,7 @@ test_defprio()
__test_defprio 5 5 __test_defprio 5 5
__test_defprio 6 6 __test_defprio 6 6
__test_defprio 7 7 __test_defprio 7 7
defprio_uninstall $swp1 3 dcb app del dev $swp1 default-prio 3
} }
trap cleanup EXIT trap cleanup EXIT
......
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
# | SW | | | # | SW | | |
# | +-|----------------------------------------------------------------|-+ | # | +-|----------------------------------------------------------------|-+ |
# | | + $swp1 BR $swp2 + | | # | | + $swp1 BR $swp2 + | |
# | | APP=0,5,10 .. 7,5,17 APP=0,5,20 .. 7,5,27 | | # | | dcb dscp-prio 10:0...17:7 dcb dscp-prio 20:0...27:7 | |
# | +--------------------------------------------------------------------+ | # | +--------------------------------------------------------------------+ |
# +---------------------------------------------------------------------------+ # +---------------------------------------------------------------------------+
...@@ -62,16 +62,6 @@ h2_destroy() ...@@ -62,16 +62,6 @@ h2_destroy()
simple_if_fini $h2 192.0.2.2/28 simple_if_fini $h2 192.0.2.2/28
} }
dscp_map()
{
local base=$1; shift
local prio
for prio in {0..7}; do
echo app=$prio,5,$((base + prio))
done
}
switch_create() switch_create()
{ {
ip link add name br1 type bridge vlan_filtering 1 ip link add name br1 type bridge vlan_filtering 1
...@@ -81,17 +71,14 @@ switch_create() ...@@ -81,17 +71,14 @@ switch_create()
ip link set dev $swp2 master br1 ip link set dev $swp2 master br1
ip link set dev $swp2 up ip link set dev $swp2 up
lldptool -T -i $swp1 -V APP $(dscp_map 10) >/dev/null dcb app add dev $swp1 dscp-prio 10:0 11:1 12:2 13:3 14:4 15:5 16:6 17:7
lldptool -T -i $swp2 -V APP $(dscp_map 20) >/dev/null dcb app add dev $swp2 dscp-prio 20:0 21:1 22:2 23:3 24:4 25:5 26:6 27:7
lldpad_app_wait_set $swp1
lldpad_app_wait_set $swp2
} }
switch_destroy() switch_destroy()
{ {
lldptool -T -i $swp2 -V APP -d $(dscp_map 20) >/dev/null dcb app del dev $swp2 dscp-prio 20:0 21:1 22:2 23:3 24:4 25:5 26:6 27:7
lldptool -T -i $swp1 -V APP -d $(dscp_map 10) >/dev/null dcb app del dev $swp1 dscp-prio 10:0 11:1 12:2 13:3 14:4 15:5 16:6 17:7
lldpad_app_wait_del
ip link set dev $swp2 down ip link set dev $swp2 down
ip link set dev $swp2 nomaster ip link set dev $swp2 nomaster
......
...@@ -94,16 +94,6 @@ h2_destroy() ...@@ -94,16 +94,6 @@ h2_destroy()
simple_if_fini $h2 192.0.2.18/28 simple_if_fini $h2 192.0.2.18/28
} }
dscp_map()
{
local base=$1; shift
local prio
for prio in {0..7}; do
echo app=$prio,5,$((base + prio))
done
}
switch_create() switch_create()
{ {
simple_if_init $swp1 192.0.2.2/28 simple_if_init $swp1 192.0.2.2/28
...@@ -112,17 +102,14 @@ switch_create() ...@@ -112,17 +102,14 @@ switch_create()
tc qdisc add dev $swp1 clsact tc qdisc add dev $swp1 clsact
tc qdisc add dev $swp2 clsact tc qdisc add dev $swp2 clsact
lldptool -T -i $swp1 -V APP $(dscp_map 0) >/dev/null dcb app add dev $swp1 dscp-prio 0:0 1:1 2:2 3:3 4:4 5:5 6:6 7:7
lldptool -T -i $swp2 -V APP $(dscp_map 0) >/dev/null dcb app add dev $swp2 dscp-prio 0:0 1:1 2:2 3:3 4:4 5:5 6:6 7:7
lldpad_app_wait_set $swp1
lldpad_app_wait_set $swp2
} }
switch_destroy() switch_destroy()
{ {
lldptool -T -i $swp2 -V APP -d $(dscp_map 0) >/dev/null dcb app del dev $swp2 dscp-prio 0:0 1:1 2:2 3:3 4:4 5:5 6:6 7:7
lldptool -T -i $swp1 -V APP -d $(dscp_map 0) >/dev/null dcb app del dev $swp1 dscp-prio 0:0 1:1 2:2 3:3 4:4 5:5 6:6 7:7
lldpad_app_wait_del
tc qdisc del dev $swp2 clsact tc qdisc del dev $swp2 clsact
tc qdisc del dev $swp1 clsact tc qdisc del dev $swp1 clsact
...@@ -265,13 +252,11 @@ test_dscp_leftover() ...@@ -265,13 +252,11 @@ test_dscp_leftover()
{ {
echo "Test that last removed DSCP rule is deconfigured correctly" echo "Test that last removed DSCP rule is deconfigured correctly"
lldptool -T -i $swp2 -V APP -d $(dscp_map 0) >/dev/null dcb app del dev $swp2 dscp-prio 0:0 1:1 2:2 3:3 4:4 5:5 6:6 7:7
lldpad_app_wait_del
__test_update 0 zero __test_update 0 zero
lldptool -T -i $swp2 -V APP $(dscp_map 0) >/dev/null dcb app add dev $swp2 dscp-prio 0:0 1:1 2:2 3:3 4:4 5:5 6:6 7:7
lldpad_app_wait_set $swp2
} }
trap cleanup EXIT trap cleanup EXIT
......
...@@ -524,27 +524,6 @@ cmd_jq() ...@@ -524,27 +524,6 @@ cmd_jq()
[ ! -z "$output" ] [ ! -z "$output" ]
} }
lldpad_app_wait_set()
{
local dev=$1; shift
while lldptool -t -i $dev -V APP -c app | grep -Eq "pending|unknown"; do
echo "$dev: waiting for lldpad to push pending APP updates"
sleep 5
done
}
lldpad_app_wait_del()
{
# Give lldpad a chance to push down the changes. If the device is downed
# too soon, the updates will be left pending. However, they will have
# been struck off the lldpad's DB already, so we won't be able to tell
# they are pending. Then on next test iteration this would cause
# weirdness as newly-added APP rules conflict with the old ones,
# sometimes getting stuck in an "unknown" state.
sleep 5
}
pre_cleanup() pre_cleanup()
{ {
if [ "${PAUSE_ON_CLEANUP}" = "yes" ]; then if [ "${PAUSE_ON_CLEANUP}" = "yes" ]; then
......
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