From: Geliang Tang <tanggeliang@kylinos.cn>
The address that needs to change flags can only be identified by an address
ID in change_endpoint() helper. This patch adds another changing flags
helper named change_address() to support for passing an IP address directly
to it.
Usage:
Address ID - change_endpoint $ns id $id $flags
IP address - change_address $ns $addr $flags
Use this new helper in pm_netlink.sh to replace all 'pm_nl_ctl set'
commands.
Signed-off-by: Geliang Tang <tanggeliang@kylinos.cn>
---
tools/testing/selftests/net/mptcp/mptcp_lib.sh | 13 +++++++++++++
tools/testing/selftests/net/mptcp/pm_netlink.sh | 4 ++--
2 files changed, 15 insertions(+), 2 deletions(-)
diff --git a/tools/testing/selftests/net/mptcp/mptcp_lib.sh b/tools/testing/selftests/net/mptcp/mptcp_lib.sh
index 86b8ad092611..9ba37d12d960 100644
--- a/tools/testing/selftests/net/mptcp/mptcp_lib.sh
+++ b/tools/testing/selftests/net/mptcp/mptcp_lib.sh
@@ -576,3 +576,16 @@ mptcp_lib_pm_nl_get_endpoint() {
ip netns exec "${ns}" ./pm_nl_ctl get "${id}"
fi
}
+
+mptcp_lib_pm_nl_change_address() {
+ local ns=${1}
+ local addr=${2}
+ local flags=${3}
+
+ if mptcp_lib_is_ip_mptcp; then
+ # shellcheck disable=SC2086 # blanks in flags, no double quote
+ ip -n "${ns}" mptcp endpoint change "${addr}" ${flags//","/" "}
+ else
+ ip netns exec "${ns}" ./pm_nl_ctl set "${addr}" flags "${flags}"
+ fi
+}
diff --git a/tools/testing/selftests/net/mptcp/pm_netlink.sh b/tools/testing/selftests/net/mptcp/pm_netlink.sh
index d349cfb8834f..2e889fbd7fcd 100755
--- a/tools/testing/selftests/net/mptcp/pm_netlink.sh
+++ b/tools/testing/selftests/net/mptcp/pm_netlink.sh
@@ -178,11 +178,11 @@ check "ip netns exec $ns1 ./pm_nl_ctl dump" \
ip netns exec $ns1 ./pm_nl_ctl flush
ip netns exec $ns1 ./pm_nl_ctl add 10.0.1.1 flags subflow
-ip netns exec $ns1 ./pm_nl_ctl set 10.0.1.1 flags backup
+mptcp_lib_pm_nl_change_address "${ns1}" 10.0.1.1 backup
check "ip netns exec $ns1 ./pm_nl_ctl dump" \
"$(mptcp_lib_format_endpoints "1,10.0.1.1,subflow backup")" \
"set flags (backup)"
-ip netns exec $ns1 ./pm_nl_ctl set 10.0.1.1 flags nobackup
+mptcp_lib_pm_nl_change_address "${ns1}" 10.0.1.1 nobackup
check "ip netns exec $ns1 ./pm_nl_ctl dump" \
"$(mptcp_lib_format_endpoints "1,10.0.1.1,subflow")" \
" (nobackup)"
--
2.40.1