mirror of
https://github.com/torvalds/linux.git
synced 2024-11-30 08:01:59 +00:00
selftests: mptcp: userspace pm subflow tests
This patch adds userspace pm subflow tests support for mptcp_join.sh script. Add userspace pm create subflow and destroy test cases in userspace_tests(). Reviewed-by: Mat Martineau <mathew.j.martineau@linux.intel.com> Signed-off-by: Geliang Tang <geliang.tang@suse.com> Signed-off-by: Mat Martineau <mathew.j.martineau@linux.intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
97040cf980
commit
5e986ec468
@ -663,6 +663,8 @@ do_transfer()
|
||||
local userspace_pm=0
|
||||
local evts_ns1
|
||||
local evts_ns1_pid
|
||||
local evts_ns2
|
||||
local evts_ns2_pid
|
||||
|
||||
:> "$cout"
|
||||
:> "$sout"
|
||||
@ -708,13 +710,20 @@ do_transfer()
|
||||
# disconnect
|
||||
extra_args="$extra_args -I ${addr_nr_ns2:10}"
|
||||
addr_nr_ns2=0
|
||||
elif [[ "${addr_nr_ns2}" = "userspace_"* ]]; then
|
||||
userspace_pm=1
|
||||
addr_nr_ns2=${addr_nr_ns2:10}
|
||||
fi
|
||||
|
||||
if [ $userspace_pm -eq 1 ]; then
|
||||
evts_ns1=$(mktemp)
|
||||
evts_ns2=$(mktemp)
|
||||
:> "$evts_ns1"
|
||||
:> "$evts_ns2"
|
||||
ip netns exec ${listener_ns} ./pm_nl_ctl events >> "$evts_ns1" 2>&1 &
|
||||
evts_ns1_pid=$!
|
||||
ip netns exec ${connector_ns} ./pm_nl_ctl events >> "$evts_ns2" 2>&1 &
|
||||
evts_ns2_pid=$!
|
||||
fi
|
||||
|
||||
local local_addr
|
||||
@ -836,6 +845,8 @@ do_transfer()
|
||||
if [ $addr_nr_ns2 -gt 0 ]; then
|
||||
local add_nr_ns2=${addr_nr_ns2}
|
||||
local counter=3
|
||||
local id=20
|
||||
local tk da dp sp
|
||||
while [ $add_nr_ns2 -gt 0 ]; do
|
||||
local addr
|
||||
if is_v6 "${connect_addr}"; then
|
||||
@ -843,9 +854,23 @@ do_transfer()
|
||||
else
|
||||
addr="10.0.$counter.2"
|
||||
fi
|
||||
pm_nl_add_endpoint $ns2 $addr flags $flags
|
||||
if [ $userspace_pm -eq 0 ]; then
|
||||
pm_nl_add_endpoint $ns2 $addr flags $flags
|
||||
else
|
||||
tk=$(sed -n 's/.*\(token:\)\([[:digit:]]*\).*$/\2/p;q' "$evts_ns2")
|
||||
da=$(sed -n 's/.*\(daddr4:\)\([0-9.]*\).*$/\2/p;q' "$evts_ns2")
|
||||
dp=$(sed -n 's/.*\(dport:\)\([[:digit:]]*\).*$/\2/p;q' "$evts_ns2")
|
||||
ip netns exec ${connector_ns} ./pm_nl_ctl csf lip $addr lid $id \
|
||||
rip $da rport $dp token $tk
|
||||
sleep 1
|
||||
sp=$(grep "type:10" "$evts_ns2" |
|
||||
sed -n 's/.*\(sport:\)\([[:digit:]]*\).*$/\2/p;q')
|
||||
ip netns exec ${connector_ns} ./pm_nl_ctl dsf lip $addr lport $sp \
|
||||
rip $da rport $dp token $tk
|
||||
fi
|
||||
counter=$((counter + 1))
|
||||
add_nr_ns2=$((add_nr_ns2 - 1))
|
||||
id=$((id + 1))
|
||||
done
|
||||
elif [ $addr_nr_ns2 -lt 0 ]; then
|
||||
local rm_nr_ns2=$((-addr_nr_ns2))
|
||||
@ -924,7 +949,8 @@ do_transfer()
|
||||
|
||||
if [ $userspace_pm -eq 1 ]; then
|
||||
kill_wait $evts_ns1_pid
|
||||
rm -rf $evts_ns1
|
||||
kill_wait $evts_ns2_pid
|
||||
rm -rf $evts_ns1 $evts_ns2
|
||||
fi
|
||||
|
||||
NSTAT_HISTORY=/tmp/${listener_ns}.nstat ip netns exec ${listener_ns} \
|
||||
@ -2857,6 +2883,15 @@ userspace_tests()
|
||||
chk_add_nr 1 1
|
||||
chk_rm_nr 1 1 invert
|
||||
fi
|
||||
|
||||
# userspace pm create destroy subflow
|
||||
if reset "userspace pm create destroy subflow"; then
|
||||
set_userspace_pm $ns2
|
||||
pm_nl_set_limits $ns1 0 1
|
||||
run_tests $ns1 $ns2 10.0.1.1 0 0 userspace_1 slow
|
||||
chk_join_nr 1 1 1
|
||||
chk_rm_nr 0 1
|
||||
fi
|
||||
}
|
||||
|
||||
endpoint_tests()
|
||||
|
Loading…
Reference in New Issue
Block a user