From: Gang Yan <yangang@kylinos.cn>
This patch adds a test for transmission with a limited receive buffer.
Without the fixes in this set, this test fails with errors:
# 001 4 subflows with reduced rcvbuf
# net.ipv4.tcp_rmem = 4096 4096 4096
# Info: Test file (size 1024 KB) for client
# Info: Test file (size 1024 KB) for server
# copyfd_io_poll: poll timed out (events: POLLIN 1, POLLOUT 0)
# copyfd_io_poll: poll timed out (events: POLLIN 0, POLLOUT 4)
# [FAIL] client exit code 2, server 2
# Server ns stats (ns2-qg1Hqo)
Co-developed-by: Geliang Tang <geliang@kernel.org>
Signed-off-by: Geliang Tang <geliang@kernel.org>
Signed-off-by: Gang Yan <yangang@kylinos.cn>
---
Notes:
Changelog:
v5:
- Drop the unnecessary tcp_rmem restore.
---
tools/testing/selftests/net/mptcp/mptcp_join.sh | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/selftests/net/mptcp/mptcp_join.sh
index beec41f6662a..a21333424085 100755
--- a/tools/testing/selftests/net/mptcp/mptcp_join.sh
+++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh
@@ -4417,6 +4417,22 @@ endpoint_tests()
fi
}
+rcvbuf_tests()
+{
+ if reset "4 subflows with reduced rcvbuf"; then
+ ip netns exec $ns2 sysctl -w net.ipv4.tcp_rmem="4096 4096 4096"
+
+ pm_nl_set_limits $ns1 0 4
+ pm_nl_set_limits $ns2 0 4
+ pm_nl_add_endpoint $ns2 10.0.2.2 flags subflow
+ pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow
+ pm_nl_add_endpoint $ns2 10.0.4.2 flags subflow
+ speed=fast test_linkfail=1024 \
+ run_tests $ns1 $ns2 10.0.1.1
+ chk_join_nr 3 3 3
+ fi
+}
+
# [$1: error message]
usage()
{
@@ -4467,6 +4483,7 @@ all_tests_sorted=(
F@fail_tests
u@userspace_tests
I@endpoint_tests
+ R@rcvbuf_tests
)
all_tests_args=""
--
2.43.0