mptcp.lists.linux.dev archive mirror
 help / color / mirror / Atom feed
* [PATCH mptcp-next] selftests: mptcp: userspace pm add_addr test
@ 2022-06-10  5:34 Geliang Tang
  2022-06-10  6:59 ` selftests: mptcp: userspace pm add_addr test: Tests Results MPTCP CI
  2022-06-11  0:08 ` [PATCH mptcp-next] selftests: mptcp: userspace pm add_addr test Mat Martineau
  0 siblings, 2 replies; 3+ messages in thread
From: Geliang Tang @ 2022-06-10  5:34 UTC (permalink / raw)
  To: mptcp; +Cc: Geliang Tang

This patch adds userspace pm tests support for mptcp_join.sh script. Add a
userpace pm add_addr test case in userspace_tests().

Signed-off-by: Geliang Tang <geliang.tang@suse.com>
---
 .../testing/selftests/net/mptcp/mptcp_join.sh | 42 ++++++++++++++++++-
 1 file changed, 41 insertions(+), 1 deletion(-)

diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/selftests/net/mptcp/mptcp_join.sh
index a4406b7a8064..21fa79384c9c 100755
--- a/tools/testing/selftests/net/mptcp/mptcp_join.sh
+++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh
@@ -654,6 +654,9 @@ do_transfer()
 
 	local port=$((10000 + TEST_COUNT - 1))
 	local cappid
+	local userspace_pm=0
+	local evts_ns1
+	local evts_ns1_pid
 
 	:> "$cout"
 	:> "$sout"
@@ -690,12 +693,24 @@ do_transfer()
 		extra_args="-r ${speed:6}"
 	fi
 
+	if [[ "${addr_nr_ns1}" = "userspace_"* ]]; then
+		userspace_pm=1
+		addr_nr_ns1=${addr_nr_ns1:10}
+	fi
+
 	if [[ "${addr_nr_ns2}" = "fastclose_"* ]]; then
 		# disconnect
 		extra_args="$extra_args -I ${addr_nr_ns2:10}"
 		addr_nr_ns2=0
 	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
 	if is_v6 "${connect_addr}"; then
 		local_addr="::"
@@ -748,6 +763,8 @@ do_transfer()
 	if [ $addr_nr_ns1 -gt 0 ]; then
 		local counter=2
 		local add_nr_ns1=${addr_nr_ns1}
+		local id=10
+		local tk
 		while [ $add_nr_ns1 -gt 0 ]; do
 			local addr
 			if is_v6 "${connect_addr}"; then
@@ -755,9 +772,16 @@ do_transfer()
 			else
 				addr="10.0.$counter.1"
 			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
+			fi
+
 			counter=$((counter + 1))
 			add_nr_ns1=$((add_nr_ns1 - 1))
+			id=$((id + 1))
 		done
 	elif [ $addr_nr_ns1 -lt 0 ]; then
 		local rm_nr_ns1=$((-addr_nr_ns1))
@@ -890,6 +914,12 @@ do_transfer()
 	    kill $cappid
 	fi
 
+	if [ $userspace_pm -eq 1 ]; then
+		kill $evts_ns1_pid
+		wait $evts_ns1_pid 2>/dev/null
+		rm -rf $evts_ns1
+	fi
+
 	NSTAT_HISTORY=/tmp/${listener_ns}.nstat ip netns exec ${listener_ns} \
 		nstat | grep Tcp > /tmp/${listener_ns}.out
 	NSTAT_HISTORY=/tmp/${connector_ns}.nstat ip netns exec ${connector_ns} \
@@ -2810,6 +2840,16 @@ userspace_tests()
 		chk_join_nr 0 0 0
 		chk_rm_nr 0 0
 	fi
+
+	# userspace pm add_addr
+	if reset "userspace pm add_addr"; then
+		set_userspace_pm $ns1
+		pm_nl_set_limits $ns1 2 2
+		pm_nl_set_limits $ns2 2 2
+		run_tests $ns1 $ns2 10.0.1.1 0 userspace_1 0 slow
+		chk_join_nr 1 1 1
+		chk_add_nr 1 1
+	fi
 }
 
 endpoint_tests()
-- 
2.35.3


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: selftests: mptcp: userspace pm add_addr test: Tests Results
  2022-06-10  5:34 [PATCH mptcp-next] selftests: mptcp: userspace pm add_addr test Geliang Tang
@ 2022-06-10  6:59 ` MPTCP CI
  2022-06-11  0:08 ` [PATCH mptcp-next] selftests: mptcp: userspace pm add_addr test Mat Martineau
  1 sibling, 0 replies; 3+ messages in thread
From: MPTCP CI @ 2022-06-10  6:59 UTC (permalink / raw)
  To: Geliang Tang; +Cc: mptcp

Hi Geliang,

Thank you for your modifications, that's great!

Our CI did some validations and here is its report:

- KVM Validation: normal:
  - Success! ✅:
  - Task: https://cirrus-ci.com/task/6499682049327104
  - Summary: https://api.cirrus-ci.com/v1/artifact/task/6499682049327104/summary/summary.txt

- KVM Validation: debug:
  - Unstable: 1 failed test(s): selftest_diag 🔴:
  - Task: https://cirrus-ci.com/task/4670094700707840
  - Summary: https://api.cirrus-ci.com/v1/artifact/task/4670094700707840/summary/summary.txt

Initiator: Patchew Applier
Commits: https://github.com/multipath-tcp/mptcp_net-next/commits/e9d448ee0fa3


