MPTCP Linux Development
 help / color / mirror / Atom feed
From: Mat Martineau <mathew.j.martineau@linux.intel.com>
To: Geliang Tang <geliang.tang@suse.com>
Cc: mptcp@lists.linux.dev
Subject: Re: [PATCH mptcp-next v3 3/5] selftests: mptcp: userspace pm subflow tests
Date: Fri, 17 Jun 2022 15:10:32 -0700 (PDT)	[thread overview]
Message-ID: <655c24a-a36-d7af-5b1d-925191d17c43@linux.intel.com> (raw)
In-Reply-To: <3fe28e031020b282b23e906b1095f1cce16af111.1655355422.git.geliang.tang@suse.com>

On Thu, 16 Jun 2022, Geliang Tang wrote:

> This patch adds userspace pm subflow tests support for mptcp_join.sh
> script. Add userpace pm create subflow and destroy test cases in
> userspace_tests().
>
> Signed-off-by: Geliang Tang <geliang.tang@suse.com>
> ---
> .../testing/selftests/net/mptcp/mptcp_join.sh | 40 ++++++++++++++++++-
> 1 file changed, 38 insertions(+), 2 deletions(-)
>
> diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/selftests/net/mptcp/mptcp_join.sh
> index 977c59c540b2..bec22fa38415 100755
> --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh
> +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh
> @@ -657,6 +657,8 @@ do_transfer()
> 	local userspace_pm=0
> 	local evts_ns1
> 	local evts_ns1_pid
> +	local evts_ns2
> +	local evts_ns2_pid
>
> 	:> "$cout"
> 	:> "$sout"
> @@ -702,13 +704,20 @@ do_transfer()
> 		# disconnect
> 		extra_args="$extra_args -I ${addr_nr_ns2:10}"
> 		addr_nr_ns2=0
> +	elif [[ "${addr_nr_ns2}" = "userspace_"* ]]; then
> +		userspace_pm=1
> +		addr_nr_ns2=${addr_nr_ns2:10}
> 	fi
>
> 	if [ $userspace_pm -eq 1 ]; then
> 		evts_ns1=$(mktemp)
> +		evts_ns2=$(mktemp)
> 		:> "$evts_ns1"
> +		:> "$evts_ns2"
> 		ip netns exec ${listener_ns} ./pm_nl_ctl events >> "$evts_ns1" 2>&1 &
> 		evts_ns1_pid=$!
> +		ip netns exec ${connector_ns} ./pm_nl_ctl events >> "$evts_ns2" 2>&1 &
> +		evts_ns2_pid=$!
> 	fi
>
> 	local local_addr
> @@ -830,6 +839,8 @@ do_transfer()
> 	if [ $addr_nr_ns2 -gt 0 ]; then
> 		local add_nr_ns2=${addr_nr_ns2}
> 		local counter=3
> +		local id=20
> +		local tk da dp sp
> 		while [ $add_nr_ns2 -gt 0 ]; do
> 			local addr
> 			if is_v6 "${connect_addr}"; then
> @@ -837,9 +848,23 @@ do_transfer()
> 			else
> 				addr="10.0.$counter.2"
> 			fi
> -			pm_nl_add_endpoint $ns2 $addr flags $flags
> +			if [ $userspace_pm -eq 0 ]; then
> +				pm_nl_add_endpoint $ns2 $addr flags $flags
> +			else
> +				tk=$(sed -n 's/.*\(token:\)\([[:digit:]]*\).*$/\2/p;q' "$evts_ns2")
> +				da=$(sed -n 's/.*\(daddr4:\)\([0-9.]*\).*$/\2/p;q' "$evts_ns2")
> +				dp=$(sed -n 's/.*\(dport:\)\([[:digit:]]*\).*$/\2/p;q' "$evts_ns2")
> +				ip netns exec ${connector_ns} ./pm_nl_ctl csf lip $addr lid $id \
> +									rip $da rport $dp token $tk
> +				sleep 1
> +				sp=$(grep "type:10" "$evts_ns2" |
> +				     sed -n 's/.*\(sport:\)\([[:digit:]]*\).*$/\2/p;q')
> +				ip netns exec ${connector_ns} ./pm_nl_ctl dsf lip $addr lport $sp \
> +									rip $da rport $dp token $tk
> +			fi
> 			counter=$((counter + 1))
> 			add_nr_ns2=$((add_nr_ns2 - 1))
> +			id=$((id + 1))
> 		done
> 	elif [ $addr_nr_ns2 -lt 0 ]; then
> 		local rm_nr_ns2=$((-addr_nr_ns2))
> @@ -919,7 +944,9 @@ do_transfer()
> 	if [ $userspace_pm -eq 1 ]; then
> 		kill $evts_ns1_pid
> 		wait $evts_ns1_pid 2>/dev/null
> -		rm -rf $evts_ns1
> +		kill $evts_ns2_pid
> +		wait $evts_ns2_pid 2>/dev/null

Would be nice to use the kill_wait function from "selftests: mptcp: avoid
Terminated messages in userspace_pm" here. Can you send a squash-to for
that "avoid Terminated messages..." commit that uses kill_wait?

> +		rm -rf $evts_ns1 $evts_ns2
> 	fi
>
> 	NSTAT_HISTORY=/tmp/${listener_ns}.nstat ip netns exec ${listener_ns} \
> @@ -2852,6 +2879,15 @@ userspace_tests()
> 		chk_add_nr 1 1
> 		chk_rm_nr 1 1 invert
> 	fi
> +
> +	# userspace pm create destroy subflow
> +	if reset "userspace pm create destroy subflow"; then
> +		set_userspace_pm $ns2
> +		pm_nl_set_limits $ns1 0 1
> +		run_tests $ns1 $ns2 10.0.1.1 0 0 userspace_1 slow
> +		chk_join_nr 1 1 1
> +		chk_rm_nr 0 1
> +	fi
> }
>
> endpoint_tests()
> -- 
> 2.35.3
>
>
>

--
Mat Martineau
Intel

  reply	other threads:[~2022-06-17 22:10 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-06-16  5:02 [PATCH mptcp-next v3 0/5] mptcp_join userspace pm tests Geliang Tang
2022-06-16  5:02 ` [PATCH mptcp-next v3 1/5] mptcp: update MIB_RMSUBFLOW in cmd_sf_destroy Geliang Tang
2022-06-16  5:02 ` [PATCH mptcp-next v3 2/5] selftests: mptcp: userspace pm address tests Geliang Tang
2022-06-16  5:02 ` [PATCH mptcp-next v3 3/5] selftests: mptcp: userspace pm subflow tests Geliang Tang
2022-06-17 22:10   ` Mat Martineau [this message]
2022-06-20 16:52     ` Matthieu Baerts
2022-06-20 18:27       ` Mat Martineau
2022-06-16  5:02 ` [PATCH mptcp-next v3 4/5] selftests: mptcp: avoid Terminated messages in userspace_pm Geliang Tang
2022-06-16  5:02 ` [PATCH mptcp-next v3 5/5] selftests: mptcp: update pm_nl_ctl usage header Geliang Tang
2022-06-16  6:32   ` selftests: mptcp: update pm_nl_ctl usage header: Tests Results MPTCP CI
2022-06-17 22:11 ` [PATCH mptcp-next v3 0/5] mptcp_join userspace pm tests Mat Martineau
2022-06-20 16:53 ` Matthieu Baerts

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=655c24a-a36-d7af-5b1d-925191d17c43@linux.intel.com \
    --to=mathew.j.martineau@linux.intel.com \
    --cc=geliang.tang@suse.com \
    --cc=mptcp@lists.linux.dev \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox