Hello,
On 10/09/2024 16:13, Matthieu Baerts (NGI0) wrote:
From: Geliang Tang tanggeliang@kylinos.cn
This patch adds a subtest named test_subflow in test_mptcp to load and verify the newly added MPTCP subflow BPF program. To goal is to make sure it is possible to set different socket options per subflows, while the userspace socket interface only lets the application to set the same socket options for the whole MPTCP connection and its multiple subflows.
To check that, a client and a server are started in a dedicated netns, with veth interfaces to simulate multiple paths. They will exchange data to allow the creation of an additional subflow.
(...)
diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing/selftests/bpf/prog_tests/mptcp.c index d2ca32fa3b21..c30f032edaca 100644 --- a/tools/testing/selftests/bpf/prog_tests/mptcp.c +++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c @@ -335,10 +339,132 @@ static void test_mptcpify(void) close(cgroup_fd); }
(...)
+static void wait_for_new_subflows(int fd) +{
- socklen_t len;
- u8 subflows;
- int err, i;
- len = sizeof(subflows);
- /* Wait max 1 sec for new subflows to be created */
- for (i = 0; i < 10; i++) {
err = getsockopt(fd, SOL_MPTCP, MPTCP_INFO, &subflows, &len);
if (!err && subflows > 0)
break;
sleep(0.1);
As reported by the CI, we are not in Python, usleep() should be used here. I missed that one during my review. I will send a new version with the fix tomorrow. Sorry for the noise.
Cheers, Matt