From nobody Mon May 13 21:20:03 2024 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8BA05B641 for ; Thu, 21 Mar 2024 03:42:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710992567; cv=none; b=ne/uJ8Oq7cPG2i0mHAUPmMKb84FhR5ux8vz4SlP/V9TjoUbAjqqOcNx/aIyBaoRfY4uSrvpIUzHgQjtTXgQjSra4CidGIy9Y4qHWrMJLVu137sTYycOADpaLFQXiHNn5vfjGAF17xTLEypQBxz6wlHO8wCH3OwWjeJLzK9xyvtA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710992567; c=relaxed/simple; bh=zzS10bHiTG4/e26mOuB5QyzLqNHuWILl1/7I4i6zBzA=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=JISFkkl2moEinLdlPfzM3K+GAgVQOmp8iZ/av5rLxpw7Hmp+XNpsFHkPGnpLENMdF4Jq2YyCFolyJzxQfr/+Zj/MCjraFIJNseWsZ/HfLltFquksAqgTZVGT9ml//N0nu0COR+ZzPdnbDGPUC5XimsYi72qH+qKzz7Jftlx+vc0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Y/aJzFoV; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Y/aJzFoV" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3977CC433C7; Thu, 21 Mar 2024 03:42:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1710992567; bh=zzS10bHiTG4/e26mOuB5QyzLqNHuWILl1/7I4i6zBzA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Y/aJzFoVONnDYwe4dYRImm2KYAGhQgdjaj0hwV3QwMWbnlLEH1g1lIF9R+jUKZLhl OvaY/27AmW+4MFSDsGT+20XzEkJ6sX9oVpGh0/S8vLtPM1msA2UvrZnj0u5VLN5Tdw tPwbqHp5nLj3vemsHjFvepwwPmrYblvsvgzZBzW6Ef09dZVONImwSfS6Jdl07Xk/jC xKz9rJ3f/fH9vt5zvJbLl0CjVSSmqD1eRdSu6UBHbkVTbWTdiXVbNbMDInaJM1D4Nj i1ioTitmUUzStvVpxBH2HvrkGGR0NxOHMvJVtFeQo0iuZX4MVqMTtmLmF2I5usgFsV LIBlnVv9A8jmw== From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v2 1/4] Squash to "selftests/bpf: Add bpf scheduler test" fix Date: Thu, 21 Mar 2024 11:42:37 +0800 Message-Id: <46ce40465b64da66a2e9bc716435c9207f46f1ea.1710992399.git.tanggeliang@kylinos.cn> X-Mailer: git-send-email 2.40.1 In-Reply-To: References: Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Geliang Tang BPF tests fail sometimes with "bytes !=3D total_bytes" errors: # test_default:PASS:sched_init:default 0 nsec # send_data:PASS:pthread_create 0 nsec # send_data:FAIL:recv 936000 !=3D 10485760 nr_recv:-1 errno:11 # default: 3041 ms # server:FAIL:send 7579500 !=3D 10485760 nr_sent:-1 errno:11 # send_data:FAIL:pthread_join thread_ret:-11 \ test_default:PASS:has_bytes_sent addr_1 0 nsec # test_default:PASS:has_bytes_sent addr_2 0 nsec # close_netns:PASS:setns 0 nsec "bytes !=3D total_bytes" is not a fatal error for BPF test, just print out the error info and skip it. This patch makes BPF tests stable. Signed-off-by: Geliang Tang --- tools/testing/selftests/bpf/prog_tests/mptcp.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing= /selftests/bpf/prog_tests/mptcp.c index 6e28215d7404..4c180839ff1d 100644 --- a/tools/testing/selftests/bpf/prog_tests/mptcp.c +++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c @@ -362,8 +362,10 @@ static void *server(void *arg) bytes +=3D nr_sent; } =20 - CHECK(bytes !=3D total_bytes, "send", "%zd !=3D %u nr_sent:%zd errno:%d\n= ", - bytes, total_bytes, nr_sent, errno); + if (bytes !=3D total_bytes) { + printf("FAIL:send %zd !=3D %u nr_sent:%zd errno:%d\n", + bytes, total_bytes, nr_sent, errno); + } =20 done: if (fd >=3D 0) @@ -409,16 +411,18 @@ static void send_data(int lfd, int fd, char *msg) =20 delta_ms =3D (end.tv_sec - start.tv_sec) * 1000 + (end.tv_nsec - start.tv= _nsec) / 1000000; =20 - CHECK(bytes !=3D total_bytes, "recv", "%zd !=3D %u nr_recv:%zd errno:%d\n= ", - bytes, total_bytes, nr_recv, errno); + if (bytes !=3D total_bytes) { + printf("FAIL:recv %zd !=3D %u nr_recv:%zd errno:%d\n", + bytes, total_bytes, nr_recv, errno); + } =20 printf("%s: %u ms\n", msg, delta_ms); =20 WRITE_ONCE(stop, 1); =20 pthread_join(srv_thread, &thread_ret); - CHECK(IS_ERR(thread_ret), "pthread_join", "thread_ret:%ld", - PTR_ERR(thread_ret)); + if (IS_ERR(thread_ret)) + printf("FAIL:pthread_join thread_ret:%ld\n", PTR_ERR(thread_ret)); } =20 #define ADDR_1 "10.0.1.1" --=20 2.40.1 From nobody Mon May 13 21:20:03 2024 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6ED08B641 for ; Thu, 21 Mar 2024 03:42:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710992568; cv=none; b=b+nazr44Xnk1w6DkZlIKOckO++oJx4o7AsVrqXHFkCo0MZxP6fc2B5aCJCsWUzIusJnKJ64JdbnJ91ZFFklT6lGVwTIuDDSVlivqmnpo2pIOhlvikSZfIrjIxWfNJWzRRlBG64BH96qDnB0pAD1U6HQLyaKutkbRFUGZ9j7lk3I= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710992568; c=relaxed/simple; bh=S0+kctrHQgktXLmfRi63oj2s6hctBrghW6AsPgATIqs=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=I1D4KMB2ZU69VFuH4Up9gBXA97bsVZOOPHxJSTrSDAOelhE27zxX4g+klxoAhl9e+hWCFr7urOK8oTNey4b/kMMcblhib1wqim0TCDuqyV4NvoOK4St+XKr7SCe5tE9dA2Sz98/IAgpwrO6ZW2BbtvjivhIRmlq2lYVS1QyU8R0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=KntEtgiu; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="KntEtgiu" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 81778C433F1; Thu, 21 Mar 2024 03:42:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1710992568; bh=S0+kctrHQgktXLmfRi63oj2s6hctBrghW6AsPgATIqs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=KntEtgiuNG4nYb5CvRbB0OUrDAx7mwVdhCSFE6Ob/rOoUJmEHn7NIeAuw16tAqPA/ wvCK5YOMJx2kEj3j7x0BdNKupehMsWkD2k0pvsgwW0zFhiHx/PlDmyuOeoySCDtVzW hK6T8TxgOa6kwrAIzmUMXmmD/hFyTdfPR1/HQRNUFuk4wCzd5RM/hgez2FfWefhfc5 JtKv+rhrxNEFMj4fw3+KqR5F8i65P0eNrAz9FDHcOjC/4ukVDC7hpt1SYU2nm8xJDt yyoYmOOJBnBE0HRf5GhJn7ZGrXZNGSfvXZJB/FxFr9xEfK/ms9D+6VjPLmDsJOHrAl 5nI4v4oRoOt+Q== From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v2 2/4] selftests/bpf: Add mptcp subflow example Date: Thu, 21 Mar 2024 11:42:38 +0800 Message-Id: <5b081724283edb8925d92b5f6c8754eaa1ea85d5.1710992399.git.tanggeliang@kylinos.cn> X-Mailer: git-send-email 2.40.1 In-Reply-To: References: Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Geliang Tang Move Nicolas's patch into bpf selftests directory. This example added a test that was adding a different mark (SO_MARK) on each subflow, and changing the TCP CC only on the first subflow. This example shows how it is possible to: Identify the parent msk of an MPTCP subflow. Put different sockopt for each subflow of a same MPTCP connection. Here especially, we implemented two different behaviours: A socket mark (SOL_SOCKET SO_MARK) is put on each subflow of a same MPTCP connection. The order of creation of the current subflow defines its mark. The TCP CC algorithm of the very first subflow of an MPTCP connection is set to "reno". Closes: https://github.com/multipath-tcp/mptcp_net-next/issues/76 Signed-off-by: Geliang Tang --- .../selftests/bpf/progs/mptcp_subflow.c | 73 +++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 tools/testing/selftests/bpf/progs/mptcp_subflow.c diff --git a/tools/testing/selftests/bpf/progs/mptcp_subflow.c b/tools/test= ing/selftests/bpf/progs/mptcp_subflow.c new file mode 100644 index 000000000000..9553099ffd5f --- /dev/null +++ b/tools/testing/selftests/bpf/progs/mptcp_subflow.c @@ -0,0 +1,73 @@ +// SPDX-License-Identifier: GPL-2.0 +/* Copyright (c) 2020, Tessares SA. */ +/* Copyright (c) 2024, Kylin Software */ +/* Author: Nicolas Rybowski */ + +#include // SOL_SOCKET, SO_MARK, ... +#include // TCP_CONGESTION +#include +#include +#include "bpf_tcp_helpers.h" + +char _license[] SEC("license") =3D "GPL"; + +#ifndef SOL_TCP +#define SOL_TCP 6 +#endif + +#ifndef TCP_CA_NAME_MAX +#define TCP_CA_NAME_MAX 16 +#endif + +char cc[TCP_CA_NAME_MAX] =3D "reno"; + +/* Associate a subflow counter to each token */ +struct { + __uint(type, BPF_MAP_TYPE_HASH); + __uint(key_size, sizeof(__u32)); + __uint(value_size, sizeof(__u32)); + __uint(max_entries, 100); +} mptcp_sf SEC(".maps"); + +SEC("sockops") +int mptcp_subflow(struct bpf_sock_ops *skops) +{ + __u32 init =3D 1, key, mark, *cnt; + struct mptcp_sock *msk; + struct bpf_sock *sk; + int err; + + if (skops->op !=3D BPF_SOCK_OPS_TCP_CONNECT_CB) + return 1; + + sk =3D skops->sk; + if (!sk) + return 1; + + msk =3D bpf_skc_to_mptcp_sock(sk); + if (!msk) + return 1; + + key =3D msk->token; + cnt =3D bpf_map_lookup_elem(&mptcp_sf, &key); + if (cnt) { + /* A new subflow is added to an existing MPTCP connection */ + __sync_fetch_and_add(cnt, 1); + mark =3D *cnt; + } else { + /* A new MPTCP connection is just initiated and this is its primary + * subflow + */ + bpf_map_update_elem(&mptcp_sf, &key, &init, BPF_ANY); + mark =3D init; + } + + /* Set the mark of the subflow's socket to its apparition order */ + err =3D bpf_setsockopt(skops, SOL_SOCKET, SO_MARK, &mark, sizeof(mark)); + if (err < 0) + return 1; + if (mark =3D=3D 1) + err =3D bpf_setsockopt(skops, SOL_TCP, TCP_CONGESTION, cc, TCP_CA_NAME_M= AX); + + return 1; +} --=20 2.40.1 From nobody Mon May 13 21:20:03 2024 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1E4CD6FC5 for ; Thu, 21 Mar 2024 03:42:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710992570; cv=none; b=kGfNi/KNhwhfFspOojrRC5sHz0vnC/DBk8ptNIWphiK/srbJSe74iJd6qiY0KpG4koGtz4WaSMMrL3cneLBRJ865xABdoUE0vBotGY9ZZGw/2yq/+XYo0NTVrSrbdXsZDpe0kKIWf8NcVHQPCMJIpPQSFB53xmRWJc5M1Sgf12I= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710992570; c=relaxed/simple; bh=K/wUf0MX3l8SBpCMl6TSP/SUzV7fplm0JMXpIZ+uRqE=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=O7UoKDtHY9NRroaQNuzCX7zolAVqymfVm/cqen/DpvDPCFrlgZWiwbfFt7LEA/39TY3nfZI/o3MHkIbp3TWK2q5QXtkgqqf5hix/jwb29uQL3Yt1JxqiAzSs1CYcYsvEDA7XrdbxFKjzQCG40wCidGDMsTNqvij+CP4uo4xGoso= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=TKR1tNUY; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="TKR1tNUY" Received: by smtp.kernel.org (Postfix) with ESMTPSA id C9945C43399; Thu, 21 Mar 2024 03:42:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1710992569; bh=K/wUf0MX3l8SBpCMl6TSP/SUzV7fplm0JMXpIZ+uRqE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=TKR1tNUYvL4dc4jvU21XddOiuFX5MXhl7f315FM1MVY7N0KyRSb4eCYkY6CDEyN14 GcPPk3JXKNUaob0sBs+o3C9pUeyG3cHVPGLvDESKVMz0zftR9Eq9jKwRFkWVvymANa 2RrO+XxNIL89zaQrfsFA0Clv7iYAtoWvkbyXHMfKAusHdZn5KrLyfNfjtYfZeEnTA8 i7S14zJocXe7uxZPdjmSUOEFQjzBj6BMd0vgC1dMWxKac48AFHz8Oqoh9QEygeAOvt QY2r+wwOkVwTiloT0XeZzOv21KfmTZQmNk4FZkHZl9hiAgL2SgYadigKnfMu/HgkXW cYxEWAS4dr8ig== From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v2 3/4] selftests/bpf: Add mptcp subflow subtest Date: Thu, 21 Mar 2024 11:42:39 +0800 Message-Id: <739336e5aa4bbfde58da8f9a5d6b04b472b816a4.1710992399.git.tanggeliang@kylinos.cn> X-Mailer: git-send-email 2.40.1 In-Reply-To: References: Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Geliang Tang This patch adds a subtest named test_subflow to load and verify the newly added mptcp subflow example in test_mptcp. Add a helper endpoint_init() to add a new subflow endpoint. Add another helper has_in_subflow() to verify the fwmark and congestion values set by mptcp_subflow prog using setsockopts. Closes: https://github.com/multipath-tcp/mptcp_net-next/issues/76 Signed-off-by: Geliang Tang --- .../testing/selftests/bpf/prog_tests/mptcp.c | 90 +++++++++++++++++++ 1 file changed, 90 insertions(+) diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing= /selftests/bpf/prog_tests/mptcp.c index 4c180839ff1d..c6ce23b73d06 100644 --- a/tools/testing/selftests/bpf/prog_tests/mptcp.c +++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c @@ -10,6 +10,7 @@ #include "network_helpers.h" #include "mptcp_sock.skel.h" #include "mptcpify.skel.h" +#include "mptcp_subflow.skel.h" #include "mptcp_bpf_first.skel.h" #include "mptcp_bpf_bkup.skel.h" #include "mptcp_bpf_rr.skel.h" @@ -328,6 +329,93 @@ static void test_mptcpify(void) close(cgroup_fd); } =20 +#define ADDR_1 "10.0.1.1" +#define ADDR_2 "10.0.1.2" +#define PORT_1 10001 + +static int endpoint_init(char *flags) +{ + SYS(fail, "ip -net %s link add veth1 type veth peer name veth2", NS_TEST); + SYS(fail, "ip -net %s addr add %s/24 dev veth1", NS_TEST, ADDR_1); + SYS(fail, "ip -net %s link set dev veth1 up", NS_TEST); + SYS(fail, "ip -net %s addr add %s/24 dev veth2", NS_TEST, ADDR_2); + SYS(fail, "ip -net %s link set dev veth2 up", NS_TEST); + SYS(fail, "ip -net %s mptcp endpoint add %s %s", NS_TEST, ADDR_2, flags); + + return 0; +fail: + return -1; +} + +static int has_in_subflow(char *src, char *str) +{ + char cmd[128]; + + snprintf(cmd, sizeof(cmd), + "ip netns exec %s ss -Menita src %s dst %s dport %d | grep -q '%s'", + NS_TEST, src, ADDR_1, PORT_1, str); + return system(cmd); +} + +static void run_test_subflow(int cgroup_fd) +{ + int server_fd, client_fd, prog_fd, err; + struct mptcp_subflow *skel; + + skel =3D mptcp_subflow__open_and_load(); + if (!ASSERT_OK_PTR(skel, "skel_load")) + goto cleanup; + + prog_fd =3D bpf_program__fd(skel->progs.mptcp_subflow); + err =3D bpf_prog_attach(prog_fd, cgroup_fd, BPF_CGROUP_SOCK_OPS, 0); + if (!ASSERT_OK(err, "bpf_prog_attach")) + goto cleanup; + + server_fd =3D start_mptcp_server(AF_INET, ADDR_1, PORT_1, 0); + if (!ASSERT_GE(server_fd, 0, "start_mptcp_server")) + goto cleanup; + + client_fd =3D connect_to_fd(server_fd, 0); + if (!ASSERT_GE(client_fd, 0, "connect to fd")) + goto close_server; + + send_byte(client_fd); + + ASSERT_OK(has_in_subflow(ADDR_1, "fwmark:0x1"), "has_in_subflow fwmark:0x= 1"); + ASSERT_OK(has_in_subflow(ADDR_2, "fwmark:0x2"), "has_in_subflow fwmark:0x= 2"); + ASSERT_OK(has_in_subflow(ADDR_1, "reno"), "has_in_subflow reno"); + ASSERT_OK(has_in_subflow(ADDR_2, "cubic"), "has_in_subflow cubic"); + + close(client_fd); +close_server: + close(server_fd); +cleanup: + mptcp_subflow__destroy(skel); +} + +void test_subflow(void) +{ + struct nstoken *nstoken =3D NULL; + int cgroup_fd; + + cgroup_fd =3D test__join_cgroup("/mptcp_subflow"); + if (!ASSERT_GE(cgroup_fd, 0, "test__join_cgroup")) + return; + + nstoken =3D create_netns(); + if (!ASSERT_OK_PTR(nstoken, "create_netns")) + goto fail; + + if (!ASSERT_OK(endpoint_init("subflow"), "endpoint_init")) + goto fail; + + run_test_subflow(cgroup_fd); + +fail: + cleanup_netns(nstoken); + close(cgroup_fd); +} + static const unsigned int total_bytes =3D 10 * 1024 * 1024; static int stop, duration; =20 @@ -661,6 +749,8 @@ void test_mptcp(void) test_base(); if (test__start_subtest("mptcpify")) test_mptcpify(); + if (test__start_subtest("subflow")) + test_subflow(); if (test__start_subtest("default")) test_default(); if (test__start_subtest("first")) --=20 2.40.1 From nobody Mon May 13 21:20:03 2024 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 63BD56FC5 for ; Thu, 21 Mar 2024 03:42:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710992571; cv=none; b=TxxXwDgJMlPVm05st8Xm/deQ+bpyU8sLCK259Hu5z5Eki+hEYz2IdvD+WXtDflaJBj9G6gyeDKK3VLD+Ai+LFym2W1VWY7HSxgSEzdYb15/8QUDdCv7+JiFky7toZK5Dam1THDxjAUkHHgJtX44fOWJhljZLki/22AzTVK0y9WE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710992571; c=relaxed/simple; bh=NauVFc0CbNEfJGF3k/qZ/F70kwGHRbzNtua05IqPcBc=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=Kg7S53ub6x6XLiXuqh4ffHQ33/PSAtjCTb8UfNTRZ4l0wnwm6TRjtqfRmwNnBJVmJi2uLCZj/UavRQX+sVMoiwm4uMZRd9k+1/H0pp1JqD4l6vplNonDhyNAs4otRJyV+8m3l4sAx5j+hxwxgRh+8olu2iMjTwbRkEPYNTf4k4s= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=MMaIh+1I; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="MMaIh+1I" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1C697C433F1; Thu, 21 Mar 2024 03:42:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1710992570; bh=NauVFc0CbNEfJGF3k/qZ/F70kwGHRbzNtua05IqPcBc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=MMaIh+1I58VFIEd5GkZP+J7D6Uci7AjR3XL/WSi247Y3dYqb0JABrP1jqdIxPU+NF dXEUHMTBae2H2AlnblAehebBahX+uFDOw85BuFfn4oMddF5gsKTrQ60YiFgX+weRuO wE686+nWKV8OM/ux/GM2ekvpCEbyijdaBswPT47N2yQoXjMBP2YveIjOG/naseOa5C LQD0sgun771leVfrIfIr8EdHGuEgbl3dc5BhtNhUfsTz0lGse1zXMiFlTdn/zMgvz3 zh+UxET5d6Pfj22DBZFm32ekK/w+I6ChFFGYnRrZS/a36lTtSiE2BR3jLzKTdo88YT x5OkmLO06fdHw== From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v2 4/4] Squash to "selftests/bpf: Add bpf scheduler test" cleanup Date: Thu, 21 Mar 2024 11:42:40 +0800 Message-Id: <4b725f4dfcfa27145458900dfb1ab16e9816d1af.1710992399.git.tanggeliang@kylinos.cn> X-Mailer: git-send-email 2.40.1 In-Reply-To: References: Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Geliang Tang Some cleanups. Signed-off-by: Geliang Tang --- .../testing/selftests/bpf/prog_tests/mptcp.c | 25 ++++++++----------- 1 file changed, 10 insertions(+), 15 deletions(-) diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing= /selftests/bpf/prog_tests/mptcp.c index c6ce23b73d06..861f70dfe68f 100644 --- a/tools/testing/selftests/bpf/prog_tests/mptcp.c +++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c @@ -417,7 +417,7 @@ void test_subflow(void) } =20 static const unsigned int total_bytes =3D 10 * 1024 * 1024; -static int stop, duration; +static int stop; =20 static void *server(void *arg) { @@ -476,11 +476,12 @@ static void send_data(int lfd, int fd, char *msg) int err; =20 WRITE_ONCE(stop, 0); + if (clock_gettime(CLOCK_MONOTONIC, &start) < 0) return; =20 err =3D pthread_create(&srv_thread, NULL, server, (void *)(long)lfd); - if (CHECK(err !=3D 0, "pthread_create", "err:%d errno:%d\n", err, errno)) + if (!ASSERT_OK(err, "pthread_create")) return; =20 /* recv total_bytes */ @@ -513,10 +514,6 @@ static void send_data(int lfd, int fd, char *msg) printf("FAIL:pthread_join thread_ret:%ld\n", PTR_ERR(thread_ret)); } =20 -#define ADDR_1 "10.0.1.1" -#define ADDR_2 "10.0.1.2" -#define PORT_1 10001 - static struct nstoken *sched_init(char *flags, char *sched) { struct nstoken *nstoken; @@ -525,12 +522,9 @@ static struct nstoken *sched_init(char *flags, char *s= ched) if (!ASSERT_OK_PTR(nstoken, "create_netns")) goto fail; =20 - SYS(fail, "ip -net %s link add veth1 type veth peer name veth2", NS_TEST); - SYS(fail, "ip -net %s addr add %s/24 dev veth1", NS_TEST, ADDR_1); - SYS(fail, "ip -net %s link set dev veth1 up", NS_TEST); - SYS(fail, "ip -net %s addr add %s/24 dev veth2", NS_TEST, ADDR_2); - SYS(fail, "ip -net %s link set dev veth2 up", NS_TEST); - SYS(fail, "ip -net %s mptcp endpoint add %s %s", NS_TEST, ADDR_2, flags); + if (!ASSERT_OK(endpoint_init("subflow"), "endpoint_init")) + goto fail; + SYS(fail, "ip netns exec %s sysctl -qw net.mptcp.scheduler=3D%s", NS_TEST= , sched); =20 return nstoken; @@ -538,12 +532,13 @@ static struct nstoken *sched_init(char *flags, char *= sched) return NULL; } =20 -static int has_bytes_sent(char *addr) +static int has_bytes_sent(char *dst) { char cmd[128]; =20 - snprintf(cmd, sizeof(cmd), "ip netns exec %s ss -it src %s sport %d dst %= s | %s", - NS_TEST, ADDR_1, PORT_1, addr, "grep -q bytes_sent:"); + snprintf(cmd, sizeof(cmd), + "ip netns exec %s ss -it src %s sport %d dst %s | %s", + NS_TEST, ADDR_1, PORT_1, dst, "grep -q bytes_sent:"); return system(cmd); } =20 --=20 2.40.1