Skip to content

Commit fed61c4

Browse files
Florian Westphaldavem330
authored andcommitted
selftests: mptcp: make 2nd net namespace use tcp syn cookies unconditionally
check we can establish connections also when syn cookies are in use. Check that MPTcpExtMPCapableSYNRX and MPTcpExtMPCapableACKRX increase for each MPTCP test. Check TcpExtSyncookiesSent and TcpExtSyncookiesRecv increase in netns2. Signed-off-by: Florian Westphal <[email protected]> Reviewed-by: Mat Martineau <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent 9466a1c commit fed61c4

File tree

1 file changed

+47
-0
lines changed

1 file changed

+47
-0
lines changed

tools/testing/selftests/net/mptcp/mptcp_connect.sh

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -196,6 +196,9 @@ ip -net "$ns4" link set ns4eth3 up
196196
ip -net "$ns4" route add default via 10.0.3.2
197197
ip -net "$ns4" route add default via dead:beef:3::2
198198

199+
# use TCP syn cookies, even if no flooding was detected.
200+
ip netns exec "$ns2" sysctl -q net.ipv4.tcp_syncookies=2
201+
199202
set_ethtool_flags() {
200203
local ns="$1"
201204
local dev="$2"
@@ -407,6 +410,11 @@ do_transfer()
407410
sleep 1
408411
fi
409412

413+
local stat_synrx_last_l=$(ip netns exec ${listener_ns} nstat -z -a MPTcpExtMPCapableSYNRX | while read a count c rest ;do echo $count;done)
414+
local stat_ackrx_last_l=$(ip netns exec ${listener_ns} nstat -z -a MPTcpExtMPCapableACKRX | while read a count c rest ;do echo $count;done)
415+
local stat_cookietx_last=$(ip netns exec ${listener_ns} nstat -z -a TcpExtSyncookiesSent | while read a count c rest ;do echo $count;done)
416+
local stat_cookierx_last=$(ip netns exec ${listener_ns} nstat -z -a TcpExtSyncookiesRecv | while read a count c rest ;do echo $count;done)
417+
410418
ip netns exec ${listener_ns} ./mptcp_connect -t $timeout -l -p $port -s ${srv_proto} $extra_args $local_addr < "$sin" > "$sout" &
411419
local spid=$!
412420
@@ -450,6 +458,45 @@ do_transfer()
450458
check_transfer $cin $sout "file received by server"
451459
rets=$?
452460
461+
local stat_synrx_now_l=$(ip netns exec ${listener_ns} nstat -z -a MPTcpExtMPCapableSYNRX | while read a count c rest ;do echo $count;done)
462+
local stat_ackrx_now_l=$(ip netns exec ${listener_ns} nstat -z -a MPTcpExtMPCapableACKRX | while read a count c rest ;do echo $count;done)
463+
464+
local stat_cookietx_now=$(ip netns exec ${listener_ns} nstat -z -a TcpExtSyncookiesSent | while read a count c rest ;do echo $count;done)
465+
local stat_cookierx_now=$(ip netns exec ${listener_ns} nstat -z -a TcpExtSyncookiesRecv | while read a count c rest ;do echo $count;done)
466+
467+
expect_synrx=$((stat_synrx_last_l))
468+
expect_ackrx=$((stat_ackrx_last_l))
469+
470+
cookies=$(ip netns exec ${listener_ns} sysctl net.ipv4.tcp_syncookies)
471+
cookies=${cookies##*=}
472+
473+
if [ ${cl_proto} = "MPTCP" ] && [ ${srv_proto} = "MPTCP" ]; then
474+
expect_synrx=$((stat_synrx_last_l+1))
475+
expect_ackrx=$((stat_ackrx_last_l+1))
476+
fi
477+
if [ $cookies -eq 2 ];then
478+
if [ $stat_cookietx_last -ge $stat_cookietx_now ] ;then
479+
echo "${listener_ns} CookieSent: ${cl_proto} -> ${srv_proto}: did not advance"
480+
fi
481+
if [ $stat_cookierx_last -ge $stat_cookierx_now ] ;then
482+
echo "${listener_ns} CookieRecv: ${cl_proto} -> ${srv_proto}: did not advance"
483+
fi
484+
else
485+
if [ $stat_cookietx_last -ne $stat_cookietx_now ] ;then
486+
echo "${listener_ns} CookieSent: ${cl_proto} -> ${srv_proto}: changed"
487+
fi
488+
if [ $stat_cookierx_last -ne $stat_cookierx_now ] ;then
489+
echo "${listener_ns} CookieRecv: ${cl_proto} -> ${srv_proto}: changed"
490+
fi
491+
fi
492+
493+
if [ $expect_synrx -ne $stat_synrx_now_l ] ;then
494+
echo "${listener_ns} SYNRX: ${cl_proto} -> ${srv_proto}: expect ${expect_synrx}, got ${stat_synrx_now_l}"
495+
fi
496+
if [ $expect_ackrx -ne $stat_ackrx_now_l ] ;then
497+
echo "${listener_ns} ACKRX: ${cl_proto} -> ${srv_proto}: expect ${expect_synrx}, got ${stat_synrx_now_l}"
498+
fi
499+
453500
if [ $retc -eq 0 ] && [ $rets -eq 0 ];then
454501
echo "$duration [ OK ]"
455502
cat "$capout"

0 commit comments

Comments
 (0)