Skip to content

Commit

Permalink
selftests: mptcp: dump userspace addrs list
Browse files Browse the repository at this point in the history
This patch adds a new helper userspace_pm_dump() to dump addresses
for the userspace PM. Use this helper to check whether an ID 0 subflow
is listed in the output of dump command after creating an ID 0 subflow
in "userspace pm create id 0 subflow" test. Dump userspace PM addresses
list in "userspace pm add & remove address" test and in "userspace pm
create destroy subflow" test.

Signed-off-by: Geliang Tang <[email protected]>
  • Loading branch information
Geliang Tang authored and intel-lab-lkp committed Feb 20, 2024
1 parent 6f36557 commit 6873d18
Showing 1 changed file with 61 additions and 0 deletions.
61 changes: 61 additions & 0 deletions tools/testing/selftests/net/mptcp/mptcp_join.sh
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ cinfail=""
cinsent=""
tmpfile=""
cout=""
err=""
capout=""
ns1=""
ns2=""
Expand Down Expand Up @@ -163,6 +164,7 @@ init() {
cin=$(mktemp)
cinsent=$(mktemp)
cout=$(mktemp)
err=$(mktemp)
evts_ns1=$(mktemp)
evts_ns2=$(mktemp)

Expand All @@ -178,6 +180,7 @@ cleanup()
rm -f "$sin" "$sout" "$cinsent" "$cinfail"
rm -f "$tmpfile"
rm -rf $evts_ns1 $evts_ns2
rm -f "$err"
cleanup_partial
}

Expand Down Expand Up @@ -3330,6 +3333,50 @@ userspace_pm_rm_sf()
wait_rm_sf $1 "${cnt}"
}

check_output()
{
local cmd="$1"
local expected="$2"
local msg="$3"
local rc=0

mptcp_lib_check_output "${err}" "${cmd}" "${expected}" || rc=${?}
if [ ${rc} -eq 2 ]; then
fail_test "fail to check output # error ${rc}"
elif [ ${rc} -eq 0 ]; then
print_ok
elif [ ${rc} -eq 1 ]; then
fail_test "fail to check output # different output"
fi
}

# $1: ns
userspace_pm_dump()
{
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 dump token $tk
}

userspace_pm_chk_dump_addr()
{
local ns="${1}"
local exp="${2}"
local check="${3}"

print_check "dump addrs ${check}"

if mptcp_lib_kallsyms_has "mptcp_userspace_pm_dump_addr$"; then
check_output "userspace_pm_dump ${ns}" "${exp}"
else
print_skip
fi
}

userspace_tests()
{
# userspace pm type prevents add_addr
Expand Down Expand Up @@ -3421,10 +3468,16 @@ userspace_tests()
chk_mptcp_info subflows 2 subflows 2
chk_subflows_total 3 3
chk_mptcp_info add_addr_signal 2 add_addr_accepted 2
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_rm_addr $ns1 10
userspace_pm_rm_sf $ns1 "::ffff:10.0.2.1" $SUB_ESTABLISHED
userspace_pm_chk_dump_addr "${ns1}" \
"id 20 flags signal 10.0.3.1" "after rm_addr 10"
userspace_pm_rm_addr $ns1 20
userspace_pm_rm_sf $ns1 10.0.3.1 $SUB_ESTABLISHED
userspace_pm_chk_dump_addr "${ns1}" "" "after rm_addr 20"
chk_rm_nr 2 2 invert
chk_mptcp_info subflows 0 subflows 0
chk_subflows_total 1 1
Expand All @@ -3445,8 +3498,14 @@ userspace_tests()
chk_join_nr 1 1 1
chk_mptcp_info subflows 1 subflows 1
chk_subflows_total 2 2
userspace_pm_chk_dump_addr "${ns2}" \
"id 20 flags subflow 10.0.3.2" \
"subflow"
userspace_pm_rm_addr $ns2 20
userspace_pm_rm_sf $ns2 10.0.3.2 $SUB_ESTABLISHED
userspace_pm_chk_dump_addr "${ns2}" \
"" \
"after rm_addr 20"
chk_rm_nr 1 1
chk_mptcp_info subflows 0 subflows 0
chk_subflows_total 1 1
Expand All @@ -3466,6 +3525,8 @@ userspace_tests()
chk_mptcp_info subflows 0 subflows 0
chk_subflows_total 1 1
userspace_pm_add_sf $ns2 10.0.3.2 0
userspace_pm_chk_dump_addr "${ns2}" \
"id 0 flags subflow 10.0.3.2" "id 0 subflow"
chk_join_nr 1 1 1
chk_mptcp_info subflows 1 subflows 1
chk_subflows_total 2 2
Expand Down

0 comments on commit 6873d18

Please sign in to comment.