diff mbox series

[net-next,v2,11/15] selftests: mptcp: add mptcp_lib_get_counter

Message ID 20231114-send-net-next-2023107-v2-11-b650a477362c@kernel.org (mailing list archive)
State Superseded, archived
Headers show
Series mptcp: More selftest coverage and code cleanup for net-next | expand

Commit Message

Mat Martineau Nov. 14, 2023, 7:56 p.m. UTC
From: Geliang Tang <geliang.tang@suse.com>

To avoid duplicated code in different MPTCP selftests, we can add
and use helpers defined in mptcp_lib.sh.

The helper get_counter() in mptcp_join.sh and get_mib_counter() in
mptcp_connect.sh have the same functionality, export get_counter() into
mptcp_lib.sh and rename it as mptcp_lib_get_counter(). Use this new
helper instead of get_counter() and get_mib_counter().

Reviewed-by: Matthieu Baerts <matttbe@kernel.org>
Signed-off-by: Geliang Tang <geliang.tang@suse.com>
Signed-off-by: Mat Martineau <martineau@kernel.org>
---
 tools/testing/selftests/net/mptcp/mptcp_connect.sh | 41 ++++------
 tools/testing/selftests/net/mptcp/mptcp_join.sh    | 88 +++++++++-------------
 tools/testing/selftests/net/mptcp/mptcp_lib.sh     | 16 ++++
 3 files changed, 65 insertions(+), 80 deletions(-)

Comments

Geliang Tang Nov. 14, 2023, 10:03 p.m. UTC | #1
On Tue, Nov 14, 2023 at 11:56:53AM -0800, Mat Martineau wrote:
> From: Geliang Tang <geliang.tang@suse.com>
> 
> To avoid duplicated code in different MPTCP selftests, we can add
> and use helpers defined in mptcp_lib.sh.
> 
> The helper get_counter() in mptcp_join.sh and get_mib_counter() in
> mptcp_connect.sh have the same functionality, export get_counter() into
> mptcp_lib.sh and rename it as mptcp_lib_get_counter(). Use this new
> helper instead of get_counter() and get_mib_counter().
> 
> Reviewed-by: Matthieu Baerts <matttbe@kernel.org>
> Signed-off-by: Geliang Tang <geliang.tang@suse.com>
> Signed-off-by: Mat Martineau <martineau@kernel.org>
> ---
>  tools/testing/selftests/net/mptcp/mptcp_connect.sh | 41 ++++------
>  tools/testing/selftests/net/mptcp/mptcp_join.sh    | 88 +++++++++-------------
>  tools/testing/selftests/net/mptcp/mptcp_lib.sh     | 16 ++++
>  3 files changed, 65 insertions(+), 80 deletions(-)

Sorry Mat, this patch needs to be updated. A squash-to patch [1] has been
merged into it last week.

Thanks,
-Geliang

[1] https://patchwork.kernel.org/project/mptcp/patch/a345cc5ff04729307b7b5b3a26f81e4e653dbefb.1699408002.git.geliang.tang@suse.com/

