diff mbox series

[mptcp-next,3/3] selftests: mptcp: add ADD_ADDR timeout test case

Message ID 4ea3b478ddb556e9eb3aff0cbeb786325833e768.1600762109.git.geliangtang@gmail.com
State Superseded, archived
Delegated to: Paolo Abeni
Headers show
Series mptcp: add ADD_ADDR timeout test case | expand

Commit Message

Geliang Tang Sept. 22, 2020, 8:12 a.m. UTC
This patch added the test case for retransmitting ADD_ADDR when timeout.
It set NS1's add_addr_timeout to 1 second, and disable NS2's add_addr_echo.

And we need to slow down the transfer process of all data to let the
ADD_ADDR suboptions can be retransmitted three times.

Signed-off-by: Geliang Tang <geliangtang@gmail.com>
---
 .../testing/selftests/net/mptcp/mptcp_join.sh | 39 +++++++++++++++++--
 1 file changed, 36 insertions(+), 3 deletions(-)
diff mbox series

Patch

diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/selftests/net/mptcp/mptcp_join.sh
index 08f53d86dedc..fa0011f2422e 100755
--- a/tools/testing/selftests/net/mptcp/mptcp_join.sh
+++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh
@@ -82,6 +82,14 @@  reset_with_cookies()
 	done
 }
 
+reset_with_timeout()
+{
+	reset
+
+	ip netns exec $ns1 sysctl -q net.mptcp.add_addr_timeout=1
+	ip netns exec $ns2 sysctl -q net.mptcp.add_addr_echo=0
+}
+
 for arg in "$@"; do
 	if [ "$arg" = "-c" ]; then
 		capture=1
@@ -135,6 +143,7 @@  do_transfer()
 	connect_addr="$5"
 	rm_nr_ns1="$6"
 	rm_nr_ns2="$7"
+	slow="$8"
 
 	port=$((10000+$TEST_COUNT))
 	TEST_COUNT=$((TEST_COUNT+1))
@@ -159,7 +168,7 @@  do_transfer()
 		sleep 1
 	fi
 
-	if [[ $rm_nr_ns1 -eq 0 && $rm_nr_ns2 -eq 0 ]]; then
+	if [ $slow -eq 0 ]; then
 		mptcp_connect="./mptcp_connect -j"
 	else
 		mptcp_connect="./mptcp_connect -r"
@@ -252,7 +261,7 @@  run_tests()
 	connect_addr="$3"
 	lret=0
 
-	do_transfer ${listener_ns} ${connector_ns} MPTCP MPTCP ${connect_addr} 0 0
+	do_transfer ${listener_ns} ${connector_ns} MPTCP MPTCP ${connect_addr} 0 0 0
 	lret=$?
 	if [ $lret -ne 0 ]; then
 		ret=$lret
@@ -269,7 +278,22 @@  run_remove_tests()
 	rm_nr_ns2="$5"
 	lret=0
 
-	do_transfer ${listener_ns} ${connector_ns} MPTCP MPTCP ${connect_addr} ${rm_nr_ns1} ${rm_nr_ns2}
+	do_transfer ${listener_ns} ${connector_ns} MPTCP MPTCP ${connect_addr} ${rm_nr_ns1} ${rm_nr_ns2} 1
+	lret=$?
+	if [ $lret -ne 0 ]; then
+		ret=$lret
+		return
+	fi
+}
+
+run_timeout_tests()
+{
+	listener_ns="$1"
+	connector_ns="$2"
+	connect_addr="$3"
+	lret=0
+
+	do_transfer ${listener_ns} ${connector_ns} MPTCP MPTCP ${connect_addr} 0 0 1
 	lret=$?
 	if [ $lret -ne 0 ]; then
 		ret=$lret
@@ -491,6 +515,15 @@  run_tests $ns1 $ns2 10.0.1.1
 chk_join_nr "multiple subflows and signal" 3 3 3
 chk_add_nr 1 1
 
+# add_addr timeout
+reset_with_timeout
+ip netns exec $ns1 ./pm_nl_ctl limits 0 1
+ip netns exec $ns2 ./pm_nl_ctl limits 1 1
+ip netns exec $ns1 ./pm_nl_ctl add 10.0.2.1 flags signal
+run_timeout_tests $ns1 $ns2 10.0.1.1
+chk_join_nr "signal address, timeout" 1 1 1
+chk_add_nr 4 0
+
 # single subflow, remove
 reset
 ip netns exec $ns1 ./pm_nl_ctl limits 0 1