Skip to content

Commit

Permalink
selftests: mptcp: add the MP_PRIO testcases
Browse files Browse the repository at this point in the history
This patch added the MP_PRIO testcases:

Add a new argument bkup for run_tests and do_transfer, it can be set as
"backup" or "nobackup", the default value is "".

Add a new function chk_prio_nr to check the MP_PRIO related MIB counters.

The output looks like this:

29 single subflow, backup      syn[ ok ] - synack[ ok ] - ack[ ok ]
                               ptx[ ok ] - prx   [ ok ]
30 single address, backup      syn[ ok ] - synack[ ok ] - ack[ ok ]
                               add[ ok ] - echo  [ ok ]
                               ptx[ ok ] - prx   [ ok ]

Reviewed-by: Mat Martineau <mathew.j.martineau@linux.intel.com>
Signed-off-by: Geliang Tang <geliangtang@gmail.com>
  • Loading branch information
geliangtang authored and matttbe committed Dec 16, 2020
1 parent 6d16766 commit 6a9e7c4
Showing 1 changed file with 71 additions and 1 deletion.
72 changes: 71 additions & 1 deletion tools/testing/selftests/net/mptcp/mptcp_join.sh
Original file line number Diff line number Diff line change
Expand Up @@ -212,6 +212,7 @@ do_transfer()
rm_nr_ns1="$7"
rm_nr_ns2="$8"
speed="$9"
bkup="${10}"

port=$((10000+$TEST_COUNT))
TEST_COUNT=$((TEST_COUNT+1))
Expand Down Expand Up @@ -297,6 +298,18 @@ do_transfer()
fi
fi

if [ ! -z $bkup ]; then
sleep 1
for netns in "$ns1" "$ns2"; do
dump=(`ip netns exec $netns ./pm_nl_ctl dump`)
if [ ${#dump[@]} -gt 0 ]; then
addr=${dump[${#dump[@]} - 1]}
backup="ip netns exec $netns ./pm_nl_ctl set $addr flags $bkup"
$backup
fi
done
fi

wait $cpid
retc=$?
wait $spid
Expand Down Expand Up @@ -358,6 +371,7 @@ run_tests()
rm_nr_ns1="${5:-0}"
rm_nr_ns2="${6:-0}"
speed="${7:-fast}"
bkup="${8:-""}"
lret=0
oldin=""

Expand All @@ -372,7 +386,7 @@ run_tests()
fi

do_transfer ${listener_ns} ${connector_ns} MPTCP MPTCP ${connect_addr} \
${test_linkfail} ${rm_nr_ns1} ${rm_nr_ns2} ${speed}
${test_linkfail} ${rm_nr_ns1} ${rm_nr_ns2} ${speed} ${bkup}
lret=$?

if [ "$test_linkfail" -eq 1 ];then
Expand Down Expand Up @@ -509,6 +523,43 @@ chk_rm_nr()
fi
}

chk_prio_nr()
{
local mp_prio_nr_tx=$1
local mp_prio_nr_rx=$2
local count
local dump_stats

printf "%-39s %s" " " "ptx"
count=`ip netns exec $ns1 nstat -as | grep MPTcpExtMPPrioTx | awk '{print $2}'`
[ -z "$count" ] && count=0
if [ "$count" != "$mp_prio_nr_tx" ]; then
echo "[fail] got $count MP_PRIO[s] TX expected $mp_prio_nr_tx"
ret=1
dump_stats=1
else
echo -n "[ ok ]"
fi

echo -n " - prx "
count=`ip netns exec $ns1 nstat -as | grep MPTcpExtMPPrioRx | awk '{print $2}'`
[ -z "$count" ] && count=0
if [ "$count" != "$mp_prio_nr_rx" ]; then
echo "[fail] got $count MP_PRIO[s] RX expected $mp_prio_nr_rx"
ret=1
dump_stats=1
else
echo "[ ok ]"
fi

if [ "${dump_stats}" = 1 ]; then
echo Server ns stats
ip netns exec $ns1 nstat -as | grep MPTcp
echo Client ns stats
ip netns exec $ns2 nstat -as | grep MPTcp
fi
}

sin=$(mktemp)
sout=$(mktemp)
cin=$(mktemp)
Expand Down Expand Up @@ -739,6 +790,25 @@ chk_join_nr "remove subflow and signal IPv6" 2 2 2
chk_add_nr 1 1
chk_rm_nr 1 1

# single subflow, backup
reset
ip netns exec $ns1 ./pm_nl_ctl limits 0 1
ip netns exec $ns2 ./pm_nl_ctl limits 0 1
ip netns exec $ns2 ./pm_nl_ctl add 10.0.3.2 flags subflow,backup
run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow nobackup
chk_join_nr "single subflow, backup" 1 1 1
chk_prio_nr 0 1

# single address, backup
reset
ip netns exec $ns1 ./pm_nl_ctl limits 0 1
ip netns exec $ns1 ./pm_nl_ctl add 10.0.2.1 flags signal
ip netns exec $ns2 ./pm_nl_ctl limits 1 1
run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow backup
chk_join_nr "single address, backup" 1 1 1
chk_add_nr 1 1
chk_prio_nr 1 0

# single subflow, syncookies
reset_with_cookies
ip netns exec $ns1 ./pm_nl_ctl limits 0 1
Expand Down

0 comments on commit 6a9e7c4

Please sign in to comment.