> 
> diff --git a/tools/testing/selftests/net/mptcp/mptcp_connect.sh b/tools/testing/selftests/net/mptcp/mptcp_connect.sh
> index 4cf62b2b0480..3b971d1617d8 100755
> --- a/tools/testing/selftests/net/mptcp/mptcp_connect.sh
> +++ b/tools/testing/selftests/net/mptcp/mptcp_connect.sh
> @@ -335,21 +335,6 @@ do_ping()
>  	return 0
>  }
>  
> -# $1: ns, $2: MIB counter
> -get_mib_counter()
> -{
> -	local listener_ns="${1}"
> -	local mib="${2}"
> -
> -	# strip the header
> -	ip netns exec "${listener_ns}" \
> -		nstat -z -a "${mib}" | \
> -			tail -n+2 | \
> -			while read a count c rest; do
> -				echo $count
> -			done
> -}
> -
>  # $1: ns, $2: port
>  wait_local_port_listen()
>  {
> @@ -435,12 +420,12 @@ do_transfer()
>  			nstat -n
>  	fi
>  
> -	local stat_synrx_last_l=$(get_mib_counter "${listener_ns}" "MPTcpExtMPCapableSYNRX")
> -	local stat_ackrx_last_l=$(get_mib_counter "${listener_ns}" "MPTcpExtMPCapableACKRX")
> -	local stat_cookietx_last=$(get_mib_counter "${listener_ns}" "TcpExtSyncookiesSent")
> -	local stat_cookierx_last=$(get_mib_counter "${listener_ns}" "TcpExtSyncookiesRecv")
> -	local stat_csum_err_s=$(get_mib_counter "${listener_ns}" "MPTcpExtDataCsumErr")
> -	local stat_csum_err_c=$(get_mib_counter "${connector_ns}" "MPTcpExtDataCsumErr")
> +	local stat_synrx_last_l=$(mptcp_lib_get_counter "${listener_ns}" "MPTcpExtMPCapableSYNRX")
> +	local stat_ackrx_last_l=$(mptcp_lib_get_counter "${listener_ns}" "MPTcpExtMPCapableACKRX")
> +	local stat_cookietx_last=$(mptcp_lib_get_counter "${listener_ns}" "TcpExtSyncookiesSent")
> +	local stat_cookierx_last=$(mptcp_lib_get_counter "${listener_ns}" "TcpExtSyncookiesRecv")
> +	local stat_csum_err_s=$(mptcp_lib_get_counter "${listener_ns}" "MPTcpExtDataCsumErr")
> +	local stat_csum_err_c=$(mptcp_lib_get_counter "${connector_ns}" "MPTcpExtDataCsumErr")
>  
>  	timeout ${timeout_test} \
>  		ip netns exec ${listener_ns} \
> @@ -503,11 +488,11 @@ do_transfer()
>  	check_transfer $cin $sout "file received by server"
>  	rets=$?
>  
> -	local stat_synrx_now_l=$(get_mib_counter "${listener_ns}" "MPTcpExtMPCapableSYNRX")
> -	local stat_ackrx_now_l=$(get_mib_counter "${listener_ns}" "MPTcpExtMPCapableACKRX")
> -	local stat_cookietx_now=$(get_mib_counter "${listener_ns}" "TcpExtSyncookiesSent")
> -	local stat_cookierx_now=$(get_mib_counter "${listener_ns}" "TcpExtSyncookiesRecv")
> -	local stat_ooo_now=$(get_mib_counter "${listener_ns}" "TcpExtTCPOFOQueue")
> +	local stat_synrx_now_l=$(mptcp_lib_get_counter "${listener_ns}" "MPTcpExtMPCapableSYNRX")
> +	local stat_ackrx_now_l=$(mptcp_lib_get_counter "${listener_ns}" "MPTcpExtMPCapableACKRX")
> +	local stat_cookietx_now=$(mptcp_lib_get_counter "${listener_ns}" "TcpExtSyncookiesSent")
> +	local stat_cookierx_now=$(mptcp_lib_get_counter "${listener_ns}" "TcpExtSyncookiesRecv")
> +	local stat_ooo_now=$(mptcp_lib_get_counter "${listener_ns}" "TcpExtTCPOFOQueue")
>  
>  	expect_synrx=$((stat_synrx_last_l))
>  	expect_ackrx=$((stat_ackrx_last_l))
> @@ -536,8 +521,8 @@ do_transfer()
>  	fi
>  
>  	if $checksum; then
> -		local csum_err_s=$(get_mib_counter "${listener_ns}" "MPTcpExtDataCsumErr")
> -		local csum_err_c=$(get_mib_counter "${connector_ns}" "MPTcpExtDataCsumErr")
> +		local csum_err_s=$(mptcp_lib_get_counter "${listener_ns}" "MPTcpExtDataCsumErr")
> +		local csum_err_c=$(mptcp_lib_get_counter "${connector_ns}" "MPTcpExtDataCsumErr")
>  
>  		local csum_err_s_nr=$((csum_err_s - stat_csum_err_s))
>  		if [ $csum_err_s_nr -gt 0 ]; then
> diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/selftests/net/mptcp/mptcp_join.sh
> index 1f0a6c09e605..4cb6ca72f164 100755
> --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh
> +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh
> @@ -605,25 +605,9 @@ wait_local_port_listen()
>  	done
>  }
>  
> -# $1: ns ; $2: counter
> -get_counter()
> -{
> -	local ns="${1}"
> -	local counter="${2}"
> -	local count
> -
> -	count=$(ip netns exec ${ns} nstat -asz "${counter}" | awk 'NR==1 {next} {print $2}')
> -	if [ -z "${count}" ]; then
> -		mptcp_lib_fail_if_expected_feature "${counter} counter"
> -		return 1
> -	fi
> -
> -	echo "${count}"
> -}
> -
>  rm_addr_count()
>  {
> -	get_counter "${1}" "MPTcpExtRmAddr"
> +	mptcp_lib_get_counter "${1}" "MPTcpExtRmAddr"
>  }
>  
>  # $1: ns, $2: old rm_addr counter in $ns
> @@ -643,7 +627,7 @@ wait_rm_addr()
>  
>  rm_sf_count()
>  {
> -	get_counter "${1}" "MPTcpExtRmSubflow"
> +	mptcp_lib_get_counter "${1}" "MPTcpExtRmSubflow"
>  }
>  
>  # $1: ns, $2: old rm_sf counter in $ns
> @@ -666,11 +650,11 @@ wait_mpj()
>  	local ns="${1}"
>  	local cnt old_cnt
>  
> -	old_cnt=$(get_counter ${ns} "MPTcpExtMPJoinAckRx")
> +	old_cnt=$(mptcp_lib_get_counter ${ns} "MPTcpExtMPJoinAckRx")
>  
>  	local i
>  	for i in $(seq 10); do
> -		cnt=$(get_counter ${ns} "MPTcpExtMPJoinAckRx")
> +		cnt=$(mptcp_lib_get_counter ${ns} "MPTcpExtMPJoinAckRx")
>  		[ "$cnt" = "${old_cnt}" ] || break
>  		sleep 0.1
>  	done
> @@ -1272,7 +1256,7 @@ chk_csum_nr()
>  	fi
>  
>  	print_check "sum"
> -	count=$(get_counter ${ns1} "MPTcpExtDataCsumErr")
> +	count=$(mptcp_lib_get_counter ${ns1} "MPTcpExtDataCsumErr")
>  	if [ "$count" != "$csum_ns1" ]; then
>  		extra_msg="$extra_msg ns1=$count"
>  	fi
> @@ -1285,7 +1269,7 @@ chk_csum_nr()
>  		print_ok
>  	fi
>  	print_check "csum"
> -	count=$(get_counter ${ns2} "MPTcpExtDataCsumErr")
> +	count=$(mptcp_lib_get_counter ${ns2} "MPTcpExtDataCsumErr")
>  	if [ "$count" != "$csum_ns2" ]; then
>  		extra_msg="$extra_msg ns2=$count"
>  	fi
> @@ -1329,7 +1313,7 @@ chk_fail_nr()
>  	fi
>  
>  	print_check "ftx"
> -	count=$(get_counter ${ns_tx} "MPTcpExtMPFailTx")
> +	count=$(mptcp_lib_get_counter ${ns_tx} "MPTcpExtMPFailTx")
>  	if [ "$count" != "$fail_tx" ]; then
>  		extra_msg="$extra_msg,tx=$count"
>  	fi
> @@ -1343,7 +1327,7 @@ chk_fail_nr()
>  	fi
>  
>  	print_check "failrx"
> -	count=$(get_counter ${ns_rx} "MPTcpExtMPFailRx")
> +	count=$(mptcp_lib_get_counter ${ns_rx} "MPTcpExtMPFailRx")
>  	if [ "$count" != "$fail_rx" ]; then
>  		extra_msg="$extra_msg,rx=$count"
>  	fi
> @@ -1376,7 +1360,7 @@ chk_fclose_nr()
>  	fi
>  
>  	print_check "ctx"
> -	count=$(get_counter ${ns_tx} "MPTcpExtMPFastcloseTx")
> +	count=$(mptcp_lib_get_counter ${ns_tx} "MPTcpExtMPFastcloseTx")
>  	if [ -z "$count" ]; then
>  		print_skip
>  	elif [ "$count" != "$fclose_tx" ]; then
> @@ -1387,7 +1371,7 @@ chk_fclose_nr()
>  	fi
>  
>  	print_check "fclzrx"
> -	count=$(get_counter ${ns_rx} "MPTcpExtMPFastcloseRx")
> +	count=$(mptcp_lib_get_counter ${ns_rx} "MPTcpExtMPFastcloseRx")
>  	if [ -z "$count" ]; then
>  		print_skip
>  	elif [ "$count" != "$fclose_rx" ]; then
> @@ -1417,7 +1401,7 @@ chk_rst_nr()
>  	fi
>  
>  	print_check "rtx"
> -	count=$(get_counter ${ns_tx} "MPTcpExtMPRstTx")
> +	count=$(mptcp_lib_get_counter ${ns_tx} "MPTcpExtMPRstTx")
>  	if [ -z "$count" ]; then
>  		print_skip
>  	# accept more rst than expected except if we don't expect any
> @@ -1429,7 +1413,7 @@ chk_rst_nr()
>  	fi
>  
>  	print_check "rstrx"
> -	count=$(get_counter ${ns_rx} "MPTcpExtMPRstRx")
> +	count=$(mptcp_lib_get_counter ${ns_rx} "MPTcpExtMPRstRx")
>  	if [ -z "$count" ]; then
>  		print_skip
>  	# accept more rst than expected except if we don't expect any
> @@ -1450,7 +1434,7 @@ chk_infi_nr()
>  	local count
>  
>  	print_check "itx"
> -	count=$(get_counter ${ns2} "MPTcpExtInfiniteMapTx")
> +	count=$(mptcp_lib_get_counter ${ns2} "MPTcpExtInfiniteMapTx")
>  	if [ -z "$count" ]; then
>  		print_skip
>  	elif [ "$count" != "$infi_tx" ]; then
> @@ -1460,7 +1444,7 @@ chk_infi_nr()
>  	fi
>  
>  	print_check "infirx"
> -	count=$(get_counter ${ns1} "MPTcpExtInfiniteMapRx")
> +	count=$(mptcp_lib_get_counter ${ns1} "MPTcpExtInfiniteMapRx")
>  	if [ -z "$count" ]; then
>  		print_skip
>  	elif [ "$count" != "$infi_rx" ]; then
> @@ -1489,7 +1473,7 @@ chk_join_nr()
>  	fi
>  
>  	print_check "syn"
> -	count=$(get_counter ${ns1} "MPTcpExtMPJoinSynRx")
> +	count=$(mptcp_lib_get_counter ${ns1} "MPTcpExtMPJoinSynRx")
>  	if [ -z "$count" ]; then
>  		print_skip
>  	elif [ "$count" != "$syn_nr" ]; then
> @@ -1500,7 +1484,7 @@ chk_join_nr()
>  
>  	print_check "synack"
>  	with_cookie=$(ip netns exec $ns2 sysctl -n net.ipv4.tcp_syncookies)
> -	count=$(get_counter ${ns2} "MPTcpExtMPJoinSynAckRx")
> +	count=$(mptcp_lib_get_counter ${ns2} "MPTcpExtMPJoinSynAckRx")
>  	if [ -z "$count" ]; then
>  		print_skip
>  	elif [ "$count" != "$syn_ack_nr" ]; then
> @@ -1517,7 +1501,7 @@ chk_join_nr()
>  	fi
>  
>  	print_check "ack"
> -	count=$(get_counter ${ns1} "MPTcpExtMPJoinAckRx")
> +	count=$(mptcp_lib_get_counter ${ns1} "MPTcpExtMPJoinAckRx")
>  	if [ -z "$count" ]; then
>  		print_skip
>  	elif [ "$count" != "$ack_nr" ]; then
> @@ -1550,8 +1534,8 @@ chk_stale_nr()
>  
>  	print_check "stale"
>  
> -	stale_nr=$(get_counter ${ns} "MPTcpExtSubflowStale")
> -	recover_nr=$(get_counter ${ns} "MPTcpExtSubflowRecover")
> +	stale_nr=$(mptcp_lib_get_counter ${ns} "MPTcpExtSubflowStale")
> +	recover_nr=$(mptcp_lib_get_counter ${ns} "MPTcpExtSubflowRecover")
>  	if [ -z "$stale_nr" ] || [ -z "$recover_nr" ]; then
>  		print_skip
>  	elif [ $stale_nr -lt $stale_min ] ||
> @@ -1588,7 +1572,7 @@ chk_add_nr()
>  	timeout=$(ip netns exec $ns1 sysctl -n net.mptcp.add_addr_timeout)
>  
>  	print_check "add"
> -	count=$(get_counter ${ns2} "MPTcpExtAddAddr")
> +	count=$(mptcp_lib_get_counter ${ns2} "MPTcpExtAddAddr")
>  	if [ -z "$count" ]; then
>  		print_skip
>  	# if the test configured a short timeout tolerate greater then expected
> @@ -1600,7 +1584,7 @@ chk_add_nr()
>  	fi
>  
>  	print_check "echo"
> -	count=$(get_counter ${ns1} "MPTcpExtEchoAdd")
> +	count=$(mptcp_lib_get_counter ${ns1} "MPTcpExtEchoAdd")
>  	if [ -z "$count" ]; then
>  		print_skip
>  	elif [ "$count" != "$echo_nr" ]; then
> @@ -1611,7 +1595,7 @@ chk_add_nr()
>  
>  	if [ $port_nr -gt 0 ]; then
>  		print_check "pt"
> -		count=$(get_counter ${ns2} "MPTcpExtPortAdd")
> +		count=$(mptcp_lib_get_counter ${ns2} "MPTcpExtPortAdd")
>  		if [ -z "$count" ]; then
>  			print_skip
>  		elif [ "$count" != "$port_nr" ]; then
> @@ -1621,7 +1605,7 @@ chk_add_nr()
>  		fi
>  
>  		print_check "syn"
> -		count=$(get_counter ${ns1} "MPTcpExtMPJoinPortSynRx")
> +		count=$(mptcp_lib_get_counter ${ns1} "MPTcpExtMPJoinPortSynRx")
>  		if [ -z "$count" ]; then
>  			print_skip
>  		elif [ "$count" != "$syn_nr" ]; then
> @@ -1632,7 +1616,7 @@ chk_add_nr()
>  		fi
>  
>  		print_check "synack"
> -		count=$(get_counter ${ns2} "MPTcpExtMPJoinPortSynAckRx")
> +		count=$(mptcp_lib_get_counter ${ns2} "MPTcpExtMPJoinPortSynAckRx")
>  		if [ -z "$count" ]; then
>  			print_skip
>  		elif [ "$count" != "$syn_ack_nr" ]; then
> @@ -1643,7 +1627,7 @@ chk_add_nr()
>  		fi
>  
>  		print_check "ack"
> -		count=$(get_counter ${ns1} "MPTcpExtMPJoinPortAckRx")
> +		count=$(mptcp_lib_get_counter ${ns1} "MPTcpExtMPJoinPortAckRx")
>  		if [ -z "$count" ]; then
>  			print_skip
>  		elif [ "$count" != "$ack_nr" ]; then
> @@ -1654,7 +1638,7 @@ chk_add_nr()
>  		fi
>  
>  		print_check "syn"
> -		count=$(get_counter ${ns1} "MPTcpExtMismatchPortSynRx")
> +		count=$(mptcp_lib_get_counter ${ns1} "MPTcpExtMismatchPortSynRx")
>  		if [ -z "$count" ]; then
>  			print_skip
>  		elif [ "$count" != "$mis_syn_nr" ]; then
> @@ -1665,7 +1649,7 @@ chk_add_nr()
>  		fi
>  
>  		print_check "ack"
> -		count=$(get_counter ${ns1} "MPTcpExtMismatchPortAckRx")
> +		count=$(mptcp_lib_get_counter ${ns1} "MPTcpExtMismatchPortAckRx")
>  		if [ -z "$count" ]; then
>  			print_skip
>  		elif [ "$count" != "$mis_ack_nr" ]; then
> @@ -1687,7 +1671,7 @@ chk_add_tx_nr()
>  	timeout=$(ip netns exec $ns1 sysctl -n net.mptcp.add_addr_timeout)
>  
>  	print_check "add TX"
> -	count=$(get_counter ${ns1} "MPTcpExtAddAddrTx")
> +	count=$(mptcp_lib_get_counter ${ns1} "MPTcpExtAddAddrTx")
>  	if [ -z "$count" ]; then
>  		print_skip
>  	# if the test configured a short timeout tolerate greater then expected
> @@ -1699,7 +1683,7 @@ chk_add_tx_nr()
>  	fi
>  
>  	print_check "echo TX"
> -	count=$(get_counter ${ns2} "MPTcpExtEchoAddTx")
> +	count=$(mptcp_lib_get_counter ${ns2} "MPTcpExtEchoAddTx")
>  	if [ -z "$count" ]; then
>  		print_skip
>  	elif [ "$count" != "$echo_tx_nr" ]; then
> @@ -1737,7 +1721,7 @@ chk_rm_nr()
>  	fi
>  
>  	print_check "rm"
> -	count=$(get_counter ${addr_ns} "MPTcpExtRmAddr")
> +	count=$(mptcp_lib_get_counter ${addr_ns} "MPTcpExtRmAddr")
>  	if [ -z "$count" ]; then
>  		print_skip
>  	elif [ "$count" != "$rm_addr_nr" ]; then
> @@ -1747,13 +1731,13 @@ chk_rm_nr()
>  	fi
>  
>  	print_check "rmsf"
> -	count=$(get_counter ${subflow_ns} "MPTcpExtRmSubflow")
> +	count=$(mptcp_lib_get_counter ${subflow_ns} "MPTcpExtRmSubflow")
>  	if [ -z "$count" ]; then
>  		print_skip
>  	elif [ -n "$simult" ]; then
>  		local cnt suffix
>  
> -		cnt=$(get_counter ${addr_ns} "MPTcpExtRmSubflow")
> +		cnt=$(mptcp_lib_get_counter ${addr_ns} "MPTcpExtRmSubflow")
>  
>  		# in case of simult flush, the subflow removal count on each side is
>  		# unreliable
> @@ -1782,7 +1766,7 @@ chk_rm_tx_nr()
>  	local rm_addr_tx_nr=$1
>  
>  	print_check "rm TX"
> -	count=$(get_counter ${ns2} "MPTcpExtRmAddrTx")
> +	count=$(mptcp_lib_get_counter ${ns2} "MPTcpExtRmAddrTx")
>  	if [ -z "$count" ]; then
>  		print_skip
>  	elif [ "$count" != "$rm_addr_tx_nr" ]; then
> @@ -1799,7 +1783,7 @@ chk_prio_nr()
>  	local count
>  
>  	print_check "ptx"
> -	count=$(get_counter ${ns1} "MPTcpExtMPPrioTx")
> +	count=$(mptcp_lib_get_counter ${ns1} "MPTcpExtMPPrioTx")
>  	if [ -z "$count" ]; then
>  		print_skip
>  	elif [ "$count" != "$mp_prio_nr_tx" ]; then
> @@ -1809,7 +1793,7 @@ chk_prio_nr()
>  	fi
>  
>  	print_check "prx"
> -	count=$(get_counter ${ns1} "MPTcpExtMPPrioRx")
> +	count=$(mptcp_lib_get_counter ${ns1} "MPTcpExtMPPrioRx")
>  	if [ -z "$count" ]; then
>  		print_skip
>  	elif [ "$count" != "$mp_prio_nr_rx" ]; then
> @@ -1942,7 +1926,7 @@ wait_attempt_fail()
>  	while [ $time -lt $timeout_ms ]; do
>  		local cnt
>  
> -		cnt=$(get_counter ${ns} "TcpAttemptFails")
> +		cnt=$(mptcp_lib_get_counter ${ns} "TcpAttemptFails")
>  
>  		[ "$cnt" = 1 ] && return 1
>  		time=$((time + 100))
> diff --git a/tools/testing/selftests/net/mptcp/mptcp_lib.sh b/tools/testing/selftests/net/mptcp/mptcp_lib.sh
> index 447292cad33c..718c79dda2b3 100644
> --- a/tools/testing/selftests/net/mptcp/mptcp_lib.sh
> +++ b/tools/testing/selftests/net/mptcp/mptcp_lib.sh
> @@ -231,3 +231,19 @@ mptcp_lib_kill_wait() {
>  mptcp_lib_is_v6() {
>  	[ -z "${1##*:*}" ]
>  }
> +
> +# $1: ns, $2: MIB counter
> +mptcp_lib_get_counter() {
> +	local ns="${1}"
> +	local counter="${2}"
> +	local count
> +
> +	count=$(ip netns exec "${ns}" nstat -asz "${counter}" |
> +		awk 'NR==1 {next} {print $2}')
> +	if [ -z "${count}" ]; then
> +		mptcp_lib_fail_if_expected_feature "${counter} counter"
> +		return 1
> +	fi
> +
> +	echo "${count}"
> +}
> 
> -- 
> 2.41.0
>
diff mbox series

Patch

diff --git a/tools/testing/selftests/net/mptcp/mptcp_connect.sh b/tools/testing/selftests/net/mptcp/mptcp_connect.sh
index 4cf62b2b0480..3b971d1617d8 100755
--- a/tools/testing/selftests/net/mptcp/mptcp_connect.sh
+++ b/tools/testing/selftests/net/mptcp/mptcp_connect.sh
@@ -335,21 +335,6 @@  do_ping()
 	return 0
 }
 
