diff mbox series

[mptcp-net] selftests: mptcp: enable syncookie only in absence of reorders

Message ID 15333b645caafe2b7fbb028e67bb788c0d5cf526.1622719000.git.pabeni@redhat.com (mailing list archive)
State Superseded, archived
Commit 48490d1c2717ac304e93ec05228e75a2ff709a42
Headers show
Series [mptcp-net] selftests: mptcp: enable syncookie only in absence of reorders | expand

Commit Message

Paolo Abeni June 3, 2021, 11:17 a.m. UTC
Syncookie validation may fail for OoO packets, causing spurious
resets and self-tests failures, so let's force syncookie only
for tests iteration with no OoO.

Fixes: fed61c4b584c ("selftests: mptcp: make 2nd net namespace use tcp syn cookies unconditionally")
Closes: https://github.com/multipath-tcp/mptcp_net-next/issues/198
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
---
 tools/testing/selftests/net/mptcp/mptcp_connect.sh | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

Comments

Florian Westphal June 3, 2021, 11:29 a.m. UTC | #1
Paolo Abeni <pabeni@redhat.com> wrote:
> Syncookie validation may fail for OoO packets, causing spurious
> resets and self-tests failures, so let's force syncookie only
> for tests iteration with no OoO.
> 
> Fixes: fed61c4b584c ("selftests: mptcp: make 2nd net namespace use tcp syn cookies unconditionally")
> Closes: https://github.com/multipath-tcp/mptcp_net-next/issues/198
> Signed-off-by: Paolo Abeni <pabeni@redhat.com>
> ---
>  tools/testing/selftests/net/mptcp/mptcp_connect.sh | 10 +++++++---
>  1 file changed, 7 insertions(+), 3 deletions(-)
> 
> diff --git a/tools/testing/selftests/net/mptcp/mptcp_connect.sh b/tools/testing/selftests/net/mptcp/mptcp_connect.sh
> index 69351c3eb68c..9e53334c9512 100755
> --- a/tools/testing/selftests/net/mptcp/mptcp_connect.sh
> +++ b/tools/testing/selftests/net/mptcp/mptcp_connect.sh
> @@ -202,9 +202,6 @@ ip -net "$ns4" link set ns4eth3 up
>  ip -net "$ns4" route add default via 10.0.3.2
>  ip -net "$ns4" route add default via dead:beef:3::2
>  
> -# use TCP syn cookies, even if no flooding was detected.
> -ip netns exec "$ns2" sysctl -q net.ipv4.tcp_syncookies=2
> -
>  if $checksum; then
>  	for i in "$ns1" "$ns2" "$ns3" "$ns4";do
>  		ip netns exec $i sysctl -q net.mptcp.checksum_enabled=1
> @@ -748,6 +745,13 @@ for sender in $ns1 $ns2 $ns3 $ns4;do
>  		exit $ret
>  	fi
>  
> +	# force TCP syn cookies only if there is no reorder
> +	if [ $sender = $ns1 ]; then
> +		ip netns exec "$ns2" sysctl -q net.ipv4.tcp_syncookies=2

I wasn't clear to me at first glance what $sender = $ns1 had to
do with reordering.

Maybe:

# ns1<->ns2 is not subject to reordering/tc delays.  Use it to test
# mptcp syncookie support.

?
Paolo Abeni June 3, 2021, 2:47 p.m. UTC | #2
On Thu, 2021-06-03 at 13:29 +0200, Florian Westphal wrote:
> Paolo Abeni <pabeni@redhat.com> wrote:
> > Syncookie validation may fail for OoO packets, causing spurious
> > resets and self-tests failures, so let's force syncookie only
> > for tests iteration with no OoO.
> > 
> > Fixes: fed61c4b584c ("selftests: mptcp: make 2nd net namespace use tcp syn cookies unconditionally")
> > Closes: https://github.com/multipath-tcp/mptcp_net-next/issues/198
> > Signed-off-by: Paolo Abeni <pabeni@redhat.com>
> > ---
> >  tools/testing/selftests/net/mptcp/mptcp_connect.sh | 10 +++++++---
> >  1 file changed, 7 insertions(+), 3 deletions(-)
> > 
> > diff --git a/tools/testing/selftests/net/mptcp/mptcp_connect.sh b/tools/testing/selftests/net/mptcp/mptcp_connect.sh
> > index 69351c3eb68c..9e53334c9512 100755
> > --- a/tools/testing/selftests/net/mptcp/mptcp_connect.sh
> > +++ b/tools/testing/selftests/net/mptcp/mptcp_connect.sh
> > @@ -202,9 +202,6 @@ ip -net "$ns4" link set ns4eth3 up
> >  ip -net "$ns4" route add default via 10.0.3.2
> >  ip -net "$ns4" route add default via dead:beef:3::2
> >  
> > -# use TCP syn cookies, even if no flooding was detected.
> > -ip netns exec "$ns2" sysctl -q net.ipv4.tcp_syncookies=2
> > -
> >  if $checksum; then
> >  	for i in "$ns1" "$ns2" "$ns3" "$ns4";do
> >  		ip netns exec $i sysctl -q net.mptcp.checksum_enabled=1
> > @@ -748,6 +745,13 @@ for sender in $ns1 $ns2 $ns3 $ns4;do
> >  		exit $ret
> >  	fi
> >  
> > +	# force TCP syn cookies only if there is no reorder
> > +	if [ $sender = $ns1 ]; then
> > +		ip netns exec "$ns2" sysctl -q net.ipv4.tcp_syncookies=2
> 
> I wasn't clear to me at first glance what $sender = $ns1 had to
> do with reordering.
> 
> Maybe:
> 
> # ns1<->ns2 is not subject to reordering/tc delays.  Use it to test
> # mptcp syncookie support.

Yep, that does not hurt ;) Will add in v2, thanks!

/P
>
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 69351c3eb68c..9e53334c9512 100755
--- a/tools/testing/selftests/net/mptcp/mptcp_connect.sh
+++ b/tools/testing/selftests/net/mptcp/mptcp_connect.sh
@@ -202,9 +202,6 @@  ip -net "$ns4" link set ns4eth3 up
 ip -net "$ns4" route add default via 10.0.3.2
 ip -net "$ns4" route add default via dead:beef:3::2
 
-# use TCP syn cookies, even if no flooding was detected.
-ip netns exec "$ns2" sysctl -q net.ipv4.tcp_syncookies=2
-
 if $checksum; then
 	for i in "$ns1" "$ns2" "$ns3" "$ns4";do
 		ip netns exec $i sysctl -q net.mptcp.checksum_enabled=1
@@ -748,6 +745,13 @@  for sender in $ns1 $ns2 $ns3 $ns4;do
 		exit $ret
 	fi
 
+	# force TCP syn cookies only if there is no reorder
+	if [ $sender = $ns1 ]; then
+		ip netns exec "$ns2" sysctl -q net.ipv4.tcp_syncookies=2
+	else
+		ip netns exec "$ns2" sysctl -q net.ipv4.tcp_syncookies=1
+	fi
+
 	run_tests "$ns2" $sender 10.0.1.2
 	run_tests "$ns2" $sender dead:beef:1::2
 	run_tests "$ns2" $sender 10.0.2.1