selftests: mptcp: userspace pm get addr tests
authorGeliang Tang <tanggeliang@kylinos.cn>
Fri, 1 Mar 2024 18:18:39 +0000 (19:18 +0100)
committerDavid S. Miller <davem@davemloft.net>
Mon, 4 Mar 2024 13:07:46 +0000 (13:07 +0000)
This patch adds a new helper userspace_pm_get_addr() in mptcp_join.sh.
In it, parse the token value from the output of 'pm_nl_ctl events', then
pass it to pm_nl_ctl get_addr command. Use this helper in userspace pm
dump tests.

Signed-off-by: Geliang Tang <tanggeliang@kylinos.cn>
Reviewed-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Reviewed-by: Mat Martineau <martineau@kernel.org>
Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
tools/testing/selftests/net/mptcp/mptcp_join.sh

index 8b64306427065c2521b700fd0652dca023aa8713..955ee651dcd5d783e3249ce91fcea9c0ca954d1c 100755 (executable)
@@ -3388,6 +3388,18 @@ userspace_pm_dump()
        ip netns exec $1 ./pm_nl_ctl dump token $tk
 }
 
+# $1: ns ; $2: id
+userspace_pm_get_addr()
+{
+       local evts=$evts_ns1
+       local tk
+
+       [ "$1" == "$ns2" ] && evts=$evts_ns2
+       tk=$(mptcp_lib_evts_get_info token "$evts")
+
+       ip netns exec $1 ./pm_nl_ctl get $2 token $tk
+}
+
 userspace_pm_chk_dump_addr()
 {
        local ns="${1}"
@@ -3403,6 +3415,21 @@ userspace_pm_chk_dump_addr()
        fi
 }
 
+userspace_pm_chk_get_addr()
+{
+       local ns="${1}"
+       local id="${2}"
+       local exp="${3}"
+
+       print_check "get id ${id} addr"
+
+       if mptcp_lib_kallsyms_has "mptcp_userspace_pm_get_addr$"; then
+               check_output "userspace_pm_get_addr ${ns} ${id}" "${exp}"
+       else
+               print_skip
+       fi
+}
+
 userspace_tests()
 {
        # userspace pm type prevents add_addr
@@ -3497,6 +3524,8 @@ userspace_tests()
                userspace_pm_chk_dump_addr "${ns1}" \
                        $'id 10 flags signal 10.0.2.1\nid 20 flags signal 10.0.3.1' \
                        "signal"
+               userspace_pm_chk_get_addr "${ns1}" "10" "id 10 flags signal 10.0.2.1"
+               userspace_pm_chk_get_addr "${ns1}" "20" "id 20 flags signal 10.0.3.1"
                userspace_pm_rm_addr $ns1 10
                userspace_pm_rm_sf $ns1 "::ffff:10.0.2.1" $SUB_ESTABLISHED
                userspace_pm_chk_dump_addr "${ns1}" \
@@ -3527,6 +3556,7 @@ userspace_tests()
                userspace_pm_chk_dump_addr "${ns2}" \
                        "id 20 flags subflow 10.0.3.2" \
                        "subflow"
+               userspace_pm_chk_get_addr "${ns2}" "20" "id 20 flags subflow 10.0.3.2"
                userspace_pm_rm_addr $ns2 20
                userspace_pm_rm_sf $ns2 10.0.3.2 $SUB_ESTABLISHED
                userspace_pm_chk_dump_addr "${ns2}" \