-# $1: ns, $2: MIB counter
-get_mib_counter()
-{
-	local listener_ns="${1}"
-	local mib="${2}"
-
-	# strip the header
-	ip netns exec "${listener_ns}" \
-		nstat -z -a "${mib}" | \
-			tail -n+2 | \
-			while read a count c rest; do
-				echo $count
-			done
-}
-
 # $1: ns, $2: port
 wait_local_port_listen()
 {
@@ -435,12 +420,12 @@  do_transfer()
 			nstat -n
 	fi
 
-	local stat_synrx_last_l=$(get_mib_counter "${listener_ns}" "MPTcpExtMPCapableSYNRX")
-	local stat_ackrx_last_l=$(get_mib_counter "${listener_ns}" "MPTcpExtMPCapableACKRX")
-	local stat_cookietx_last=$(get_mib_counter "${listener_ns}" "TcpExtSyncookiesSent")
-	local stat_cookierx_last=$(get_mib_counter "${listener_ns}" "TcpExtSyncookiesRecv")
-	local stat_csum_err_s=$(get_mib_counter "${listener_ns}" "MPTcpExtDataCsumErr")
-	local stat_csum_err_c=$(get_mib_counter "${connector_ns}" "MPTcpExtDataCsumErr")
+	local stat_synrx_last_l=$(mptcp_lib_get_counter "${listener_ns}" "MPTcpExtMPCapableSYNRX")
+	local stat_ackrx_last_l=$(mptcp_lib_get_counter "${listener_ns}" "MPTcpExtMPCapableACKRX")
+	local stat_cookietx_last=$(mptcp_lib_get_counter "${listener_ns}" "TcpExtSyncookiesSent")
+	local stat_cookierx_last=$(mptcp_lib_get_counter "${listener_ns}" "TcpExtSyncookiesRecv")
+	local stat_csum_err_s=$(mptcp_lib_get_counter "${listener_ns}" "MPTcpExtDataCsumErr")
+	local stat_csum_err_c=$(mptcp_lib_get_counter "${connector_ns}" "MPTcpExtDataCsumErr")
 
 	timeout ${timeout_test} \
 		ip netns exec ${listener_ns} \
@@ -503,11 +488,11 @@  do_transfer()
 	check_transfer $cin $sout "file received by server"
 	rets=$?
 
-	local stat_synrx_now_l=$(get_mib_counter "${listener_ns}" "MPTcpExtMPCapableSYNRX")
-	local stat_ackrx_now_l=$(get_mib_counter "${listener_ns}" "MPTcpExtMPCapableACKRX")
-	local stat_cookietx_now=$(get_mib_counter "${listener_ns}" "TcpExtSyncookiesSent")
-	local stat_cookierx_now=$(get_mib_counter "${listener_ns}" "TcpExtSyncookiesRecv")
-	local stat_ooo_now=$(get_mib_counter "${listener_ns}" "TcpExtTCPOFOQueue")
+	local stat_synrx_now_l=$(mptcp_lib_get_counter "${listener_ns}" "MPTcpExtMPCapableSYNRX")
+	local stat_ackrx_now_l=$(mptcp_lib_get_counter "${listener_ns}" "MPTcpExtMPCapableACKRX")
+	local stat_cookietx_now=$(mptcp_lib_get_counter "${listener_ns}" "TcpExtSyncookiesSent")
+	local stat_cookierx_now=$(mptcp_lib_get_counter "${listener_ns}" "TcpExtSyncookiesRecv")
+	local stat_ooo_now=$(mptcp_lib_get_counter "${listener_ns}" "TcpExtTCPOFOQueue")
 
 	expect_synrx=$((stat_synrx_last_l))
 	expect_ackrx=$((stat_ackrx_last_l))
@@ -536,8 +521,8 @@  do_transfer()
 	fi
 
 	if $checksum; then
-		local csum_err_s=$(get_mib_counter "${listener_ns}" "MPTcpExtDataCsumErr")
-		local csum_err_c=$(get_mib_counter "${connector_ns}" "MPTcpExtDataCsumErr")
+		local csum_err_s=$(mptcp_lib_get_counter "${listener_ns}" "MPTcpExtDataCsumErr")
+		local csum_err_c=$(mptcp_lib_get_counter "${connector_ns}" "MPTcpExtDataCsumErr")
 
 		local csum_err_s_nr=$((csum_err_s - stat_csum_err_s))
 		if [ $csum_err_s_nr -gt 0 ]; then
diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/selftests/net/mptcp/mptcp_join.sh
index 1f0a6c09e605..4cb6ca72f164 100755
--- a/tools/testing/selftests/net/mptcp/mptcp_join.sh
+++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh
@@ -605,25 +605,9 @@  wait_local_port_listen()
 	done
 }
 
