Message ID | 20220218213544.70285-7-mathew.j.martineau@linux.intel.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 6ef84b1517e08f6c2fc105b798a9d21bf4caa6cb |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | mptcp: Fix address advertisement races and stabilize tests | expand |
On Fri, 18 Feb 2022, Mat Martineau wrote: > From: Paolo Abeni <pabeni@redhat.com> > > The in kernel MPTCP PM implementation can process a single > incoming add address option at any given time. In the > mentioned test the server can surpass such limit. Let the > setup cope with that allowing a faster add_addr retransmission. > Jakub / David - A heads-up, this patch will give a trivial merge conflict in the hunk below when merging net/master to net-next/master. It's only due to changes in the preceeding context (those "ip netns exec" lines), so conflict resolution will be obvious. > diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/selftests/net/mptcp/mptcp_join.sh > index 10b3bd805ac6..0d6a71e7bb59 100755 > --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh > +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh ... > @@ -1158,7 +1164,10 @@ signal_address_tests() > ip netns exec $ns2 ./pm_nl_ctl add 10.0.2.2 flags signal > ip netns exec $ns2 ./pm_nl_ctl add 10.0.3.2 flags signal > ip netns exec $ns2 ./pm_nl_ctl add 10.0.4.2 flags signal > - run_tests $ns1 $ns2 10.0.1.1 > + > + # the peer could possibly miss some addr notification, allow retransmission > + ip netns exec $ns1 sysctl -q net.mptcp.add_addr_timeout=1 > + run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow > chk_join_nr "signal addresses race test" 3 3 3 > > # the server will not signal the address terminating > -- > 2.35.1 > > -- Mat Martineau Intel
diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/selftests/net/mptcp/mptcp_join.sh index 10b3bd805ac6..0d6a71e7bb59 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -752,11 +752,17 @@ chk_add_nr() local mis_ack_nr=${8:-0} local count local dump_stats + local timeout + + timeout=`ip netns exec $ns1 sysctl -n net.mptcp.add_addr_timeout` printf "%-39s %s" " " "add" - count=`ip netns exec $ns2 nstat -as | grep MPTcpExtAddAddr | awk '{print $2}'` + count=`ip netns exec $ns2 nstat -as MPTcpExtAddAddr | grep MPTcpExtAddAddr | awk '{print $2}'` [ -z "$count" ] && count=0 - if [ "$count" != "$add_nr" ]; then + + # if the test configured a short timeout tolerate greater then expected + # add addrs options, due to retransmissions + if [ "$count" != "$add_nr" ] && [ "$timeout" -gt 1 -o "$count" -lt "$add_nr" ]; then echo "[fail] got $count ADD_ADDR[s] expected $add_nr" ret=1 dump_stats=1 @@ -1158,7 +1164,10 @@ signal_address_tests() ip netns exec $ns2 ./pm_nl_ctl add 10.0.2.2 flags signal ip netns exec $ns2 ./pm_nl_ctl add 10.0.3.2 flags signal ip netns exec $ns2 ./pm_nl_ctl add 10.0.4.2 flags signal - run_tests $ns1 $ns2 10.0.1.1 + + # the peer could possibly miss some addr notification, allow retransmission + ip netns exec $ns1 sysctl -q net.mptcp.add_addr_timeout=1 + run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow chk_join_nr "signal addresses race test" 3 3 3 # the server will not signal the address terminating