.../testing/selftests/net/mptcp/mptcp_join.sh | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+)
This patch adds the mptcp_info fields tests in endpoint_tests(). Add a
new function chk_mptcp_info() to check the given number of the given
mptcp_info field.
Closes: https://github.com/multipath-tcp/mptcp_net-next/issues/330
Signed-off-by: Geliang Tang <geliang.tang@suse.com>
---
v2:
- use '-D' option instead of '-i'.
v3:
- add tests in endpoint_tests() instead.
---
.../testing/selftests/net/mptcp/mptcp_join.sh | 43 +++++++++++++++++++
1 file changed, 43 insertions(+)
diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/selftests/net/mptcp/mptcp_join.sh
index 42e3bd1a05f5..625d24d94576 100755
--- a/tools/testing/selftests/net/mptcp/mptcp_join.sh
+++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh
@@ -1719,6 +1719,46 @@ chk_subflow_nr()
fi
}
+chk_mptcp_info()
+{
+ local nr_info=$1
+ local info
+ local cnt1
+ local cnt2
+ local dump_stats
+
+ if [[ $nr_info = "subflows_"* ]]; then
+ info="subflows"
+ nr_info=${nr_info:9}
+ else
+ echo "[fail] $nr_info"
+ fail_test
+ dump_stats=1
+ fi
+
+ printf "%-${nr_blank}s %-30s" " " "mptcp_info $info=$nr_info"
+
+ cnt1=$(ss -N $ns1 -inmHM | grep "$info:" |
+ sed -n 's/.*\('"$info"':\)\([[:digit:]]*\).*$/\2/p;q')
+ [ -z $cnt1 ] && cnt1=0
+ cnt2=$(ss -N $ns2 -inmHM | grep "$info:" |
+ sed -n 's/.*\('"$info"':\)\([[:digit:]]*\).*$/\2/p;q')
+ [ -z $cnt2 ] && cnt2=0
+ if [ $cnt1 != $nr_info -o $cnt2 != $nr_info ]; then
+ echo "[fail] got $cnt1:$cnt2 $info expected $nr_info"
+ fail_test
+ dump_stats=1
+ else
+ echo "[ ok ]"
+ fi
+
+ if [ "$dump_stats" = 1 ]; then
+ ss -N $ns1 -inmHM
+ ss -N $ns2 -inmHM
+ dump_stats
+ fi
+}
+
chk_link_usage()
{
local ns=$1
@@ -3118,13 +3158,16 @@ endpoint_tests()
run_tests $ns1 $ns2 10.0.1.1 4 0 0 speed_20 2>/dev/null &
wait_mpj $ns2
+ chk_mptcp_info subflows_1
pm_nl_del_endpoint $ns2 2 10.0.2.2
sleep 0.5
chk_subflow_nr needtitle "after delete" 1
+ chk_mptcp_info subflows_0
pm_nl_add_endpoint $ns2 10.0.2.2 dev ns2eth2 flags subflow
wait_mpj $ns2
chk_subflow_nr "" "after re-add" 2
+ chk_mptcp_info subflows_1
kill_tests_wait
fi
}
--
2.35.3
Hi Geliang, On 09/03/2023 03:04, Geliang Tang wrote: > This patch adds the mptcp_info fields tests in endpoint_tests(). Add a > new function chk_mptcp_info() to check the given number of the given > mptcp_info field. > > Closes: https://github.com/multipath-tcp/mptcp_net-next/issues/330 > Signed-off-by: Geliang Tang <geliang.tang@suse.com> > --- > v2: > - use '-D' option instead of '-i'. > v3: > - add tests in endpoint_tests() instead. > --- > .../testing/selftests/net/mptcp/mptcp_join.sh | 43 +++++++++++++++++++ > 1 file changed, 43 insertions(+) > > diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/selftests/net/mptcp/mptcp_join.sh > index 42e3bd1a05f5..625d24d94576 100755 > --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh > +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh (..) > @@ -3118,13 +3158,16 @@ endpoint_tests() > run_tests $ns1 $ns2 10.0.1.1 4 0 0 speed_20 2>/dev/null & > > wait_mpj $ns2 > + chk_mptcp_info subflows_1 I forgot to look at the output when doing my previous review and it seems this is printed before the title: # mptcp_info subflows=1 [ ok ] # 115 delete and re-add after delete[ ok ] # mptcp_info subflows=0 [ ok ] # after re-add[ ok ] # mptcp_info subflows=1 [ ok ] Maybe we should have: (...) wait_mpj $ns2 chk_subflow_nr needtitle "before delete" 2 chk_mptcp_info subflows_1 pm_nl_del_endpoint $ns2 2 10.0.2.2 sleep 0.5 chk_subflow_nr "" "after delete" 1 chk_mptcp_info subflows_0 (...) What do you think? Do you mind looking at that in a v4 (with the other comments) please? Cheers, Matt -- Tessares | Belgium | Hybrid Access Solutions www.tessares.net
Hi Geliang,
On 09/03/2023 03:04, Geliang Tang wrote:
> This patch adds the mptcp_info fields tests in endpoint_tests(). Add a
> new function chk_mptcp_info() to check the given number of the given
> mptcp_info field.
>
> Closes: https://github.com/multipath-tcp/mptcp_net-next/issues/330
> Signed-off-by: Geliang Tang <geliang.tang@suse.com>
> ---
> v2:
> - use '-D' option instead of '-i'.
> v3:
> - add tests in endpoint_tests() instead.
> ---
> .../testing/selftests/net/mptcp/mptcp_join.sh | 43 +++++++++++++++++++
> 1 file changed, 43 insertions(+)
>
> diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/selftests/net/mptcp/mptcp_join.sh
> index 42e3bd1a05f5..625d24d94576 100755
> --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh
> +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh
> @@ -1719,6 +1719,46 @@ chk_subflow_nr()
> fi
> }
>
> +chk_mptcp_info()
> +{
> + local nr_info=$1
> + local info
> + local cnt1
> + local cnt2
> + local dump_stats
> +
> + if [[ $nr_info = "subflows_"* ]]; then
> + info="subflows"
> + nr_info=${nr_info:9}
> + else
> + echo "[fail] $nr_info"
> + fail_test
> + dump_stats=1
Do you mind if I replace "dump_stats=1" by a "return 1" when applying
the patch? No need to do the rest that will probably cause bash errors
below.
And while at it, I just change the 'echo' to say:
[fail] unsupported argument: $nr_info
> + fi
> +
> + printf "%-${nr_blank}s %-30s" " " "mptcp_info $info=$nr_info"
> +
> + cnt1=$(ss -N $ns1 -inmHM | grep "$info:" |
> + sed -n 's/.*\('"$info"':\)\([[:digit:]]*\).*$/\2/p;q')
> + [ -z $cnt1 ] && cnt1=0
> + cnt2=$(ss -N $ns2 -inmHM | grep "$info:" |
> + sed -n 's/.*\('"$info"':\)\([[:digit:]]*\).*$/\2/p;q')
> + [ -z $cnt2 ] && cnt2=0
> + if [ $cnt1 != $nr_info -o $cnt2 != $nr_info ]; then
While at it, I will also add double quotes around variables just in case
the parsing fails and return a few words [1] and use "||" instead of
"-o" [2]
[1] https://www.shellcheck.net/wiki/SC2086
[2] https://www.shellcheck.net/wiki/SC2166
Also, do you plan to add a similar test but with the userspace pm?
Apart from that and if you are OK with the suggested modifications, the
rest looks good to me!
Reviewed-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Cheers,
Matt
--
Tessares | Belgium | Hybrid Access Solutions
www.tessares.net
On Thu, Mar 09, 2023 at 09:38:34AM +0100, Matthieu Baerts wrote:
> Hi Geliang,
>
> On 09/03/2023 03:04, Geliang Tang wrote:
> > This patch adds the mptcp_info fields tests in endpoint_tests(). Add a
> > new function chk_mptcp_info() to check the given number of the given
> > mptcp_info field.
> >
> > Closes: https://github.com/multipath-tcp/mptcp_net-next/issues/330
> > Signed-off-by: Geliang Tang <geliang.tang@suse.com>
> > ---
> > v2:
> > - use '-D' option instead of '-i'.
> > v3:
> > - add tests in endpoint_tests() instead.
> > ---
> > .../testing/selftests/net/mptcp/mptcp_join.sh | 43 +++++++++++++++++++
> > 1 file changed, 43 insertions(+)
> >
> > diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/selftests/net/mptcp/mptcp_join.sh
> > index 42e3bd1a05f5..625d24d94576 100755
> > --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh
> > +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh
> > @@ -1719,6 +1719,46 @@ chk_subflow_nr()
> > fi
> > }
> >
> > +chk_mptcp_info()
> > +{
> > + local nr_info=$1
> > + local info
> > + local cnt1
> > + local cnt2
> > + local dump_stats
> > +
> > + if [[ $nr_info = "subflows_"* ]]; then
> > + info="subflows"
> > + nr_info=${nr_info:9}
> > + else
> > + echo "[fail] $nr_info"
> > + fail_test
> > + dump_stats=1
>
> Do you mind if I replace "dump_stats=1" by a "return 1" when applying
> the patch? No need to do the rest that will probably cause bash errors
> below.
>
> And while at it, I just change the 'echo' to say:
>
> [fail] unsupported argument: $nr_info
>
> > + fi
> > +
> > + printf "%-${nr_blank}s %-30s" " " "mptcp_info $info=$nr_info"
> > +
> > + cnt1=$(ss -N $ns1 -inmHM | grep "$info:" |
> > + sed -n 's/.*\('"$info"':\)\([[:digit:]]*\).*$/\2/p;q')
> > + [ -z $cnt1 ] && cnt1=0
> > + cnt2=$(ss -N $ns2 -inmHM | grep "$info:" |
> > + sed -n 's/.*\('"$info"':\)\([[:digit:]]*\).*$/\2/p;q')
> > + [ -z $cnt2 ] && cnt2=0
> > + if [ $cnt1 != $nr_info -o $cnt2 != $nr_info ]; then
>
> While at it, I will also add double quotes around variables just in case
> the parsing fails and return a few words [1] and use "||" instead of
> "-o" [2]
>
> [1] https://www.shellcheck.net/wiki/SC2086
> [2] https://www.shellcheck.net/wiki/SC2166
>
> Also, do you plan to add a similar test but with the userspace pm?
Yes, this chk_mptcp_info() will be invoked in the userspace pm tests.
>
>
> Apart from that and if you are OK with the suggested modifications, the
> rest looks good to me!
>
> Reviewed-by: Matthieu Baerts <matthieu.baerts@tessares.net>
>
> Cheers,
> Matt
> --
> Tessares | Belgium | Hybrid Access Solutions
> www.tessares.net
© 2016 - 2026 Red Hat, Inc.