-# $1: ns ; $2: counter
-get_counter()
-{
-	local ns="${1}"
-	local counter="${2}"
-	local count
-
-	count=$(ip netns exec ${ns} nstat -asz "${counter}" | awk 'NR==1 {next} {print $2}')
-	if [ -z "${count}" ]; then
-		mptcp_lib_fail_if_expected_feature "${counter} counter"
-		return 1
-	fi
-
-	echo "${count}"
-}
-
 rm_addr_count()
 {
-	get_counter "${1}" "MPTcpExtRmAddr"
+	mptcp_lib_get_counter "${1}" "MPTcpExtRmAddr"
 }
 
 # $1: ns, $2: old rm_addr counter in $ns
@@ -643,7 +627,7 @@  wait_rm_addr()
 
 rm_sf_count()
 {
-	get_counter "${1}" "MPTcpExtRmSubflow"
+	mptcp_lib_get_counter "${1}" "MPTcpExtRmSubflow"
 }
 
 # $1: ns, $2: old rm_sf counter in $ns
@@ -666,11 +650,11 @@  wait_mpj()
 	local ns="${1}"
 	local cnt old_cnt
 
-	old_cnt=$(get_counter ${ns} "MPTcpExtMPJoinAckRx")
+	old_cnt=$(mptcp_lib_get_counter ${ns} "MPTcpExtMPJoinAckRx")
 
 	local i
 	for i in $(seq 10); do
