mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-04-29 05:52:38 -04:00
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.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
@@ -5,18 +5,18 @@
|
||||
# prioritized according to the default priority specified at the port.
|
||||
# rx_octets_prio_* counters are used to verify the prioritization.
|
||||
#
|
||||
# +-----------------------+
|
||||
# | H1 |
|
||||
# | + $h1 |
|
||||
# | | 192.0.2.1/28 |
|
||||
# +----|------------------+
|
||||
# +----------------------------------+
|
||||
# | H1 |
|
||||
# | + $h1 |
|
||||
# | | 192.0.2.1/28 |
|
||||
# +----|-----------------------------+
|
||||
# |
|
||||
# +----|------------------+
|
||||
# | SW | |
|
||||
# | + $swp1 |
|
||||
# | 192.0.2.2/28 |
|
||||
# | APP=<prio>,1,0 |
|
||||
# +-----------------------+
|
||||
# +----|-----------------------------+
|
||||
# | SW | |
|
||||
# | + $swp1 |
|
||||
# | 192.0.2.2/28 |
|
||||
# | dcb app default-prio <prio> |
|
||||
# +----------------------------------+
|
||||
|
||||
ALL_TESTS="
|
||||
ping_ipv4
|
||||
@@ -29,42 +29,6 @@ NUM_NETIFS=2
|
||||
: ${HIT_TIMEOUT:=1000} # ms
|
||||
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()
|
||||
{
|
||||
simple_if_init $h1 192.0.2.1/28
|
||||
@@ -83,7 +47,7 @@ switch_create()
|
||||
|
||||
switch_destroy()
|
||||
{
|
||||
defprio_flush $swp1
|
||||
dcb app flush dev $swp1 default-prio
|
||||
ip addr del dev $swp1 192.0.2.2/28
|
||||
ip link set dev $swp1 down
|
||||
}
|
||||
@@ -124,7 +88,7 @@ __test_defprio()
|
||||
|
||||
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)
|
||||
mausezahn -q $h1 -d 100m -c 10 -t arp reply
|
||||
@@ -134,7 +98,7 @@ __test_defprio()
|
||||
check_err $? "Default priority $prio_install/$prio_observe: Expected to capture 10 packets, got $((t1 - t0))."
|
||||
log_test "Default priority $prio_install/$prio_observe"
|
||||
|
||||
defprio_uninstall $swp1 $prio_install
|
||||
dcb app del dev $swp1 default-prio $prio_install
|
||||
}
|
||||
|
||||
test_defprio()
|
||||
@@ -145,7 +109,7 @@ test_defprio()
|
||||
__test_defprio $prio $prio
|
||||
done
|
||||
|
||||
defprio_install $swp1 3
|
||||
dcb app add dev $swp1 default-prio 3
|
||||
__test_defprio 0 3
|
||||
__test_defprio 1 3
|
||||
__test_defprio 2 3
|
||||
@@ -153,7 +117,7 @@ test_defprio()
|
||||
__test_defprio 5 5
|
||||
__test_defprio 6 6
|
||||
__test_defprio 7 7
|
||||
defprio_uninstall $swp1 3
|
||||
dcb app del dev $swp1 default-prio 3
|
||||
}
|
||||
|
||||
trap cleanup EXIT
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
# | SW | | |
|
||||
# | +-|----------------------------------------------------------------|-+ |
|
||||
# | | + $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()
|
||||
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()
|
||||
{
|
||||
ip link add name br1 type bridge vlan_filtering 1
|
||||
@@ -81,17 +71,14 @@ switch_create()
|
||||
ip link set dev $swp2 master br1
|
||||
ip link set dev $swp2 up
|
||||
|
||||
lldptool -T -i $swp1 -V APP $(dscp_map 10) >/dev/null
|
||||
lldptool -T -i $swp2 -V APP $(dscp_map 20) >/dev/null
|
||||
lldpad_app_wait_set $swp1
|
||||
lldpad_app_wait_set $swp2
|
||||
dcb app add dev $swp1 dscp-prio 10:0 11:1 12:2 13:3 14:4 15:5 16:6 17:7
|
||||
dcb app add dev $swp2 dscp-prio 20:0 21:1 22:2 23:3 24:4 25:5 26:6 27:7
|
||||
}
|
||||
|
||||
switch_destroy()
|
||||
{
|
||||
lldptool -T -i $swp2 -V APP -d $(dscp_map 20) >/dev/null
|
||||
lldptool -T -i $swp1 -V APP -d $(dscp_map 10) >/dev/null
|
||||
lldpad_app_wait_del
|
||||
dcb app del dev $swp2 dscp-prio 20:0 21:1 22:2 23:3 24:4 25:5 26:6 27:7
|
||||
dcb app del dev $swp1 dscp-prio 10:0 11:1 12:2 13:3 14:4 15:5 16:6 17:7
|
||||
|
||||
ip link set dev $swp2 down
|
||||
ip link set dev $swp2 nomaster
|
||||
|
||||
@@ -94,16 +94,6 @@ h2_destroy()
|
||||
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()
|
||||
{
|
||||
simple_if_init $swp1 192.0.2.2/28
|
||||
@@ -112,17 +102,14 @@ switch_create()
|
||||
tc qdisc add dev $swp1 clsact
|
||||
tc qdisc add dev $swp2 clsact
|
||||
|
||||
lldptool -T -i $swp1 -V APP $(dscp_map 0) >/dev/null
|
||||
lldptool -T -i $swp2 -V APP $(dscp_map 0) >/dev/null
|
||||
lldpad_app_wait_set $swp1
|
||||
lldpad_app_wait_set $swp2
|
||||
dcb app add dev $swp1 dscp-prio 0:0 1:1 2:2 3:3 4:4 5:5 6:6 7:7
|
||||
dcb app add dev $swp2 dscp-prio 0:0 1:1 2:2 3:3 4:4 5:5 6:6 7:7
|
||||
}
|
||||
|
||||
switch_destroy()
|
||||
{
|
||||
lldptool -T -i $swp2 -V APP -d $(dscp_map 0) >/dev/null
|
||||
lldptool -T -i $swp1 -V APP -d $(dscp_map 0) >/dev/null
|
||||
lldpad_app_wait_del
|
||||
dcb app del dev $swp2 dscp-prio 0:0 1:1 2:2 3:3 4:4 5:5 6:6 7:7
|
||||
dcb app del dev $swp1 dscp-prio 0:0 1:1 2:2 3:3 4:4 5:5 6:6 7:7
|
||||
|
||||
tc qdisc del dev $swp2 clsact
|
||||
tc qdisc del dev $swp1 clsact
|
||||
@@ -265,13 +252,11 @@ test_dscp_leftover()
|
||||
{
|
||||
echo "Test that last removed DSCP rule is deconfigured correctly"
|
||||
|
||||
lldptool -T -i $swp2 -V APP -d $(dscp_map 0) >/dev/null
|
||||
lldpad_app_wait_del
|
||||
dcb app del dev $swp2 dscp-prio 0:0 1:1 2:2 3:3 4:4 5:5 6:6 7:7
|
||||
|
||||
__test_update 0 zero
|
||||
|
||||
lldptool -T -i $swp2 -V APP $(dscp_map 0) >/dev/null
|
||||
lldpad_app_wait_set $swp2
|
||||
dcb app add dev $swp2 dscp-prio 0:0 1:1 2:2 3:3 4:4 5:5 6:6 7:7
|
||||
}
|
||||
|
||||
trap cleanup EXIT
|
||||
|
||||
@@ -524,27 +524,6 @@ cmd_jq()
|
||||
[ ! -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()
|
||||
{
|
||||
if [ "${PAUSE_ON_CLEANUP}" = "yes" ]; then
|
||||
|
||||
Reference in New Issue
Block a user