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 <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
d0d9c8f2df
commit
97040cf980
1 changed files with 48 additions and 1 deletions
|
@ -455,6 +455,12 @@ wait_mpj()
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
|
kill_wait()
|
||||||
|
{
|
||||||
|
kill $1 > /dev/null 2>&1
|
||||||
|
wait $1 2>/dev/null
|
||||||
|
}
|
||||||
|
|
||||||
pm_nl_set_limits()
|
pm_nl_set_limits()
|
||||||
{
|
{
|
||||||
local ns=$1
|
local ns=$1
|
||||||
|
@ -654,6 +660,9 @@ do_transfer()
|
||||||
|
|
||||||
local port=$((10000 + TEST_COUNT - 1))
|
local port=$((10000 + TEST_COUNT - 1))
|
||||||
local cappid
|
local cappid
|
||||||
|
local userspace_pm=0
|
||||||
|
local evts_ns1
|
||||||
|
local evts_ns1_pid
|
||||||
|
|
||||||
:> "$cout"
|
:> "$cout"
|
||||||
:> "$sout"
|
:> "$sout"
|
||||||
|
@ -690,12 +699,24 @@ do_transfer()
|
||||||
extra_args="-r ${speed:6}"
|
extra_args="-r ${speed:6}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [[ "${addr_nr_ns1}" = "userspace_"* ]]; then
|
||||||
|
userspace_pm=1
|
||||||
|
addr_nr_ns1=${addr_nr_ns1:10}
|
||||||
|
fi
|
||||||
|
|
||||||
if [[ "${addr_nr_ns2}" = "fastclose_"* ]]; then
|
if [[ "${addr_nr_ns2}" = "fastclose_"* ]]; then
|
||||||
# disconnect
|
# disconnect
|
||||||
extra_args="$extra_args -I ${addr_nr_ns2:10}"
|
extra_args="$extra_args -I ${addr_nr_ns2:10}"
|
||||||
addr_nr_ns2=0
|
addr_nr_ns2=0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ $userspace_pm -eq 1 ]; then
|
||||||
|
evts_ns1=$(mktemp)
|
||||||
|
:> "$evts_ns1"
|
||||||
|
ip netns exec ${listener_ns} ./pm_nl_ctl events >> "$evts_ns1" 2>&1 &
|
||||||
|
evts_ns1_pid=$!
|
||||||
|
fi
|
||||||
|
|
||||||
local local_addr
|
local local_addr
|
||||||
if is_v6 "${connect_addr}"; then
|
if is_v6 "${connect_addr}"; then
|
||||||
local_addr="::"
|
local_addr="::"
|
||||||
|
@ -748,6 +769,8 @@ do_transfer()
|
||||||
if [ $addr_nr_ns1 -gt 0 ]; then
|
if [ $addr_nr_ns1 -gt 0 ]; then
|
||||||
local counter=2
|
local counter=2
|
||||||
local add_nr_ns1=${addr_nr_ns1}
|
local add_nr_ns1=${addr_nr_ns1}
|
||||||
|
local id=10
|
||||||
|
local tk
|
||||||
while [ $add_nr_ns1 -gt 0 ]; do
|
while [ $add_nr_ns1 -gt 0 ]; do
|
||||||
local addr
|
local addr
|
||||||
if is_v6 "${connect_addr}"; then
|
if is_v6 "${connect_addr}"; then
|
||||||
|
@ -755,9 +778,18 @@ do_transfer()
|
||||||
else
|
else
|
||||||
addr="10.0.$counter.1"
|
addr="10.0.$counter.1"
|
||||||
fi
|
fi
|
||||||
pm_nl_add_endpoint $ns1 $addr flags signal
|
if [ $userspace_pm -eq 0 ]; then
|
||||||
|
pm_nl_add_endpoint $ns1 $addr flags signal
|
||||||
|
else
|
||||||
|
tk=$(sed -n 's/.*\(token:\)\([[:digit:]]*\).*$/\2/p;q' "$evts_ns1")
|
||||||
|
ip netns exec ${listener_ns} ./pm_nl_ctl ann $addr token $tk id $id
|
||||||
|
sleep 1
|
||||||
|
ip netns exec ${listener_ns} ./pm_nl_ctl rem token $tk id $id
|
||||||
|
fi
|
||||||
|
|
||||||
counter=$((counter + 1))
|
counter=$((counter + 1))
|
||||||
add_nr_ns1=$((add_nr_ns1 - 1))
|
add_nr_ns1=$((add_nr_ns1 - 1))
|
||||||
|
id=$((id + 1))
|
||||||
done
|
done
|
||||||
elif [ $addr_nr_ns1 -lt 0 ]; then
|
elif [ $addr_nr_ns1 -lt 0 ]; then
|
||||||
local rm_nr_ns1=$((-addr_nr_ns1))
|
local rm_nr_ns1=$((-addr_nr_ns1))
|
||||||
|
@ -890,6 +922,11 @@ do_transfer()
|
||||||
kill $cappid
|
kill $cappid
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ $userspace_pm -eq 1 ]; then
|
||||||
|
kill_wait $evts_ns1_pid
|
||||||
|
rm -rf $evts_ns1
|
||||||
|
fi
|
||||||
|
|
||||||
NSTAT_HISTORY=/tmp/${listener_ns}.nstat ip netns exec ${listener_ns} \
|
NSTAT_HISTORY=/tmp/${listener_ns}.nstat ip netns exec ${listener_ns} \
|
||||||
nstat | grep Tcp > /tmp/${listener_ns}.out
|
nstat | grep Tcp > /tmp/${listener_ns}.out
|
||||||
NSTAT_HISTORY=/tmp/${connector_ns}.nstat ip netns exec ${connector_ns} \
|
NSTAT_HISTORY=/tmp/${connector_ns}.nstat ip netns exec ${connector_ns} \
|
||||||
|
@ -2810,6 +2847,16 @@ userspace_tests()
|
||||||
chk_join_nr 0 0 0
|
chk_join_nr 0 0 0
|
||||||
chk_rm_nr 0 0
|
chk_rm_nr 0 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# userspace pm add & remove address
|
||||||
|
if reset "userspace pm add & remove address"; then
|
||||||
|
set_userspace_pm $ns1
|
||||||
|
pm_nl_set_limits $ns2 1 1
|
||||||
|
run_tests $ns1 $ns2 10.0.1.1 0 userspace_1 0 slow
|
||||||
|
chk_join_nr 1 1 1
|
||||||
|
chk_add_nr 1 1
|
||||||
|
chk_rm_nr 1 1 invert
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
endpoint_tests()
|
endpoint_tests()
|
||||||
|
|
Loading…
Add table
Reference in a new issue