-		cnt=$(get_counter ${ns} "MPTcpExtMPJoinAckRx")
+		cnt=$(mptcp_lib_get_counter ${ns} "MPTcpExtMPJoinAckRx")
 		[ "$cnt" = "${old_cnt}" ] || break
 		sleep 0.1
 	done
@@ -1272,7 +1256,7 @@  chk_csum_nr()
 	fi
 
 	print_check "sum"
-	count=$(get_counter ${ns1} "MPTcpExtDataCsumErr")
+	count=$(mptcp_lib_get_counter ${ns1} "MPTcpExtDataCsumErr")
 	if [ "$count" != "$csum_ns1" ]; then
 		extra_msg="$extra_msg ns1=$count"
 	fi
@@ -1285,7 +1269,7 @@  chk_csum_nr()
 		print_ok
 	fi
 	print_check "csum"
-	count=$(get_counter ${ns2} "MPTcpExtDataCsumErr")
+	count=$(mptcp_lib_get_counter ${ns2} "MPTcpExtDataCsumErr")
 	if [ "$count" != "$csum_ns2" ]; then
 		extra_msg="$extra_msg ns2=$count"
 	fi
@@ -1329,7 +1313,7 @@  chk_fail_nr()
 	fi
 
 	print_check "ftx"
-	count=$(get_counter ${ns_tx} "MPTcpExtMPFailTx")
+	count=$(mptcp_lib_get_counter ${ns_tx} "MPTcpExtMPFailTx")
 	if [ "$count" != "$fail_tx" ]; then
 		extra_msg="$extra_msg,tx=$count"
 	fi