If there are some issues, you can reproduce them using the same environment as
the one used by the CI thanks to a docker image, e.g.:

    $ cd [kernel source code]
    $ docker run -v "${PWD}:${PWD}:rw" -w "${PWD}" --privileged --rm -it \
        --pull always mptcp/mptcp-upstream-virtme-docker:latest \
        auto-debug

For more details:

    https://github.com/multipath-tcp/mptcp-upstream-virtme-docker


Please note that despite all the efforts that have been already done to have a
stable tests suite when executed on a public CI like here, it is possible some
reported issues are not due to your modifications. Still, do not hesitate to
help us improve that ;-)

Cheers,
MPTCP GH Action bot
Bot operated by Matthieu Baerts (Tessares)

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH mptcp-next] selftests: mptcp: userspace pm add_addr test
  2022-06-10  5:34 [PATCH mptcp-next] selftests: mptcp: userspace pm add_addr test Geliang Tang
  2022-06-10  6:59 ` selftests: mptcp: userspace pm add_addr test: Tests Results MPTCP CI
@ 2022-06-11  0:08 ` Mat Martineau
  1 sibling, 0 replies; 3+ messages in thread
From: Mat Martineau @ 2022-06-11  0:08 UTC (permalink / raw)
  To: Geliang Tang; +Cc: mptcp

On Fri, 10 Jun 2022, Geliang Tang wrote:

> This patch adds userspace pm tests support for mptcp_join.sh script. Add a
> userpace pm add_addr test case in userspace_tests().
>
> Signed-off-by: Geliang Tang <geliang.tang@suse.com>

Thanks for adding this test case.

Reviewed-by: Mat Martineau <mathew.j.martineau@linux.intel.com>


> ---
> .../testing/selftests/net/mptcp/mptcp_join.sh | 42 ++++++++++++++++++-
> 1 file changed, 41 insertions(+), 1 deletion(-)
>
> diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/selftests/net/mptcp/mptcp_join.sh
> index a4406b7a8064..21fa79384c9c 100755
> --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh
> +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh
> @@ -654,6 +654,9 @@ do_transfer()
>
> 	local port=$((10000 + TEST_COUNT - 1))
> 	local cappid
> +	local userspace_pm=0
> +	local evts_ns1
> +	local evts_ns1_pid
>
> 	:> "$cout"
> 	:> "$sout"
> @@ -690,12 +693,24 @@ do_transfer()
> 		extra_args="-r ${speed:6}"
> 	fi
>
> +	if [[ "${addr_nr_ns1}" = "userspace_"* ]]; then
> +		userspace_pm=1
> +		addr_nr_ns1=${addr_nr_ns1:10}
> +	fi
> +
> 	if [[ "${addr_nr_ns2}" = "fastclose_"* ]]; then
> 		# disconnect
> 		extra_args="$extra_args -I ${addr_nr_ns2:10}"
> 		addr_nr_ns2=0
> 	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
> 	if is_v6 "${connect_addr}"; then
> 		local_addr="::"
> @@ -748,6 +763,8 @@ do_transfer()
> 	if [ $addr_nr_ns1 -gt 0 ]; then
> 		local counter=2
> 		local add_nr_ns1=${addr_nr_ns1}
> +		local id=10
> +		local tk
> 		while [ $add_nr_ns1 -gt 0 ]; do
> 			local addr
> 			if is_v6 "${connect_addr}"; then
> @@ -755,9 +772,16 @@ do_transfer()
> 			else
> 				addr="10.0.$counter.1"
> 			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
> +			fi
> +
> 			counter=$((counter + 1))
> 			add_nr_ns1=$((add_nr_ns1 - 1))
> +			id=$((id + 1))
> 		done
> 	elif [ $addr_nr_ns1 -lt 0 ]; then
> 		local rm_nr_ns1=$((-addr_nr_ns1))
> @@ -890,6 +914,12 @@ do_transfer()
> 	    kill $cappid
> 	fi
>
> +	if [ $userspace_pm -eq 1 ]; then
> +		kill $evts_ns1_pid
> +		wait $evts_ns1_pid 2>/dev/null
> +		rm -rf $evts_ns1
> +	fi
> +
> 	NSTAT_HISTORY=/tmp/${listener_ns}.nstat ip netns exec ${listener_ns} \
> 		nstat | grep Tcp > /tmp/${listener_ns}.out
> 	NSTAT_HISTORY=/tmp/${connector_ns}.nstat ip netns exec ${connector_ns} \
> @@ -2810,6 +2840,16 @@ userspace_tests()
> 		chk_join_nr 0 0 0
> 		chk_rm_nr 0 0
> 	fi
> +
> +	# userspace pm add_addr
> +	if reset "userspace pm add_addr"; then
> +		set_userspace_pm $ns1
> +		pm_nl_set_limits $ns1 2 2
> +		pm_nl_set_limits $ns2 2 2
> +		run_tests $ns1 $ns2 10.0.1.1 0 userspace_1 0 slow
> +		chk_join_nr 1 1 1
> +		chk_add_nr 1 1
> +	fi
> }
>
> endpoint_tests()
> -- 
> 2.35.3
>
>
>

--
Mat Martineau
Intel

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2022-06-11  0:08 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-06-10  5:34 [PATCH mptcp-next] selftests: mptcp: userspace pm add_addr test Geliang Tang
2022-06-10  6:59 ` selftests: mptcp: userspace pm add_addr test: Tests Results MPTCP CI
2022-06-11  0:08 ` [PATCH mptcp-next] selftests: mptcp: userspace pm add_addr test Mat Martineau

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).