selftests: test_vxlan_fdb_changelink: Convert to lib.sh

Instead of inlining equivalents, use lib.sh-provided primitives.
Use defer to manage vx lifetime.

This will make it easier to extend the test in the next patch.

Signed-off-by: Petr Machata <petrm@nvidia.com>
Reviewed-by: Ido Schimmel <idosch@nvidia.com>
Reviewed-by: Nikolay Aleksandrov <razor@blackwall.org>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
This commit is contained in:
Petr Machata 2025-02-14 17:18:23 +01:00 committed by Paolo Abeni
parent f802f172d7
commit 24adf47ea9

View File

@ -1,29 +1,38 @@
#!/bin/bash
# SPDX-License-Identifier: GPL-2.0
# Check FDB default-remote handling across "ip link set".
ALL_TESTS="
test_set_remote
"
source lib.sh
check_remotes()
{
local what=$1; shift
local N=$(bridge fdb sh dev vx | grep 00:00:00:00:00:00 | wc -l)
echo -ne "expected two remotes after $what\t"
if [[ $N != 2 ]]; then
echo "[FAIL]"
EXIT_STATUS=1
else
echo "[ OK ]"
fi
((N == 2))
check_err $? "expected 2 remotes after $what, got $N"
}
ip link add name vx up type vxlan id 2000 dstport 4789
bridge fdb ap dev vx 00:00:00:00:00:00 dst 192.0.2.20 self permanent
bridge fdb ap dev vx 00:00:00:00:00:00 dst 192.0.2.30 self permanent
check_remotes "fdb append"
# Check FDB default-remote handling across "ip link set".
test_set_remote()
{
RET=0
ip link set dev vx type vxlan remote 192.0.2.30
check_remotes "link set"
ip_link_add vx up type vxlan id 2000 dstport 4789
bridge fdb ap dev vx 00:00:00:00:00:00 dst 192.0.2.20 self permanent
bridge fdb ap dev vx 00:00:00:00:00:00 dst 192.0.2.30 self permanent
check_remotes "fdb append"
ip link set dev vx type vxlan remote 192.0.2.30
check_remotes "link set"
log_test 'FDB default-remote handling across "ip link set"'
}
trap defer_scopes_cleanup EXIT
tests_run
ip link del dev vx
exit $EXIT_STATUS