@@ -1343,7 +1327,7 @@  chk_fail_nr()
 	fi
 
 	print_check "failrx"
-	count=$(get_counter ${ns_rx} "MPTcpExtMPFailRx")
+	count=$(mptcp_lib_get_counter ${ns_rx} "MPTcpExtMPFailRx")
 	if [ "$count" != "$fail_rx" ]; then
 		extra_msg="$extra_msg,rx=$count"
 	fi
@@ -1376,7 +1360,7 @@  chk_fclose_nr()
 	fi
 
 	print_check "ctx"
-	count=$(get_counter ${ns_tx} "MPTcpExtMPFastcloseTx")
+	count=$(mptcp_lib_get_counter ${ns_tx} "MPTcpExtMPFastcloseTx")
 	if [ -z "$count" ]; then
 		print_skip
 	elif [ "$count" != "$fclose_tx" ]; then
@@ -1387,7 +1371,7 @@  chk_fclose_nr()
 	fi
 
 	print_check "fclzrx"
-	count=$(get_counter ${ns_rx} "MPTcpExtMPFastcloseRx")
+	count=$(mptcp_lib_get_counter ${ns_rx} "MPTcpExtMPFastcloseRx")
 	if [ -z "$count" ]; then
 		print_skip
 	elif [ "$count" != "$fclose_rx" ]; then
@@ -1417,7 +1401,7 @@  chk_rst_nr()
 	fi
 
 	print_check "rtx"
-	count=$(get_counter ${ns_tx} "MPTcpExtMPRstTx")
+	count=$(mptcp_lib_get_counter ${ns_tx} "MPTcpExtMPRstTx")
 	if [ -z "$count" ]; then
 		print_skip
 	# accept more rst than expected except if we don't expect any
