forked from mirrors/linux
		
	selftests: mptcp: more robust signal race test
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. Fixes:a88c9e4969("mptcp: do not block subflows creation on errors") Fixes:f7efc7771e("mptcp: drop argument port from mptcp_pm_announce_addr") Closes: https://github.com/multipath-tcp/mptcp_net-next/issues/254 Reported-and-tested-by: Matthieu Baerts <matthieu.baerts@tessares.net> Reviewed-by: Matthieu Baerts <matthieu.baerts@tessares.net> Signed-off-by: Paolo Abeni <pabeni@redhat.com> Signed-off-by: Mat Martineau <mathew.j.martineau@linux.intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
		
							parent
							
								
									f73c119463
								
							
						
					
					
						commit
						6ef84b1517
					
				
					 1 changed files with 12 additions and 3 deletions
				
			
		|  | @ -752,11 +752,17 @@ chk_add_nr() | ||||||
| 	local mis_ack_nr=${8:-0} | 	local mis_ack_nr=${8:-0} | ||||||
| 	local count | 	local count | ||||||
| 	local dump_stats | 	local dump_stats | ||||||
|  | 	local timeout | ||||||
|  | 
 | ||||||
|  | 	timeout=`ip netns exec $ns1 sysctl -n net.mptcp.add_addr_timeout` | ||||||
| 
 | 
 | ||||||
| 	printf "%-39s %s" " " "add" | 	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 | 	[ -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" | 		echo "[fail] got $count ADD_ADDR[s] expected $add_nr" | ||||||
| 		ret=1 | 		ret=1 | ||||||
| 		dump_stats=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.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.3.2 flags signal | ||||||
| 	ip netns exec $ns2 ./pm_nl_ctl add 10.0.4.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 | 	chk_join_nr "signal addresses race test" 3 3 3 | ||||||
| 
 | 
 | ||||||
| 	# the server will not signal the address terminating | 	# the server will not signal the address terminating | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue
	
	 Paolo Abeni
						Paolo Abeni