Skip to content

Commit 97040cf

Browse files
geliangtangdavem330
authored andcommitted
selftests: mptcp: userspace pm address tests
This patch adds userspace pm tests support for mptcp_join.sh script. Add userspace pm add_addr and rm_addr test cases in userspace_tests(). Reviewed-by: Mat Martineau <[email protected]> Signed-off-by: Geliang Tang <[email protected]> Signed-off-by: Mat Martineau <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent d0d9c8f commit 97040cf

File tree

1 file changed

+48
-1
lines changed

1 file changed

+48
-1
lines changed

tools/testing/selftests/net/mptcp/mptcp_join.sh

Lines changed: 48 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -455,6 +455,12 @@ wait_mpj()
455455
done
456456
}
457457

458+
kill_wait()
459+
{
460+
kill $1 > /dev/null 2>&1
461+
wait $1 2>/dev/null
462+
}
463+
458464
pm_nl_set_limits()
459465
{
460466
local ns=$1
@@ -654,6 +660,9 @@ do_transfer()
654660

655661
local port=$((10000 + TEST_COUNT - 1))
656662
local cappid
663+
local userspace_pm=0
664+
local evts_ns1
665+
local evts_ns1_pid
657666

658667
:> "$cout"
659668
:> "$sout"
@@ -690,12 +699,24 @@ do_transfer()
690699
extra_args="-r ${speed:6}"
691700
fi
692701

702+
if [[ "${addr_nr_ns1}" = "userspace_"* ]]; then
703+
userspace_pm=1
704+
addr_nr_ns1=${addr_nr_ns1:10}
705+
fi
706+
693707
if [[ "${addr_nr_ns2}" = "fastclose_"* ]]; then
694708
# disconnect
695709
extra_args="$extra_args -I ${addr_nr_ns2:10}"
696710
addr_nr_ns2=0
697711
fi
698712

713+
if [ $userspace_pm -eq 1 ]; then
714+
evts_ns1=$(mktemp)
715+
:> "$evts_ns1"
716+
ip netns exec ${listener_ns} ./pm_nl_ctl events >> "$evts_ns1" 2>&1 &
717+
evts_ns1_pid=$!
718+
fi
719+
699720
local local_addr
700721
if is_v6 "${connect_addr}"; then
701722
local_addr="::"
@@ -748,16 +769,27 @@ do_transfer()
748769
if [ $addr_nr_ns1 -gt 0 ]; then
749770
local counter=2
750771
local add_nr_ns1=${addr_nr_ns1}
772+
local id=10
773+
local tk
751774
while [ $add_nr_ns1 -gt 0 ]; do
752775
local addr
753776
if is_v6 "${connect_addr}"; then
754777
addr="dead:beef:$counter::1"
755778
else
756779
addr="10.0.$counter.1"
757780
fi
758-
pm_nl_add_endpoint $ns1 $addr flags signal
781+
if [ $userspace_pm -eq 0 ]; then
782+
pm_nl_add_endpoint $ns1 $addr flags signal
783+
else
784+
tk=$(sed -n 's/.*\(token:\)\([[:digit:]]*\).*$/\2/p;q' "$evts_ns1")
785+
ip netns exec ${listener_ns} ./pm_nl_ctl ann $addr token $tk id $id
786+
sleep 1
787+
ip netns exec ${listener_ns} ./pm_nl_ctl rem token $tk id $id
788+
fi
789+
759790
counter=$((counter + 1))
760791
add_nr_ns1=$((add_nr_ns1 - 1))
792+
id=$((id + 1))
761793
done
762794
elif [ $addr_nr_ns1 -lt 0 ]; then
763795
local rm_nr_ns1=$((-addr_nr_ns1))
@@ -890,6 +922,11 @@ do_transfer()
890922
kill $cappid
891923
fi
892924

925+
if [ $userspace_pm -eq 1 ]; then
926+
kill_wait $evts_ns1_pid
927+
rm -rf $evts_ns1
928+
fi
929+
893930
NSTAT_HISTORY=/tmp/${listener_ns}.nstat ip netns exec ${listener_ns} \
894931
nstat | grep Tcp > /tmp/${listener_ns}.out
895932
NSTAT_HISTORY=/tmp/${connector_ns}.nstat ip netns exec ${connector_ns} \
@@ -2810,6 +2847,16 @@ userspace_tests()
28102847
chk_join_nr 0 0 0
28112848
chk_rm_nr 0 0
28122849
fi
2850+
2851+
# userspace pm add & remove address
2852+
if reset "userspace pm add & remove address"; then
2853+
set_userspace_pm $ns1
2854+
pm_nl_set_limits $ns2 1 1
2855+
run_tests $ns1 $ns2 10.0.1.1 0 userspace_1 0 slow
2856+
chk_join_nr 1 1 1
2857+
chk_add_nr 1 1
2858+
chk_rm_nr 1 1 invert
2859+
fi
28132860
}
28142861

28152862
endpoint_tests()

0 commit comments

Comments
 (0)