From nobody Tue May 14 17:38:28 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 80424374D1 for ; Fri, 29 Mar 2024 04:56:58 +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=1711688218; cv=none; b=KO9TZF1JtFgf9GcWgc+gqjoySsVGSDymLwSrFas2FbJK4GzPdG11NfiiC0Wt4+sS99skuLdwiG42FkwZ0EsVbbzq28RhxBvI31omalj+hbPAcKSFune0FPYS8yQahBPJrWtv74QJeP+s/gQdmJIX78N6x0X60DKiv8PzKOIwvVE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711688218; c=relaxed/simple; bh=nYOWAU7sfzIVHuhCPmcHon1XQI6uRYZDP32k3/YsPdQ=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=WGVPViuDX0pqHxixCJwkQkB+hmzf0gT44+WDiVQc/Q7kz6s21xQIhQzQj1LSu2CRD02RHcwBN6zBu+o8DE74Cd6/z1SdZeJz67gZBt8EMRbAYgPylN7zORbkKgoxOF+k3rU7oUDUdm8dv7E3UnpP3jReUObX8+RZKKotyb5uPhE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Fb+sEDaP; 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="Fb+sEDaP" Received: by smtp.kernel.org (Postfix) with ESMTPSA id F12F3C43390; Fri, 29 Mar 2024 04:56:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711688218; bh=nYOWAU7sfzIVHuhCPmcHon1XQI6uRYZDP32k3/YsPdQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Fb+sEDaPRTmNdtKE1sxMz/gb5hI8FIR2hH5yYD5/5RwsuVjiJMTipHDN2ghZrt0A7 +Az1A9yK9ByUWkIZX/0cE5RhP07eR4m3xyjopNJgslE1DfNt41XgwH4VHclftB+bt7 V4CEsKGwhhWss1o/ZhGpynpRJTqT2Bbzi8Cup7ihA/90LVlb/5vvCUKRprxsKZaaJ6 jKSe3ry/d+rEBItmMJfWQhh/W6wZ5d+xA7D4MMbxOhQDmdJg2Z/k6DI/i19EsLeeOI +wRu8QEG/PqkBkBiV4TEILoEBV3i4xuK5J8tSeI+VbZVIA32hQ4Xsf1mf6helu+gxF CA0RtZA6gz8DQ== From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v2 01/15] Squash to "selftests/bpf: Add bpf scheduler test" - fix Date: Fri, 29 Mar 2024 12:55:57 +0800 Message-Id: <74e771eb62337bf1ee04ce1114c8fa9a858eafea.1711688054.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 Here errno 11 is EAGAIN, sending should continue in this case, not break. This patch makes BPF tests stable. Signed-off-by: Geliang Tang --- tools/testing/selftests/bpf/prog_tests/mptcp.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing= /selftests/bpf/prog_tests/mptcp.c index 6e28215d7404..7fec91ab19cf 100644 --- a/tools/testing/selftests/bpf/prog_tests/mptcp.c +++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c @@ -353,7 +353,7 @@ static void *server(void *arg) while (bytes < total_bytes && !READ_ONCE(stop)) { nr_sent =3D send(fd, &batch, MIN(total_bytes - bytes, sizeof(batch)), 0); - if (nr_sent =3D=3D -1 && errno =3D=3D EINTR) + if (nr_sent =3D=3D -1 && (errno =3D=3D EINTR || errno =3D=3D EAGAIN)) continue; if (nr_sent =3D=3D -1) { err =3D -errno; @@ -397,7 +397,7 @@ static void send_data(int lfd, int fd, char *msg) while (bytes < total_bytes && !READ_ONCE(stop)) { nr_recv =3D recv(fd, &batch, MIN(total_bytes - bytes, sizeof(batch)), 0); - if (nr_recv =3D=3D -1 && errno =3D=3D EINTR) + if (nr_recv =3D=3D -1 && (errno =3D=3D EINTR || errno =3D=3D EAGAIN)) continue; if (nr_recv =3D=3D -1) break; --=20 2.40.1 From nobody Tue May 14 17:38:28 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 4639E38DED for ; Fri, 29 Mar 2024 04:57:00 +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=1711688220; cv=none; b=rt2LQyjZC0Ge7j8hXyRm4GMdxRNl2m3RnPrgWbJeNKLXt4jpNGw/CijrMx1oAolM1tcnWfCzCOAN4T8IGlw+k4qWNg6M1aBTbLTacJMydXSrQ3BHLfMySNjHnZadkV7vGRPkNhDbiMMupI595jYC0Gngz2vpCYB7HzkWoBh9d/s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711688220; c=relaxed/simple; bh=eSRJqV9TJ2h4XZ36wFKzcYL2mrgwjDwh9TuUPhAEW5Q=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=bXEd3K/F3DH1Q2jnI1WM+zJBdQc4138eeAXVTAAS4ow6DecZFPeVXuwiyTA1lI88zTUZKOI8w44KIRH6qLKDUL4JZXdOB1Gw9aTuTRhgUT5WxFJhHXKQJOpNEpa5tKI6Y7At2Rc7PvJ/tbpju9k6EtNF+ZBZ9nu1Fulprraaz7U= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=pV3WpRHy; 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="pV3WpRHy" Received: by smtp.kernel.org (Postfix) with ESMTPSA id B2089C433C7; Fri, 29 Mar 2024 04:56:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711688219; bh=eSRJqV9TJ2h4XZ36wFKzcYL2mrgwjDwh9TuUPhAEW5Q=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=pV3WpRHyrVaPf1Vp4i+K+DAKhaTjori9sQ+HML5k8+hz583+3uvcQDZQrVqHJFWPH BV/a7XwsmWDjjZlQB/DliaCoUglNrsyvXta+6xlHueQ1iN/VoBtZ8io1JWcUa4a2ht BvhKcLP/4/MFlK3QTgJm9gCi40NnUywD75eaXw1ltf9PMBTVuIF4ZSgBe49ic7iCBA qJfqftvJpH6aT2DcPM8XsKWcbTWOJ8Kvy0gqmsZLe4Z0GT2fD5LPA/EkLNde4Qng2F 42wm47vWtGsLnAzSr+TVGTYf71QnZK+u2z2dL+7Galgbl5SKFN41BzUk6/R89e/hOb Bn6MzfeYv9/AQ== From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v2 02/15] selftests/bpf: Handle EAGAIN in bpf_tcp_ca Date: Fri, 29 Mar 2024 12:55:58 +0800 Message-Id: <86849c5613173989382bf679b653af82f7d6a425.1711688054.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_tcp_ca tests may emit EAGAIN sometimes. In that case, tests fail with "bytes !=3D total_bytes" errors. Sending should continue, not break when errno is EAGAIN. This patch can make bpf_tcp_ca tests stable. Signed-off-by: Geliang Tang --- tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c b/tools/te= sting/selftests/bpf/prog_tests/bpf_tcp_ca.c index 3da3030c9365..885c8b4e21a4 100644 --- a/tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c +++ b/tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c @@ -55,7 +55,7 @@ static void *server(void *arg) while (bytes < total_bytes && !READ_ONCE(stop)) { nr_sent =3D send(fd, &batch, MIN(total_bytes - bytes, sizeof(batch)), 0); - if (nr_sent =3D=3D -1 && errno =3D=3D EINTR) + if (nr_sent =3D=3D -1 && (errno =3D=3D EINTR || errno =3D=3D EAGAIN)) continue; if (nr_sent =3D=3D -1) { err =3D -errno; @@ -130,7 +130,7 @@ static void do_test(const char *tcp_ca, const struct bp= f_map *sk_stg_map) while (bytes < total_bytes && !READ_ONCE(stop)) { nr_recv =3D recv(fd, &batch, MIN(total_bytes - bytes, sizeof(batch)), 0); - if (nr_recv =3D=3D -1 && errno =3D=3D EINTR) + if (nr_recv =3D=3D -1 && (errno =3D=3D EINTR || errno =3D=3D EAGAIN)) continue; if (nr_recv =3D=3D -1) break; --=20 2.40.1 From nobody Tue May 14 17:38:28 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 0906037149 for ; Fri, 29 Mar 2024 04:57:01 +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=1711688222; cv=none; b=pKEbN1JO1mcSP7v5t3Rdrum2srupmGnPuIq/f4dOwMjYWhNfXypvY1MKAWEGVnjewvA4Mv7tI4wHQtqhVn7obLuVO5Q0uq/vexkDLVai98OyAJJU5lUcPOCu9QhHVRs7+uNpIQSzSzefhiSDy0MqBQ7IFlwl//r2x9Ld05zjiKk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711688222; c=relaxed/simple; bh=FNXRdZrV3HR+uQ8GnDjTUzVB9KW5XpUVk97vjdQ7Ocg=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=iiWjEmMPdUoEYsFqyy6u1oFFlCp2g1Z3Ln8aQg5dpY+DqkGFliXGvN/HojsJhjEy2hNC6KQnp5rzirtsp47yewmtlWI3UpLGwqAXlJIdnljjENJFuMnujr5ZW3siQtxXcIi9ZBmuxjMuE3oQEfk1G8LkGcMvRtzohT/fCPrpMHU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=d0cCSgQ2; 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="d0cCSgQ2" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 766D7C433F1; Fri, 29 Mar 2024 04:57:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711688221; bh=FNXRdZrV3HR+uQ8GnDjTUzVB9KW5XpUVk97vjdQ7Ocg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=d0cCSgQ2vZ2RtTAZd/zgCHU883AcrOflRIOku8XruYoP4fMxOUz/QFifXBVVnwyzc MQnapGpw/cIQ+x+EJoYnwQP1S8K2ttwwGae4kVdXoVYKnHIq307Xt8yXYyIeTNXJrt FW4SrFuLJXQo/euDVlh+W7Z4QooJomOXbYKJQaUtNdjJhoKUAL/Pn3G2nh/zkyaqEX U+gNId8IrkZ545rafXuw7+NgCOP3vpjPO5TjDvbkg4eK0kBbWKRZiLIkCjEpOKEvUM iB0xGlxiXXD0cbB0DpBbAatbZkIniU6IAYbcbMLiJxLKmbUAW6OYj4qUX0avfFOhGG tcpWs+QPkvaTw== From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v2 03/15] selftests/bpf: Export send_single_byte helper Date: Fri, 29 Mar 2024 12:55:59 +0800 Message-Id: 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 The helper send_byte is defined in both tcp_rtt.c and mptcp.c. It makes sense to export it into network_helpers.h to let it can be used for all BPF selftests. Signed-off-by: Geliang Tang --- tools/testing/selftests/bpf/network_helpers.c | 7 +++++++ tools/testing/selftests/bpf/network_helpers.h | 1 + tools/testing/selftests/bpf/prog_tests/mptcp.c | 9 +-------- tools/testing/selftests/bpf/prog_tests/tcp_rtt.c | 9 +-------- 4 files changed, 10 insertions(+), 16 deletions(-) diff --git a/tools/testing/selftests/bpf/network_helpers.c b/tools/testing/= selftests/bpf/network_helpers.c index 6db27a9088e9..8dea4160bfee 100644 --- a/tools/testing/selftests/bpf/network_helpers.c +++ b/tools/testing/selftests/bpf/network_helpers.c @@ -497,3 +497,10 @@ int get_socket_local_port(int sock_fd) =20 return -1; } + +void send_single_byte(int fd) +{ + char b =3D 0x55; + + ASSERT_EQ(write(fd, &b, sizeof(b)), 1, "send single byte"); +} diff --git a/tools/testing/selftests/bpf/network_helpers.h b/tools/testing/= selftests/bpf/network_helpers.h index 94b9be24e39b..b3c2238772c8 100644 --- a/tools/testing/selftests/bpf/network_helpers.h +++ b/tools/testing/selftests/bpf/network_helpers.h @@ -71,6 +71,7 @@ struct nstoken; */ struct nstoken *open_netns(const char *name); void close_netns(struct nstoken *token); +void send_single_byte(int fd); =20 static __u16 csum_fold(__u32 csum) { diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing= /selftests/bpf/prog_tests/mptcp.c index 7fec91ab19cf..42edf9f80d68 100644 --- a/tools/testing/selftests/bpf/prog_tests/mptcp.c +++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c @@ -231,13 +231,6 @@ static void test_base(void) close(cgroup_fd); } =20 -static void send_byte(int fd) -{ - char b =3D 0x55; - - ASSERT_EQ(write(fd, &b, sizeof(b)), 1, "send single byte"); -} - static int verify_mptcpify(int server_fd, int client_fd) { struct __mptcp_info info; @@ -296,7 +289,7 @@ static int run_mptcpify(int cgroup_fd) goto close_server; } =20 - send_byte(client_fd); + send_single_byte(client_fd); =20 err =3D verify_mptcpify(server_fd, client_fd); =20 diff --git a/tools/testing/selftests/bpf/prog_tests/tcp_rtt.c b/tools/testi= ng/selftests/bpf/prog_tests/tcp_rtt.c index 8fe84da1b9b4..5e23cf1e951c 100644 --- a/tools/testing/selftests/bpf/prog_tests/tcp_rtt.c +++ b/tools/testing/selftests/bpf/prog_tests/tcp_rtt.c @@ -12,13 +12,6 @@ struct tcp_rtt_storage { __u32 icsk_retransmits; }; =20 -static void send_byte(int fd) -{ - char b =3D 0x55; - - ASSERT_EQ(write(fd, &b, sizeof(b)), 1, "send single byte"); -} - static int wait_for_ack(int fd, int retries) { struct tcp_info info; @@ -121,7 +114,7 @@ static int run_test(int cgroup_fd, int server_fd) /*delivered_ce=3D*/0, /*icsk_retransmits=3D*/0); =20 - send_byte(client_fd); + send_single_byte(client_fd); if (wait_for_ack(client_fd, 100) < 0) { err =3D -1; goto close_client_fd; --=20 2.40.1 From nobody Tue May 14 17:38:28 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 7DF2937149 for ; Fri, 29 Mar 2024 04:57:03 +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=1711688223; cv=none; b=O6vacgBm/DvVxGnwdz1apr7vELLU0c0mowt6XMWGC+qMQvHZZiMx0QZdy2nDboruYVGnacAh5OwHltKKfuftYc3VBCGxN0Dc6Liqy7dht0WewgLu4+G3Y9H8W5jSZknhztv5LON0qGEBCUa9sMA+SGq2Wz3CCojaDhhQd4udYgw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711688223; c=relaxed/simple; bh=/U50KzZmUbjGW49E8adc6RqDTvnDgvDHPaDuLAYIefI=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=J8iQ88IdUfyY+Zi2HcQL2z1PS64ZgG/2aP3nqX1ENHu7eYsg9Wq++Ml356/a89BEuxJ3UtxFOI+oiMUjkloNi9HQZwS1nPI379uH1Q/7/RTq74JsZqGWn4kiztySVBDfHDn06CD90BjcexxpEMqw1SwMkOMNhGyaql6X74SdDvY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=t3DCh6DT; 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="t3DCh6DT" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1B539C43390; Fri, 29 Mar 2024 04:57:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711688223; bh=/U50KzZmUbjGW49E8adc6RqDTvnDgvDHPaDuLAYIefI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=t3DCh6DT40CTOg4LHndfTZ95AOmWjp3CNB/cioWByrBIPCGLItKoHm2g53M4Te13F NUomr6N2xVu3J/ozfxVgbaZUHAzgt3tV+3otsxZyauUIckhYDFCZ4Cqpn8jtbH/6Np XabEeS+/cx8nFUSLnKAH2+AsTZXxde3WQPalDB8E1fZjcnVIEvjta8j289ENT1M1rZ 42IRIV9iEoNjXDk7qmtMUvYnOMw7G/prj5mjtfAnJx+b54hqEHcnMNBntHxdBvvF9n aiqDoAg01W9Av4fUDZw3LgwbaNzYZHbUjyOGYbT7BLdEpvSt6izJBVE7t+L4vHdl9q DirieE32rmUrg== From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v2 04/15] selftests/bpf: Export send_recv_data helper Date: Fri, 29 Mar 2024 12:56:00 +0800 Message-Id: <00c86df51704c59885b9795cf0cfe5a72b18fdc7.1711688054.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 extracts the code to send and receive data into a new helper named send_recv_data() in network_helpers.c and export it in network_helpers.h. Then it can be used for all BPF selftests. Signed-off-by: Geliang Tang --- tools/testing/selftests/bpf/network_helpers.c | 78 +++++++++++++++++++ tools/testing/selftests/bpf/network_helpers.h | 1 + .../selftests/bpf/prog_tests/bpf_tcp_ca.c | 72 +---------------- 3 files changed, 80 insertions(+), 71 deletions(-) diff --git a/tools/testing/selftests/bpf/network_helpers.c b/tools/testing/= selftests/bpf/network_helpers.c index 8dea4160bfee..9e8e2d34f76f 100644 --- a/tools/testing/selftests/bpf/network_helpers.c +++ b/tools/testing/selftests/bpf/network_helpers.c @@ -504,3 +504,81 @@ void send_single_byte(int fd) =20 ASSERT_EQ(write(fd, &b, sizeof(b)), 1, "send single byte"); } + +static const unsigned int total_bytes =3D 10 * 1024 * 1024; +static int stop; + +static void *server(void *arg) +{ + int lfd =3D (int)(long)arg, err =3D 0, fd; + ssize_t nr_sent =3D 0, bytes =3D 0; + char batch[1500]; + + fd =3D accept(lfd, NULL, NULL); + while (fd =3D=3D -1) { + if (errno =3D=3D EINTR) + continue; + err =3D -errno; + goto done; + } + + if (settimeo(fd, 0)) { + err =3D -errno; + goto done; + } + + while (bytes < total_bytes && !READ_ONCE(stop)) { + nr_sent =3D send(fd, &batch, + MIN(total_bytes - bytes, sizeof(batch)), 0); + if (nr_sent =3D=3D -1 && (errno =3D=3D EINTR || errno =3D=3D EAGAIN)) + continue; + if (nr_sent =3D=3D -1) { + err =3D -errno; + break; + } + bytes +=3D nr_sent; + } + + ASSERT_EQ(bytes, total_bytes, "send"); + +done: + if (fd >=3D 0) + close(fd); + if (err) { + WRITE_ONCE(stop, 1); + return ERR_PTR(err); + } + return NULL; +} + +void send_recv_data(int lfd, int fd) +{ + ssize_t nr_recv =3D 0, bytes =3D 0; + pthread_t srv_thread; + void *thread_ret; + char batch[1500]; + int err; + + WRITE_ONCE(stop, 0); + + err =3D pthread_create(&srv_thread, NULL, server, (void *)(long)lfd); + if (!ASSERT_OK(err, "pthread_create")) + return; + + /* recv total_bytes */ + while (bytes < total_bytes && !READ_ONCE(stop)) { + nr_recv =3D recv(fd, &batch, + MIN(total_bytes - bytes, sizeof(batch)), 0); + if (nr_recv =3D=3D -1 && (errno =3D=3D EINTR || errno =3D=3D EAGAIN)) + continue; + if (nr_recv =3D=3D -1) + break; + bytes +=3D nr_recv; + } + + ASSERT_EQ(bytes, total_bytes, "recv"); + + WRITE_ONCE(stop, 1); + pthread_join(srv_thread, &thread_ret); + ASSERT_OK(IS_ERR(thread_ret), "thread_ret"); +} diff --git a/tools/testing/selftests/bpf/network_helpers.h b/tools/testing/= selftests/bpf/network_helpers.h index b3c2238772c8..ad8dfca5296f 100644 --- a/tools/testing/selftests/bpf/network_helpers.h +++ b/tools/testing/selftests/bpf/network_helpers.h @@ -72,6 +72,7 @@ struct nstoken; struct nstoken *open_netns(const char *name); void close_netns(struct nstoken *token); void send_single_byte(int fd); +void send_recv_data(int lfd, int fd); =20 static __u16 csum_fold(__u32 csum) { diff --git a/tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c b/tools/te= sting/selftests/bpf/prog_tests/bpf_tcp_ca.c index 885c8b4e21a4..55f4f54f9b5f 100644 --- a/tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c +++ b/tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c @@ -18,9 +18,7 @@ #define ENOTSUPP 524 #endif =20 -static const unsigned int total_bytes =3D 10 * 1024 * 1024; static int expected_stg =3D 0xeB9F; -static int stop; =20 static int settcpca(int fd, const char *tcp_ca) { @@ -33,60 +31,11 @@ static int settcpca(int fd, const char *tcp_ca) return 0; } =20 -static void *server(void *arg) -{ - int lfd =3D (int)(long)arg, err =3D 0, fd; - ssize_t nr_sent =3D 0, bytes =3D 0; - char batch[1500]; - - fd =3D accept(lfd, NULL, NULL); - while (fd =3D=3D -1) { - if (errno =3D=3D EINTR) - continue; - err =3D -errno; - goto done; - } - - if (settimeo(fd, 0)) { - err =3D -errno; - goto done; - } - - while (bytes < total_bytes && !READ_ONCE(stop)) { - nr_sent =3D send(fd, &batch, - MIN(total_bytes - bytes, sizeof(batch)), 0); - if (nr_sent =3D=3D -1 && (errno =3D=3D EINTR || errno =3D=3D EAGAIN)) - continue; - if (nr_sent =3D=3D -1) { - err =3D -errno; - break; - } - bytes +=3D nr_sent; - } - - ASSERT_EQ(bytes, total_bytes, "send"); - -done: - if (fd >=3D 0) - close(fd); - if (err) { - WRITE_ONCE(stop, 1); - return ERR_PTR(err); - } - return NULL; -} - static void do_test(const char *tcp_ca, const struct bpf_map *sk_stg_map) { - ssize_t nr_recv =3D 0, bytes =3D 0; int lfd =3D -1, fd =3D -1; - pthread_t srv_thread; - void *thread_ret; - char batch[1500]; int err; =20 - WRITE_ONCE(stop, 0); - lfd =3D start_server(AF_INET6, SOCK_STREAM, NULL, 0, 0); if (!ASSERT_NEQ(lfd, -1, "socket")) return; @@ -122,26 +71,7 @@ static void do_test(const char *tcp_ca, const struct bp= f_map *sk_stg_map) goto done; } =20 - err =3D pthread_create(&srv_thread, NULL, server, (void *)(long)lfd); - if (!ASSERT_OK(err, "pthread_create")) - goto done; - - /* recv total_bytes */ - while (bytes < total_bytes && !READ_ONCE(stop)) { - nr_recv =3D recv(fd, &batch, - MIN(total_bytes - bytes, sizeof(batch)), 0); - if (nr_recv =3D=3D -1 && (errno =3D=3D EINTR || errno =3D=3D EAGAIN)) - continue; - if (nr_recv =3D=3D -1) - break; - bytes +=3D nr_recv; - } - - ASSERT_EQ(bytes, total_bytes, "recv"); - - WRITE_ONCE(stop, 1); - pthread_join(srv_thread, &thread_ret); - ASSERT_OK(IS_ERR(thread_ret), "thread_ret"); + send_recv_data(lfd, fd); =20 done: close(lfd); --=20 2.40.1 From nobody Tue May 14 17:38:28 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 3D12637149 for ; Fri, 29 Mar 2024 04:57:04 +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=1711688225; cv=none; b=GUCBsX+MLSgF6RwhNWOGYX1eaa8ggTdg/xzBItCidrHO3B/FGp1KmGOQOQ2SO5jvSeU1XeyJFF8Y1R/sKrHWJPDI6oqXPhidpWDh18pFAFRydSiZ6q3ZqqJYomosx63LvSHVV0NqJAj3kcx0a/wq38WeiEisXiVc7CLzGJyacLU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711688225; c=relaxed/simple; bh=EodAMM/RgtXoexbDUw8A5td8jc5D2dZyN8bLenGdL5c=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=sWoDUDsRceRtvJ+NC/vIN/vxKew70j0urMidw7SzHj14+1BeQVrPOjUBZ+imYF8SdMItAdMCSLiaohYfiry4lvxwIQqHsOUW41Qlt8WJf6TeS7eOrS2LZrMIls+tS0DCmrIe7eFUlKnYrWdl3O5ahJRoBCmmZV5P430fbLK03Cg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=EEAzrqmX; 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="EEAzrqmX" Received: by smtp.kernel.org (Postfix) with ESMTPSA id BD114C433F1; Fri, 29 Mar 2024 04:57:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711688224; bh=EodAMM/RgtXoexbDUw8A5td8jc5D2dZyN8bLenGdL5c=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=EEAzrqmX7JsrOp6VL/PMbNWXM06LeH/1/S9toICMn34dv6nBk2YEICfU8wk1PAZx1 OPqMSgIL9Jnbbxdd+cWY5KNJbTCi3k176oX4XLpJxMHhJgtSumTH9eQpZYnR9XMgxo DpdHX5Sfo4H+i9h4lLog7aJtrdi0o24XzoW4mg2PDCXjLhLCbWmHPovsm9ciFGeJNP bVhX6biPcDMOMslCosn22BIlx0mpE0Yh/j/tZIToCtVBMk4qTFjZZKv/6hIJOvqsp+ cQa/G213HtJgNSA5V1PAOwgTUfw+TlSNB0aMYF/V5/9hByx032/uotoOfr0lsoK/mp yoojNSIS2liAg== From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v2 05/15] selftests/bpf: Refactor mptcp_sock test Date: Fri, 29 Mar 2024 12:56:01 +0800 Message-Id: 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 refactors mptcp_sock test, renames "base" to "mptcp_sock", extracts a new helper run_mptcp_sock() to start servers and run tests, moves all test skeleton operations, __open_and_load, __attach and __destroy from run_test() into test_mptcp_sock(). This prepares for the later unification of all MPTCP tests using a macro. Signed-off-by: Geliang Tang --- .../testing/selftests/bpf/prog_tests/mptcp.c | 63 +++++++++++-------- 1 file changed, 36 insertions(+), 27 deletions(-) diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing= /selftests/bpf/prog_tests/mptcp.c index 42edf9f80d68..39becf46dcfa 100644 --- a/tools/testing/selftests/bpf/prog_tests/mptcp.c +++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c @@ -159,18 +159,10 @@ static int verify_msk(int map_fd, int client_fd, __u3= 2 token) return err; } =20 -static int run_test(int cgroup_fd, int server_fd, bool is_mptcp) +static int run_test(int cgroup_fd, int server_fd, + struct mptcp_sock *sock_skel, bool is_mptcp) { int client_fd, prog_fd, map_fd, err; - struct mptcp_sock *sock_skel; - - sock_skel =3D mptcp_sock__open_and_load(); - if (!ASSERT_OK_PTR(sock_skel, "skel_open_load")) - return libbpf_get_error(sock_skel); - - err =3D mptcp_sock__attach(sock_skel); - if (!ASSERT_OK(err, "skel_attach")) - goto out; =20 prog_fd =3D bpf_program__fd(sock_skel->progs._sockops); map_fd =3D bpf_map__fd(sock_skel->maps.socket_storage_map); @@ -190,29 +182,19 @@ static int run_test(int cgroup_fd, int server_fd, boo= l is_mptcp) close(client_fd); =20 out: - mptcp_sock__destroy(sock_skel); return err; } =20 -static void test_base(void) +static void run_mptcp_sock(int cgroup_fd, struct mptcp_sock *skel) { - struct nstoken *nstoken =3D NULL; - int server_fd, cgroup_fd; - - cgroup_fd =3D test__join_cgroup("/mptcp"); - if (!ASSERT_GE(cgroup_fd, 0, "test__join_cgroup")) - return; - - nstoken =3D create_netns(); - if (!ASSERT_OK_PTR(nstoken, "create_netns")) - goto fail; + int server_fd; =20 /* without MPTCP */ server_fd =3D start_server(AF_INET, SOCK_STREAM, NULL, 0, 0); if (!ASSERT_GE(server_fd, 0, "start_server")) goto with_mptcp; =20 - ASSERT_OK(run_test(cgroup_fd, server_fd, false), "run_test tcp"); + ASSERT_OK(run_test(cgroup_fd, server_fd, skel, false), "run_test tcp"); =20 close(server_fd); =20 @@ -220,14 +202,41 @@ static void test_base(void) /* with MPTCP */ server_fd =3D start_mptcp_server(AF_INET, NULL, 0, 0); if (!ASSERT_GE(server_fd, 0, "start_mptcp_server")) - goto fail; + return; =20 - ASSERT_OK(run_test(cgroup_fd, server_fd, true), "run_test mptcp"); + ASSERT_OK(run_test(cgroup_fd, server_fd, skel, true), "run_test mptcp"); =20 close(server_fd); +} + +static void test_mptcp_sock(void) +{ + struct nstoken *nstoken =3D NULL; + struct mptcp_sock *sock_skel; + int cgroup_fd, err; + + cgroup_fd =3D test__join_cgroup("/mptcp"); + if (!ASSERT_GE(cgroup_fd, 0, "test__join_cgroup")) + return; + + sock_skel =3D mptcp_sock__open_and_load(); + if (!ASSERT_OK_PTR(sock_skel, "skel_open_load")) + goto out; + + err =3D mptcp_sock__attach(sock_skel); + if (!ASSERT_OK(err, "skel_attach")) + goto out; + + nstoken =3D create_netns(); + if (!ASSERT_OK_PTR(nstoken, "create_netns")) + goto fail; + + run_mptcp_sock(cgroup_fd, sock_skel); =20 fail: cleanup_netns(nstoken); + mptcp_sock__destroy(sock_skel); +out: close(cgroup_fd); } =20 @@ -646,8 +655,8 @@ static void test_burst(void) =20 void test_mptcp(void) { - if (test__start_subtest("base")) - test_base(); + if (test__start_subtest("mptcp_sock")) + test_mptcp_sock(); if (test__start_subtest("mptcpify")) test_mptcpify(); if (test__start_subtest("default")) --=20 2.40.1 From nobody Tue May 14 17:38:28 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 AC0E837149 for ; Fri, 29 Mar 2024 04:57:06 +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=1711688226; cv=none; b=rco/SOS5IvZXDjw+YZPo5LbTVyky+T9mUp8Q+FC4GgO2EOwbEMYAIdI9RnQtGsE5bNWIVbfGLm/MnRELyVxdIiMVgH1nkI5/hulgR7TtEKuo2j5u6jsofQg7JeEBO4N+Qgz3EF+qmEXAhmzE8iBxfsRwousekEhSZRmMq5ZPHgk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711688226; c=relaxed/simple; bh=Rv9kPLAC0v3+HpqgV6QJTUsl1a4gbcK51l368S3nVGw=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=gGsJQl0eT3eRgQHl6hwzFVnVNYasPBdZtRhabIdN7VzSOQnIZOkXmsvU81mGt9sB9XbQcokqs8dwVR/GK4sVffhO3FCPBclOVN7rAq1KtAELV7P3PTs9IgseE3LlECcIeCDuWCh2s8WHeuBoTDTkXylfqWZDfgTUDlW3X5Iw914= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=nGSXBWvD; 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="nGSXBWvD" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 61B86C43390; Fri, 29 Mar 2024 04:57:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711688226; bh=Rv9kPLAC0v3+HpqgV6QJTUsl1a4gbcK51l368S3nVGw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=nGSXBWvDzOzedcOBHs0bc062su04GHHE77BgMQqtUBlchRXI5BI5Kq/7lHZ8KEXxF ocDGPqdXH8E7+QCJ+/TsiebF4zShyDQYWGcM83xcSPlGbqS8HQVZh90/OlTpDMlAN+ k9getbOK8uRLGqKhP7YpTQxkXfjT4lM972sI8cR54TVK3hUo1lJjUGcspU8LXaXn2j L8haTecZGjFROXMVOeBD5xcCHxuk4bjbpbSf+/UlSAuRyVyYU3SxvnQ64cp+0UvYyI LubXsk5qS2Ia2gucRJMMGBuNJLBwxMHhxXI7ZtLHAZCf3eypAIlUVt9J7rwtbI1lZM +oDaKKkEdYolg== From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v2 06/15] selftests/bpf: Refactor mptcpify test Date: Fri, 29 Mar 2024 12:56:02 +0800 Message-Id: <19edfecae92316cb70f4fd80838fb2e75a37d160.1711688054.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 refactors mptcpify test, moves all test skeleton operations, __open_and_load, __attach and __destroy from run_mptcpify() into test_mptcpify(). This prepares for the later unification of all MPTCP tests using a macro. Signed-off-by: Geliang Tang --- .../testing/selftests/bpf/prog_tests/mptcp.c | 39 +++++++++---------- 1 file changed, 18 insertions(+), 21 deletions(-) diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing= /selftests/bpf/prog_tests/mptcp.c index 39becf46dcfa..8c897e626a2b 100644 --- a/tools/testing/selftests/bpf/prog_tests/mptcp.c +++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c @@ -272,61 +272,58 @@ static int verify_mptcpify(int server_fd, int client_= fd) return err; } =20 -static int run_mptcpify(int cgroup_fd) +static void run_mptcpify(int cgroup_fd, struct mptcpify *skel) { int server_fd, client_fd, err =3D 0; - struct mptcpify *mptcpify_skel; - - mptcpify_skel =3D mptcpify__open_and_load(); - if (!ASSERT_OK_PTR(mptcpify_skel, "skel_open_load")) - return libbpf_get_error(mptcpify_skel); - - err =3D mptcpify__attach(mptcpify_skel); - if (!ASSERT_OK(err, "skel_attach")) - goto out; =20 /* without MPTCP */ server_fd =3D start_server(AF_INET, SOCK_STREAM, NULL, 0, 0); - if (!ASSERT_GE(server_fd, 0, "start_server")) { - err =3D -EIO; - goto out; - } + if (!ASSERT_GE(server_fd, 0, "start_server")) + return; =20 client_fd =3D connect_to_fd(server_fd, 0); - if (!ASSERT_GE(client_fd, 0, "connect to fd")) { - err =3D -EIO; + if (!ASSERT_GE(client_fd, 0, "connect to fd")) goto close_server; - } =20 send_single_byte(client_fd); =20 err =3D verify_mptcpify(server_fd, client_fd); + ASSERT_OK(err, "verify_mptcpify"); =20 close(client_fd); close_server: close(server_fd); -out: - mptcpify__destroy(mptcpify_skel); - return err; } =20 static void test_mptcpify(void) { struct nstoken *nstoken =3D NULL; + struct mptcpify *mptcpify_skel; int cgroup_fd; + int err; =20 cgroup_fd =3D test__join_cgroup("/mptcpify"); if (!ASSERT_GE(cgroup_fd, 0, "test__join_cgroup")) return; =20 + mptcpify_skel =3D mptcpify__open_and_load(); + if (!ASSERT_OK_PTR(mptcpify_skel, "skel_open_load")) + goto out; + + err =3D mptcpify__attach(mptcpify_skel); + if (!ASSERT_OK(err, "skel_attach")) + goto out; + nstoken =3D create_netns(); if (!ASSERT_OK_PTR(nstoken, "create_netns")) goto fail; =20 - ASSERT_OK(run_mptcpify(cgroup_fd), "run_mptcpify"); + run_mptcpify(cgroup_fd, mptcpify_skel); =20 fail: cleanup_netns(nstoken); + mptcpify__destroy(mptcpify_skel); +out: close(cgroup_fd); } =20 --=20 2.40.1 From nobody Tue May 14 17:38:28 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 6EC36381B8 for ; Fri, 29 Mar 2024 04:57:08 +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=1711688228; cv=none; b=R9XQTB92DP1MSJDVnvmWU2LtfxAOcU1jNAGSGo+dQafJNb44pvMrcEMa1qGLp3fqvOBpqCPFrOUzlCAbuyz/mlbssgBMSIw1chcJ6Oc5eErow9Gg02lS71u14W4G8Otg/tnuGG8ZIappol4EaVNvjLKWuctki2GV+7FcSv0Abs4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711688228; c=relaxed/simple; bh=UgbeSmkE0aF0ONsdHQ+YWiy++0eoHIDRRz0T6CWypyc=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=smarKBJq1FeiyLRrjR01Yp9pnf26JOOO+MqT64z6dVdpBF/fxDHBozkMKsRT4d7xZm4o85eZSCHWI+r2auVBjcTYWnpUyCWTWzfkRujf3qLUGIpW4GNRwh+jVLMDg/DsYnlVLlFMjnG9Ddqi9oLSTWvz5S73zTqqp5lpbVmHMgg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=M0nl0pI0; 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="M0nl0pI0" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 37EE0C433C7; Fri, 29 Mar 2024 04:57:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711688228; bh=UgbeSmkE0aF0ONsdHQ+YWiy++0eoHIDRRz0T6CWypyc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=M0nl0pI0X+KHM0ihn8DDbbJWnuHyclaDZw01hFTA+NltGXw92ykEhZgpJwyABQvTS JZht/CLzXPtbT1pVNcAv8zC7g8SeRC5kWGr8YAj4lJTOvhuKG6fono9BONoo69OD78 Vp7vxoFZwq00N//T9J97G8nf9fN50CInG6uF14k6RCFLsd3Ncm77IQl8t0Ojh64M3f NRdJy8FhXJWgpo+B32o/T7NVidMeBK7eSE0gEqDgMeLv7W9ZqZ3Kydkk/fKTY+E/78 mp/NPjOMqbfjZzlJfd4mNSX4GsCOkpLns6dl5dU/MyTs8d4M2YhpZ968BifE8e4PCT we97RNc5gH+TA== From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v2 07/15] selftests/bpf: Add MPTCP_BASE_TEST macro Date: Fri, 29 Mar 2024 12:56:03 +0800 Message-Id: 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 macro MPTCP_BASE_TEST to unify all MPTCP tests. test_mptcp_sock() can be replaced by MPTCP_BASE_TEST(mptcp_sock), and test_mptcpify() can be replaced by MPTCP_BASE_TEST(mptcpify). Signed-off-by: Geliang Tang --- .../testing/selftests/bpf/prog_tests/mptcp.c | 93 +++++++------------ 1 file changed, 33 insertions(+), 60 deletions(-) diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing= /selftests/bpf/prog_tests/mptcp.c index 8c897e626a2b..c6185217fef5 100644 --- a/tools/testing/selftests/bpf/prog_tests/mptcp.c +++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c @@ -209,37 +209,40 @@ static void run_mptcp_sock(int cgroup_fd, struct mptc= p_sock *skel) close(server_fd); } =20 -static void test_mptcp_sock(void) -{ - struct nstoken *nstoken =3D NULL; - struct mptcp_sock *sock_skel; - int cgroup_fd, err; - - cgroup_fd =3D test__join_cgroup("/mptcp"); - if (!ASSERT_GE(cgroup_fd, 0, "test__join_cgroup")) - return; - - sock_skel =3D mptcp_sock__open_and_load(); - if (!ASSERT_OK_PTR(sock_skel, "skel_open_load")) - goto out; - - err =3D mptcp_sock__attach(sock_skel); - if (!ASSERT_OK(err, "skel_attach")) - goto out; - - nstoken =3D create_netns(); - if (!ASSERT_OK_PTR(nstoken, "create_netns")) - goto fail; - - run_mptcp_sock(cgroup_fd, sock_skel); - -fail: - cleanup_netns(nstoken); - mptcp_sock__destroy(sock_skel); -out: - close(cgroup_fd); +#define MPTCP_BASE_TEST(name) \ +static void test_##name(void) \ +{ \ + struct nstoken *nstoken; \ + struct name *skel; \ + int cgroup_fd, err; \ + \ + cgroup_fd =3D test__join_cgroup("/" #name); \ + if (!ASSERT_GE(cgroup_fd, 0, "test__join_cgroup")) \ + return; \ + \ + skel =3D name##__open_and_load(); \ + if (!ASSERT_OK_PTR(skel, "skel_open_load")) \ + goto out; \ + \ + err =3D name##__attach(skel); \ + if (!ASSERT_OK(err, "skel_attach")) \ + goto out; \ + \ + nstoken =3D create_netns(); \ + if (!ASSERT_OK_PTR(nstoken, "create_netns")) \ + goto fail; \ + \ + run_##name(cgroup_fd, skel); \ + \ +fail: \ + cleanup_netns(nstoken); \ + name##__destroy(skel); \ +out: \ + close(cgroup_fd); \ } =20 +MPTCP_BASE_TEST(mptcp_sock); + static int verify_mptcpify(int server_fd, int client_fd) { struct __mptcp_info info; @@ -295,37 +298,7 @@ static void run_mptcpify(int cgroup_fd, struct mptcpif= y *skel) close(server_fd); } =20 -static void test_mptcpify(void) -{ - struct nstoken *nstoken =3D NULL; - struct mptcpify *mptcpify_skel; - int cgroup_fd; - int err; - - cgroup_fd =3D test__join_cgroup("/mptcpify"); - if (!ASSERT_GE(cgroup_fd, 0, "test__join_cgroup")) - return; - - mptcpify_skel =3D mptcpify__open_and_load(); - if (!ASSERT_OK_PTR(mptcpify_skel, "skel_open_load")) - goto out; - - err =3D mptcpify__attach(mptcpify_skel); - if (!ASSERT_OK(err, "skel_attach")) - goto out; - - nstoken =3D create_netns(); - if (!ASSERT_OK_PTR(nstoken, "create_netns")) - goto fail; - - run_mptcpify(cgroup_fd, mptcpify_skel); - -fail: - cleanup_netns(nstoken); - mptcpify__destroy(mptcpify_skel); -out: - close(cgroup_fd); -} +MPTCP_BASE_TEST(mptcpify); =20 static const unsigned int total_bytes =3D 10 * 1024 * 1024; static int stop, duration; --=20 2.40.1 From nobody Tue May 14 17:38:28 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 5722C381B8 for ; Fri, 29 Mar 2024 04:57:10 +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=1711688230; cv=none; b=dBOMNRXoVgDkVi8WCjKV0GwCofa7NQmLeTzIRAHC5RtfD8hI3HO+4J5vLLSkIKjyMZLboRY121ytM8wdhvKfUUA6gH7php1Tb2JtwPO0kQwMkp5VsA1FwIJBNeDtQe1YXGbiEJqou4k014DRDTJr3c3Xyu7rNDg9z8/hPemt4cg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711688230; c=relaxed/simple; bh=9XT2EOuqpiizMRjgG5P9Ewz0INMZjOPdb4PwoSYPmpM=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=Jk2TRFctsSMCtPpMKm04EE3y/pQG+YWqsPxAsS9VBaJcf+PBzfsmfyduSZW4x7WG3gwbuLQz66z3ZXiYpSlencs/OKGhjnqjwNbkD4+ahmRegnGxtRmF+eqVppIhPdFRun1c6ABZpPFpHDU6m+nJvmcEERNSqcaPGaPFhmbS33Y= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=smY5+DpW; 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="smY5+DpW" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D3394C43390; Fri, 29 Mar 2024 04:57:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711688229; bh=9XT2EOuqpiizMRjgG5P9Ewz0INMZjOPdb4PwoSYPmpM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=smY5+DpWDH8Cs6HaH9iaBPFiPYMVAgnvz26O9RE8TcEHfUTyMI/R03CydZ5Vbzs+u kw7cRkRc2qn32H6RrdrXL589CuwaGx3udN60d7tryZV/opidakqMF9nyw1MogElJ9F Zi3XDNvtttQcIqGDj4YMP5DJjqyZGYY5Db0fWhs9S/kC1HewGkItpT6ROdqGXfGcsd t11Fgh44RqJ1VZsL9FmLa/CfebuHwlTbprAa0cypAU3x36WyzbyLY3Yi37bY4CXjH4 UAsuKogKGdkkxOh1IOI/ZXzEbIc7LYkOangx7o1gb5+1ML+TfUgnhRrbSUUBBz4Lpj bKH/tFsD/aZBw== From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v2 08/15] selftests/bpf: Add RUN_MPTCP_TEST macro Date: Fri, 29 Mar 2024 12:56:04 +0800 Message-Id: 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 Each MPTCP subtest tests test__start_subtest(suffix), then invokes test_suffix(). It makes sense to add a new macro RUN_MPTCP_TEST to simpolify the code. Signed-off-by: Geliang Tang --- tools/testing/selftests/bpf/prog_tests/mptcp.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing= /selftests/bpf/prog_tests/mptcp.c index c6185217fef5..a1a39289b7c9 100644 --- a/tools/testing/selftests/bpf/prog_tests/mptcp.c +++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c @@ -623,12 +623,16 @@ static void test_burst(void) mptcp_bpf_burst__destroy(burst_skel); } =20 +#define RUN_MPTCP_TEST(suffix) \ +do { \ + if (test__start_subtest(#suffix)) \ + test_##suffix(); \ +} while (0) + void test_mptcp(void) { - if (test__start_subtest("mptcp_sock")) - test_mptcp_sock(); - if (test__start_subtest("mptcpify")) - test_mptcpify(); + RUN_MPTCP_TEST(mptcp_sock); + RUN_MPTCP_TEST(mptcpify); if (test__start_subtest("default")) test_default(); if (test__start_subtest("first")) --=20 2.40.1 From nobody Tue May 14 17:38:28 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 A4681381B8 for ; Fri, 29 Mar 2024 04:57:11 +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=1711688231; cv=none; b=IR8J9WstSUcLX8e8blXGfG2PB+jrReLPrk15a41O++2Cw95zRWBbfKwoqLuvDSQejsSIz166i+sQ1WkodGqRDtR4SctWNH6JwGQu3NZSCCVcgSr16Skl7rofdDmKaFQqeI5zVnGF8ZrvNPUy5EiLZgeKP+bWz+ZzQw6/+gN42O0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711688231; c=relaxed/simple; bh=9jmHEpLAkCtkJ2nuqcJjBgT7d2vZieO4rteTSngUDBg=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=nQy6B/0UtSihJ0SKQIzs4XUjgwLkzoVq9EKRmb2G5pMfdg+ie8jOauZs4dmcVPAtHJihHsPCskXX35U9oHd/J4BF9t6kDDMef9ddGV0QSMdq0hSbxSQqQqcpUf+Pf3CT+4IQwinFrTV2xjVfA02mm0wcsax9u9zU5dqJb6DDGCM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=PBFNbqnJ; 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="PBFNbqnJ" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 956ADC433C7; Fri, 29 Mar 2024 04:57:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711688231; bh=9jmHEpLAkCtkJ2nuqcJjBgT7d2vZieO4rteTSngUDBg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=PBFNbqnJZg5SvGEYGSEITK97v9mmfVE8fYHd6iE2rjThu8C8VuXaX16NeA6VK/BlS cdv/7LJOKkRu9MJoXYIcXF4lFFGIpCa7VIqZ1zWYrjbRRSZW/aqNvCNbH0swkL0EW0 3IUMGVPwK2jPCuoQ4oswlp+5RdZBrnZjKyOUAktmKKngJgcG2UNOpCjnkdSN6JLPEI RSLBKA6+vBgUqnINCAlFjmPXGHAbAYDZO812s7qCsx6uxZyOhY0C9ostwqifygdIdR fjS1d1wnaf6Eaq+zi2WCa1z/DQYzAtL77eNf0efFqgl+dkm5PUQMIStVUNIOy+XFl8 VCC+7R4p0tsQw== From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v2 09/15] Squash to "selftests/bpf: Add bpf scheduler test" Date: Fri, 29 Mar 2024 12:56:05 +0800 Message-Id: <5e5d95c77f7d6f2c73e661d200ff7b8a54e59a6e.1711688054.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, add send_data_and_verify helper, use newly added RUN_MPTCP_TEST. Signed-off-by: Geliang Tang --- .../testing/selftests/bpf/prog_tests/mptcp.c | 69 ++++++++++++------- 1 file changed, 44 insertions(+), 25 deletions(-) diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing= /selftests/bpf/prog_tests/mptcp.c index a1a39289b7c9..cfe7a7b6ec48 100644 --- a/tools/testing/selftests/bpf/prog_tests/mptcp.c +++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c @@ -5,7 +5,6 @@ #include #include #include -#include #include "cgroup_helpers.h" #include "network_helpers.h" #include "mptcp_sock.skel.h" @@ -350,16 +349,12 @@ static void *server(void *arg) static void send_data(int lfd, int fd, char *msg) { ssize_t nr_recv =3D 0, bytes =3D 0; - struct timespec start, end; - unsigned int delta_ms; pthread_t srv_thread; void *thread_ret; char batch[1500]; 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)) @@ -376,18 +371,10 @@ static void send_data(int lfd, int fd, char *msg) bytes +=3D nr_recv; } =20 - if (clock_gettime(CLOCK_MONOTONIC, &end) < 0) - return; - - delta_ms =3D (end.tv_sec - start.tv_sec) * 1000 + (end.tv_nsec - start.tv= _nsec) / 1000000; - CHECK(bytes !=3D total_bytes, "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); - WRITE_ONCE(stop, 1); - pthread_join(srv_thread, &thread_ret); CHECK(IS_ERR(thread_ret), "pthread_join", "thread_ret:%ld", PTR_ERR(thread_ret)); @@ -418,32 +405,65 @@ 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:"); + NS_TEST, ADDR_1, PORT_1, dst, "grep -q bytes_sent:"); return system(cmd); } =20 -static void test_default(void) +static void send_data_and_verify(char *msg, int addr1, int addr2) { + struct timespec start, end; int server_fd, client_fd; - struct nstoken *nstoken; + unsigned int delta_ms; =20 - nstoken =3D sched_init("subflow", "default"); - if (!ASSERT_OK_PTR(nstoken, "sched_init:default")) - goto fail; server_fd =3D start_mptcp_server(AF_INET, ADDR_1, PORT_1, 0); + if (!ASSERT_NEQ(server_fd, -1, "start_mptcp_server")) + return; + client_fd =3D connect_to_fd(server_fd, 0); + if (!ASSERT_NEQ(client_fd, -1, "connect_to_fd")) { + close(server_fd); + return; + } =20 - send_data(server_fd, client_fd, "default"); - ASSERT_OK(has_bytes_sent(ADDR_1), "has_bytes_sent addr_1"); - ASSERT_OK(has_bytes_sent(ADDR_2), "has_bytes_sent addr_2"); + if (clock_gettime(CLOCK_MONOTONIC, &start) < 0) + return; + + send_data(server_fd, client_fd, msg); + + if (clock_gettime(CLOCK_MONOTONIC, &end) < 0) + return; + + delta_ms =3D (end.tv_sec - start.tv_sec) * 1000 + (end.tv_nsec - start.tv= _nsec) / 1000000; + printf("%s: %u ms\n", msg, delta_ms); + + if (addr1) + ASSERT_OK(has_bytes_sent(ADDR_1), "Should have bytes_sent on addr1"); + else + ASSERT_GT(has_bytes_sent(ADDR_1), 0, "Shouldn't have bytes_sent on addr1= "); + if (addr2) + ASSERT_OK(has_bytes_sent(ADDR_2), "Should have bytes_sent on addr2"); + else + ASSERT_GT(has_bytes_sent(ADDR_2), 0, "Shouldn't have bytes_sent on addr2= "); =20 close(client_fd); close(server_fd); +} + +static void test_default(void) +{ + struct nstoken *nstoken; + + nstoken =3D sched_init("subflow", "default"); + if (!ASSERT_OK_PTR(nstoken, "sched_init:default")) + goto fail; + + send_data_and_verify("default", 1, 1); + fail: cleanup_netns(nstoken); } @@ -633,8 +653,7 @@ void test_mptcp(void) { RUN_MPTCP_TEST(mptcp_sock); RUN_MPTCP_TEST(mptcpify); - if (test__start_subtest("default")) - test_default(); + RUN_MPTCP_TEST(default); if (test__start_subtest("first")) test_first(); if (test__start_subtest("bkup")) --=20 2.40.1 From nobody Tue May 14 17:38:28 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 B9F7637149 for ; Fri, 29 Mar 2024 04:57:13 +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=1711688233; cv=none; b=jh/nFJoF/3/XMLyI20/2UA6azUXo3EuVKhzaxsXkD2vSul88Io8JevF4ImlLl5jJ3ZiPjKkKHaUDeTwLqGFWdcH3oyS/8v7vlIaycErnMmf3pulf64OES0BRQvO1r8PtNUI9rfyOCCEMoMH/YoI0PHMi3vjXvxWDjMI0LkL1WRc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711688233; c=relaxed/simple; bh=j69Suj5e1ypBz8xfAC6hiIvNiIzlWHKsQyKJJGnu9cQ=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=Lb1TisywCGYXuLZD+4OGkagJNPipMOBwD9KdvJvFwzyliGJBiT1qjFKxfdtlYkwIIw12pVLUir4cfQigsn4gp+hnBwuZivjSLfWW+zONzwzfKFKLY+9H2KhIHg7g+fbGuj4f8RlRzsGJ8BcvU7CSrGca8Kqp33pt4Hz9krn9KPg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=VuYtuq1W; 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="VuYtuq1W" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 14EB2C433C7; Fri, 29 Mar 2024 04:57:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711688233; bh=j69Suj5e1ypBz8xfAC6hiIvNiIzlWHKsQyKJJGnu9cQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=VuYtuq1Wh4/1htYQWfmE0jkcP6Rt4OK6gzpkaRcgrSr+Nohy0zSkZyfckYq/bkXj6 1n1ix3n1jM1E8YjZVD/uoOQ0djnmhtNrHhU7myv3ZbTpt1BwZAGRn1sAOqw4o1I7vl txRQAak18s37AhZ8+64Bg21wE8SnK99MjZC3wAnF/+RJrPtF1iBQ+RQk1WHjRcKY7C CRictvcWVJb2oc+fIimgxJ0yQlsU3LZN1oKHgFgMIa7pSFtFDuQur2EsMbYUKDqgs0 8rEhE1uex+FhWrDo22Y6y0QROnkPAVUaBfDrej/003qDxBuCME1OK8ajGbWmSVOmG6 Q8W8DMPKg6wtA== From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v2 10/15] Squash to "selftests/bpf: Add bpf_first test" Date: Fri, 29 Mar 2024 12:56:06 +0800 Message-Id: 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 Add MPTCP_SCHED_TEST macro. Signed-off-by: Geliang Tang --- .../testing/selftests/bpf/prog_tests/mptcp.c | 66 +++++++++---------- 1 file changed, 31 insertions(+), 35 deletions(-) diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing= /selftests/bpf/prog_tests/mptcp.c index cfe7a7b6ec48..8697cf1a5c75 100644 --- a/tools/testing/selftests/bpf/prog_tests/mptcp.c +++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c @@ -468,41 +468,38 @@ static void test_default(void) cleanup_netns(nstoken); } =20 -static void test_first(void) -{ - struct mptcp_bpf_first *first_skel; - int server_fd, client_fd; - struct nstoken *nstoken; - struct bpf_link *link; - - first_skel =3D mptcp_bpf_first__open_and_load(); - if (!ASSERT_OK_PTR(first_skel, "bpf_first__open_and_load")) - return; - - link =3D bpf_map__attach_struct_ops(first_skel->maps.first); - if (!ASSERT_OK_PTR(link, "bpf_map__attach_struct_ops")) { - mptcp_bpf_first__destroy(first_skel); - return; - } - - nstoken =3D sched_init("subflow", "bpf_first"); - if (!ASSERT_OK_PTR(nstoken, "sched_init:bpf_first")) - goto fail; - server_fd =3D start_mptcp_server(AF_INET, ADDR_1, PORT_1, 0); - client_fd =3D connect_to_fd(server_fd, 0); - - send_data(server_fd, client_fd, "bpf_first"); - ASSERT_OK(has_bytes_sent(ADDR_1), "has_bytes_sent addr_1"); - ASSERT_GT(has_bytes_sent(ADDR_2), 0, "has_bytes_sent addr_2"); - - close(client_fd); - close(server_fd); -fail: - cleanup_netns(nstoken); - bpf_link__destroy(link); - mptcp_bpf_first__destroy(first_skel); +#define MPTCP_SCHED_TEST(name, addr1, addr2) \ +static void test_##name(void) \ +{ \ + struct mptcp_bpf_##name *skel; \ + struct nstoken *nstoken; \ + struct bpf_link *link; \ + struct bpf_map *map; \ + \ + skel =3D mptcp_bpf_##name##__open_and_load(); \ + if (!ASSERT_OK_PTR(skel, "open_and_load:" #name)) \ + return; \ + \ + map =3D bpf_object__find_map_by_name(skel->obj, #name); \ + link =3D bpf_map__attach_struct_ops(map); \ + if (!ASSERT_OK_PTR(link, "attach_struct_ops:" #name)) \ + goto fail; \ + \ + nstoken =3D sched_init("subflow", "bpf_" #name); \ + if (!ASSERT_OK_PTR(nstoken, "sched_init:" #name)) \ + goto out; \ + \ + send_data_and_verify(#name, atoi(#addr1), atoi(#addr2));\ + \ + cleanup_netns(nstoken); \ +out: \ + bpf_link__destroy(link); \ +fail: \ + mptcp_bpf_##name##__destroy(skel); \ } =20 +MPTCP_SCHED_TEST(first, 1, 0); + static void test_bkup(void) { struct mptcp_bpf_bkup *bkup_skel; @@ -654,8 +651,7 @@ void test_mptcp(void) RUN_MPTCP_TEST(mptcp_sock); RUN_MPTCP_TEST(mptcpify); RUN_MPTCP_TEST(default); - if (test__start_subtest("first")) - test_first(); + RUN_MPTCP_TEST(first); if (test__start_subtest("bkup")) test_bkup(); if (test__start_subtest("rr")) --=20 2.40.1 From nobody Tue May 14 17:38:28 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 CB46137149 for ; Fri, 29 Mar 2024 04:57:14 +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=1711688234; cv=none; b=j9DACgfQglSEiEiQrGdSKGAhVIMF0xhoK9u65pzhPnYCwzEEEgY831TUSEbIHPkBZGATh52QqKPbvePIgCGwWLanZLrAidL1GzyvAty4rxS5zMRWKpPYAAFZZtezU0OoDTFpczMk8GMIr37yRFSZx28LePj4EI1UQIpyKAzvPnQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711688234; c=relaxed/simple; bh=piTKvKqHPPMjc8B5ZJb07t5a0TMQd31oVwXNlzqNr8k=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=HbWW0r4R6xBbsugd6d5B2VfZlvLROtDTSUi2DSi0MFrlsbrYN/ht85FJgE++oYSmyPVZRGNQqL4fWr8Olq0ST8W1K58HW9FLzXx/0p5KLPCDj00M53j+gBn2k6za4/usntDhaJlZZiH81AttUb++GSQvHbDYAMrt4HE2kg/GPbA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ZGX+7vdE; 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="ZGX+7vdE" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D3C68C433F1; Fri, 29 Mar 2024 04:57:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711688234; bh=piTKvKqHPPMjc8B5ZJb07t5a0TMQd31oVwXNlzqNr8k=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ZGX+7vdEIzc3y+jPqx9oPPRYLKWtug5eJI0ghfbs09XN9DKPojUrMVzW/X+FJjmBT IzsnXMzPK7cdmO9et50+qFPmq7qsaGpoO74ixYeYmRvSr1/aLqwS+ofpEtqzgMYlz0 sXzksB5J89r4BaeS0VqvPpjddDj5GF4O3T5Zi86pNbj+S7J7IqDTBkOykFe6aFTqrm we8HcGfDrEG3kC0BrSoMfz9R3lGgGwlP6YvEgSy6BEUz2c8lZelgNfAxh0wgf2FG3r zvjetoCTkV1l/KwO80S1+xM2qZNAJaXgmEPrupnSXF1sJO/Ehlwd81EJelvX7Mjy1S dAI5+JrM04PjA== From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v2 11/15] Squash to "selftests/bpf: Add bpf_bkup test" Date: Fri, 29 Mar 2024 12:56:07 +0800 Message-Id: <04bc41822bfa1f316b8351ef643c6f61b060cec3.1711688054.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 Use MPTCP_SCHED_TEST and RUN_MPTCP_TEST. Signed-off-by: Geliang Tang --- .../testing/selftests/bpf/prog_tests/mptcp.c | 39 +------------------ 1 file changed, 2 insertions(+), 37 deletions(-) diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing= /selftests/bpf/prog_tests/mptcp.c index 8697cf1a5c75..249177b4e3bd 100644 --- a/tools/testing/selftests/bpf/prog_tests/mptcp.c +++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c @@ -499,41 +499,7 @@ fail: \ } =20 MPTCP_SCHED_TEST(first, 1, 0); - -static void test_bkup(void) -{ - struct mptcp_bpf_bkup *bkup_skel; - int server_fd, client_fd; - struct nstoken *nstoken; - struct bpf_link *link; - - bkup_skel =3D mptcp_bpf_bkup__open_and_load(); - if (!ASSERT_OK_PTR(bkup_skel, "bpf_bkup__open_and_load")) - return; - - link =3D bpf_map__attach_struct_ops(bkup_skel->maps.bkup); - if (!ASSERT_OK_PTR(link, "bpf_map__attach_struct_ops")) { - mptcp_bpf_bkup__destroy(bkup_skel); - return; - } - - nstoken =3D sched_init("subflow backup", "bpf_bkup"); - if (!ASSERT_OK_PTR(nstoken, "sched_init:bpf_bkup")) - goto fail; - server_fd =3D start_mptcp_server(AF_INET, ADDR_1, PORT_1, 0); - client_fd =3D connect_to_fd(server_fd, 0); - - send_data(server_fd, client_fd, "bpf_bkup"); - ASSERT_OK(has_bytes_sent(ADDR_1), "has_bytes_sent addr_1"); - ASSERT_GT(has_bytes_sent(ADDR_2), 0, "has_bytes_sent addr_2"); - - close(client_fd); - close(server_fd); -fail: - cleanup_netns(nstoken); - bpf_link__destroy(link); - mptcp_bpf_bkup__destroy(bkup_skel); -} +MPTCP_SCHED_TEST(bkup, 1, 0); =20 static void test_rr(void) { @@ -652,8 +618,7 @@ void test_mptcp(void) RUN_MPTCP_TEST(mptcpify); RUN_MPTCP_TEST(default); RUN_MPTCP_TEST(first); - if (test__start_subtest("bkup")) - test_bkup(); + RUN_MPTCP_TEST(bkup); if (test__start_subtest("rr")) test_rr(); if (test__start_subtest("red")) --=20 2.40.1 From nobody Tue May 14 17:38:28 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 53E3437149 for ; Fri, 29 Mar 2024 04:57:16 +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=1711688236; cv=none; b=be+ysTafwwtTEk2r72LyNqTsOZvoGK6jNAeslN5RIO1mNpYzhAwg3xn3ZlOP9q96dovWcdN188k0OdL9VZ/kA8284NSxGJTqzfiRQt6Wrj26PjorBPE4xVuV38u5f6zOCPpM1Kf0f1OssnuQLhJmbMLG0YFe24tg5ErvLqPxsOc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711688236; c=relaxed/simple; bh=Qy5+enWvBeq9lzSDq+2s0TnoWzkH5D4sI1k67J+5Rvk=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=u4jaR2zRXgI1n6L6S48m2ukAex3/o9MI9FHdpyirGypD9t8N9e3ydbCXT+hOyh5dnTQ2owQpVj/G5+LM7Y2Z0DEVinc2wkZRGCDMO6NzeoXsatK+Y2xPfWTyCaLU4lHmVn4NtoU4VF9p8kjiwiNsBPmZLRv3MCTTEp5ddnLMbKE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=BOPPKrVa; 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="BOPPKrVa" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4F9C2C433C7; Fri, 29 Mar 2024 04:57:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711688236; bh=Qy5+enWvBeq9lzSDq+2s0TnoWzkH5D4sI1k67J+5Rvk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=BOPPKrVaGo64X8MF8yX0xScFYbwpMa5xDqZq/fu589iiM8gXbY8DWOBvNoG+kPiLZ EezyaqEQKLB9DyuRaHOW9WsiLsgA8+Q1ILC2j+y3PTcjswJZNWtro1RXqqxA+A5ELt QlR6dsSzVwYactYHUpyfbTxItKOcdR3Yn6NAtpv3F/uy9PM9he3AMDUANbL7N7T+BN RLsGX8xyCO4mOZTvvxeOJS23CAZ/WSgoVPgujGklM+eDf5L7wHVGkl2y2rwIDBGooM yMNO9GdfAfP/dOoG1KEQJFh8uTiEoefiFqpnVjNnx1UWewCoDdhKsZSR5R+au5hfEB hwwZj069t+jrQ== From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v2 12/15] Squash to "selftests/bpf: Add bpf_rr test" Date: Fri, 29 Mar 2024 12:56:08 +0800 Message-Id: <6341b48d075d122c2538b042cbd7357380ea73fc.1711688054.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 Use MPTCP_SCHED_TEST and RUN_MPTCP_TEST. Signed-off-by: Geliang Tang --- .../testing/selftests/bpf/prog_tests/mptcp.c | 39 +------------------ 1 file changed, 2 insertions(+), 37 deletions(-) diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing= /selftests/bpf/prog_tests/mptcp.c index 249177b4e3bd..ebde380ab334 100644 --- a/tools/testing/selftests/bpf/prog_tests/mptcp.c +++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c @@ -500,41 +500,7 @@ fail: \ =20 MPTCP_SCHED_TEST(first, 1, 0); MPTCP_SCHED_TEST(bkup, 1, 0); - -static void test_rr(void) -{ - struct mptcp_bpf_rr *rr_skel; - int server_fd, client_fd; - struct nstoken *nstoken; - struct bpf_link *link; - - rr_skel =3D mptcp_bpf_rr__open_and_load(); - if (!ASSERT_OK_PTR(rr_skel, "bpf_rr__open_and_load")) - return; - - link =3D bpf_map__attach_struct_ops(rr_skel->maps.rr); - if (!ASSERT_OK_PTR(link, "bpf_map__attach_struct_ops")) { - mptcp_bpf_rr__destroy(rr_skel); - return; - } - - nstoken =3D sched_init("subflow", "bpf_rr"); - if (!ASSERT_OK_PTR(nstoken, "sched_init:bpf_rr")) - goto fail; - server_fd =3D start_mptcp_server(AF_INET, ADDR_1, PORT_1, 0); - client_fd =3D connect_to_fd(server_fd, 0); - - send_data(server_fd, client_fd, "bpf_rr"); - ASSERT_OK(has_bytes_sent(ADDR_1), "has_bytes_sent addr 1"); - ASSERT_OK(has_bytes_sent(ADDR_2), "has_bytes_sent addr 2"); - - close(client_fd); - close(server_fd); -fail: - cleanup_netns(nstoken); - bpf_link__destroy(link); - mptcp_bpf_rr__destroy(rr_skel); -} +MPTCP_SCHED_TEST(rr, 1, 1); =20 static void test_red(void) { @@ -619,8 +585,7 @@ void test_mptcp(void) RUN_MPTCP_TEST(default); RUN_MPTCP_TEST(first); RUN_MPTCP_TEST(bkup); - if (test__start_subtest("rr")) - test_rr(); + RUN_MPTCP_TEST(rr); if (test__start_subtest("red")) test_red(); if (test__start_subtest("burst")) --=20 2.40.1 From nobody Tue May 14 17:38:28 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 D18EE37149 for ; Fri, 29 Mar 2024 04:57:17 +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=1711688237; cv=none; b=CyED0Pa7bd8+nyuSbi1yBif+AHkNK+D2zYBtoXmAiIL70pvNFve1+xo6EtjDwB1YvkSUtw05NGCMeL2jflkbcc9I4rihKrzoIfv6qtZ9BOMNxpZm/70UJCSRulX0j89OBy9vxTBSXg8JRHRAd+NYG+mUnrd/KCaZIFcBRDBteE4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711688237; c=relaxed/simple; bh=xwtE5QI+1+1IXV3kn73iqlzUnLK/IrdsS/KESh8LKBM=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=tFv4xuCdP+P41ByqUvf+BdANekl8nhEyAfAAS4lmGdX/fYpSt49RUt7d0fW4Q2EfQOtSOmAU/owkNMj19XWcrly68o/KJU9JBLUzbuL2UTogSKN/ziKV23RXxMigDatruY7QIIPoYSZgpPcsdiEj77XbAMnP5rpXx5eFefyJbKo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=TOHSPr9I; 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="TOHSPr9I" Received: by smtp.kernel.org (Postfix) with ESMTPSA id B3785C43399; Fri, 29 Mar 2024 04:57:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711688237; bh=xwtE5QI+1+1IXV3kn73iqlzUnLK/IrdsS/KESh8LKBM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=TOHSPr9IueMaDnFANXuDv2669GjHeXdwGhWcMv25OrPNF8FZnPQx5Pgb9uqgq+446 hJQkpp+4ZUQE/FZMcF68dRJfQtF5L72Q6/E/AuAX+KLVWzrUX/WMeS1a2BqX/t59Fi NdSqy1LjuelRNFIqI/vIhdrEhFw82iGPj+k8yugtzCM1hDWcEyVSY1mw9SKHeoTXFZ YoSsKTLQ+P+6Hb50J/YALKlp4pHhk2V7g+QXcBmKp5SnvQGi78hyXkW13s3JnITrqX IPNoL/MrSY7w3KPg4QMw2zEK3HF7Yss/Ovmml1A+Ya3YBuLgrBH8m0gLUzHyNAh36m XvbmikSenZMTw== From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v2 13/15] Squash to "selftests/bpf: Add bpf_red test" Date: Fri, 29 Mar 2024 12:56:09 +0800 Message-Id: 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 Use MPTCP_SCHED_TEST and RUN_MPTCP_TEST. Signed-off-by: Geliang Tang --- .../testing/selftests/bpf/prog_tests/mptcp.c | 39 +------------------ 1 file changed, 2 insertions(+), 37 deletions(-) diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing= /selftests/bpf/prog_tests/mptcp.c index ebde380ab334..0f384402ab6a 100644 --- a/tools/testing/selftests/bpf/prog_tests/mptcp.c +++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c @@ -501,41 +501,7 @@ fail: \ MPTCP_SCHED_TEST(first, 1, 0); MPTCP_SCHED_TEST(bkup, 1, 0); MPTCP_SCHED_TEST(rr, 1, 1); - -static void test_red(void) -{ - struct mptcp_bpf_red *red_skel; - int server_fd, client_fd; - struct nstoken *nstoken; - struct bpf_link *link; - - red_skel =3D mptcp_bpf_red__open_and_load(); - if (!ASSERT_OK_PTR(red_skel, "bpf_red__open_and_load")) - return; - - link =3D bpf_map__attach_struct_ops(red_skel->maps.red); - if (!ASSERT_OK_PTR(link, "bpf_map__attach_struct_ops")) { - mptcp_bpf_red__destroy(red_skel); - return; - } - - nstoken =3D sched_init("subflow", "bpf_red"); - if (!ASSERT_OK_PTR(nstoken, "sched_init:bpf_red")) - goto fail; - server_fd =3D start_mptcp_server(AF_INET, ADDR_1, PORT_1, 0); - client_fd =3D connect_to_fd(server_fd, 0); - - send_data(server_fd, client_fd, "bpf_red"); - ASSERT_OK(has_bytes_sent(ADDR_1), "has_bytes_sent addr 1"); - ASSERT_OK(has_bytes_sent(ADDR_2), "has_bytes_sent addr 2"); - - close(client_fd); - close(server_fd); -fail: - cleanup_netns(nstoken); - bpf_link__destroy(link); - mptcp_bpf_red__destroy(red_skel); -} +MPTCP_SCHED_TEST(red, 1, 1); =20 static void test_burst(void) { @@ -586,8 +552,7 @@ void test_mptcp(void) RUN_MPTCP_TEST(first); RUN_MPTCP_TEST(bkup); RUN_MPTCP_TEST(rr); - if (test__start_subtest("red")) - test_red(); + RUN_MPTCP_TEST(red); if (test__start_subtest("burst")) test_burst(); } --=20 2.40.1 From nobody Tue May 14 17:38:28 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 ACDCE37149 for ; Fri, 29 Mar 2024 04:57:19 +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=1711688239; cv=none; b=qH0y5Bac4BFOHVBhtlVftl+e7u1SY4XH7palKeg96gJ5uYTMlW8WziBploP5op8PZF6Tqucnbz5qza6caNYxewOnqgYuIwlWVi2vLtTETNB/6L0YBkxMeERKmx56Rw2foz6uMfDabmVv0Hs2TjK3jAFFMFLC4FMaP6EvPpA8pSM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711688239; c=relaxed/simple; bh=iZLy1FyWdumiZqiQrg+QM1+i67w1eltvhx0zre6CH5Y=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=oLPAl3j2Ael1M1B2KeWKCMFsgt/TtFj43aenVN5Phg/N8GXSYBJvKgh7YzHud0bzMuAV94452viEnzA+7++zAbjmFGC6JhZfLo/rOsfvDv+WQti0C2C+Ys2iYByyi3LRyj3LxYd6+P6d0t0AE6EXHXCCxwtlWfsu7ynaKS0DxUQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=iyH2Ugp+; 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="iyH2Ugp+" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 40D9AC43394; Fri, 29 Mar 2024 04:57:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711688239; bh=iZLy1FyWdumiZqiQrg+QM1+i67w1eltvhx0zre6CH5Y=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=iyH2Ugp+Ph5H0P6mTrzrFsfJGgtY5SxRihCr9ZlMVwULqEVJiHvhoFq8urOTBsBSA Jq9BgbNZrE5jzAFKzPmIzDj7AdSLG/hwBSwO4NLGd6DGxLC9GNrSwCfEltmcqHvVgY Ti/4zTX4MeWRJ8foAVNQB1cN1XlEFTbPaQN0uvvKyvXti5RPY9x8Ke+DNhDcl2DRX6 g7iHEHg80uFXm0lYWGb5U4JntAFrM8Co69V50WK/pT1v/vRZRT5Zby1+dHwL5UMHy9 CEcASaaeZg3qVOmgj+tkWEY62I9NwPmOpEujC1C3DHPDULQAZ+F8xHC+KWOnv86DVv +RbRotMvZunpA== From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v2 14/15] Squash to "selftests/bpf: Add bpf_burst test" Date: Fri, 29 Mar 2024 12:56:10 +0800 Message-Id: <820fba61470b5e3ee1fbdc029224ccd44522bd16.1711688054.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 Use MPTCP_SCHED_TEST and RUN_MPTCP_TEST. Signed-off-by: Geliang Tang --- .../testing/selftests/bpf/prog_tests/mptcp.c | 39 +------------------ 1 file changed, 2 insertions(+), 37 deletions(-) diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing= /selftests/bpf/prog_tests/mptcp.c index 0f384402ab6a..6b77fb51c4f5 100644 --- a/tools/testing/selftests/bpf/prog_tests/mptcp.c +++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c @@ -502,41 +502,7 @@ MPTCP_SCHED_TEST(first, 1, 0); MPTCP_SCHED_TEST(bkup, 1, 0); MPTCP_SCHED_TEST(rr, 1, 1); MPTCP_SCHED_TEST(red, 1, 1); - -static void test_burst(void) -{ - struct mptcp_bpf_burst *burst_skel; - int server_fd, client_fd; - struct nstoken *nstoken; - struct bpf_link *link; - - burst_skel =3D mptcp_bpf_burst__open_and_load(); - if (!ASSERT_OK_PTR(burst_skel, "bpf_burst__open_and_load")) - return; - - link =3D bpf_map__attach_struct_ops(burst_skel->maps.burst); - if (!ASSERT_OK_PTR(link, "bpf_map__attach_struct_ops")) { - mptcp_bpf_burst__destroy(burst_skel); - return; - } - - nstoken =3D sched_init("subflow", "bpf_burst"); - if (!ASSERT_OK_PTR(nstoken, "sched_init:bpf_burst")) - goto fail; - server_fd =3D start_mptcp_server(AF_INET, ADDR_1, PORT_1, 0); - client_fd =3D connect_to_fd(server_fd, 0); - - send_data(server_fd, client_fd, "bpf_burst"); - ASSERT_OK(has_bytes_sent(ADDR_1), "has_bytes_sent addr 1"); - ASSERT_OK(has_bytes_sent(ADDR_2), "has_bytes_sent addr 2"); - - close(client_fd); - close(server_fd); -fail: - cleanup_netns(nstoken); - bpf_link__destroy(link); - mptcp_bpf_burst__destroy(burst_skel); -} +MPTCP_SCHED_TEST(burst, 1, 1); =20 #define RUN_MPTCP_TEST(suffix) \ do { \ @@ -553,6 +519,5 @@ void test_mptcp(void) RUN_MPTCP_TEST(bkup); RUN_MPTCP_TEST(rr); RUN_MPTCP_TEST(red); - if (test__start_subtest("burst")) - test_burst(); + RUN_MPTCP_TEST(burst); } --=20 2.40.1 From nobody Tue May 14 17:38:28 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 01C6937149 for ; Fri, 29 Mar 2024 04:57:20 +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=1711688241; cv=none; b=XNwd3t2n3o69O/+fLEYfTLtPLpZ1M1qFLW8Wtze92GB1bjqlffLhspenih1M1RuHnrg3YYhiUskGAC6OCQ5AkG0GYoMvcUGX956/L9C2jo7tHLkC86EPumvSR8PBSwBVEnYFieLU655idmW7m2ga5UZAVc9PJ0cJ7vPKr/kj328= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711688241; c=relaxed/simple; bh=ZBlHt37oHd1X4/TpLnmrg+DcuQpPzvrifWxBhKxXHZI=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=fV2OsEvPmV+ryoNiMJmHOgqpzfXnyruRRmP0EkCyNMURuGDO6hczxAgEnxfrl2uJlEBQwuITs+6te0W++aKVdp6ZQF0hs6HG0uDcUUMIeAQjmeVIXiaGAg/70THod4EaIy6E4mqV6OQOpyXo4Xb5s6UFYOQu1cgD01pQFHT3upM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ucc0PO60; 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="ucc0PO60" Received: by smtp.kernel.org (Postfix) with ESMTPSA id E830CC433F1; Fri, 29 Mar 2024 04:57:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711688240; bh=ZBlHt37oHd1X4/TpLnmrg+DcuQpPzvrifWxBhKxXHZI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ucc0PO60SWw0Cts/UkohBKPDdbHq2JISYeflDQq5ByJ8bcWHI5ItlGwWHEf83hH7m Lj+zvUOTHtKMl5GwxCepL6Bse0HUNO3BdLhY3LkHs9EF5cV9Y5Ik4Kr0E1IWzEqYk1 YtXXGl4b1jY2vcv5wHJnIzs0qkE7197bjxkpl3YIFcxLEDxLAiKxsH0yYRg6effhpg kUbCf7GVOiyGPcX3khPW449faBjzBM1VGNdY+aFrJlPsy9aPrKHkAOFvn+y2aYOev0 yyYw3Uf0RHjXlF7ebKpTQ3yAxglQIv5nfDY9lF6MDSpi4KLSUsEN41hFo/PUgChf0D wyZhwKyAftagg== From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v2 15/15] Squash to "selftests/bpf: Add bpf scheduler test" 2 Date: Fri, 29 Mar 2024 12:56:11 +0800 Message-Id: <444a1f6d61fc86bde74fe93cf3f19605994b4632.1711688054.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 send_data isn't invoked anywhere, can be dropped now. Signed-off-by: Geliang Tang --- .../testing/selftests/bpf/prog_tests/mptcp.c | 83 +------------------ 1 file changed, 1 insertion(+), 82 deletions(-) diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing= /selftests/bpf/prog_tests/mptcp.c index 6b77fb51c4f5..34fe79f34eb9 100644 --- a/tools/testing/selftests/bpf/prog_tests/mptcp.c +++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c @@ -299,87 +299,6 @@ static void run_mptcpify(int cgroup_fd, struct mptcpif= y *skel) =20 MPTCP_BASE_TEST(mptcpify); =20 -static const unsigned int total_bytes =3D 10 * 1024 * 1024; -static int stop, duration; - -static void *server(void *arg) -{ - int lfd =3D (int)(long)arg, err =3D 0, fd; - ssize_t nr_sent =3D 0, bytes =3D 0; - char batch[1500]; - - fd =3D accept(lfd, NULL, NULL); - while (fd =3D=3D -1) { - if (errno =3D=3D EINTR) - continue; - err =3D -errno; - goto done; - } - - if (settimeo(fd, 0)) { - err =3D -errno; - goto done; - } - - while (bytes < total_bytes && !READ_ONCE(stop)) { - nr_sent =3D send(fd, &batch, - MIN(total_bytes - bytes, sizeof(batch)), 0); - if (nr_sent =3D=3D -1 && (errno =3D=3D EINTR || errno =3D=3D EAGAIN)) - continue; - if (nr_sent =3D=3D -1) { - err =3D -errno; - break; - } - bytes +=3D nr_sent; - } - - CHECK(bytes !=3D total_bytes, "send", "%zd !=3D %u nr_sent:%zd errno:%d\n= ", - bytes, total_bytes, nr_sent, errno); - -done: - if (fd >=3D 0) - close(fd); - if (err) { - WRITE_ONCE(stop, 1); - return ERR_PTR(err); - } - return NULL; -} - -static void send_data(int lfd, int fd, char *msg) -{ - ssize_t nr_recv =3D 0, bytes =3D 0; - pthread_t srv_thread; - void *thread_ret; - char batch[1500]; - int err; - - WRITE_ONCE(stop, 0); - - 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)) - return; - - /* recv total_bytes */ - while (bytes < total_bytes && !READ_ONCE(stop)) { - nr_recv =3D recv(fd, &batch, - MIN(total_bytes - bytes, sizeof(batch)), 0); - if (nr_recv =3D=3D -1 && (errno =3D=3D EINTR || errno =3D=3D EAGAIN)) - continue; - if (nr_recv =3D=3D -1) - break; - bytes +=3D nr_recv; - } - - CHECK(bytes !=3D total_bytes, "recv", "%zd !=3D %u nr_recv:%zd errno:%d\n= ", - bytes, total_bytes, nr_recv, errno); - - WRITE_ONCE(stop, 1); - pthread_join(srv_thread, &thread_ret); - CHECK(IS_ERR(thread_ret), "pthread_join", "thread_ret:%ld", - PTR_ERR(thread_ret)); -} - #define ADDR_1 "10.0.1.1" #define ADDR_2 "10.0.1.2" #define PORT_1 10001 @@ -433,7 +352,7 @@ static void send_data_and_verify(char *msg, int addr1, = int addr2) if (clock_gettime(CLOCK_MONOTONIC, &start) < 0) return; =20 - send_data(server_fd, client_fd, msg); + send_recv_data(server_fd, client_fd); =20 if (clock_gettime(CLOCK_MONOTONIC, &end) < 0) return; --=20 2.40.1