@@ -1429,7 +1413,7 @@  chk_rst_nr()
 	fi
 
 	print_check "rstrx"
-	count=$(get_counter ${ns_rx} "MPTcpExtMPRstRx")
+	count=$(mptcp_lib_get_counter ${ns_rx} "MPTcpExtMPRstRx")
 	if [ -z "$count" ]; then
 		print_skip
 	# accept more rst than expected except if we don't expect any
@@ -1450,7 +1434,7 @@  chk_infi_nr()
 	local count
 
 	print_check "itx"
-	count=$(get_counter ${ns2} "MPTcpExtInfiniteMapTx")
+	count=$(mptcp_lib_get_counter ${ns2} "MPTcpExtInfiniteMapTx")
 	if [ -z "$count" ]; then
 		print_skip
 	elif [ "$count" != "$infi_tx" ]; then
@@ -1460,7 +1444,7 @@  chk_infi_nr()
 	fi
 
 	print_check "infirx"
-	count=$(get_counter ${ns1} "MPTcpExtInfiniteMapRx")
+	count=$(mptcp_lib_get_counter ${ns1} "MPTcpExtInfiniteMapRx")
 	if [ -z "$count" ]; then
 		print_skip
 	elif [ "$count" != "$infi_rx" ]; then
@@ -1489,7 +1473,7 @@  chk_join_nr()
 	fi
 
 	print_check "syn"
-	count=$(get_counter ${ns1} "MPTcpExtMPJoinSynRx")
+	count=$(mptcp_lib_get_counter ${ns1} "MPTcpExtMPJoinSynRx")
 	if [ -z "$count" ]; then
 		print_skip
 	elif [ "$count" != "$syn_nr" ]; then
@@ -1500,7 +1484,7 @@  chk_join_nr()
 
 	print_check "synack"
 	with_cookie=$(ip netns exec $ns2 sysctl -n net.ipv4.tcp_syncookies)
-	count=$(get_counter ${ns2} "MPTcpExtMPJoinSynAckRx")
+	count=$(mptcp_lib_get_counter ${ns2} "MPTcpExtMPJoinSynAckRx")
 	if [ -z "$count" ]; then
 		print_skip
 	elif [ "$count" != "$syn_ack_nr" ]; then
@@ -1517,7 +1501,7 @@  chk_join_nr()
 	fi
 
 	print_check "ack"
-	count=$(get_counter ${ns1} "MPTcpExtMPJoinAckRx")
+	count=$(mptcp_lib_get_counter ${ns1} "MPTcpExtMPJoinAckRx")
 	if [ -z "$count" ]; then
 		print_skip
 	elif [ "$count" != "$ack_nr" ]; then
@@ -1550,8 +1534,8 @@  chk_stale_nr()
 
 	print_check "stale"
 
-	stale_nr=$(get_counter ${ns} "MPTcpExtSubflowStale")
-	recover_nr=$(get_counter ${ns} "MPTcpExtSubflowRecover")
+	stale_nr=$(mptcp_lib_get_counter ${ns} "MPTcpExtSubflowStale")
+	recover_nr=$(mptcp_lib_get_counter ${ns} "MPTcpExtSubflowRecover")
 	if [ -z "$stale_nr" ] || [ -z "$recover_nr" ]; then
 		print_skip
 	elif [ $stale_nr -lt $stale_min ] ||
@@ -1588,7 +1572,7 @@  chk_add_nr()
 	timeout=$(ip netns exec $ns1 sysctl -n net.mptcp.add_addr_timeout)
 
 	print_check "add"
-	count=$(get_counter ${ns2} "MPTcpExtAddAddr")
+	count=$(mptcp_lib_get_counter ${ns2} "MPTcpExtAddAddr")
 	if [ -z "$count" ]; then
 		print_skip
 	# if the test configured a short timeout tolerate greater then expected
@@ -1600,7 +1584,7 @@  chk_add_nr()
 	fi
 
 	print_check "echo"
-	count=$(get_counter ${ns1} "MPTcpExtEchoAdd")
+	count=$(mptcp_lib_get_counter ${ns1} "MPTcpExtEchoAdd")
 	if [ -z "$count" ]; then
 		print_skip
 	elif [ "$count" != "$echo_nr" ]; then
@@ -1611,7 +1595,7 @@  chk_add_nr()
 
 	if [ $port_nr -gt 0 ]; then
 		print_check "pt"
-		count=$(get_counter ${ns2} "MPTcpExtPortAdd")
+		count=$(mptcp_lib_get_counter ${ns2} "MPTcpExtPortAdd")
 		if [ -z "$count" ]; then
 			print_skip
 		elif [ "$count" != "$port_nr" ]; then
@@ -1621,7 +1605,7 @@  chk_add_nr()
 		fi
 
 		print_check "syn"
-		count=$(get_counter ${ns1} "MPTcpExtMPJoinPortSynRx")
+		count=$(mptcp_lib_get_counter ${ns1} "MPTcpExtMPJoinPortSynRx")
 		if [ -z "$count" ]; then
 			print_skip
 		elif [ "$count" != "$syn_nr" ]; then
@@ -1632,7 +1616,7 @@  chk_add_nr()
 		fi
 
 		print_check "synack"
-		count=$(get_counter ${ns2} "MPTcpExtMPJoinPortSynAckRx")
+		count=$(mptcp_lib_get_counter ${ns2} "MPTcpExtMPJoinPortSynAckRx")
 		if [ -z "$count" ]; then
 			print_skip
 		elif [ "$count" != "$syn_ack_nr" ]; then
@@ -1643,7 +1627,7 @@  chk_add_nr()
 		fi
 
 		print_check "ack"
