Commit 26516e10 authored by Geliang Tang's avatar Geliang Tang Committed by Jakub Kicinski
Browse files

selftests: mptcp: add more arguments for chk_join_nr



This patch added five more arguments for chk_join_nr(). The default
values of them are all zero.

The first two, csum_ns1 and csum_ns1, are passed to chk_csum_nr(), to
check the mib counters of the checksum errors in ns1 and ns2. A '+'
can be added into this two arguments to represent that multiple
checksum errors are allowed when doing this check. For example,

        chk_csum_nr "" +2 +2

indicates that two or more checksum errors are allowed in both ns1 and
ns2.

The remaining two, fail_nr and rst_nr, are passed to chk_fail_nr() and
chk_rst_nr() respectively, to check the sending and receiving mib
counters of MP_FAIL and MP_RST.

Also did some cleanups in chk_fail_nr(), renamed two local variables
and updated the output message.

Signed-off-by: default avatarGeliang Tang <geliang.tang@suse.com>
Signed-off-by: default avatarMat Martineau <mathew.j.martineau@linux.intel.com>
Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 8117dac3
Loading
Loading
Loading
Loading
+33 −14
Original line number Diff line number Diff line
@@ -766,8 +766,21 @@ dump_stats()
chk_csum_nr()
{
	local msg=${1:-""}
	local csum_ns1=${2:-0}
	local csum_ns2=${3:-0}
	local count
	local dump_stats
	local allow_multi_errors_ns1=0
	local allow_multi_errors_ns2=0

	if [[ "${csum_ns1}" = "+"* ]]; then
		allow_multi_errors_ns1=1
		csum_ns1=${csum_ns1:1}
	fi
	if [[ "${csum_ns2}" = "+"* ]]; then
		allow_multi_errors_ns2=1
		csum_ns2=${csum_ns2:1}
	fi

	if [ ! -z "$msg" ]; then
		printf "%03u" "$TEST_COUNT"
@@ -777,8 +790,9 @@ chk_csum_nr()
	printf " %-36s %s" "$msg" "sum"
	count=`ip netns exec $ns1 nstat -as | grep MPTcpExtDataCsumErr | awk '{print $2}'`
	[ -z "$count" ] && count=0
	if [ "$count" != 0 ]; then
		echo "[fail] got $count data checksum error[s] expected 0"
	if [ "$count" != $csum_ns1 -a $allow_multi_errors_ns1 -eq 0 ] ||
	   [ "$count" -lt $csum_ns1 -a $allow_multi_errors_ns1 -eq 1 ]; then
		echo "[fail] got $count data checksum error[s] expected $csum_ns1"
		ret=1
		dump_stats=1
	else
@@ -787,8 +801,9 @@ chk_csum_nr()
	echo -n " - csum  "
	count=`ip netns exec $ns2 nstat -as | grep MPTcpExtDataCsumErr | awk '{print $2}'`
	[ -z "$count" ] && count=0
	if [ "$count" != 0 ]; then
		echo "[fail] got $count data checksum error[s] expected 0"
	if [ "$count" != $csum_ns2 -a $allow_multi_errors_ns2 -eq 0 ] ||
	   [ "$count" -lt $csum_ns2 -a $allow_multi_errors_ns2 -eq 1 ]; then
		echo "[fail] got $count data checksum error[s] expected $csum_ns2"
		ret=1
		dump_stats=1
	else
@@ -799,27 +814,27 @@ chk_csum_nr()

chk_fail_nr()
{
	local mp_fail_nr_tx=$1
	local mp_fail_nr_rx=$2
	local fail_tx=$1
	local fail_rx=$2
	local count
	local dump_stats

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

	echo -n " - frx   "
	echo -n " - failrx"
	count=`ip netns exec $ns2 nstat -as | grep MPTcpExtMPFailRx | awk '{print $2}'`
	[ -z "$count" ] && count=0
	if [ "$count" != "$mp_fail_nr_rx" ]; then
		echo "[fail] got $count MP_FAIL[s] RX expected $mp_fail_nr_rx"
	if [ "$count" != "$fail_rx" ]; then
		echo "[fail] got $count MP_FAIL[s] RX expected $fail_rx"
		ret=1
		dump_stats=1
	else
@@ -911,6 +926,10 @@ chk_join_nr()
	local syn_nr=$2
	local syn_ack_nr=$3
	local ack_nr=$4
	local csum_ns1=${5:-0}
	local csum_ns2=${6:-0}
	local fail_nr=${7:-0}
	local rst_nr=${8:-0}
	local count
	local dump_stats
	local with_cookie
@@ -957,9 +976,9 @@ chk_join_nr()
	fi
	[ "${dump_stats}" = 1 ] && dump_stats
	if [ $checksum -eq 1 ]; then
		chk_csum_nr
		chk_fail_nr 0 0
		chk_rst_nr 0 0
		chk_csum_nr "" $csum_ns1 $csum_ns2
		chk_fail_nr $fail_nr $fail_nr
		chk_rst_nr $rst_nr $rst_nr
	fi
}