From nobody Sat May 18 18:58:07 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 1B21217F7 for ; Mon, 8 Apr 2024 03:01: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=1712545278; cv=none; b=QAX7wZiaGRnPWsNgvY1f3XofNRsYgcpySmLV1oQgF3HyMdlEVR9u0NRQkuuoZatr5zrZrqUlM0mGkpdDjUYP7wM6FaQ/iui7MtRIsqPj53ZJUmTjhFOyXO/4H4H74++GO7OP8pW2XnmCvnG/bWE45RErMvNgib5HaJQImKN0hWw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712545278; c=relaxed/simple; bh=/Pc3wOJ+00tHqo8MDJm/cNhGbriSzwm6ucNRtr1wM7Y=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=B7OL9HVpfnC++a+5h25BU7YUNqGUrOg92KJe7ZhHUWffACfxXYrwwxAJYbznmTWL1TW8q0iNY8LPzPmEKcIZQ3ftLrPR0i5yw8Cj5p+fUrg9U4CbjZPSDUURE1Fw9s4FTVvPPq3HNkSGKz9jADaYBWcuUEYnfvGvDz2sexzK6M8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=INTtpPhb; 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="INTtpPhb" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D8273C433C7; Mon, 8 Apr 2024 03:01:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1712545277; bh=/Pc3wOJ+00tHqo8MDJm/cNhGbriSzwm6ucNRtr1wM7Y=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=INTtpPhbBrCw6f46GJqjWPA0c2ba9pW0pet/jMP7iDUYH6w5kmlWY2MehkMej2MRb 2YYoJeUOz5h+SEXbS1i/+699aezfPqD4XLhCIQAJ1k/PHlEzwSOpcmbbKgEFH5Ugcm dLVeVSH1EmLH7aIRrDRsEUppUJx/pqQIJuUJcQD/0Z/SvBzdeHSvvxAGYdMSBvgmmG lfcx+ri5iuTHgDoodDDwesbthFAEYptAA+WPdS5G36gt1YpbDRmBkzfH9dW2v8aPsg pGO2AGXWPIQlUwEAbakuJVwhNDXwQODbxbYqIIcXXFREXOe18zY2wQ46Om0LUD4v/5 F3mnUX6c1vUKw== From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v7 1/9] selftests/bpf: Add RUN_MPTCP_TEST macro Date: Mon, 8 Apr 2024 11:01: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 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 cbdb15922949..c29c81239603 100644 --- a/tools/testing/selftests/bpf/prog_tests/mptcp.c +++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c @@ -653,12 +653,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("base")) - test_base(); - if (test__start_subtest("mptcpify")) - test_mptcpify(); + RUN_MPTCP_TEST(base); + RUN_MPTCP_TEST(mptcpify); if (test__start_subtest("default")) test_default(); if (test__start_subtest("first")) --=20 2.40.1 From nobody Sat May 18 18:58:07 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 5FBFC184D for ; Mon, 8 Apr 2024 03:01: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=1712545279; cv=none; b=EPwEYBLhujQ/cHcV87ULUq8YuoHPhLlesPXYH5tCQQG3mUXmJWcSuIOPhbxbGBhSdI0PTgUq4cKd4moHiRLHw7jEFmqnhbLCysyco9aR3xy71ZsEfOJgSRI2SXUCOTpFXQUxJFCDP32La22zwIXdsCQIAOfL7OH9p6gfk/m/kb4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712545279; c=relaxed/simple; bh=S7AUp2qZf8k/T73vHb9lttnz3wUqv5fP9Bd7WLrerWQ=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=dEwi9NNrKT2vOTXUDyaQKMub1jxehyzTJGcMLih+wMyZiJljJ/esVHMZj2GHZcjt9P4/yZk+qM42mlT+JpgEuhAG8gTQU6RPBJgVEy4VwZAYEQVhPXsK0m2fMUf/ftKFB0vTdnvdMjfj7RJIs28iqAoG7wt7rmh8La319NunAWA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=R62WpEM/; 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="R62WpEM/" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 36322C43390; Mon, 8 Apr 2024 03:01:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1712545279; bh=S7AUp2qZf8k/T73vHb9lttnz3wUqv5fP9Bd7WLrerWQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=R62WpEM/JBEYMNzqDdku3idbfBX7AOI151EQDIWDOwlTSp6C4NS0LNagP+9Fli5i1 Oi0l1nuCf8rhFJvnhYVXljMyCWpuEmtfLX2adspIxd013wG0zNdXdIHnV1h4bM3KVr Fo/zrNa8geELxNhI/Q2ZJZEOMUUC3K+A5Ts85o3RAXMe2y2lbt/Z2fstp30EMPLvfY AF6n/QCEzXnM5pwYj0RxXiYPx8wKn5m/REY1VQEmXaUWKfybnQHf7iJjrtzpYC1i7+ 9AkRCG6m6k7WZ+inLPhn1xmlYuwF/c/ZpDo4syGepRDs237nRBohrjhXC0Ro6ZKf48 RLGbBHxkgB//w== From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v7 2/9] Squash to "selftests/bpf: Add bpf scheduler test" 1 verify Date: Mon, 8 Apr 2024 11:01:04 +0800 Message-Id: <05269e97e219cc51b59173f05ab3a3b622a3ca1a.1712544986.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 Add send_data_and_verify helper to avoid duplicated code. Signed-off-by: Geliang Tang --- .../testing/selftests/bpf/prog_tests/mptcp.c | 40 ++++++++++++++----- 1 file changed, 30 insertions(+), 10 deletions(-) diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing= /selftests/bpf/prog_tests/mptcp.c index c29c81239603..5080e680fbe0 100644 --- a/tools/testing/selftests/bpf/prog_tests/mptcp.c +++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c @@ -457,23 +457,44 @@ static int has_bytes_sent(char *addr) return system(cmd); } =20 -static void test_default(void) +static void send_data_and_verify(char *sched, char *addr1, char *addr2) { int server_fd, client_fd; - struct nstoken *nstoken; =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 (CHECK(server_fd < 0, sched, "start_mptcp_server: %d\n", errno)) + return; + client_fd =3D connect_to_fd(server_fd, 0); + if (CHECK(client_fd < 0, sched, "connect_to_fd: %d\n", errno)) + goto close_server; =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"); + send_data(server_fd, client_fd, sched); + + if (!strcmp(addr1, "WITH_DATA")) + CHECK(has_bytes_sent(ADDR_1), sched, "should have bytes_sent on addr1\n"= ); + else if (!strcmp(addr1, "WITHOUT_DATA")) + CHECK(!has_bytes_sent(ADDR_1), sched, "shouldn't have bytes_sent on addr= 1\n"); + if (!strcmp(addr2, "WITH_DATA")) + CHECK(has_bytes_sent(ADDR_2), sched, "should have bytes_sent on addr2\n"= ); + else if (!strcmp(addr2, "WITHOUT_DATA")) + CHECK(!has_bytes_sent(ADDR_2), sched, "shouldn't have bytes_sent on addr= 2\n"); =20 close(client_fd); +close_server: 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", "WITH_DATA", "WITH_DATA"); + fail: cleanup_netns(nstoken); } @@ -663,8 +684,7 @@ void test_mptcp(void) { RUN_MPTCP_TEST(base); 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 Sat May 18 18:58:07 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 B62E317F7 for ; Mon, 8 Apr 2024 03:01: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=1712545280; cv=none; b=Z+fUlp2ZAn6yEAx0lw+6mA//r/SOH/8DxYWqij40ZYZ+Yg19sy1AAYOWUvSThAZKbYShskpvVWZrSVPQRPyOe5hKQSHAo3xI9XEk1z9ieTrda9WjtIa9LNOMPkrUVUJbMdHnJb5+Jss8tqV9P3AWrNHO8rWsQhq6yJfBRiwf3uY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712545280; c=relaxed/simple; bh=xekquGCfYqzdmpOy+gdC4kEQJl6x4R1SJ4uRaTMfsyQ=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=SHI9Y3DI80HRndSE+hUUGWMJagrviMWOPSINP4YzWP+W/Egw64dTGhxYRmhBARxmiGfXrZEVAHUfL497/HA8/UZA9GZGf8AlXkp7eXXUTHkX8JpM+M9A7g4tkHJen8he40Pgm+YsMyPZK17aes5VQ9TL3fKSDoy1rHaLUpQ8J8s= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=o36cKsUL; 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="o36cKsUL" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 86C51C433C7; Mon, 8 Apr 2024 03:01:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1712545280; bh=xekquGCfYqzdmpOy+gdC4kEQJl6x4R1SJ4uRaTMfsyQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=o36cKsULBEdGHKJ6ZbuTMs3dnDXEVJMY5yBswOg2Lhuzi0AWGn2SHF6jTs3/wlhE/ CXIfPh5+WyzLWMIpqkJC4HlU3KBrFtmlCjA6mDg16hj5+11k2YeUlF8kzal6QDpfso CAfAJvIlMVJqJKJ0GYKe3vWYmhGPjqos5oAzgosqtQj3KH+AQLHw0qXvNwpnqQC6Q7 izpE0WVt3C89NVvcZi39tfTfRey++wEqfQOBRfjtWq7R8axknfJbGMyQzSwl8B17a7 16l8HqIOepPptUdflyhAFQbzzY2RTLxD11gKnET5eFqvClMtIFI2Ws2XRp4tiv83is W3RJRQZI8YsSw== From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v7 3/9] Squash to "selftests/bpf: Add bpf scheduler test" 2 time Date: Mon, 8 Apr 2024 11:01:05 +0800 Message-Id: <7fc2ba157a9d9a944d93868e64aecf727430c34d.1712544986.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 time related code from send_data into send_data_and_verify. Then send_data can be exported into network_helpers.h as a public function, reused by mptcp.c and bpf_tcp_ca.c. Drop duplicate '#include ', it's included in test_progs.h already. Signed-off-by: Geliang Tang --- .../testing/selftests/bpf/prog_tests/mptcp.c | 23 +++++++++---------- 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing= /selftests/bpf/prog_tests/mptcp.c index 5080e680fbe0..aa95bb41d5ea 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" @@ -380,16 +379,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)) @@ -406,16 +401,9 @@ 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); =20 pthread_join(srv_thread, &thread_ret); @@ -459,7 +447,9 @@ static int has_bytes_sent(char *addr) =20 static void send_data_and_verify(char *sched, char *addr1, char *addr2) { + struct timespec start, end; int server_fd, client_fd; + unsigned int delta_ms; =20 server_fd =3D start_mptcp_server(AF_INET, ADDR_1, PORT_1, 0); if (CHECK(server_fd < 0, sched, "start_mptcp_server: %d\n", errno)) @@ -469,8 +459,17 @@ static void send_data_and_verify(char *sched, char *ad= dr1, char *addr2) if (CHECK(client_fd < 0, sched, "connect_to_fd: %d\n", errno)) goto close_server; =20 + if (clock_gettime(CLOCK_MONOTONIC, &start) < 0) + goto close_server; + send_data(server_fd, client_fd, sched); =20 + if (clock_gettime(CLOCK_MONOTONIC, &end) < 0) + goto close_server; + + delta_ms =3D (end.tv_sec - start.tv_sec) * 1000 + (end.tv_nsec - start.tv= _nsec) / 1000000; + printf("%s: %u ms\n", sched, delta_ms); + if (!strcmp(addr1, "WITH_DATA")) CHECK(has_bytes_sent(ADDR_1), sched, "should have bytes_sent on addr1\n"= ); else if (!strcmp(addr1, "WITHOUT_DATA")) --=20 2.40.1 From nobody Sat May 18 18:58:07 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 C52E117F7 for ; Mon, 8 Apr 2024 03:01:21 +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=1712545281; cv=none; b=jqwbbWMJkK3Rb4Gm22Y3FAbvjpyMxlCRcZ/lWkhVZXggYYU7Cdqwhlm0rdv+LXOGCM1A9nVe7DWbWNQP63JDtJKuyaxuDl14s7ZMG7LqvLvdvXBxh0epa1javX2QOFbQCNhh/hyTcN3Q+iHKWKzwXNo4EGhsuMv/MaUtV91iS48= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712545281; c=relaxed/simple; bh=miU5/JnDXlMBDqGQ63d1V8r3Bo2+LzfuyBB2UB2k+0w=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=FaB4iakplK3fzSr76sorJ2/nsFPMRuQ4EDmnysoma9MrqnSKMC9FD82saX1iEd6p0jBsZM19/CfnfzqGb74LogQGWX5UfnlG97HZ2ijnxiK1n108PFvSHF6QJwSYbRLXUnwWkqFv6pcVy6PewrffN7XGc+IuNxvavu4WK+yz6os= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ajg3K7cs; 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="ajg3K7cs" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D4AFBC433F1; Mon, 8 Apr 2024 03:01:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1712545281; bh=miU5/JnDXlMBDqGQ63d1V8r3Bo2+LzfuyBB2UB2k+0w=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ajg3K7cslF3uM4uGeyYO1jb8b+VYq1hdblb+wpddu2C7P1CaU8RetgdaEcRUu5Dgh qoBlwcApQ3So5TF88ZNm5Fi1R0K/QBwqyXvSZgtsW3S0mrPWoNGUgDGSqic65Hz2c/ Qj8sqwgJRAH/cZdCsKet67CJIDoacFL93cXXjfBe6W9yHlF6HU8gohLtIUgcs0AgHn Q2tYhGKJ33Z1YqIvtp7rLRn1ciOUb6VJ/lohzgGud25qv8O/ZC2Jc5F0AXCXuvpShm Wr+AMgw7gLUTtgCgsaFQ6e0SqnclSIyB06Kni2WaJa+hD+LFMn6hWtvdTwYZX+4KEo 77+ztdI8Om5Ag== From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v7 4/9] Squash to "selftests/bpf: Add bpf scheduler test" 3 MPTCP_SCHED_TEST Date: Mon, 8 Apr 2024 11:01:06 +0800 Message-Id: <2a6911913dc04a33d031977a346c9e459f899fe2.1712544986.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 Please append this into commit log: ''' This patch defines MPTCP_SCHED_TEST macro, a template for all scheduler tests. Every scheduler is identified by argument name, and use sysctl to set net.mptcp.scheduler as "bpf_name" to use this sched. Add two veth net devices to simulate the multiple addresses case. Use 'ip mptcp endpoint' command to add the new endpoint ADDR2 to PM netlink. Arguments addr1/add2 means whether the data has been sent on the first/second subflow or not. Send data and check bytes_sent of 'ss' output after it using send_data_and_verify(). ''' Signed-off-by: Geliang Tang --- .../testing/selftests/bpf/prog_tests/mptcp.c | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing= /selftests/bpf/prog_tests/mptcp.c index aa95bb41d5ea..93819f0e76d7 100644 --- a/tools/testing/selftests/bpf/prog_tests/mptcp.c +++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c @@ -498,6 +498,36 @@ static void test_default(void) cleanup_netns(nstoken); } =20 +#define MPTCP_SCHED_TEST(sched, addr1, addr2) \ +static void test_##sched(void) \ +{ \ + struct mptcp_bpf_##sched *skel; \ + struct nstoken *nstoken; \ + struct bpf_link *link; \ + struct bpf_map *map; \ + \ + skel =3D mptcp_bpf_##sched##__open_and_load(); \ + if (!ASSERT_OK_PTR(skel, "open_and_load:" #sched)) \ + return; \ + \ + map =3D bpf_object__find_map_by_name(skel->obj, #sched); \ + link =3D bpf_map__attach_struct_ops(map); \ + if (!ASSERT_OK_PTR(link, "attach_struct_ops:" #sched)) \ + goto skel_destroy; \ + \ + nstoken =3D sched_init("subflow", "bpf_" #sched); \ + if (!ASSERT_OK_PTR(nstoken, "sched_init:" #sched)) \ + goto link_destroy; \ + \ + send_data_and_verify(#sched, #addr1, #addr2); \ + \ + cleanup_netns(nstoken); \ +link_destroy: \ + bpf_link__destroy(link); \ +skel_destroy: \ + mptcp_bpf_##sched##__destroy(skel); \ +} + static void test_first(void) { struct mptcp_bpf_first *first_skel; --=20 2.40.1 From nobody Sat May 18 18:58:07 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 1BA25EDF for ; Mon, 8 Apr 2024 03:01:23 +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=1712545283; cv=none; b=WnRIOJMK/XV7PvlLwkAAf/iTxTat5Xd8XXAuOFvDOkSS6kIpBYCPhlWcDqAwYIYWw4tTsf3eTsywExLCTjOZNw2VFKQrmfgP0HMXkfxXcu7XfDW7nVd4rlMTj5dPtPSqtOhpWptB0N5R1ZPBglXiIP54yCpXCiR/R/NaIhTr4hQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712545283; c=relaxed/simple; bh=j67Uk8KjympMise83BjIQlHfOFb8Q9Zns+RoAMCRRpw=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=TD3NvniuvM8TXjAB2M9IaiwNJ7lzMb3XMmH9JQz0c3b3vKrYSLAewnv7iAlMsHFR8CYi4jiaTr4eFOCfXA++2OCwqOxhyofYuTwstSmbrNv0CegDIhDGwhNM7+z51fBXgnUJ2lIuogAk9kH8cdMtT2+diUM5+P5aw3UkUbMjDQs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=lNh7KQOf; 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="lNh7KQOf" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2E64CC433F1; Mon, 8 Apr 2024 03:01:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1712545283; bh=j67Uk8KjympMise83BjIQlHfOFb8Q9Zns+RoAMCRRpw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=lNh7KQOfZNOOf4lK50TaDr8nP+gVZQajw7jCOn0Yr01drSmMJMSw1eHSsg/j6RQY6 KTBixtilWQJIT4uch6nIedTnSAPHWxHmHLYbZx0XorGl3uGka1pXf8iWL6SDBj+NSA zBlio6plHWpIVWVRTRfEHIZuhs+VDn/gfzJPDz80/lZqqEPRuOWp8BVVq1oX1pXQaQ F6EDD40zD3c1CZCSldbXFiu+2j5dfwW/XlwvsojdV9b6tu5pgtpyYZnovvwzy32XHa IkmLBAljM7XC/jcHudmuiRDdmEVn4Y9RkGN1GvIvyJld/3dzakfXqijYsL0IQJOEUD kyjC7NoWHsT5A== From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v7 5/9] Squash to "selftests/bpf: Add bpf_first scheduler & test" Date: Mon, 8 Apr 2024 11:01:07 +0800 Message-Id: <001889663976f22380ca7cfc34008b2c3ed38822.1712544986.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 After squashing into this change, the patch "selftests/bpf: Add bpf_first test" can be merged into the patch "selftests/bpf: Add bpf_first scheduler" appending the following lines into commit log: ''' Using MPTCP_SCHED_TEST macro to add a new test for this bpf_first scheduler, the arguments "1 0" means data has been only sent on the first subflow ADDR1. Run this test by RUN_MPTCP_TEST macro. ''' And update the subject to "selftests/bpf: Add bpf_first scheduler & test". Signed-off-by: Geliang Tang --- .../testing/selftests/bpf/prog_tests/mptcp.c | 38 +------------------ .../selftests/bpf/progs/mptcp_bpf_first.c | 1 + 2 files changed, 3 insertions(+), 36 deletions(-) diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing= /selftests/bpf/prog_tests/mptcp.c index 93819f0e76d7..9d01e4af790f 100644 --- a/tools/testing/selftests/bpf/prog_tests/mptcp.c +++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c @@ -528,40 +528,7 @@ skel_destroy: \ mptcp_bpf_##sched##__destroy(skel); \ } =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); -} +MPTCP_SCHED_TEST(first, WITH_DATA, WITHOUT_DATA); =20 static void test_bkup(void) { @@ -714,8 +681,7 @@ void test_mptcp(void) RUN_MPTCP_TEST(base); 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")) diff --git a/tools/testing/selftests/bpf/progs/mptcp_bpf_first.c b/tools/te= sting/selftests/bpf/progs/mptcp_bpf_first.c index 23a3e8e69e8f..2d067b25d60b 100644 --- a/tools/testing/selftests/bpf/progs/mptcp_bpf_first.c +++ b/tools/testing/selftests/bpf/progs/mptcp_bpf_first.c @@ -1,5 +1,6 @@ // SPDX-License-Identifier: GPL-2.0 /* Copyright (c) 2022, SUSE. */ +/* Copyright (c) 2024, Kylin Software */ =20 #include #include "bpf_tcp_helpers.h" --=20 2.40.1 From nobody Sat May 18 18:58:07 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 6B0A717F7 for ; Mon, 8 Apr 2024 03:01:24 +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=1712545284; cv=none; b=QK9krrpoURmtoy8poPOLKg52FdoOdNN4xuKRdFx7/I+qk5PhH24SXxlimAofejOAmmaXJ5F0MiLUqwCe6+kZ7dy79VckhnwrsdeIYtuZRtC562oeS05VcIsDU8XwQ5qumhp9p541btIrBIdlIXN8wO4q0rLUjxXBEhq7WFastCQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712545284; c=relaxed/simple; bh=f/7wXEIsmB9bNRioCj8OzUtpIGZh77aXNOmQIEESvUA=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=YGOxKSxQHuBl5YoEsoNAMzz1l1/EUZO4+4/rkJD7NkPIpZ+H+IwNfXL7oFmGT5ajBO4i3fMBI4dfh/muXOgTyIGluOMpN7Wv0UsratkodphDKr0NYu6/mxJcO3BBAUypKxzzhwdLFIzulP7yflgpIGMMpC+fqa/j9udEc2YPo7U= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=XwowNIhE; 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="XwowNIhE" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 79BA4C433C7; Mon, 8 Apr 2024 03:01:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1712545284; bh=f/7wXEIsmB9bNRioCj8OzUtpIGZh77aXNOmQIEESvUA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=XwowNIhERb1Boh80/tfdid3Q+T41I5VeEMqTV3BjWN7iA4ibC4os//M7zwIIqDU0Y G1VrrQSEwHBvYCfN/NRBbTTmDmHcTPYL4XmFaAGe8g3YtvnNZD8LqcvTfaeQGKVKNi tJc0D4Oqqb3NIRCZTwqHCWTztVe+A3/YBO4z4pFYzxwl9OL85mqRlRf9paGrTV3Dfj ku0mx97idF0IpYToH9p8CmUSMD5kzaMyA3vPG8P7bKDIQjn1knCnQlPqVBSKhzRfUo 0z2b5SXYoZhh2r3urlEeLM0tdTFZHfkVJVkevSw/SGDv/9ycOFlSUWaZ99uTPgpWiR GCn8SX8yTdE0w== From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v7 6/9] Squash to "selftests/bpf: Add bpf_bkup scheduler & test" Date: Mon, 8 Apr 2024 11:01:08 +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 After squashing into this change, the patch "selftests/bpf: Add bpf_bkup test" can be merged into the patch "selftests/bpf: Add bpf_bkup scheduler" appending the following lines into commit log: ''' Using MPTCP_SCHED_TEST macro to add a new test for this bpf_bkup scheduler, the arguments "1 0" means data has been only sent on the first subflow ADDR1. Run this test by RUN_MPTCP_TEST macro. ''' And update the subject to "selftests/bpf: Add bpf_bkup scheduler & test". Signed-off-by: Geliang Tang --- .../testing/selftests/bpf/prog_tests/mptcp.c | 39 +------------------ .../selftests/bpf/progs/mptcp_bpf_bkup.c | 1 + 2 files changed, 3 insertions(+), 37 deletions(-) diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing= /selftests/bpf/prog_tests/mptcp.c index 9d01e4af790f..f1a9faac3731 100644 --- a/tools/testing/selftests/bpf/prog_tests/mptcp.c +++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c @@ -529,41 +529,7 @@ skel_destroy: \ } =20 MPTCP_SCHED_TEST(first, WITH_DATA, WITHOUT_DATA); - -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, WITH_DATA, WITHOUT_DATA); =20 static void test_rr(void) { @@ -682,8 +648,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")) diff --git a/tools/testing/selftests/bpf/progs/mptcp_bpf_bkup.c b/tools/tes= ting/selftests/bpf/progs/mptcp_bpf_bkup.c index bfd4644dd592..486407a135c9 100644 --- a/tools/testing/selftests/bpf/progs/mptcp_bpf_bkup.c +++ b/tools/testing/selftests/bpf/progs/mptcp_bpf_bkup.c @@ -1,5 +1,6 @@ // SPDX-License-Identifier: GPL-2.0 /* Copyright (c) 2022, SUSE. */ +/* Copyright (c) 2024, Kylin Software */ =20 #include #include "bpf_tcp_helpers.h" --=20 2.40.1 From nobody Sat May 18 18:58:07 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 C10C7EDF for ; Mon, 8 Apr 2024 03:01:25 +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=1712545285; cv=none; b=muWp9UwZU+okY72tOOMwXJA9JVU2Erk9/NL8rqjiBuP0XOmiYcxK5lCb/J9JkrCm6CpMcPftOe9h7VwGPuWixp7C4q3GOT5FMXhSuxHSgQVa78m4scQpSVMC7VKoX/rUHR3uwu0duO548zZrtsB0hAfQJTKqutXwUN0LHeg3Xcs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712545285; c=relaxed/simple; bh=1OMyUV3ltXv/IdJUHMiRxs42S8q82GdhvXGpj0u2Nlg=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=FpyCvFoH1foMklGTtdEJFTgfu/RU4mMUE68da8jMN4KgPMkKtmJWVfo80XRD3rbFR9ZgIQQcPJCjyvof3VOEr9M/eKF+QSU5azE8pban8ia1VnuBPXhtup9NpVH9+IJH+FJCPXp8VKiMQfXmqr+Hp56PCXh26AQyO6qcKAIJ/Iw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Hwpy9+m0; 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="Hwpy9+m0" Received: by smtp.kernel.org (Postfix) with ESMTPSA id C8FCDC433F1; Mon, 8 Apr 2024 03:01:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1712545285; bh=1OMyUV3ltXv/IdJUHMiRxs42S8q82GdhvXGpj0u2Nlg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Hwpy9+m0cjaKcr4brdc0O7XhLrgZ5OceFbOs9cREpmig9AlWlmNgjL0ARNUYDSOzm rydE3LJF4AVhT3htb8d9dOnFHCB8d/XToBdfpSdCIpvTNt2e07gC6VuPcrtg3E+J0P LANossuLlS1zPJFWoDn+p+qJjXYHoqbfoHgZ+wniZ7UcVFqHezPm5czntHnNtCfaAH h7kZyFkbULB8OmqpjQGqrWHX7rdu+mLK8S1bQnauRQTcbBHvvRsnRDgOJ9mEL9ysDn sdK4mFb0KsDBNUe2HnBIpWKNRKl2cUIUJSCA9kCN4CSKpyxWbJYbgLAiRFTYrfiNls 7wPRZ91BtD8dA== From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v7 7/9] Squash to "selftests/bpf: Add bpf_rr scheduler & test" Date: Mon, 8 Apr 2024 11:01: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 After squashing into this change, the patch "selftests/bpf: Add bpf_rr test" can be merged into the patch "selftests/bpf: Add bpf_rr scheduler" appending the following lines into commit log: ''' Using MPTCP_SCHED_TEST macro to add a new test for this bpf_rr scheduler, the arguments "1 1" means data has been sent on both net devices. Run this test by RUN_MPTCP_TEST macro. ''' And update the subject to "selftests/bpf: Add bpf_rr scheduler & test". Signed-off-by: Geliang Tang --- .../testing/selftests/bpf/prog_tests/mptcp.c | 39 +------------------ .../selftests/bpf/progs/mptcp_bpf_rr.c | 1 + 2 files changed, 3 insertions(+), 37 deletions(-) diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing= /selftests/bpf/prog_tests/mptcp.c index f1a9faac3731..d7c6a0bec183 100644 --- a/tools/testing/selftests/bpf/prog_tests/mptcp.c +++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c @@ -530,41 +530,7 @@ skel_destroy: \ =20 MPTCP_SCHED_TEST(first, WITH_DATA, WITHOUT_DATA); MPTCP_SCHED_TEST(bkup, WITH_DATA, WITHOUT_DATA); - -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, WITH_DATA, WITH_DATA); =20 static void test_red(void) { @@ -649,8 +615,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")) diff --git a/tools/testing/selftests/bpf/progs/mptcp_bpf_rr.c b/tools/testi= ng/selftests/bpf/progs/mptcp_bpf_rr.c index 39b7e1cfbbd5..05621467fe48 100644 --- a/tools/testing/selftests/bpf/progs/mptcp_bpf_rr.c +++ b/tools/testing/selftests/bpf/progs/mptcp_bpf_rr.c @@ -1,5 +1,6 @@ // SPDX-License-Identifier: GPL-2.0 /* Copyright (c) 2022, SUSE. */ +/* Copyright (c) 2024, Kylin Software */ =20 #include #include "bpf_tcp_helpers.h" --=20 2.40.1 From nobody Sat May 18 18:58:07 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 5251717F7 for ; Mon, 8 Apr 2024 03:01:27 +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=1712545287; cv=none; b=YhfkHIEh4sAePrlnNwJ0P/e4Q3KV3YcoLkyTbUpVIS+cyi/VHcnyNfh12AwzRzDssNxRdWt9HRLobUOSyirjNTT6OYhdyUEYROriXVxrXKPDbELRFv4h7Ckg1IxMHyQKg0QbiFMzY6C9rTDASH9ROvHHCulrvoy9/+mCUHkRl4E= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712545287; c=relaxed/simple; bh=yOL14Vdo7X8ZxAu1KKfl3/7J0KoOlM9nP0D6BLmtalM=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=c/+dzPpSaxO5S1DF+DOVYDJzU5i2t1SfGj1MNebhk9FmZV+AGod7oaLaFt52UAeqYZztIP6uk0whx/fQsPaJSbPFtXxQsXJjjG49TTBjuwPGUZ5WvzTKCq1K4tiI2TzmfP3ubQjzZbu9XQPizYLG3QtwGr8u+kTZcV6a9PombMc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ufI+5ZBL; 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="ufI+5ZBL" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 23430C43390; Mon, 8 Apr 2024 03:01:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1712545286; bh=yOL14Vdo7X8ZxAu1KKfl3/7J0KoOlM9nP0D6BLmtalM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ufI+5ZBLPFWPcsAM+IVQnaqMVfFr+5cxKmbT+4HLz+EnzFs4c3XQNqhyg6VjPjtop AVOExbDQ4smDtOFjbLMOJQ29Auiapu3vNv8XDSg7pYrmZ6yah3/IXhDHPevkUu/JqK GdY2nM++8poNdlCnWdps2CtOJyKSDeannmhFyel4fLRNEAF01ZdQgNk1Ns1Aldg5Nm rHLGFv93qG4SM5eK6HLKzLcSop3LksACLWcuIJcP1fVHX6WLzlKzgQOiEb2u/VuvZE n6tofAxLYJngVSihMGwsTPIHXy1Ze4ojaFAFti1mk7j9BdGZwhQdfkKfjLLbRSuFLE 0Q0NRvLfjkR7Q== From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v7 8/9] Squash to "selftests/bpf: Add bpf_red scheduler & test" Date: Mon, 8 Apr 2024 11:01:10 +0800 Message-Id: <955ab229517b07190804756bdc66096fe0a878b8.1712544986.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 After squashing into this change, the patch "selftests/bpf: Add bpf_red test" can be merged into the patch "selftests/bpf: Add bpf_red scheduler" appending the following lines into commit log: ''' Using MPTCP_SCHED_TEST macro to add a new test for this bpf_red scheduler, the arguments "1 1" means data has been sent on both net devices. Run this test by RUN_MPTCP_TEST macro. ''' And update the subject to "selftests/bpf: Add bpf_red scheduler & test". Signed-off-by: Geliang Tang --- .../testing/selftests/bpf/prog_tests/mptcp.c | 39 +------------------ .../selftests/bpf/progs/mptcp_bpf_red.c | 1 + 2 files changed, 3 insertions(+), 37 deletions(-) diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing= /selftests/bpf/prog_tests/mptcp.c index d7c6a0bec183..9f5c2297027c 100644 --- a/tools/testing/selftests/bpf/prog_tests/mptcp.c +++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c @@ -531,41 +531,7 @@ skel_destroy: \ MPTCP_SCHED_TEST(first, WITH_DATA, WITHOUT_DATA); MPTCP_SCHED_TEST(bkup, WITH_DATA, WITHOUT_DATA); MPTCP_SCHED_TEST(rr, WITH_DATA, WITH_DATA); - -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, WITH_DATA, WITH_DATA); =20 static void test_burst(void) { @@ -616,8 +582,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(); } diff --git a/tools/testing/selftests/bpf/progs/mptcp_bpf_red.c b/tools/test= ing/selftests/bpf/progs/mptcp_bpf_red.c index a3f3e5ca5278..62cba8f2d936 100644 --- a/tools/testing/selftests/bpf/progs/mptcp_bpf_red.c +++ b/tools/testing/selftests/bpf/progs/mptcp_bpf_red.c @@ -1,5 +1,6 @@ // SPDX-License-Identifier: GPL-2.0 /* Copyright (c) 2022, SUSE. */ +/* Copyright (c) 2024, Kylin Software */ =20 #include #include "bpf_tcp_helpers.h" --=20 2.40.1 From nobody Sat May 18 18:58:07 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 62D5CEDF for ; Mon, 8 Apr 2024 03:01:28 +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=1712545288; cv=none; b=uE4f+267jAZuCrHHHhIZUdNfC3CwZ6fv/aCmNoJOvJBUyk+99CpFBdcaneHe0k/cUU8xS2aXuMQrDXQtC/Dy3j1A2+chPby614lZj7kKiN9nNod33MaiUoUawiOL5gcvOZC9Rb7DpolVX97JGsyvvwZgYr9FzIi3mv1OM0A9thM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712545288; c=relaxed/simple; bh=xzdywZklgRrx4Ydgj2KXP12ZkigeH4TjbVzL9XpO3C0=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=i5S79slIZG7d8S8zAqNNUFYEZDuXqFKzRpJ+j1V7JAapJpw4IuEGWX9+9LWWxENXhgL/VI0FidgEWxZQJbyuKK3epWbsfrPnIYZiNc4w77XSK3YclmYY5KRph1Xywqrb6LFU5I0inz+dvudM94poe1BIuSJ8KACCAWoNobBJIwU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=GuB9sV8T; 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="GuB9sV8T" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7145AC433C7; Mon, 8 Apr 2024 03:01:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1712545288; bh=xzdywZklgRrx4Ydgj2KXP12ZkigeH4TjbVzL9XpO3C0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=GuB9sV8TApLD7UjOwQl2ebRdMac5OQ9ama2oYbNbuj3hNGXmyroZPZSITIg5puL9t oOcel2eyOJrA1JC7zZutUG4q4PYHV3HRPUm20K/T/Jh/rERtLJ4bDjO3qguA8EFZqg Smx83Gv13UwKP9s9cmPoSRdCCVq+lFYz1/4/nmLcLLXA1v44O6dMXBqZXPkFun/3QZ AJtf0UKFV8lv4W887wH7/NUS+cb4Inb4EChnnxpnIQkfAqc1CH3O1/h56Tl0ddQBR9 mSAZiMLqYQzdrzpKhBfKm1RIHivVeAcGiU+1uSOtos2Cr4BiY7hhyja6+MAplljJiv NYBJH2uGXcS/A== From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v7 9/9] Squash to "selftests/bpf: Add bpf_burst scheduler & test" Date: Mon, 8 Apr 2024 11:01:11 +0800 Message-Id: <18d024cfa06defd884af90ee2127190084186697.1712544986.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 After squashing into this change, the patch "selftests/bpf: Add bpf_burst test" can be merged into the patch "selftests/bpf: Add bpf_burst scheduler" appending the following lines into commit log: ''' Using MPTCP_SCHED_TEST macro to add a new test for this bpf_burst scheduler, the arguments "1 1" means data has been sent on both net devices. Run this test by RUN_MPTCP_TEST macro. ''' And update the subject to "selftests/bpf: Add bpf_burst scheduler & test". Signed-off-by: Geliang Tang --- .../testing/selftests/bpf/prog_tests/mptcp.c | 39 +------------------ .../selftests/bpf/progs/mptcp_bpf_burst.c | 1 + 2 files changed, 3 insertions(+), 37 deletions(-) diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing= /selftests/bpf/prog_tests/mptcp.c index 9f5c2297027c..e8e4b8486511 100644 --- a/tools/testing/selftests/bpf/prog_tests/mptcp.c +++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c @@ -532,41 +532,7 @@ MPTCP_SCHED_TEST(first, WITH_DATA, WITHOUT_DATA); MPTCP_SCHED_TEST(bkup, WITH_DATA, WITHOUT_DATA); MPTCP_SCHED_TEST(rr, WITH_DATA, WITH_DATA); MPTCP_SCHED_TEST(red, WITH_DATA, WITH_DATA); - -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, WITH_DATA, WITH_DATA); =20 #define RUN_MPTCP_TEST(suffix) \ do { \ @@ -583,6 +549,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); } diff --git a/tools/testing/selftests/bpf/progs/mptcp_bpf_burst.c b/tools/te= sting/selftests/bpf/progs/mptcp_bpf_burst.c index b3c811564866..6b79267562f1 100644 --- a/tools/testing/selftests/bpf/progs/mptcp_bpf_burst.c +++ b/tools/testing/selftests/bpf/progs/mptcp_bpf_burst.c @@ -1,5 +1,6 @@ // SPDX-License-Identifier: GPL-2.0 /* Copyright (c) 2023, SUSE. */ +/* Copyright (c) 2024, Kylin Software */ =20 #include #include --=20 2.40.1