-		count=$(get_counter ${ns1} "MPTcpExtMPJoinPortAckRx")
+		count=$(mptcp_lib_get_counter ${ns1} "MPTcpExtMPJoinPortAckRx")
 		if [ -z "$count" ]; then
 			print_skip
 		elif [ "$count" != "$ack_nr" ]; then
@@ -1654,7 +1638,7 @@  chk_add_nr()
 		fi
 
 		print_check "syn"
-		count=$(get_counter ${ns1} "MPTcpExtMismatchPortSynRx")
+		count=$(mptcp_lib_get_counter ${ns1} "MPTcpExtMismatchPortSynRx")
 		if [ -z "$count" ]; then
 			print_skip
 		elif [ "$count" != "$mis_syn_nr" ]; then
@@ -1665,7 +1649,7 @@  chk_add_nr()
 		fi
 
 		print_check "ack"
-		count=$(get_counter ${ns1} "MPTcpExtMismatchPortAckRx")
+		count=$(mptcp_lib_get_counter ${ns1} "MPTcpExtMismatchPortAckRx")
 		if [ -z "$count" ]; then
 			print_skip
 		elif [ "$count" != "$mis_ack_nr" ]; then
@@ -1687,7 +1671,7 @@  chk_add_tx_nr()
 	timeout=$(ip netns exec $ns1 sysctl -n net.mptcp.add_addr_timeout)
 
 	print_check "add TX"
-	count=$(get_counter ${ns1} "MPTcpExtAddAddrTx")
+	count=$(mptcp_lib_get_counter ${ns1} "MPTcpExtAddAddrTx")
 	if [ -z "$count" ]; then
 		print_skip
 	# if the test configured a short timeout tolerate greater then expected
@@ -1699,7 +1683,7 @@  chk_add_tx_nr()
 	fi
 
 	print_check "echo TX"
-	count=$(get_counter ${ns2} "MPTcpExtEchoAddTx")
+	count=$(mptcp_lib_get_counter ${ns2} "MPTcpExtEchoAddTx")
 	if [ -z "$count" ]; then
 		print_skip
 	elif [ "$count" != "$echo_tx_nr" ]; then
@@ -1737,7 +1721,7 @@  chk_rm_nr()
 	fi
 
 	print_check "rm"
-	count=$(get_counter ${addr_ns} "MPTcpExtRmAddr")
+	count=$(mptcp_lib_get_counter ${addr_ns} "MPTcpExtRmAddr")
 	if [ -z "$count" ]; then
 		print_skip
 	elif [ "$count" != "$rm_addr_nr" ]; then
@@ -1747,13 +1731,13 @@  chk_rm_nr()
 	fi
 
 	print_check "rmsf"
-	count=$(get_counter ${subflow_ns} "MPTcpExtRmSubflow")
+	count=$(mptcp_lib_get_counter ${subflow_ns} "MPTcpExtRmSubflow")
 	if [ -z "$count" ]; then
 		print_skip
 	elif [ -n "$simult" ]; then
 		local cnt suffix
 
-		cnt=$(get_counter ${addr_ns} "MPTcpExtRmSubflow")
+		cnt=$(mptcp_lib_get_counter ${addr_ns} "MPTcpExtRmSubflow")
 
 		# in case of simult flush, the subflow removal count on each side is
 		# unreliable
@@ -1782,7 +1766,7 @@  chk_rm_tx_nr()
 	local rm_addr_tx_nr=$1
 
 	print_check "rm TX"
-	count=$(get_counter ${ns2} "MPTcpExtRmAddrTx")
+	count=$(mptcp_lib_get_counter ${ns2} "MPTcpExtRmAddrTx")
 	if [ -z "$count" ]; then
 		print_skip
 	elif [ "$count" != "$rm_addr_tx_nr" ]; then
@@ -1799,7 +1783,7 @@  chk_prio_nr()
 	local count
 
 	print_check "ptx"
-	count=$(get_counter ${ns1} "MPTcpExtMPPrioTx")
+	count=$(mptcp_lib_get_counter ${ns1} "MPTcpExtMPPrioTx")
 	if [ -z "$count" ]; then
 		print_skip
 	elif [ "$count" != "$mp_prio_nr_tx" ]; then
@@ -1809,7 +1793,7 @@  chk_prio_nr()
 	fi
 
 	print_check "prx"
-	count=$(get_counter ${ns1} "MPTcpExtMPPrioRx")
+	count=$(mptcp_lib_get_counter ${ns1} "MPTcpExtMPPrioRx")
 	if [ -z "$count" ]; then
 		print_skip
 	elif [ "$count" != "$mp_prio_nr_rx" ]; then
@@ -1942,7 +1926,7 @@  wait_attempt_fail()
 	while [ $time -lt $timeout_ms ]; do
 		local cnt
 
-		cnt=$(get_counter ${ns} "TcpAttemptFails")
+		cnt=$(mptcp_lib_get_counter ${ns} "TcpAttemptFails")
 
 		[ "$cnt" = 1 ] && return 1
 		time=$((time + 100))
diff --git a/tools/testing/selftests/net/mptcp/mptcp_lib.sh b/tools/testing/selftests/net/mptcp/mptcp_lib.sh
index 447292cad33c..718c79dda2b3 100644
--- a/tools/testing/selftests/net/mptcp/mptcp_lib.sh
+++ b/tools/testing/selftests/net/mptcp/mptcp_lib.sh
@@ -231,3 +231,19 @@  mptcp_lib_kill_wait() {
 mptcp_lib_is_v6() {
 	[ -z "${1##*:*}" ]
 }
+
+# $1: ns, $2: MIB counter
+mptcp_lib_get_counter() {
+	local ns="${1}"
+	local counter="${2}"
+	local count
+
+	count=$(ip netns exec "${ns}" nstat -asz "${counter}" |
+		awk 'NR==1 {next} {print $2}')
+	if [ -z "${count}" ]; then
+		mptcp_lib_fail_if_expected_feature "${counter} counter"
+		return 1
+	fi
+
+	echo "${count}"
+}