* [MPTCP] [MPTCP][PATCH v2 mptcp-next 2/2] selftests: mptcp: add ADD_ADDR timeout test case
@ 2020-09-27 4:38 Geliang Tang
0 siblings, 0 replies; only message in thread
From: Geliang Tang @ 2020-09-27 4:38 UTC (permalink / raw)
To: mptcp
[-- Attachment #1: Type: text/plain, Size: 2943 bytes --]
This patch added the test case for retransmitting ADD_ADDR when timeout.
It set NS1's add_addr_timeout to 1 second, and drop NS2's ADD_ADDR echo
packets.
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(a)gmail.com>
---
.../testing/selftests/net/mptcp/mptcp_join.sh | 43 +++++++++++++++++--
1 file changed, 40 insertions(+), 3 deletions(-)
diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/selftests/net/mptcp/mptcp_join.sh
index 08f53d86dedc..8a34629cb1f5 100755
--- a/tools/testing/selftests/net/mptcp/mptcp_join.sh
+++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh
@@ -82,6 +82,18 @@ reset_with_cookies()
done
}
+reset_with_add_addr_timeout()
+{
+ reset
+
+ ip netns exec $ns1 sysctl -q net.mptcp.add_addr_timeout=1
+ ip netns exec $ns2 iptables -A OUTPUT -p tcp \
+ -m tcp --tcp-option 30 \
+ -m bpf --bytecode \
+ "$(nfbpf_compile '(tcp[34] & 0xf0) == 0x30')" \
+ -j DROP
+}
+
for arg in "$@"; do
if [ "$arg" = "-c" ]; then
capture=1
@@ -135,6 +147,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 +172,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 +265,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 +282,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_add_addr_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 +519,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_add_addr_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_add_addr_timeout_tests $ns1 $ns2 10.0.1.1
+chk_join_nr "signal address, ADD_ADDR timeout" 1 1 1
+chk_add_nr 4 0
+
# single subflow, remove
reset
ip netns exec $ns1 ./pm_nl_ctl limits 0 1
--
2.17.1
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2020-09-27 4:38 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-09-27 4:38 [MPTCP] [MPTCP][PATCH v2 mptcp-next 2/2] selftests: mptcp: add ADD_ADDR timeout test case Geliang Tang
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.