[PATCH mptcp-net 4/4] selftests: mptcp: rm subflow with v4/v4mapped addr

Geliang Tang posted 4 patches 7 months, 3 weeks ago
[PATCH mptcp-net 4/4] selftests: mptcp: rm subflow with v4/v4mapped addr
Posted by Geliang Tang 7 months, 3 weeks ago
From: Geliang Tang <tanggeliang@kylinos.cn>

Now both a v4 address and a v4-mapped address are supported when
destroying a userspace pm subflow, this patch adds random tests for both
addresses.

Closes: https://github.com/multipath-tcp/mptcp_net-next/issues/387
Fixes: 48d73f609dcc ("selftests: mptcp: update userspace pm addr tests")
Signed-off-by: Geliang Tang <tanggeliang@kylinos.cn>
---
 tools/testing/selftests/net/mptcp/mptcp_join.sh | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/selftests/net/mptcp/mptcp_join.sh
index c07386e21e0a..a3bdbc896c6f 100755
--- a/tools/testing/selftests/net/mptcp/mptcp_join.sh
+++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh
@@ -3333,12 +3333,13 @@ userspace_pm_rm_sf()
 {
 	local evts=$evts_ns1
 	local t=${3:-1}
-	local ip=4
+	local ip
 	local tk da dp sp
 	local cnt
 
 	[ "$1" == "$ns2" ] && evts=$evts_ns2
-	if mptcp_lib_is_v6 $2; then ip=6; fi
+	[ -n "$(mptcp_lib_evts_get_info "saddr4" "$evts" $t)" ] && ip=4
+	[ -n "$(mptcp_lib_evts_get_info "saddr6" "$evts" $t)" ] && ip=6
 	tk=$(mptcp_lib_evts_get_info token "$evts")
 	da=$(mptcp_lib_evts_get_info "daddr$ip" "$evts" $t)
 	dp=$(mptcp_lib_evts_get_info dport "$evts" $t)
@@ -3441,7 +3442,11 @@ userspace_tests()
 		chk_subflows_total 2 2
 		chk_mptcp_info add_addr_signal 1 add_addr_accepted 1
 		userspace_pm_rm_addr $ns1 10
-		userspace_pm_rm_sf $ns1 "::ffff:10.0.2.1" $SUB_ESTABLISHED
+		if [ $((RANDOM%2)) -eq 0 ]; then
+			userspace_pm_rm_sf $ns1 ::ffff:10.0.2.1 $SUB_ESTABLISHED
+		else
+			userspace_pm_rm_sf $ns1 10.0.2.1 $SUB_ESTABLISHED
+		fi
 		chk_rm_nr 1 1 invert
 		chk_mptcp_info subflows 0 subflows 0
 		chk_subflows_total 1 1
-- 
2.40.1
Re: [PATCH mptcp-net 4/4] selftests: mptcp: rm subflow with v4/v4mapped addr
Posted by Mat Martineau 7 months, 2 weeks ago
On Thu, 1 Feb 2024, Geliang Tang wrote:

> From: Geliang Tang <tanggeliang@kylinos.cn>
>
> Now both a v4 address and a v4-mapped address are supported when
> destroying a userspace pm subflow, this patch adds random tests for both
> addresses.
>
> Closes: https://github.com/multipath-tcp/mptcp_net-next/issues/387
> Fixes: 48d73f609dcc ("selftests: mptcp: update userspace pm addr tests")
> Signed-off-by: Geliang Tang <tanggeliang@kylinos.cn>
> ---
> tools/testing/selftests/net/mptcp/mptcp_join.sh | 11 ++++++++---
> 1 file changed, 8 insertions(+), 3 deletions(-)
>
> diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/selftests/net/mptcp/mptcp_join.sh
> index c07386e21e0a..a3bdbc896c6f 100755
> --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh
> +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh
> @@ -3333,12 +3333,13 @@ userspace_pm_rm_sf()
> {
> 	local evts=$evts_ns1
> 	local t=${3:-1}
> -	local ip=4
> +	local ip
> 	local tk da dp sp
> 	local cnt
>
> 	[ "$1" == "$ns2" ] && evts=$evts_ns2
> -	if mptcp_lib_is_v6 $2; then ip=6; fi
> +	[ -n "$(mptcp_lib_evts_get_info "saddr4" "$evts" $t)" ] && ip=4
> +	[ -n "$(mptcp_lib_evts_get_info "saddr6" "$evts" $t)" ] && ip=6
> 	tk=$(mptcp_lib_evts_get_info token "$evts")
> 	da=$(mptcp_lib_evts_get_info "daddr$ip" "$evts" $t)
> 	dp=$(mptcp_lib_evts_get_info dport "$evts" $t)
> @@ -3441,7 +3442,11 @@ userspace_tests()
> 		chk_subflows_total 2 2
> 		chk_mptcp_info add_addr_signal 1 add_addr_accepted 1
> 		userspace_pm_rm_addr $ns1 10
> -		userspace_pm_rm_sf $ns1 "::ffff:10.0.2.1" $SUB_ESTABLISHED
> +		if [ $((RANDOM%2)) -eq 0 ]; then
> +			userspace_pm_rm_sf $ns1 ::ffff:10.0.2.1 $SUB_ESTABLISHED
> +		else
> +			userspace_pm_rm_sf $ns1 10.0.2.1 $SUB_ESTABLISHED
> +		fi

Instead of randomizing this test, does it work to add a second subflow to 
this test case?

Then the two subflows could be removed two different ways (one with the 
v4mapped and one with v4)? That should avoid adding too much test time.

- Mat


> 		chk_rm_nr 1 1 invert
> 		chk_mptcp_info subflows 0 subflows 0
> 		chk_subflows_total 1 1
> -- 
> 2.40.1
>
>
>
Re: [PATCH mptcp-net 4/4] selftests: mptcp: rm subflow with v4/v4mapped addr
Posted by Geliang Tang 7 months, 2 weeks ago
Hi Mat,

On Mon, Feb 05, 2024 at 05:40:00PM -0800, Mat Martineau wrote:
> On Thu, 1 Feb 2024, Geliang Tang wrote:
> 
> > From: Geliang Tang <tanggeliang@kylinos.cn>
> > 
> > Now both a v4 address and a v4-mapped address are supported when
> > destroying a userspace pm subflow, this patch adds random tests for both
> > addresses.
> > 
> > Closes: https://github.com/multipath-tcp/mptcp_net-next/issues/387
> > Fixes: 48d73f609dcc ("selftests: mptcp: update userspace pm addr tests")
> > Signed-off-by: Geliang Tang <tanggeliang@kylinos.cn>
> > ---
> > tools/testing/selftests/net/mptcp/mptcp_join.sh | 11 ++++++++---
> > 1 file changed, 8 insertions(+), 3 deletions(-)
> > 
> > diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/selftests/net/mptcp/mptcp_join.sh
> > index c07386e21e0a..a3bdbc896c6f 100755
> > --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh
> > +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh
> > @@ -3333,12 +3333,13 @@ userspace_pm_rm_sf()
> > {
> > 	local evts=$evts_ns1
> > 	local t=${3:-1}
> > -	local ip=4
> > +	local ip
> > 	local tk da dp sp
> > 	local cnt
> > 
> > 	[ "$1" == "$ns2" ] && evts=$evts_ns2
> > -	if mptcp_lib_is_v6 $2; then ip=6; fi
> > +	[ -n "$(mptcp_lib_evts_get_info "saddr4" "$evts" $t)" ] && ip=4
> > +	[ -n "$(mptcp_lib_evts_get_info "saddr6" "$evts" $t)" ] && ip=6
> > 	tk=$(mptcp_lib_evts_get_info token "$evts")
> > 	da=$(mptcp_lib_evts_get_info "daddr$ip" "$evts" $t)
> > 	dp=$(mptcp_lib_evts_get_info dport "$evts" $t)
> > @@ -3441,7 +3442,11 @@ userspace_tests()
> > 		chk_subflows_total 2 2
> > 		chk_mptcp_info add_addr_signal 1 add_addr_accepted 1
> > 		userspace_pm_rm_addr $ns1 10
> > -		userspace_pm_rm_sf $ns1 "::ffff:10.0.2.1" $SUB_ESTABLISHED
> > +		if [ $((RANDOM%2)) -eq 0 ]; then
> > +			userspace_pm_rm_sf $ns1 ::ffff:10.0.2.1 $SUB_ESTABLISHED
> > +		else
> > +			userspace_pm_rm_sf $ns1 10.0.2.1 $SUB_ESTABLISHED
> > +		fi
> 
> Instead of randomizing this test, does it work to add a second subflow to
> this test case?

Yes, it works.

> 
> Then the two subflows could be removed two different ways (one with the
> v4mapped and one with v4)? That should avoid adding too much test time.

I just sent a v2 for this with only patch 3 and patch 4 in it.

Thanks,
-Geliang

> 
> - Mat
> 
> 
> > 		chk_rm_nr 1 1 invert
> > 		chk_mptcp_info subflows 0 subflows 0
> > 		chk_subflows_total 1 1
> > -- 
> > 2.40.1
> > 
> > 
> >