From nobody Tue May 21 23:33:03 2024 Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2059.outbound.protection.outlook.com [40.107.21.59]) (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 4596CA23 for ; Tue, 27 Jun 2023 01:39:56 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=AxuHuXnk/T7Cx1KOTuofLluolgE4UR9KEHk48oZq2R3b8RDXdgE6gJ2XDqA+/Gn1jJ18zW+ewZybAWamLUxQu5wEhMrrynHEM/9v3a6dvP02yUy3Rw80dC6cB8vDxAFNMK4ualSQ62UDT9vs2hxOneqgNpwCsD2KOwTe9RZwARyUS0xaQXsvWgXHyrJwNso6EkNFehVKYgzKFBVskhgzgHfQeGKJvrghsuwn2zRN7yfiMpKog+QhpAMR9TcpEA6BziUQOveWyNmXPe2vIdNgh5dmDRgu9C+gZs6IksBKgstpXdvMuBjs//QlQrFvWsYQQupkR54Q0eQcW6ioJ911qQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=4NfrfIaKyZiKFAKhCXN2GZph29xDq3ofVgi4sQTssFg=; b=iG+rYxScueMjbHdq2FXvL2NQI/IS9in4+HoaW7Y6LQ2Px4NAgpWo9f1DArQ0Cqd7F6LGx2nRf4XhtDdMbrrDZwniCmcPJJAm6nmJarYV1oQ3dT5VVF92YGymAwhGIzV9weHWcBtbXuAA58FJFbs5aTy4BsbY1QNiFiSyq8YcSTlngibbqs3fWXiveLRb59ry0sOmDSLJcVe/CNNT4zP4hSawc2URcHf0e9weeVL1nB4IoVw2T8t9UjCjcirj5UMScpl93Mtgy18HJuJqa1IQDKNdRg8s4zACoM20bNTLenY1WNzXuXHfdyK9hR2vliad3pFYpTqODmWPPbSHy9w16Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=4NfrfIaKyZiKFAKhCXN2GZph29xDq3ofVgi4sQTssFg=; b=BfpVsvlDFGk4xmpLaGpN2YRtNWfiXRmrOWfybfqyhgFtQuK5ErTXfLL4pNifyY87FF0DGswIieOX71FiaIYuY/9MVrdljNHidqYkW58dbE3NbDWyNBviCAak3KovLvqF1crHqbBiokr1HvciCekbijWk202QmCK14phKYsYfT6UotWp25vqbWE0zAvjPCK1PuLSM8zMrIo3tIw9XXJ/sNS0iDBuVKxgPmc+YxuFSfs6L3WeaBz/g2fJtYtr0lTeZEzO25FPFCKqDuYSzB7SK2n/tKit7mllIJL4A/J4HKcH2lweO6GLKG27VJJwkcCWcKySA4ECAhxtJCH8AeOdLJw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) by AS8PR04MB8277.eurprd04.prod.outlook.com (2603:10a6:20b:3fc::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6521.26; Tue, 27 Jun 2023 01:39:53 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::423a:a30f:5342:9d35]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::423a:a30f:5342:9d35%6]) with mapi id 15.20.6521.026; Tue, 27 Jun 2023 01:39:53 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next 01/10] Squash to "selftests/bpf: Add bpf_first test" Date: Tue, 27 Jun 2023 09:39:22 +0800 Message-Id: X-Mailer: git-send-email 2.35.3 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SI2PR02CA0032.apcprd02.prod.outlook.com (2603:1096:4:195::12) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: HE1PR0402MB3497:EE_|AS8PR04MB8277:EE_ X-MS-Office365-Filtering-Correlation-Id: a2ae31c9-aa0b-4889-4e89-08db76af67a6 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: WSlMiR0aEbZsfSLIpjOPynHu31Nhl5P151mYTgVY0we+ry9TZZTP50tKb1Zt70M0G1hpQlkDb7MCkZ03IDuyP4BCABzZrKSs7R5Ew2X1XO7e6e6CMOWfvcn2R4IMbH0F4qDNHNp4kkPLx7QiLYbnrngk7UM0HjtaoxMmohYWfy087w4vVigKVpfB9tArH2DvZRVcBK4C1FlwfCVAgAwm0Pi2wlV7Uyu3TkI89554D4G0n8Ax41tWDw94i5+fAE8ETjlRxkBLAOW35Nl21EaC7mQeY+u+2eAA2nlIxaG9xeS9lffNR5YEYTGc/jlZGohYM7+jPcRMnkhMRpMKhf9SrS3UlNmlB+PALwoyhprAN/RS/qTJAQbUVIRUSAcbDWBeyMIFkQyjspVTI0XmtLaFSbYGCbgv4cGVYXZ+u8bVwRS2gbjEeKyLLYAe83xpKq4mTtFwPLiIZtwPgywE7bk36XM7jSpDnDOrCdFf2WvBXGfzwb8wuRwIE5OA2lyobGvvp5cd4xt22TJF3hgpP6OWgZk4I6Os1i6DjeoT8vVbKs1KbfhlVRJF6BzDfz9HLq47 X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:HE1PR0402MB3497.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(346002)(396003)(376002)(136003)(366004)(39860400002)(451199021)(6506007)(107886003)(6666004)(45080400002)(478600001)(2616005)(83380400001)(26005)(186003)(2906002)(6486002)(5660300002)(41300700001)(44832011)(86362001)(36756003)(38100700002)(66946007)(316002)(66476007)(8676002)(66556008)(6916009)(8936002)(4326008)(6512007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?SIj+Iox/7LnxULRB/nZGxu9AQOeQfMIbYtc8HODj2VUrzUYMg+cY0EUCuexR?= =?us-ascii?Q?jE6wIB5U5+PWgPJU3BNF0iB3nJniIm3nDo+D9Bs+ptfeMY1/m+BmD5JMuc/V?= =?us-ascii?Q?YSOBFHbSoo+OOY1IdiSoDNiixsGod/+fXW/l+Ru5mGfoILMWO8aLlFvJoeFJ?= =?us-ascii?Q?DsZtAoQ3FDjeOPMEMUNigoELRf365PGcukJX4Bg25s3Q1QlnmkFdWpX8zxz6?= =?us-ascii?Q?iOkWBFgetMgqeai0aphdfnZcZZz3pwlhFhCXz+NWRHU9riJb+twek3b9Rga2?= =?us-ascii?Q?Fw6bsrW0Th7PbOiM2Sr9rfp2j9pl2CmdFd6ndp7CdHZBB81JcageuIrV8IXC?= =?us-ascii?Q?BL5lT32eIUo8uiEeYyggHQR/WE+DHoeahsHsnXAOpkzQPjOVSSyZbriNTaWg?= =?us-ascii?Q?BECkYZtr2USCxaZu0wOXZYktg1PyfNrYP9wHt08FKH1iQQekRp+TyUHXFoQf?= =?us-ascii?Q?5VCbR/W5I3EG+A6YKjLWUbkj+LPcz7+gQBn5UsBwDuhn2ORsyHkc6rtN9enm?= =?us-ascii?Q?GmXGr169l+vbT3NV5I/Bm51wQjjIi1I0R4QBISEZO0p73eW0tPh5hdOO+4gq?= =?us-ascii?Q?0xb8sERLD5V6qBUVi5yK1gwbE7wcUC0RuyNjx5gM1rINpJmUfyXVfDptb86t?= =?us-ascii?Q?6hGOK+cGwY3kcA2ZE7fA+MOHIZacVKBxyS8qTyE0VYPwEDsNSZZESjCvWOlm?= =?us-ascii?Q?t0d26GJQfzFreL2aThBTUqpmD0hHYS00p5Z/8rwfjg/ERHzptdCxUOGsZLyn?= =?us-ascii?Q?O0pDN1O4hmcsd/XcqNS7Vp6svqf4Y/tbeKIXO4rwgL+aHY035G/Xb4jZ0RNc?= =?us-ascii?Q?i4dln9ln8j4WrrfFzK5H9vV1NDg0shbewTQ76rXoBd88k7J4dp06J8lIfAm/?= =?us-ascii?Q?UaVmcvQKvOSgzN4Uugv+iYBL/4pF7mC3ncWttifwmH/ev+35fyo6nwf6blFF?= =?us-ascii?Q?9eKzf03tM1zO0HNVW7q2B0v/6Ek+U9p7vwUO1OkqiOeymDUXdFrwKl1TFNMv?= =?us-ascii?Q?+1jXQPWImkYankAKzX298MoYn9MYc1Uu1cFnmy3ETFvEBvTCeRErejjhpddt?= =?us-ascii?Q?XX1LcqelJpEaEuhzFfkDZwWueBsI+7VIKoXg3c9cOhkMx5FdgGQbkP0Yyuot?= =?us-ascii?Q?5yoqmMnMIYxuQntHEFwzNXXXsXiKmRw2BjyEcurMeY29JJ0hJjMHZSWhPlz+?= =?us-ascii?Q?EnBPaqtOTN+tu/7LJVD/FuxHhNtkK2a1PWPYUiVCxt5aLG5+fqNFJJH7Dq8G?= =?us-ascii?Q?0b4hPbUIxMR90dwOEkCjz3DqFXuEwi4yLd57nVZC5BvADUseKvZetT3Z+Bxu?= =?us-ascii?Q?XJi42z6ay2Yh4BRHvve8Kx6r1MrxMyz8kR62Ub5OS1OgbcvRC6G2UOklRIkm?= =?us-ascii?Q?zxcMIWnUIz+sa6np+dYLAhW/zf88JgT9ZNmcXJ5jvRDagZ1twoW2x6gHTw1P?= =?us-ascii?Q?Gr+7MUR7KwCwVKCZXE+++ITBNrprSjl0NaU/SBwbcJsWdAOYwhvJRzEt/RRG?= =?us-ascii?Q?53hsN3jFpmOkgKpfB9vDsVUccU3YyfQr8FfZ3KyPn09gaVz1EspTSdOxJtE3?= =?us-ascii?Q?I8rtZ53fEB4X+yMxYtkgc9kOvpznYWeNSyJ8ZdXH?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: a2ae31c9-aa0b-4889-4e89-08db76af67a6 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2023 01:39:53.6271 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: iqorm7mVMNg7Qf0q7rNwBD/0D/pz/3Wn+FYfH59YtW40KrmnLfgiGOzMGhGUbjg/78TG4bMKd4K/uuXi3cUXNA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB8277 Content-Type: text/plain; charset="utf-8" ''' selftests/bpf: Add bpf scheduler test This patch expends the MPTCP test base to support MPTCP packet scheduler tests. Add a new test to use the default in-kernel scheduler. In the new helper sched_init(), add two veth net devices to simulate the multiple addresses case. Use 'ip mptcp endpoint' command to add the new endpoint ADDR_2 to PM netlink. Use sysctl to set net.mptcp.scheduler to use the given sched. Invoke start_mptcp_server() to start the server on ADDR_1, and invoke connect_to_fd() to connect with the server from the client. Then invoke send_data() to send data. Some code in send_data() is from prog_tests/bpf_tcp_ca.c. Add time metrics for BPF tests to compare the performance of each schedulers. Run prog_tests with '-v' option can print out the running time of each test. Use the new helper has_bytes_sent() to check the bytes_sent filed of 'ss' output after send_data() to make sure no data has been sent on ADDR_2. All data has been sent on the first subflow. Invoke the new helper sched_cleanup() to set back net.mptcp.scheduler to default, flush all mptcp endpoints, and delete the veth net devices. ''' Note: This commit should be inserted beteen "selftests/bpf: add two mptcp netns helpers" and "selftests/bpf: Add bpf_first scheduler": selftests/bpf: add two mptcp netns helpers selftests/bpf: Add bpf scheduler test selftests/bpf: Add bpf_first scheduler selftests/bpf: Add bpf_first test Signed-off-by: Geliang Tang Reviewed-by: Mat Martineau --- .../testing/selftests/bpf/prog_tests/mptcp.c | 43 +++++++++---------- 1 file changed, 20 insertions(+), 23 deletions(-) diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing= /selftests/bpf/prog_tests/mptcp.c index a968641cc94a..39d95c6a18e3 100644 --- a/tools/testing/selftests/bpf/prog_tests/mptcp.c +++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c @@ -3,10 +3,10 @@ /* Copyright (c) 2022, SUSE. */ =20 #include +#include #include "cgroup_helpers.h" #include "network_helpers.h" #include "mptcp_sock.skel.h" -#include "mptcp_bpf_first.skel.h" #include "mptcp_bpf_bkup.skel.h" #include "mptcp_bpf_rr.skel.h" #include "mptcp_bpf_red.skel.h" @@ -247,15 +247,19 @@ static void *server(void *arg) return NULL; } =20 -static void send_data(int lfd, int fd) +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)) @@ -272,9 +276,16 @@ static void send_data(int lfd, int fd) 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); @@ -315,39 +326,25 @@ static int has_bytes_sent(char *addr) return system(cmd); } =20 -static void test_first(void) +static void test_default(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; =20 - 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")) + 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, 0, 0); client_fd =3D connect_to_fd(server_fd, 0); =20 - send_data(server_fd, client_fd); + send_data(server_fd, client_fd, "default"); 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"); + ASSERT_OK(has_bytes_sent(ADDR_2), "has_bytes_sent addr_2"); =20 close(client_fd); close(server_fd); fail: cleanup_netns(nstoken); - bpf_link__destroy(link); - mptcp_bpf_first__destroy(first_skel); } =20 static void test_bkup(void) @@ -459,8 +456,8 @@ void test_mptcp(void) { if (test__start_subtest("base")) test_base(); - if (test__start_subtest("first")) - test_first(); + if (test__start_subtest("default")) + test_default(); if (test__start_subtest("bkup")) test_bkup(); if (test__start_subtest("rr")) --=20 2.35.3 From nobody Tue May 21 23:33:03 2024 Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2089.outbound.protection.outlook.com [40.107.21.89]) (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 720EDA23 for ; Tue, 27 Jun 2023 01:40:03 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=C0W21COtKlb1JZ2E/im+4cSDgRlGoSzMR4dS/xWNqbbXQWDYVEiWfjfkmhrDNLOTvsVZq/GL22/8mC1s5Rk73fEdFBFT/IvZFULmvqeUPAHLHQ7ahHZwjAdjMw+wnfCuqPd13dOkZsU7DtHNfHaI7ess8kLUi6gFQERYDp8Ll4uTFmDjimKw9EVGvVGw3VyvifhlTWfw+0WIXcKOAJlXcrVTmRyxRWXfotGmkRc0tvAC2UEU74cX/YmJieFin6bG1/V6Qfs983q5azsC1UEaGvSi2sDwB03NCi7EFeSAE4scq8krPpnPxomItFiMJenGk7EYVdn2ybHzSxs11IcTRg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=T6X/iPydP+WBXRTuZEM8ABlhZ/odWRKqPcuOTyPdie0=; b=XDRsyZ1mX+CTo6lRoZfD5O5uOrUoXZTmIjZEJdL7JpjFnf0OXreLSn02r7kwVECO8NBpmt/YEyZ09w8ry0e2ANKhGNSJyLS5q0o8W6x09yfG/mJ+9/PUnmU9qtgj3wT/57CqTxnEzYbkLiA4BJnVHC7nfzumEn8FfGRn5B7Ow6go/6RD2ULWBOebwU6VA0vbRH6WJcWV04ZCQlFuC5sgZr6zx0hWMtrvQ8G/MTjBl3ywYoOk8dSOk+WFhie129WNUN3YH+jpWfyYf/2OjYk1b+I1+BkRNksHwU0zdO+g0sVgXUakekZELPGfyDG1GIWiZNLaWRC8pSpvR+nlDKY/Ag== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=T6X/iPydP+WBXRTuZEM8ABlhZ/odWRKqPcuOTyPdie0=; b=Mrr4cQto+rCqaFxy2USsUphcKjxO4QER/IbrTxwzBuh8OTM6ZMTlTqtgOd4r0ifITBwL3K+T0Z/Xc+Y9FjKy/izUHjInphDEA98TQQHWlEL/1ZMHAwsd6Isn/g/1EXIQUgpIi6hk8Qcp6O/ycOGbQExS1ThzZXBgfJVCYWp9BY4Fn0//7nY40Ta26I86QsVm5g7JcsfJZFIeyLxtnQU+NjrGiOHSvhuMZfbHDWsAuHT5kTN5S736T6+DfD47E8cLBrhd+ucWcU3nPD8Vv9Ho8bNyC8PZvw8jDeJWFiZAx4+fSNAgxkTU4DE5w3BqIu+m80D/5LYDVKBCMV54UAt4Mg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) by AS8PR04MB8277.eurprd04.prod.outlook.com (2603:10a6:20b:3fc::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6521.26; Tue, 27 Jun 2023 01:40:00 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::423a:a30f:5342:9d35]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::423a:a30f:5342:9d35%6]) with mapi id 15.20.6521.026; Tue, 27 Jun 2023 01:40:00 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next 02/10] selftests/bpf: Add bpf_first test Date: Tue, 27 Jun 2023 09:39:23 +0800 Message-Id: X-Mailer: git-send-email 2.35.3 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SI2PR02CA0033.apcprd02.prod.outlook.com (2603:1096:4:195::20) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: HE1PR0402MB3497:EE_|AS8PR04MB8277:EE_ X-MS-Office365-Filtering-Correlation-Id: c9d1527d-be35-42ff-0489-08db76af6c02 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: z4hs9Wa2Wn9sPYEodeiKBqQYTBGef7gxje7Pt7lc4WNhvW6NXcBZm0DcjorKafK3t8yQCzQ7fOsLIUzQRpZToGVIQSPeAkfbC1dQACxZmqwYxjxnEJt1HUkX3cMrj0R6dBt9WxmQmjdTZ0HtVv4xJ8xDDrKBd8ixLnrgUZ25P3Qt6vsXnwhht1rrU3H93ZbKsdbG+iaXQ6Vsntw2PI/BJXo+usJAq8dowDTwGcQK9zqa7cMDDD2ukrAmZHsBeqMFS8lzxLUsJqCdx00pTX2e2KigYoxTRODRXbxrDUQuyyVpkeYsS8aneCmKvkOw1/DF5MDNNQBFPj+ShyISyf8rnRvNtuzXbCkh5/9K6IY79UwoSPdNwIGjAlfV581LSbTN7TAKm+jqXYXYXFNvA8N08lhF8JrbHCqLHI5ru+r+ZT4Pp3d68Vav6Um5oLIOY42GzAD1HhZXDqm6wqI3NV+x8phTFA2sfcMv97clQuxrtosO9hfgWFDTJ+RUK6Bs/gm8Y3fjn9MbY/PR5/kl/NyRPGGM52147rt+cHkrSNKZaFt9NhCBfkJvziqNN7x4wMHM X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:HE1PR0402MB3497.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(346002)(396003)(376002)(136003)(366004)(39860400002)(451199021)(6506007)(107886003)(6666004)(478600001)(2616005)(83380400001)(26005)(186003)(2906002)(6486002)(5660300002)(41300700001)(44832011)(86362001)(36756003)(38100700002)(66946007)(316002)(66476007)(8676002)(66556008)(6916009)(8936002)(4326008)(6512007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Ntfl6JGe6YHCRCy5X6692qSNTdTPvGoCIt39/Gx2tlAj1yctokywuZ8slIvR?= =?us-ascii?Q?PHeuN0UvYQqxheUnU0/zH27qlGGK/TY9f9i4m/I8nALztxr2MbHeL3Lar4Xr?= =?us-ascii?Q?C/u8GCND4c2Esi0dalqMrfPw0oCaYp1tpvf+N8WkgS4qkRD/ie6MT+yLOTUF?= =?us-ascii?Q?dYlxSIZHyI5pSIhCxqTktc+6nep4vZyBqGDoWEcoJnMVMqh389jjZjE91ZIb?= =?us-ascii?Q?UkguQWOyWZDf4yTZQBYJou8OWlhcNuRBgHvsbENLw2FhI/NzDoXoJRi4kmMk?= =?us-ascii?Q?lozy9qTRAaA7dOSjFNLoRiA8o1hGZ56oS2S6pFH3Sp/7J21TZzZbA6K0RQV2?= =?us-ascii?Q?TWxt9ZDs5Oic/N9D5yqi91BTrGIEsWf0jLbCB7VuyOvXpQC1Y5YrJZ0tP5kO?= =?us-ascii?Q?0Yczh1U+M/VPYUAtvflnTr26ZsAy4MchCK6GRPJa9mN3qr20UazeVfsSf9We?= =?us-ascii?Q?HBi5wcapTiApa8ZNcQE/tign0rCfpCWvmCzq2RaTSSSL9wQAMEucHofVT+xG?= =?us-ascii?Q?OtH1Tc60stTMOtGLPB0pxm4vducPBupzoP25h7kGJQJHnHZdonZhtIBOnBc+?= =?us-ascii?Q?8aNaV34W03XfdwVFIVl/gRdsm0nahxsIr05p44muxCXTd8xG8hgRH98MnleR?= =?us-ascii?Q?2j0nebM8Xzgy3vX7xw95HyUPCNglkaU7YO5JkGMUByD59+G285uK14OfoPiw?= =?us-ascii?Q?yI9yA/QHv5x1+sEul4uGUkl7DEzkIFoShUwkvmSIXxBO7UMXPjWjAfl+qcxt?= =?us-ascii?Q?/0e5Q6zXjxG56kppCXdO7GoAgAlefgLQSfpYsWv7+3gZGS5MqRG85Evuzm0e?= =?us-ascii?Q?rV0sDEc7+FVAmCNB6kIm+VHpbbzr9aPVHQWxZdRdxLFDp9XxM52p8tCvSOsm?= =?us-ascii?Q?jDiCDqsJ1qf6/sJjSOtUcvcrpOYHgqFJpssg/FHWPITX9QfZJijgxamAG8r8?= =?us-ascii?Q?Iyh+5ta6E65IzkONb2PDo31DUuatAZKW16BJU666ZlhQky4gVirqn/IvfqRA?= =?us-ascii?Q?HT5rbFj+WqqjYmQ+g5YEAz6ACjEmfOvDKRERCDfjaTuH2vkNZFyYmUkuX7g6?= =?us-ascii?Q?8Losj0QdNU4eH8NME3UqPV6LbgHhxklsSSMgfJAIl5mFGrEzLnKC9F64dz24?= =?us-ascii?Q?+yp5haVAWECoJfGNSykKDXBkyvI6apKPpeF68G2190XIxpvHxZVo32B/Agvk?= =?us-ascii?Q?NEMcB5Wfw9HuQ3pzI+UpsALmkE0o3YmgZQMwEpPAVujvWDMmZihRZ1IfVb6/?= =?us-ascii?Q?tOY0VISohN0xMdajxj/TkTe1dCLkOJKVOGsF5OzK+VEJ+t2gHS8W+PceafDv?= =?us-ascii?Q?HPDtHBQ/KAvEa7gH6cY6aWjYlAOT6WLOlYPJ3ytWc+XPlTzimFoUizWRwjeg?= =?us-ascii?Q?q6291ZWmuDqXWqo34HTVFfjDQ6CQDtxCPdBBw3QZ1xLxxJSVIxDrVyjmNfqH?= =?us-ascii?Q?wDdW5qi7/wv4p0Hx53DnnsybQdsfYHRlx9Ig9hRVlz9naoPud/5u2Wo3yNoD?= =?us-ascii?Q?RDUxCrVGfnUU4G/X6BOI6iHXnohBKCrNArd9aLEjQAGbj7tyfgESMPcN7yIx?= =?us-ascii?Q?uWn2eNUm1b8t/udLjc2Dh5Lj6M/M1ON3WOMg+CvQ?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: c9d1527d-be35-42ff-0489-08db76af6c02 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2023 01:40:00.7597 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: x64N91hRCVcPm2u49Ue034tIIPRiRxml4GpkQet+WOcRcvVnTjm0UqPj1lfC9suXdKMszJqhmaX0xQENollj2Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB8277 Content-Type: text/plain; charset="utf-8" This patch adds the bpf_first scheduler test: test_first(). Use sysctl to set net.mptcp.scheduler 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 ADDR_2 to PM netlink. Send data and check bytes_sent of 'ss' output after it to make sure the data has been only sent on the first subflow ADDR_1. Note: This commit should be merged behind the commit "selftests/bpf: Add bpf_first scheduler": selftests/bpf: add two mptcp netns helpers selftests/bpf: Add bpf scheduler test selftests/bpf: Add bpf_first scheduler selftests/bpf: Add bpf_first test Signed-off-by: Geliang Tang --- .../testing/selftests/bpf/prog_tests/mptcp.c | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing= /selftests/bpf/prog_tests/mptcp.c index 39d95c6a18e3..21b7ac6d72fd 100644 --- a/tools/testing/selftests/bpf/prog_tests/mptcp.c +++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c @@ -7,6 +7,7 @@ #include "cgroup_helpers.h" #include "network_helpers.h" #include "mptcp_sock.skel.h" +#include "mptcp_bpf_first.skel.h" #include "mptcp_bpf_bkup.skel.h" #include "mptcp_bpf_rr.skel.h" #include "mptcp_bpf_red.skel.h" @@ -347,6 +348,41 @@ 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, 0, 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); +} + static void test_bkup(void) { struct mptcp_bpf_bkup *bkup_skel; @@ -458,6 +494,8 @@ void test_mptcp(void) test_base(); if (test__start_subtest("default")) test_default(); + if (test__start_subtest("first")) + test_first(); if (test__start_subtest("bkup")) test_bkup(); if (test__start_subtest("rr")) --=20 2.35.3 From nobody Tue May 21 23:33:03 2024 Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2048.outbound.protection.outlook.com [40.107.21.48]) (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 64AC2A23 for ; Tue, 27 Jun 2023 01:40:11 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MovuE0s3T/IFxRfEGkkUnVWBl37Ind2KN3tSobff0kLk+7Qs4TlM1KIYQBLEfq6eOqfKaRuQ2fYolCS3rWT8jY53nV5ee7CrJUAkyhK2kKIoS/2liBE+zaX2pNZzRSsifIpBc+6yTdb/U0K2FhFblO9hjUS92Ec3G51mT0u8g+JLuZ2cgGkWzix1Ii6hQcWGI52up+gBiMhHeEL3jtdI5kN49A27JNq6erF6LNGUv0Fbto+bvxWOiMbrQjt7VDRK3yDPrMmUdK7ucV2Y8IrocPCLKGSu2Bsnv3zmRqw62/jaxRn0fN9FZn7GLMeMfPhBHb4s/YJHaZU3PGe7XG34Gw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=4bpGnxXL+o2v7epwiNVrYRkvPGMU94h486ttfyQiImQ=; b=fE2bGqymIU9WiefbGv4KUn/P6CGdSOdkLffdqE/dix7ZGQIk3OjUUp2dp+Uv9iL5Hxr0eHbH6U9Sx+oFaWQbf1Q5MdKBpMOhYyk9J083ZCjWjajHfLu2ePduedll7cLw45Rut3oRCMgMjRLHxA4u3d3vKmfluoM9wNeCHAa3cEvEHHmxvZ/0GuYHGSh1p4FcUrQ9YU9bmKs4AiMsC7FgAv0zlUvKalY8Mi7oL67/5OqVM4S++XmfE6Bf9+a8gACTsgLZOW6VvcCNJKkqBFhgQQjcWJy7Vu8vt2RdV2fhi7sLBQ9AiFbeN4gmWaDlH57B15rXrgfRHJejjUE5BkufsQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=4bpGnxXL+o2v7epwiNVrYRkvPGMU94h486ttfyQiImQ=; b=e5pd3P0hV6Y+fNhjmADkwQm9LWFyWkb7EGB4tHfc+cgFbVioBMkoiHYTDsH+mfC8Tq80Vz/R7XZkLHPyqa/hhE0HdF4X0GLT2l+aRfH2VRSWpxW2QNzAllgCDVWYF/iWTebR2kshI/X++poky7ELq8nHlXRF8EZ0CEKAESkYCjEfhpBqrWszA9TVF8vwXffpSQXSomRKTIsVg/PQmJ06ITP0vwKC57IwJ6VYUD0kNxnko8jGFAlbF2qFdgp4OdVmwegQZQtmp4YVR+VSeXwEIU3Bspg8Z1BURr3V5YrPvEPXvb1pg7exP7TM1K1Aht5OkD3dr3rRiKuyq39OU72i+g== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) by AS8PR04MB8277.eurprd04.prod.outlook.com (2603:10a6:20b:3fc::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6521.26; Tue, 27 Jun 2023 01:40:08 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::423a:a30f:5342:9d35]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::423a:a30f:5342:9d35%6]) with mapi id 15.20.6521.026; Tue, 27 Jun 2023 01:40:08 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next 03/10] Squash to "selftests/bpf: Add bpf_bkup test" Date: Tue, 27 Jun 2023 09:39:24 +0800 Message-Id: X-Mailer: git-send-email 2.35.3 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SI2PR01CA0009.apcprd01.prod.exchangelabs.com (2603:1096:4:191::18) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: HE1PR0402MB3497:EE_|AS8PR04MB8277:EE_ X-MS-Office365-Filtering-Correlation-Id: ebe347fd-cf1f-4631-db2e-08db76af70c1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: WivPSpWq/KSunWMOAc8+MT6BJ9NFgW8aiOKjnWAr3NJ89t+WNkn10KffX1OKU+iyl4Tf7gTcaBfduQTJBD3ogSaLgG8tLbw1S4m+JQg4ZeAgLK6IMm2kf1cgSvbNTEH65f4ExVSFySXXpxk0VMjPZvNhrb05pBp7qPCzoLUlEx+WB1LfF1JgzFqTCl4XmIxFJYSRlp2eyuq4rgEdTVseot8jWfCZ9rlDbjSg0ski9MVvug78nND8VOC03s1SbxA3LFPnN0f0VpQin7g+ibz08KGlotSTKwNiazIzg09T5l4G9E2OYDoVWEt6tzbxIMIKIUTySSo5WQJOVcUYT5KhGRjKRVOI+yfb1S1Yi8h2NlNkt+ZkuxXCHEt9ymGteAJwM1GbDAI90OgOpvSNCvPiF2LbNCCCKcWbXZxsbADW87rloXU0ISd/HOZdrGa/rKDb1u+vsZoDVFmlIpiFw7ia5zHZoONfxyornnBK/kKGu3nfNIPlqN1gIdtPydxCXaP/87Bcc0M0RE8ttC62LbAOxOpFvO3h2uC1JZnPDNfaNgry2JCFcOYTZWnS+wFpoG02 X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:HE1PR0402MB3497.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(346002)(396003)(376002)(136003)(366004)(39860400002)(451199021)(6506007)(107886003)(6666004)(478600001)(2616005)(83380400001)(26005)(186003)(2906002)(4744005)(6486002)(5660300002)(41300700001)(44832011)(86362001)(36756003)(38100700002)(66946007)(316002)(66476007)(8676002)(66556008)(6916009)(8936002)(4326008)(6512007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?VdkwQSUpkZzUWZWAyYsZlvma1F8CtL+TH0ltys+RXLfrmogK662Hjh3xrBch?= =?us-ascii?Q?0b1O/LyWyN8DyyTgKm5YFHZIGhggz5RL/Q+4r7d4KothLehVc4Q+EfQtDXu4?= =?us-ascii?Q?ylsUWL8akNSqenXeulB1ACQ3AQKg8Q5/0/8h0gWX1dmKhYYxXISQ6wl89kOy?= =?us-ascii?Q?cVMBJ51dr3+XsneojqTOyKf1hb21j5MWMsEGdcHr9OJ+fogeqMvOpLUiR1pi?= =?us-ascii?Q?mhzDW1G/x6LXxTkBb5p5WmGkWZR30dK7qN2qhm39bdLSDCZLHJGKbur5or4z?= =?us-ascii?Q?SnWS/UlF/VgQPoXAMj87tZE23jLxWt35xc1/RpqkpgB7javRf94cWqtJ/k/I?= =?us-ascii?Q?AhyFDoIHesU4q0qASqPe6/RlzvGYnCC5/3nOWSiomrnC78BzF+9Z215TfpI2?= =?us-ascii?Q?YZ5738v26ob4S9uN5k6adcT01QVaHPBrNBldOJlbrQInFfQkeuTREWoejQUw?= =?us-ascii?Q?G/mYWtaH3+8vy80P20XfgMGBjvoV2fpMjcK2vY30GHUDZKmxX+ghVuy4sdfm?= =?us-ascii?Q?rc+vksBzj8ZDGxwsaz+h1Bat2efUR1JOeGRp003Qq+Y1J/QrCym5pHBhdjPG?= =?us-ascii?Q?JRs5HaJeIZ7HtPLvXMolPZItwpmxdb77scZTRelJSuQ6LgrW/OPi/Q/LL8OP?= =?us-ascii?Q?uh+WNf1X1veu5aQig2kN+u2HZGFDrrTugpjaoMs6oFw+rIHx8IT/jAOVOvTd?= =?us-ascii?Q?NbDf4eY1NxkCT/9h9MavGnrw7EwBHULinGIB/iuGRuBHssQU2BtDaRUUe6LP?= =?us-ascii?Q?/SLwXYJfKpO2YsJZBl8mqvSw4H+9Vyv6D+E9WA3/WpftGumFZ6d4EYAeHqWQ?= =?us-ascii?Q?uJL5UR8vGeRSWn/VeyiacvKV7gLG/teufppJ/wfEMB0FnvUf7Q/GQh7xEn3i?= =?us-ascii?Q?K4SKM+F+XTaVWrUvts7a3NQV9hRJrTqyV94vFzbEMdjoVeHHp845ny4HkiQj?= =?us-ascii?Q?ks5MN67CaaOU0E48LULNpD9/qZUMsT4k8AtCmFjIqcYAjAdxtOiVcFw3IeY3?= =?us-ascii?Q?JjLEQk4P1BwgbHfCSgg1dtXZwZZL+u5tTMuWIQ7B0onUDK2dE3xqkxHk71VG?= =?us-ascii?Q?/ZCnTIK7eD1AzokdCJYCTXWjBdJmjQokInIy2SGtvMOxWms8DtBMHv8U6XQc?= =?us-ascii?Q?3qPoRmoljHNwVX+AVmFFEXaHZS21Bodmqg6SbH9aFpbckDwWjzY06o3K5mce?= =?us-ascii?Q?dpcGvMdeaQu5ACyEcIntXr8IzE6uh8VZM+d3rgVvf6416mFT0SDSpRYwhFzI?= =?us-ascii?Q?uItUbGuauxtpkIrvou2lhriVyXYNidz6xg5nz7uls+rr8bdz9HA9OmpF+9Bh?= =?us-ascii?Q?Dy+CZLrPiV47Ve0F8JklXv89sfWTbR95UJoYaCW3ov+nqOFNtI3JcfpUOzB+?= =?us-ascii?Q?440U8fBlKJenxwrjgdLDrf+xHv3M+PbCf929UBJseBQUl4PoJRZehwaxy5DP?= =?us-ascii?Q?vNMDh4HKGP8bm9u+G+3HlWETnrxy+dc6FYwWIXFxkZI6K3+bgmeLjzxyMUzM?= =?us-ascii?Q?379JA00MsLohKs5u3RTuq6z+QpGnQgYNdoUyTLskWR64zlYGmlN0AszlMymR?= =?us-ascii?Q?/hc4wF5Q9pS/Y4d2FoyAwlXLpVgR/cj1QM4F8xVK?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: ebe347fd-cf1f-4631-db2e-08db76af70c1 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2023 01:40:08.7274 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 8ukKlVbEVtKGdqMapU/uu7JOZGnesdonRvHcX9FxantzVsM9VoEn4juOCbSA21iTYLEOOb0wwY9+eLH6kKmmxg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB8277 Content-Type: text/plain; charset="utf-8" Update send_data(). Signed-off-by: Geliang Tang --- tools/testing/selftests/bpf/prog_tests/mptcp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing= /selftests/bpf/prog_tests/mptcp.c index 21b7ac6d72fd..f58b83ebe52b 100644 --- a/tools/testing/selftests/bpf/prog_tests/mptcp.c +++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c @@ -406,7 +406,7 @@ static void test_bkup(void) server_fd =3D start_mptcp_server(AF_INET, ADDR_1, 0, 0); client_fd =3D connect_to_fd(server_fd, 0); =20 - send_data(server_fd, client_fd); + 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"); =20 --=20 2.35.3 From nobody Tue May 21 23:33:03 2024 Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2083.outbound.protection.outlook.com [40.107.21.83]) (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 C7C6BA23 for ; Tue, 27 Jun 2023 01:40:19 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mfk551zKW+CeyK6lzfZLiDs7DZEURyZySFVb3m+2rptWQmShApyrIAbS9zm/3KPpmquJRdB6UaHn5uegbOYtqxdt9G9ImosBLqpB/cVX7Yy7YTvG+JBrHe1z03yGWawczFHjbNfRl5QMOHs14X/4K9QTZAjus2z2kk0sZs/SpA0p/GFF9s/q/95it41nDk3klGsCo0E0Rk/NFZOFLgDudvVq+rr62/klMBnJrhP5P0Q5PJUzc56wH0bHWz3+9rUgsNdWlUdkjGg4I9HxisBkToukZz2mw1TY/Md0YfZKbISs57hsqEqJZF9WBH/VPuwh/ucCIRa7sQwZMEh4DM6FhA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=gxvG6YszIDsQmFui+RSCVN12yJRmJnP9NWSS8V0WdF8=; b=XdWgIYbM+bi3R1oSCCFJ0dvamqWUVK7VuUO/dv0ZJCp9kCnYhJvS4RC/x6cF+y18IxLpyUgHcSvFABGIJRKA2X0Nh6isvic/ZEPLS71ysJKKl0qH6tXVYEWHzCGonCliGbZr/v1Ai/HW22H+gskLxjl4B1wIhvdWrVfg55BLD2s7iQgnyM5ArY16OxqJLsTLaivUir2KTCmHUfg2IxDZyMoz3C9Knijpz7FJAUd1AooO5vKvJQSP964kt20XJeXPHoSun8Rg0t9GS6rZXsYYbVbnuZX18SuhlQVUVhyKZF1deRI/oiim5pxDZMQ/LfinXGe5t6zsQSJYra+4PUxSpw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=gxvG6YszIDsQmFui+RSCVN12yJRmJnP9NWSS8V0WdF8=; b=So6olPlFdTB7qrIQlkQ49w2WVj3pOcx6WgXqNrsupYj5Cw3qZS81FizXLSPXjCVaa06zTzpJ3kZzBmFaPwcS52xxeXLySwLLwqirRhVQcLuih+GyN9xJ1F5dMtHEunyqwy7s/O9+j6o9Ofu37E5auQdKRufnnxlv4MX4uscbZsZMIFpIWaqqk+s5caxAgK0i/4/mapxPy1y/jhkcbSnlSulQiOnaRJZN9Rf48HBAmMZ1gsMtswHqsPs/MNYQ/TnqpRQvmhMhu7YHVvf05B9z1XmjoWQiBhcYnJCVB8PrjZQvufo8PgWPvvxFLv7tVeXy4UoujUg/5nixsnzRShRr8Q== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) by AS8PR04MB8277.eurprd04.prod.outlook.com (2603:10a6:20b:3fc::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6521.26; Tue, 27 Jun 2023 01:40:17 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::423a:a30f:5342:9d35]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::423a:a30f:5342:9d35%6]) with mapi id 15.20.6521.026; Tue, 27 Jun 2023 01:40:16 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next 04/10] Squash to "selftests/bpf: Add bpf_rr test" Date: Tue, 27 Jun 2023 09:39:25 +0800 Message-Id: <3a40a2f85b999718cbe56427a7c20afeb0298433.1687829823.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.35.3 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SI2PR01CA0008.apcprd01.prod.exchangelabs.com (2603:1096:4:191::10) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: HE1PR0402MB3497:EE_|AS8PR04MB8277:EE_ X-MS-Office365-Filtering-Correlation-Id: 03f1070a-05a7-49a1-122a-08db76af75a3 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 4d7+0D2Vkq0pOfeSMu4GZjHgeTgU5BfE+n3v3uLcP8aViaoBhWtqqL5u8mjTHviI6pt6dz6+U6e0AZ8JVKqRGklJu92qw6tlpu4bNe0r05fSfccmb9IwRkjKkfaWj+rRr3LVAs1vtO1zUSKEibdQzZmO90zems3oWPBV4t6EKkY0EgJE5CdAOMn1w9mDVwTjd1segoSzQKyPM9Ohmz9z3Ko6B1DVAhl9tHRjOgTIukkqQpWYguUe0/u0olg4ypzE+rp00pAB2KeMiOg6nsr32epH1BfmeIJCGXtcvnyCo0vk8kF/zAHcen9zBA/kn84+PwjinP1gIq+pUdtWAXogQUc2CfyPIBpn9Ls/Jf0t6pYED+2MFBzF2KSwopOk/QRi1aDrAw6Gz0BQkWFXcHu8uQRNmYEC8kD0znmY+rGnTaRjwOuFX6fvo4f9DLByjY6inW8IQXL1qd+ijiSrQZLxSSMdqpxkOH4FCgdFc6d6tnhsteHroEEpBZpeMX9Q4tAr1FDvPt1pW5b/ePqGF9sZeFUa5xtGFOyjb+MjrHy+SQNMwBmsvBBYXTjjtUd29nad X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:HE1PR0402MB3497.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(346002)(396003)(376002)(136003)(366004)(39860400002)(451199021)(6506007)(107886003)(6666004)(478600001)(2616005)(83380400001)(26005)(186003)(2906002)(4744005)(6486002)(5660300002)(41300700001)(44832011)(86362001)(36756003)(38100700002)(66946007)(316002)(66476007)(8676002)(66556008)(6916009)(8936002)(4326008)(6512007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?dsrh1ixn2ttNUHbciSx+OftZ/7pfXE/lEtjyHJGjlWPc5aaiB3lW8BnlohaM?= =?us-ascii?Q?P/3cvcJblAJzqj1jcIl2TB59COPqRuMmGrArq4o4d0DEYL6IAU9Fh2jnyKQy?= =?us-ascii?Q?Ba1DNdrtBJ72K9yozuy18Hl8Jxaeyi322ykEhiyinUB2P34n4buNid70uCud?= =?us-ascii?Q?y8v1//8aTlW0n/jYp26I/HYGay/KgypGToZJ9JK8swTLGPJRf/mg83/xwI1P?= =?us-ascii?Q?WXHuD07QdWEiu1UuewX8iLSinUrqcHpBIa1Q9oe+cXZDTNWZMNQBS9jxnKmh?= =?us-ascii?Q?gyvxne8gK+o/VPDloHO+yef68nHeIm+RzVadMPFiypV8EJAbFF3jzwaMldbV?= =?us-ascii?Q?1ii2Nm1tQvc3sl/MB3F6PWJvnZxkxDsGSlZzS1Rcy3KSRFIGk9cW84TtmZEX?= =?us-ascii?Q?/drMLyjb9J5GRaM//P9oEyASVJPoLBfPmsumh8HTGSjfZ538riW72HyrUikE?= =?us-ascii?Q?iNfk/JqbrodPxo9+Mdss3R/C8mkatm0OqMejGrXXzM2QDF1dN+RUrvjvsfIz?= =?us-ascii?Q?/wH81vLoe8bnmJL9whd35AI9Fp7FatHRDB9/DkqZn6zk7gCHnTj7GlW3ckhQ?= =?us-ascii?Q?Pf3ju/QHBkvdagTx003OUBGGHFW0Vg+skeUee4FNpseP5uX6aGc+ibGL0cji?= =?us-ascii?Q?x3MU3JxeyvOzQ1+46cFet4ABERXey/JPEBKho8EoGA2FXCkE5rcluftW3IlA?= =?us-ascii?Q?nY8J02irErcb+Bk/h5vcdndgsjgq77iz0l7nDDCxw41/mIiaagFSr0bpseok?= =?us-ascii?Q?aVyGoiQDnkXRdzqPQQ63XReAwIsK/iXi16lsebFJDRs0d9CeL3PKrxR0s1Zf?= =?us-ascii?Q?a+++c2+dyYiMYM6dEjg/47MP9yGnx3wubr8GwQ7f6K0QPtOusPM2FcESFj+y?= =?us-ascii?Q?e0U8A1rQImlQwNvNl1JfSfuo737GxjS6/3XbSwjeC9MbMx0OiisyWfP5TClv?= =?us-ascii?Q?/2uBHcnj1igGGsoClhhdvBT2NorwKFyYp43T8zbwtBDG4PiDfE1iplPMOLfC?= =?us-ascii?Q?pIYex/2s/L+u57FRfkNZcMPCVfS6+hb3W3CIEXTstx1Jc+ZNbmNrYwG20cbZ?= =?us-ascii?Q?iBukWl5Ax4aApMFo+s1MTNtj5iNBGjkwwDnyy4aIlx/4JjraT29YUPhB/Y0q?= =?us-ascii?Q?RUA0RsJ4nqK9tjpArPVA/rnRRVkpKNaCJnZjtWIHqIJ5CJfWZOxqraxysUjO?= =?us-ascii?Q?EBK1oACvOyXM0SPUwJ89psyIs/aR852T8PNN2/RRefTEhHK8RltuXf7vormp?= =?us-ascii?Q?AnoZ8i1F0UJy1dBJ6blZTq2F5dwz1bnNlSvkUnfDuotTFV8zXWfYECMvI6oK?= =?us-ascii?Q?CrQyT8IwiKtkRJRKZ2MeJVmTL7lSIEMxHA4hip5zVDPkMmsbT/FH+EbAxzKE?= =?us-ascii?Q?1ukQDwQHNe/LiZD7D7S63rQAEE/RH51Pwas03/mvKTjYvLqmxMze2WrAlZIZ?= =?us-ascii?Q?EUi0Monmj5abBfokf6lNfqhl78TAnbDB1j/9G1OYbnu9kBb1iw5fd7Oh0hD1?= =?us-ascii?Q?/B1ssm+oQCHbROOsN5vHkiSXKf5HrDxi5JOeQzzVdKCibhI0QhTKJwzhPoWn?= =?us-ascii?Q?Gbj1joCu0drNcpB5DBmvqTcCoFqsfkGJV+BiBZI1?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 03f1070a-05a7-49a1-122a-08db76af75a3 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2023 01:40:16.9100 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: cc3WZVd6BvN9poxBx2TiFAFbAgJ7AdETpOycUPxePusTmUO+DKiUpxeDG6jONhA0WqW9Q+tMk8P6fUSG+y7fmA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB8277 Content-Type: text/plain; charset="utf-8" Update send_data(). Signed-off-by: Geliang Tang --- tools/testing/selftests/bpf/prog_tests/mptcp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing= /selftests/bpf/prog_tests/mptcp.c index f58b83ebe52b..0da7f83fdaea 100644 --- a/tools/testing/selftests/bpf/prog_tests/mptcp.c +++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c @@ -441,7 +441,7 @@ static void test_rr(void) server_fd =3D start_mptcp_server(AF_INET, ADDR_1, 0, 0); client_fd =3D connect_to_fd(server_fd, 0); =20 - send_data(server_fd, client_fd); + 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"); =20 --=20 2.35.3 From nobody Tue May 21 23:33:03 2024 Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2054.outbound.protection.outlook.com [40.107.21.54]) (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 84C44A23 for ; Tue, 27 Jun 2023 01:40:27 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=HT/7tAAv4Uv/h6B2ZSEK5nseSiYb9zZKifG6B57P8XRfx8IFoAQe1sXKa89GEEep30TNh2bcrJT9pR3B2NxhEIlga515MlcA5J2yMKa9lJNz5PO0qXGCy2wuaa/OrOQGueI7uqEJPu59PqsrIVyww6z2Mtm7xFouvVLDnaVHa80vrznOmHNTTB+nqy7kDAI0UnGtbB8bkPN3qCHijGyYNDu0xMu9vr4bY6iVkFUwS+HkT4fuMYmRqFwx50QA4xYcBmqvivuVNrKgmVlWmS9j57W+WcS4Zolqf+VJzVgFAsL5aC69olrh73yqM/orx9cXx7jCmsxbTN6Wm6000Va59A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=41/KpC7fmcHsj3PoULzyBQNKMUIC34FasufRkyzRSiw=; b=ZCmLv8olQuf7J3h+O0Yg7htZny7Y/U2tKH8NmrwbrlWhGGE74chEgu2QprA0HRjpOlIDrB5NBbiTRjJsNlRDOFoUn2EXFs1WHSZ2UbiWyrE3b05+V0zNgZwzJG7NM52LjCkANgQkgXcB9Rtf1EgbxtJuwDbSlxSJSaFmLI463QoFGXr/DzRHyjBSV1TfjFmqSHwXVIg7II2aIbcc2Yrdwc82tqb68fvsAM9ACtAMdxNm7/Rd6aAHwlWWMICgfeE5QutdcgaeUwDXBY1bnoBBU9UeHlA4szs9XVUiCq6UJe6Q4B9tmFLuNOK8wBaR35RuxKW1HpWbv7VopL0XRZfioQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=41/KpC7fmcHsj3PoULzyBQNKMUIC34FasufRkyzRSiw=; b=KfaZPnMHPUd5/gIVN5nG5PISEsqrTgf5i2KTvcAIoQKa1ysMDr6Q8yJObjtFDmqeXXkppWclY15MYwO55U6qhe5OdUFKq9cSXZDkssJi7gBiPDFii/FywqYdu75Ay8E/jyQfLulCq3skr4KWR4R5IwAaVTGiphd4e1vEhkTbGLRQ9ivvou3o5RUwKljSpsbGmVvsyfcp4sY4iIf49NrtOtzTDDn+OCgOXR4iCcdTxhhJVpOOxlgw2DKfbXcDzMKW2fjUZllf+S7+DQ5k9gB84RqFrfRIXqXYUmpGVQ0G61980ieepaEc5x8uqUpQamqWCnHA16CjMACAPrIRtwH2Jg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) by AS8PR04MB8277.eurprd04.prod.outlook.com (2603:10a6:20b:3fc::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6521.26; Tue, 27 Jun 2023 01:40:25 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::423a:a30f:5342:9d35]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::423a:a30f:5342:9d35%6]) with mapi id 15.20.6521.026; Tue, 27 Jun 2023 01:40:25 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next 05/10] Squash to "selftests/bpf: Add bpf_red test" Date: Tue, 27 Jun 2023 09:39:26 +0800 Message-Id: <3ced00edd7201cc9bc977660695c269eb8f57813.1687829823.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.35.3 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SI2PR06CA0006.apcprd06.prod.outlook.com (2603:1096:4:186::19) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: HE1PR0402MB3497:EE_|AS8PR04MB8277:EE_ X-MS-Office365-Filtering-Correlation-Id: 815afa44-55da-4461-f93f-08db76af7a94 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 13fIo3ePv7MGZingJiyMnjVGESQr6dg2bMYM8t/O4R7Gs2RTOg0bTMmdB6xihXywGLfSdhHkKbmsjMuqqO7t3Iz8oK9zrq1QjG6T8whapakqRugw1WRPIsdGY4JD8inD1OHdgck2oR+0Zt5Rv2ek3+CWZR7lOEgT5ZAzRR02vPEterZOpin6mqe9IEWiOawhT5QJfYMPXZZhUpfpgnn9u4N/dZPwUluqhpI5Nu9JSewke17sZgHqTqV2hVHI3utSMtLpzn0od95+WP/cmsEiuuGWrG+2Nc2y/7qqxLyOg/DSiVT/K4IrW16ncuGmBZ9CXZLi9/w+/cnS70SkZNhhXnXbt2CS71y/0qT18idizrvVklgz3Hk6AOUMnUfGKK42Gl1rEX049nyIfPVeixm9KpmCsHXU82PjDmy5CUuc6DErs6JcDQ0KdHKyiOWqVS3puCisTY9gZDUdOh4jawmkk982AMT4eEqc/XwY76+Gn6ml30WD0SbTZrQ03t+18ecxvTh/eq6zLosaLWR6gTOyKTLAyHpYK9o3bjfyF1Jc+hDhsMQ05bnsRvnQxB0tKeNa X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:HE1PR0402MB3497.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(346002)(396003)(376002)(136003)(366004)(39860400002)(451199021)(6506007)(107886003)(478600001)(2616005)(83380400001)(26005)(186003)(2906002)(4744005)(6486002)(5660300002)(41300700001)(44832011)(86362001)(36756003)(38100700002)(66946007)(316002)(66476007)(8676002)(66556008)(6916009)(8936002)(4326008)(6512007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?hk+pVTtgVR2EkN7l3F9JXA6O+LSapd0ykma6NEBv9u8LuUQPd7BAkK4DWR02?= =?us-ascii?Q?V6iDZtHxO2IxmRQzEpMfO+tgM4WOdewLob97SeeC68kTwdivbaD7M0Sb4wME?= =?us-ascii?Q?+qTAksB8fW9v6pYpVfTU9W0qw6Z60XuBaOIJ4EJYaTgofmqbF3Ay9K2T7Nqc?= =?us-ascii?Q?EV3CoXlOZ/Fg28tr1rmfWxxKsOhA7q+qrF4YkscnZMMldHaWGAzgf50AFlk2?= =?us-ascii?Q?f5V8C6LCwWevFB1EKvpV0eHoQSozQU1CMRnYmXEb27W/vHA5cmM3486DLkCv?= =?us-ascii?Q?EO5GvloPOsYWCjagD8H+Xzd+bAD3wcD594uWorlauyMDayCPq9/E7rjn7inD?= =?us-ascii?Q?q2Ad8pwutV3C4wENaQlm4HQUsIKMlqqNrPwmf6oTiQASrJvwjTbTqhwf5UD+?= =?us-ascii?Q?aqQAZD0dcvcHndPQnZXJCV9aIGa6oPZZZEzap+r9urWpeLwZPWEgakjzmyFp?= =?us-ascii?Q?vRTZ8kr4iqukK/r1iUJo9RjGqmEoM5V3YbLvYZ4vEn7jNyU33WdGM6FnrS0L?= =?us-ascii?Q?p5t2RIcEUN9gWR3QOBIzL1cw4tiArgi9iHjq/zI7s3iCI7YdObA1qg12Nxz/?= =?us-ascii?Q?k8nBrI2ARJ27J1nugOLPEOyOXL28fa92TAJ9q6ciyxSAgDnu+WPNfmbn3Pgv?= =?us-ascii?Q?LGpnLjAvs0BPV1tK5MrotYy1CoOqZwnRGY+IFDY9dIrsWy8avE2rHUawcume?= =?us-ascii?Q?OKqVldz8iTSy/X4MhOgr6hbrdY7VGR+6ITHnfBHccDlatehDXvoby0WgFeKn?= =?us-ascii?Q?fQ3cqInEj27YI0h5lswS2+gbZi/8UmLPrPWUsg41GSNDOzZSr45ViZjmzya9?= =?us-ascii?Q?sBcTmAH6nBp4OXwb8sjQDcG0aokCEXNqJHYHnKMB7aQFA3172yuUj1h1aZrE?= =?us-ascii?Q?49e94ZUuxltwO/diyjKOrH0qDzXtKeSoCJ4rgJ/SOuJleSUUXooIcJGkMkkJ?= =?us-ascii?Q?O7ZXhBIsZShEzuLU2eeDg4Gxc4ZB/wWZKRJWj7hG2RgAoM23z74/2qPkXBGV?= =?us-ascii?Q?ksOWRKaI+OltQ+lR9D7WrsuHw4LG3oTXoPzKa1ZfJGHj/iMVhUa4ObzuNYp4?= =?us-ascii?Q?j97XDDN2FVgSU5aES8nY7KkU3GJuTa4RzyL4ITC9ekcgqKducDdl4jYX+Bae?= =?us-ascii?Q?ZpwsU14ciem7ey5J/zNTVuRxQZXJdzYFczD5bYFgjzK3pnQkdOnM9gfFxaAB?= =?us-ascii?Q?8d+RcdL+a4wX+Ljdi1BLlZRf+eneOw/y41qkEP7QtGbOj/da/5I1YGGDPNbO?= =?us-ascii?Q?kw5latn69oheOS0yqXZQYzQG+Cwu3GgvUA9wrPuao0fAZtfjzp2Mgk1Eg9Bo?= =?us-ascii?Q?fKLANc5vEgLpeA9lX2Xw0QzL4esG6CPCHnGV9hPcF1Z+5+JTwLyfJFT9YCQi?= =?us-ascii?Q?bb7XH2b4LulTeAXCaIciNopI82GnlOi5GFxrVlmB9DeU4cDVz3UlYfPU14KC?= =?us-ascii?Q?Ycb4y2PdrQQHI2CfQwz9O7EmsTQaxuCulKTqRDaz5I7C/c8GAxz9IJI+8PP5?= =?us-ascii?Q?06MewDeaAqICQUTQdf+CT7l69B823EvA9hdzlSKSaIrT0DrIVQLOLmeKelgw?= =?us-ascii?Q?L+b6pI5HjtGLyoJlD6J0z5EdOUDsliqQCxWoXgW1?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 815afa44-55da-4461-f93f-08db76af7a94 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2023 01:40:25.2181 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: WdJF4tDGQbK3x4ZLg/CCzMIdFMlCuF38+MAdLmt8QduARndKQndol3WVGhviNdJace4Kb8KFHQbWs3VBEAhW4A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB8277 Content-Type: text/plain; charset="utf-8" Update send_data(). Signed-off-by: Geliang Tang --- tools/testing/selftests/bpf/prog_tests/mptcp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing= /selftests/bpf/prog_tests/mptcp.c index 0da7f83fdaea..4b346eeaf8e2 100644 --- a/tools/testing/selftests/bpf/prog_tests/mptcp.c +++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c @@ -476,7 +476,7 @@ static void test_red(void) server_fd =3D start_mptcp_server(AF_INET, ADDR_1, 0, 0); client_fd =3D connect_to_fd(server_fd, 0); =20 - send_data(server_fd, client_fd); + 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"); =20 --=20 2.35.3 From nobody Tue May 21 23:33:03 2024 Received: from EUR01-VE1-obe.outbound.protection.outlook.com (mail-ve1eur01on2079.outbound.protection.outlook.com [40.107.14.79]) (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 F2F61A23 for ; Tue, 27 Jun 2023 01:40:35 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=B0AWi4yV0HGkJ/IeZrJSetZKiUQV/LC9pd6eqQP/DNFkbCtYhkJF0zXzEKEfhWTjMF4tkn/m0vXD3V+cy0w1SrPb/dpghqwouA/HTUyfbz8e2Oz41m8/prY3a+uyU442akzi9AYviYAX1wQq7E3x+WjqTsCO/Bg9ABWzt4fDkx/wmz9pBPiEybblfKuB3xiliyyiI8iYX0my/DaQr1vYbejxSa6mOdFf3B3N4jlWy1/WRRwp7vwulnHA+nrNIBt4Yfai339n/qIgXBHJkGt1xsVwfL6Ju8aTyci6UPOXLX2s0G6bJXYjiQ5LRfsi41DjYfflJpHhR0WBKCnMj6zMFw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=YTJjLj0ndVUhUgxPC+v/MhQqFsbi/Wicx0j1tCmgMrk=; b=nMj5xAYvnv6Q3vWIywWrzJuLQc69WMMByvHpwBf8qJvhD9/boK1ASyRBGeyHb5FeEa3fhGIJXo4rLJzydlXMtv1M4gGcEJG0bFjIfawwuPpt3DlKtlK/Akx7+ExiV8GdgHBYn5xiyPWRYRDlFGY9r935Ej1wQBI6e96BFdW/5uO40E3q2N3KKQYUiGt9ADgAAUld4aqX9zmWFHy+sgyj9KPocBV57OQrg3jw6syYaYOWzBUveLVQs6rwrD8Zez9UwMpVvDWs0DCC7zHtrQ6winLN7fQxoFbWsN4qX0SkBnp46tHI7PUNXHkjL0SV3q71qz/X4jlV97D7OipFuguBEw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=YTJjLj0ndVUhUgxPC+v/MhQqFsbi/Wicx0j1tCmgMrk=; b=lk9Cbw+ci6CdFlyKWvp/z2MnofIn02wHG/LDgHVi421NP+3Mc9p657gN7e4FQ9R/QrPkAlgWGzts4k4wYqW18QJ54nE/2pNfvcw/jD9ugWYf7eQhr6mnTqFrzKLdYCML/OIZ21ic8z79VMSVnmfieJEhvRrD/iR3nxio4zFankYpYEu2Y7FGf8gGKYtzVesHnkxeNS0XZgve0kRiEJnzFBQbpc04IGsQp6c9GdQeTEbGOX5jCCLgYXzQT68eQTVQ1Ew+Z6Y0aJd4tlt7Qp3o0cJR2vH4C1B81HBXxHsKUhwKTP/0HpjjxPvcLwyKbPWuha6ecYPzWldq4TGR0d4VKw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) by AS8PR04MB8277.eurprd04.prod.outlook.com (2603:10a6:20b:3fc::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6521.26; Tue, 27 Jun 2023 01:40:33 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::423a:a30f:5342:9d35]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::423a:a30f:5342:9d35%6]) with mapi id 15.20.6521.026; Tue, 27 Jun 2023 01:40:33 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next 06/10] selftests/bpf: Add bpf_stale scheduler Date: Tue, 27 Jun 2023 09:39:27 +0800 Message-Id: X-Mailer: git-send-email 2.35.3 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SI2PR06CA0015.apcprd06.prod.outlook.com (2603:1096:4:186::7) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: HE1PR0402MB3497:EE_|AS8PR04MB8277:EE_ X-MS-Office365-Filtering-Correlation-Id: ad092d61-5d72-4ad6-21e8-08db76af7f25 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: gdpSW2uTcoV+UDE1XhRQGIehDuEYkikjhNYORjdC+uh7f2xNxwHTjfS3SES1zesRW7s8jSITHeQZSd0efZOHFXRwhDAVwcY9Jm6ouXngoRLMKaD5DnLcBpecXWdPkJZ6pWAXDlr8TfkTKKkFM57aQT+xWbitSOLTQOI8wp3jqIs6yIaOBB56MMvoKSCnYGexiBUcuRRtlXdqERan87azjOEOgBpuGIWXbiRtkvYUVqmFN7NYv+NTdBUL3Ibko3H6Rmn7wVnw8K9FUYaZtcj8/1tqOszqQFIWfIrGVTRZsznc+Gcqo+Na0umlXgxUpaMuAvjeoaKh1MEyW/N+3tSEdujER3nb7Baz562P1sb5eAjjzk6olQ4GNQqUX6ezcAUgEQ7SDGv573a8ylyInVd7B+rlQ8BqEmBLT10IxwSd+Fd++U92nVZOUwWCKkdYe9pFxhI5M32ftN+rSvAcFCR9SP2dBrdfrzAFu1wL7yIy9pIKmGoulLCaAgup9VghGBLCfFAnpss5QSgU3m8Logt6ekmk/wOtPGxa8U87a5FBn8ncLQ4Jun8fS1Gjgod9OIg4 X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:HE1PR0402MB3497.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(346002)(396003)(376002)(136003)(366004)(39860400002)(451199021)(6506007)(107886003)(6666004)(478600001)(2616005)(83380400001)(26005)(186003)(2906002)(6486002)(5660300002)(41300700001)(44832011)(86362001)(36756003)(38100700002)(66946007)(316002)(66476007)(8676002)(66556008)(6916009)(8936002)(4326008)(6512007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?h3BWbWnUX/MMmlkBx0Eccv7H+pa/+mHoRh9X0b90XrHUS0LJX5hcf+lXN4nH?= =?us-ascii?Q?BMeOzuJZoTqGWcwREzON2/TLf1PdavgrMxloUlATSqdNlARjDg4ILsiwrruv?= =?us-ascii?Q?Ndy9SaJ/8Pgv4dQtPj+kuCpv3nbdnXEkWRnxIBD52dg9n2XiRRC/xscM9Ngb?= =?us-ascii?Q?oskW/KkBEzvJIomIUGL4QdA9+CKED4dRtEusEcS+kwwu2jEMmi8zFEhSYbwa?= =?us-ascii?Q?NllVwA/wiQQ6XimbsRK0MdPaUAiw8rGUYzOkSYRz5ZagAFZ+pt7NEigdsW6a?= =?us-ascii?Q?yIYW5ITE4vGNzTQqY0g0DJHmkkAPYmW9SJXSUaG8vGCPH+66P2BqsLL0c5Jt?= =?us-ascii?Q?6WATJxkiokA1jXZip5zRnrNJgIqob13scn7QYFy51t573UFSow1MEKlQ3BfG?= =?us-ascii?Q?QHY07dkgbis/b85033st8ubCUwCVBXGBm/i6Z4lrvAJ1WrIr0HCE+p5FlfBo?= =?us-ascii?Q?X4psHWLbvZyhRTjzlodGD5U23NuOpsYHc4ZjiC2Ves+4cpy3IpqjPx5iRi13?= =?us-ascii?Q?ckLMOqDQeijCPk4kmXC7N6maGm/nLtDkifrI7woF3Y6hmtuN1XD5mWKdHC8C?= =?us-ascii?Q?Z860iKYVnBjcyIpb7gvqqO0lzLDqb80uuUfm/cA1l8/xpgDMEYay7CJS9HSy?= =?us-ascii?Q?+lQL/9AfpFowEaYb4fFmXT4wzsjg4if6t5joWMPfLFKdoFFQiWmWDd8/1RFj?= =?us-ascii?Q?fpEGNEvyC67FSdJv9MoIucKLaNo/Psz1bR2dZtuk1SKFqC6NkR6XgppZpL4w?= =?us-ascii?Q?z27+1AzXa9Ar3NUwHUlBM4+LFQnUe8Lv+JcJc4AROu7bQzmhFiaiVSGz3d4h?= =?us-ascii?Q?8Kgga6IZRL6dNzS3RuG1JHpjI34AZOzkEwXLA4SZT4D99js5tulCTJZPxvxS?= =?us-ascii?Q?qT8H7u4JUPecwaQI6FKhjV0087NkPL3Zn9GZ1qBD9l3CUR+NjZZiZ5EnafQU?= =?us-ascii?Q?qTlS61c7I86YsCF9QossLpV3c1XD5/P5otd8Rr9dwp1GyzEyGxsVLCStvyY1?= =?us-ascii?Q?4uFeudCwOYKvirCe8K+iZ0AIh66QxLO67iglbBLXmKWW9jLbI8Oj3LRAo7Eh?= =?us-ascii?Q?5SelicxCOFzsIGCPYKwZJj8S75cVa/Y4lVVGCGU0623YC1NZNiVGvrUv8VnF?= =?us-ascii?Q?CYLilx8+Dq7wKgO46SlNCnC5GHPFEaSfGOb4D1atzdpwOwgWQQXXagyah2h2?= =?us-ascii?Q?fJsGfbdlIrXLexIBprUGwyzTdx3Pw7FW8DVnegtUsT1rGpNVEb7R5E8r016/?= =?us-ascii?Q?i9kp2zV9MyNb1WAzOOQ/ZZHXrcLPHzkCucrOQAaxI345tTN2+4MK/hsj4pCf?= =?us-ascii?Q?N+sXLsdGMm9XWLkgCV8P6U1BbwI6P6PXatMI4nTU9IfPYyVZYmuKp5wxX/Yq?= =?us-ascii?Q?pSlP9h9NjSu1NisPKsPhUw9gbZTDpl4cmgvZUc+Reo5ed94bn4RUTw4FdHJz?= =?us-ascii?Q?To64A03kJyCTujTnb3Mu7cT6XoYCamCESF0cAXo5ET4uv4Xru+HmdS3NSw4g?= =?us-ascii?Q?xUaLYWqRj7bQD5W7AzivsNtVKbavllEwlInc0ilFUJDWzUQJuetEELd4o/gD?= =?us-ascii?Q?lUJyH+AbGVkIdhKhz1vPu2HttqRxgedf6Ws6mWSp?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: ad092d61-5d72-4ad6-21e8-08db76af7f25 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2023 01:40:33.0644 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: UsTWGbffQKl/It9PHHzYbBZnMyGz8UQON4V+buOH3t3nVZtBRy3XT3Dux3QcJmlld7H2TuD1SmBkWaJxrAHOvA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB8277 Content-Type: text/plain; charset="utf-8" This patch implements the setting of stale flag in BPF MPTCP scheduler, named bpf_stale. The stale flag will be set in bpf_stale_data_init() and will be checked in bpf_stale_get_subflow(). Signed-off-by: Geliang Tang --- tools/testing/selftests/bpf/bpf_tcp_helpers.h | 3 +- .../selftests/bpf/progs/mptcp_bpf_stale.c | 65 +++++++++++++++++++ 2 files changed, 67 insertions(+), 1 deletion(-) create mode 100644 tools/testing/selftests/bpf/progs/mptcp_bpf_stale.c diff --git a/tools/testing/selftests/bpf/bpf_tcp_helpers.h b/tools/testing/= selftests/bpf/bpf_tcp_helpers.h index 945dd46c98c0..c749940c9103 100644 --- a/tools/testing/selftests/bpf/bpf_tcp_helpers.h +++ b/tools/testing/selftests/bpf/bpf_tcp_helpers.h @@ -234,7 +234,8 @@ extern void tcp_cong_avoid_ai(struct tcp_sock *tp, __u3= 2 w, __u32 acked) __ksym; #define MPTCP_SUBFLOWS_MAX 8 =20 struct mptcp_subflow_context { - __u32 backup : 1; + __u32 backup : 1, + stale : 1; struct sock *tcp_sock; /* tcp sk backpointer */ } __attribute__((preserve_access_index)); =20 diff --git a/tools/testing/selftests/bpf/progs/mptcp_bpf_stale.c b/tools/te= sting/selftests/bpf/progs/mptcp_bpf_stale.c new file mode 100644 index 000000000000..8ef0c71a6b37 --- /dev/null +++ b/tools/testing/selftests/bpf/progs/mptcp_bpf_stale.c @@ -0,0 +1,65 @@ +// SPDX-License-Identifier: GPL-2.0 +/* Copyright (c) 2023, SUSE. */ + +#include +#include "bpf_tcp_helpers.h" + +char _license[] SEC("license") =3D "GPL"; + +static void mptcp_subflow_set_stale(struct mptcp_subflow_context *subflow, + int stale) +{ + subflow->stale =3D stale; +} + +SEC("struct_ops/mptcp_sched_stale_init") +void BPF_PROG(mptcp_sched_stale_init, struct mptcp_sock *msk) +{ +} + +SEC("struct_ops/mptcp_sched_stale_release") +void BPF_PROG(mptcp_sched_stale_release, struct mptcp_sock *msk) +{ +} + +void BPF_STRUCT_OPS(bpf_stale_data_init, struct mptcp_sock *msk, + struct mptcp_sched_data *data) +{ + struct mptcp_subflow_context *subflow; + + mptcp_sched_data_set_contexts(msk, data); + subflow =3D mptcp_subflow_ctx_by_pos(data, 1); + if (subflow) + mptcp_subflow_set_stale(subflow, 1); +} + +int BPF_STRUCT_OPS(bpf_stale_get_subflow, struct mptcp_sock *msk, + const struct mptcp_sched_data *data) +{ + int nr =3D 0; + + for (int i =3D 0; i < data->subflows && i < MPTCP_SUBFLOWS_MAX; i++) { + struct mptcp_subflow_context *subflow; + + subflow =3D mptcp_subflow_ctx_by_pos(data, i); + if (!subflow) + break; + + if (!BPF_CORE_READ_BITFIELD_PROBED(subflow, stale)) + break; + + nr =3D i; + } + + mptcp_subflow_set_scheduled(mptcp_subflow_ctx_by_pos(data, nr), true); + return 0; +} + +SEC(".struct_ops") +struct mptcp_sched_ops stale =3D { + .init =3D (void *)mptcp_sched_stale_init, + .release =3D (void *)mptcp_sched_stale_release, + .data_init =3D (void *)bpf_stale_data_init, + .get_subflow =3D (void *)bpf_stale_get_subflow, + .name =3D "bpf_stale", +}; --=20 2.35.3 From nobody Tue May 21 23:33:03 2024 Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2082.outbound.protection.outlook.com [40.107.21.82]) (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 E9D9CA23 for ; Tue, 27 Jun 2023 01:40:41 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=l6L21mTKuV+krYLa+ouuQ2Xiv+4a83582rcFgKceOzLdqsRmdO8cgBtXDTv1srMK6VKQ/fzXNeP0eppu6jnpWBKeSGc++islVIHsKa5h3E7x2h+33IQnvBbB0DzhaNepocY3zc3E4m+ntU4JAA5BSkjgBipqpXtYDUc/OKCuccYoWFQkkpv5ubpbjKlW9T6hqvV7yOmtwu37cM4qpZrlQXLDEDywTT8mC7WGLiDV78V9m/J1nU+K6+Ax5OOAUMNWujlnf/V3g+VguRMT1VDxVvxl2iyX6clnRQJJwjKkmQlZKZY6RO6dWguonbJOK8G4kdFaSBapV4B+ZNkuea3h8g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=PSsqZ+ABYs0nPmCwTrtEZpJQiGzgJihD909h/WfD6d4=; b=Z6EhSCx/PBS4Uiat7nCM0eEU14l72qEfYzcwssMRPJe1Drm9MuzS5QpVNlFJ1r1cc5ectw++2IyT1uu9PmvsjvmYsBMG0LQPnCJSO2391skm8OTuN9grxP44U5yEHTtfS/IK8+kr++vwfXQ+pUE6PWv/52BZTHw4dsh16gGIot9oArooFpYnLggteYYocY9/w7xkxs21CGTfkoQgta+pffP7q1YrJfE0H8CWBLaEXezd7S4JYmK9ZhDbQbbHxEk9oqXSalXpzRnZTU0c+BxuwIS0pwgPQzPVZ6KfcioLglCAXNM+CWsyBB+R3F9Pj9K5MDrSjzzHvRj5Y4gOiY3POQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=PSsqZ+ABYs0nPmCwTrtEZpJQiGzgJihD909h/WfD6d4=; b=4HLx5v3EcyZwxsYlXSB9hK6qsMzQrfQ24O/qIuv9mS6hAocRVVZyQapuIjvsKpLsZ+ZQ58Ow0/wpZHW45DvL+Y7wvLBdPb2fmd2uSTZunJ/UiM/8dURVyC0Iff2WnHT0GJKhy6MY97YV+3Ehz17ezMNlWu0F42Hf4JhJi1019jc/XH7/9t/3xGRhJ+LjLmRq8DsNjL62H9MVMjhK/Ud74iwbB2DMO1yjBZvWKseugtQo7aYcCc3FspPuxSVK+yShSMsZJdIXeqflztSEJwivSK02JMiQsQAScShIBgor0Pimb5Y4G4tPoeoWQNGedUo14Sjgr4EMfgrj+8OQ/N4E5w== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) by AS8PR04MB8277.eurprd04.prod.outlook.com (2603:10a6:20b:3fc::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6521.26; Tue, 27 Jun 2023 01:40:39 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::423a:a30f:5342:9d35]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::423a:a30f:5342:9d35%6]) with mapi id 15.20.6521.026; Tue, 27 Jun 2023 01:40:39 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next 07/10] selftests/bpf: Add bpf_stale test Date: Tue, 27 Jun 2023 09:39:28 +0800 Message-Id: X-Mailer: git-send-email 2.35.3 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SI1PR02CA0047.apcprd02.prod.outlook.com (2603:1096:4:1f5::15) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: HE1PR0402MB3497:EE_|AS8PR04MB8277:EE_ X-MS-Office365-Filtering-Correlation-Id: e3fb02f3-947d-4bcd-0503-08db76af832b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 1WqSo5YsEYxyAtvZQGyfbm2GWlhqmQYxvIONG/OhohdFuBG8UHH/OO1NyVHjiqxfyrKNw075VeYCU9o042I2Z+4wumVZBJqIBOMpAelLQqE5k+0OJQzNi3+XiA7K8pYZNJmUnsDAD73Y8GvA6csmIPnG5fXI+u0sEwaC4zTqm2rtR7GH1VbL/5NhzemRK6HjGfR7c/+FnvYHjtFm0AB3lPxVNUEbTqIXmKFg/QJkDa/EwbtEViKauMBZusF8NUutzpBmheMGYEMeyhYwXg1WmfGtw8NVAMoq0IJVJhQEtJFy09SgC2RZF8WiYwg53tKtdzfjm3MQ0mqy2cDBLuuYP/5si4eIpccz9TU/gm7uPytp2WM7e/CqKUKGhuSo/fJkXqLUbfse1/I+MsLsSAq1fvS7vxUbLrPEDRDErrvxrMZhVsVDXd5JVZI/Kfl3EORB2fbS7GK9AeNQJp3iaqamM7fizRKVzk8TwXVpy+FYZYF4z7JoUADedg/0t+J1v9zgFY4h0Iz9OBm6hvJOgvrutnS611tVgqa3sQaD+Km5GDm2XmYbBlF5MxYKkJcnjXpp X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:HE1PR0402MB3497.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(346002)(396003)(376002)(136003)(366004)(39860400002)(451199021)(6506007)(107886003)(6666004)(478600001)(2616005)(83380400001)(26005)(186003)(2906002)(6486002)(5660300002)(41300700001)(44832011)(86362001)(36756003)(38100700002)(66946007)(316002)(66476007)(8676002)(66556008)(6916009)(8936002)(4326008)(6512007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?zqQymiZX951MS3nwHVO31RGfqmvrT0Qcnh2CKpgpJGiCSyX+gikSPV+RNAnD?= =?us-ascii?Q?W5BCO3AK2+tj70tvHB69+wu+lp9fthpxKcWLiwM1XvEkkT/bHWQUlgnRSqLw?= =?us-ascii?Q?Hker45FKG0tWxRiFNV+XUOlKtnJt18irwrzkIaotZRtPVzLbzgcCbuFK66PL?= =?us-ascii?Q?1xVxN0lMJJ3V1vjw1iQFjuf42ZcB9Cb1grMv7qsmLaNV3UZFF7X44pW/9fkv?= =?us-ascii?Q?a+03dmfvQgwOhQH58o8m/qZTGwkmBzNN2ccUg/BZb/Q3lqZFrG0BdJfQ/+Fh?= =?us-ascii?Q?s5NsXKnZugLUZBmsoBB1wrh5Msy7FpvB/ahckNr4p5YTBrPWX2dNTu5ZOaWH?= =?us-ascii?Q?TgO8ApoM8kpBRs5QY3AV4t1Y/qIWefuHZiELUMGrWR0UaJHUd/AWOWqvVhq0?= =?us-ascii?Q?FgFB2YnHW3h/a+YhUkF88BcbZBVzA7GTIE6ndBPkQOk/d88Z8JeeW45NfAr6?= =?us-ascii?Q?A/zZtrNRbQfCu6okCbERvPOGLKA06afAAoK6KhQ1u8VUdDGEY3D62EjbkVu3?= =?us-ascii?Q?XP2PwefA7nOsuqXgfNyAnjoKSKUeEXrMjQECE0aDO+3fWQm3QLF8JweyidTO?= =?us-ascii?Q?HO6KFD2vib+c65YOX71nscq+D+KJsd0W4U5Cin5S9ryMWD3R6PMniSqUuPqJ?= =?us-ascii?Q?MVue6JJrjreZ6RZskac1Uwe7f4ztPrV1YmLI53ZXdkb8cErxdt2ULn082mSQ?= =?us-ascii?Q?WSb2laLIBtdi8BZvEAMPQMkTuOhtGapQZBHRkTZp4P80Eh6v+CPaJX8NbdcE?= =?us-ascii?Q?iKxPA/8tUZ6+58gYpC4RA77uzQf+ux4BW8EddZ6Pwjd9uYLwLIjzkwjec5Ib?= =?us-ascii?Q?5RSslrEZtMR3ZKKXL23Jvj4OJyf6mApICfS8ROhH1QbujsNk3B5LYcr1rmyV?= =?us-ascii?Q?0rP50CRMIlaxDmMxa5RzWfpUUAL07ueBR7uSUG5IsCrqWu/NO/Jbb79BRCVk?= =?us-ascii?Q?QCEeuya33DxcwW9hDiJ9KOVS8jbPftG71PPqJUN8ayaoblkDUJNevGrYculi?= =?us-ascii?Q?xu6sHZCWSys838tViomrutUl12prwx5URGa3kyIRwO96SBtzo7ogSNWIsXUI?= =?us-ascii?Q?Iy+AZlD0UsGOj3/VEMtfmkZr3WIJAISuq8cWLVOIAK0dg++Z9oA7yt9ytXrw?= =?us-ascii?Q?mPzWGDdusIJhXKtVxLIPDM51mIGAnSW3PK5EwwGTfOPVIUYhfT21ocHBwzpu?= =?us-ascii?Q?XhUcNEV4+wkBQlHPja1uYj218l0XFngHBdVWYHWF0O9FL0ytPUyMni7BU40l?= =?us-ascii?Q?7bpmQrZD8OOv6Znp680jjyKRKL7IRWn3h0sL8XEqdb/Ad3KAqfXfaGQkLolZ?= =?us-ascii?Q?C26RNoS4bHeZUZTJX8sr06MZr8AkpvPArVqrCeiepRmWVlaQ67UV7+pTO4pR?= =?us-ascii?Q?bQ6JppfJ6UE6Ak1umccWDk6b8mITDH2WGNjbJacG1pk+amsP23Zf9A3/mFGj?= =?us-ascii?Q?8X8hvuv1OWiz7+myVWz4joeU1JGr6Eu8zi2KVdvIMn1DOGDq0WtrIIdjvS1q?= =?us-ascii?Q?oELUJjsD6RhRD4BlfDdMsvE1X9i7eH9BDfNtPO7Wz3f4XwjRcpmuYoDrgchN?= =?us-ascii?Q?yp3iRHXVNwVJN2B58LnQzshGxiqxorEtvQ9i0HpQ?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: e3fb02f3-947d-4bcd-0503-08db76af832b X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2023 01:40:39.6187 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: /FHHjgnJ+l2JPwSBCKF2uqPkFreTbhoph6c0HXqpNMeIYXZWz5XMykfmYcix8ZOevErJNcrHd8tnJ+/DYNXVeA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB8277 Content-Type: text/plain; charset="utf-8" This patch adds the bpf_stale scheduler test: test_stale(). Use sysctl to set net.mptcp.scheduler 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 ADDR_2 to PM netlink. Send data and check bytes_sent of 'ss' output after it to make sure the data has been only sent on ADDR_1 since ADDR_2 is set as stale. Signed-off-by: Geliang Tang --- .../testing/selftests/bpf/prog_tests/mptcp.c | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing= /selftests/bpf/prog_tests/mptcp.c index 4b346eeaf8e2..851ea32dc1d0 100644 --- a/tools/testing/selftests/bpf/prog_tests/mptcp.c +++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c @@ -11,6 +11,7 @@ #include "mptcp_bpf_bkup.skel.h" #include "mptcp_bpf_rr.skel.h" #include "mptcp_bpf_red.skel.h" +#include "mptcp_bpf_stale.skel.h" =20 char NS_TEST[32]; =20 @@ -488,6 +489,41 @@ static void test_red(void) mptcp_bpf_red__destroy(red_skel); } =20 +static void test_stale(void) +{ + struct mptcp_bpf_stale *stale_skel; + int server_fd, client_fd; + struct nstoken *nstoken; + struct bpf_link *link; + + stale_skel =3D mptcp_bpf_stale__open_and_load(); + if (!ASSERT_OK_PTR(stale_skel, "bpf_stale__open_and_load")) + return; + + link =3D bpf_map__attach_struct_ops(stale_skel->maps.stale); + if (!ASSERT_OK_PTR(link, "bpf_map__attach_struct_ops")) { + mptcp_bpf_stale__destroy(stale_skel); + return; + } + + nstoken =3D sched_init("subflow", "bpf_stale"); + if (!ASSERT_OK_PTR(nstoken, "sched_init:bpf_stale")) + goto fail; + server_fd =3D start_mptcp_server(AF_INET, ADDR_1, 0, 0); + client_fd =3D connect_to_fd(server_fd, 0); + + send_data(server_fd, client_fd, "bpf_stale"); + 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_stale__destroy(stale_skel); +} + void test_mptcp(void) { if (test__start_subtest("base")) @@ -502,4 +538,6 @@ void test_mptcp(void) test_rr(); if (test__start_subtest("red")) test_red(); + if (test__start_subtest("stale")) + test_stale(); } --=20 2.35.3 From nobody Tue May 21 23:33:03 2024 Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2077.outbound.protection.outlook.com [40.107.21.77]) (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 DAFFFA23 for ; Tue, 27 Jun 2023 01:40:48 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=S72pRg2Dzk3r5l69xMTus7sLR/N/vXywbvEdJRfdTcQkCp10RKW/EVotE01NtjrWAcIGgFp9Z1elfjMlk3Sx7/FYE/En80Y8D99lDRJtr5Ww647aUXg278sdqLkuMcS5rL9XK2kB9rsA7/pjEZ2JQJMJ++IpfmOFHdYU/aVVxiWb4Erh6eHOkNKCXQSojVbSLzcld+eqRgIVbfn/fqyDwSkoGMI2l+ILCCB5YaQGE4y46lbggUoOGptnnmapIBIhMRKRo9MxWktNFybXcEfn6XYjyuCBY7262g8isknN/jo+w1h9nDT+P+urcboEyK0VJh3AmP49lH7Atizs1edrwA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=1Ty+L0RiTjb0MHJH+hm+Wu+hTwdHRsyc/pY5ymzkCg0=; b=AsMgGygdNl5Nk0ENONN1sG2DRHZ8TedunQ5XO9/FifUff6ASIfzXK+dLahOzJRipTynWSY+7qfb25Zzq14dQD0AG1tb/b6UAWtXdfysVGFyLml3OWPn1wEmPrwZcMWTD+DB5gbXBTyLa5ZlVOWCU+EUr/UEeBq1QhAP5/rHiWx/waCd4ysppci6N7qtxEaRjifRnwfT5bBdtYP8Yxsx/3525afPhoXQRgka61nspK89Kwp+Joe8Hu3o9Ae3LRNii5Lz12TzMcuPA0wJai/06MoQHjdueKfCX0yti3c17mG9yx3L2quumLDSDZMlndvvz1uqPvcQFwn3+3wQrIrHbaQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=1Ty+L0RiTjb0MHJH+hm+Wu+hTwdHRsyc/pY5ymzkCg0=; b=RBl0bZzudpNYjtub1wSsSyICv4jT/Ko83FyNDo41qNC3bNVsNvLtD9/09OIejCDmq49qjwV9Sf4eqQdubOgOPIq3u4Z54F3LBySdDnuackwoAF/AyCWZxjUUNL4TVzA1cyn0U1wkcGUnGahUbnObyY8sP6X8BRfeDL1jE/dAtfmHjL06XRjCfHBPDAbstWOCkKap2yB7vji5gsa+qJZZCfu1xx8ibNy0pMz9LW1Q5eNSNHxh/drXoawLfBouGNAgsc6hfACywiP9ddnG85U1rLNF2S5lXpR4qUFzLBMgPvKMAcRkz7S16rYLLxwcdYnx7tD2tGbYmTjJGKqF1moyTQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) by AS8PR04MB8277.eurprd04.prod.outlook.com (2603:10a6:20b:3fc::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6521.26; Tue, 27 Jun 2023 01:40:46 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::423a:a30f:5342:9d35]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::423a:a30f:5342:9d35%6]) with mapi id 15.20.6521.026; Tue, 27 Jun 2023 01:40:46 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next 08/10] bpf: Export more bpf_burst related functions Date: Tue, 27 Jun 2023 09:39:29 +0800 Message-Id: X-Mailer: git-send-email 2.35.3 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SI1PR02CA0048.apcprd02.prod.outlook.com (2603:1096:4:1f5::11) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: HE1PR0402MB3497:EE_|AS8PR04MB8277:EE_ X-MS-Office365-Filtering-Correlation-Id: 39cfa9af-2663-44cc-b0be-08db76af86f7 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: iGSJ70vpTSRJKZUiwgvLIsvjNS8tNYMVb4Omta/xUKpUjyABYkkDziTvNkoT5YpVc9fNIJHgl3Nl9f7Liay0Rmi4oDvFCOLxtaBrKY58aWeBwP2RaQlcBqiqR8+Lt8dAmL49g1N0CigH70XvG3xX1EXG/rKnu0PzRlDp7JC1vmpLFhtFt3QCkYsCtg/QoBRwu28iu38+Ruc469MHMdesyUGEuxVhFSIqsyXIHUUOzlIqBxWp2DKk5cGDEnI/+1JzP6mTfnSaslrVsVlEKut9wH1/ZrowyFM1CVFEKtaD+WZbQ8yw17pxZHIN5OWOh6q5BNYd+N/rUjGnKXpaovFhp63a9ObZQJ3FmI5EMHCN4Bw4zyInGT8Hb5BWQiGRS2NPJqqKvm9tYes9ZGnBTFSZuOvT8UZMsrc/dJO5xfdv/28zxcnud+4N959YSUamYW4Ab/Ct4BDzT2K0G1znfQfWmEDhqTyFNjP7/3J5sNQR7YdOkooW66p+ecVgOeZOjfwZL1SNpKY7EjEz4IK01lZk2aKmEuNnbaqIK4GNg3APUhzmMvajHhUcYUr51/GiZrSs X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:HE1PR0402MB3497.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(346002)(396003)(376002)(136003)(366004)(39860400002)(451199021)(6506007)(107886003)(6666004)(478600001)(2616005)(83380400001)(26005)(186003)(2906002)(6486002)(5660300002)(41300700001)(44832011)(86362001)(36756003)(38100700002)(66946007)(316002)(66476007)(8676002)(66556008)(6916009)(8936002)(4326008)(6512007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?UzksB3VXxtiS68zUpPrEug+Gszu3Tq9W4kX7Axy+M2nE/ED70csN8kCsPFbv?= =?us-ascii?Q?Gy+xZXhPBRbU1ju8M6MmD4NNRpqxxHn/6pyhifMjo/+Bwx0Y9VBLhcs6LfDw?= =?us-ascii?Q?Vg+wKLOoWfBMBcSAbx91Ykj7r9JXA77pCfrFYoQth4T14o7waDwY+dINUcBr?= =?us-ascii?Q?ayfTSdH7P+QDn428ZnWGqjaeVniFl9OcENZZdHlfC3UVbKku629Ll3GkIgl5?= =?us-ascii?Q?5zWKSkCfMfh6LrPigwpkn9KRgkNWaL9PFCQknNe3Rlp66prdIqNjuCUMbBZl?= =?us-ascii?Q?TzVvDKktJGKzqCDEU14bXpY9Nyqk/jIU1RVa5NXXk+jcK5HzyzFcpWdk6BY4?= =?us-ascii?Q?lUjzzcJAEP4P77FE5tzuf3o4zelVusfhY7nVLo6Fz9xOw61oaXIk+Gtjitds?= =?us-ascii?Q?L51NF+8aIikIOTR+BBOaj8sAM/v6PT4ZPQsTbcGFTjHvcWvkTPlRww1qHJ57?= =?us-ascii?Q?gGx13GDqx5oMA9bXHBfdSer+6ezKqgKv1twt7S/ZpsabHFuiCcOcA+nD2W0L?= =?us-ascii?Q?jn+W+B6tFEJTouqZSgjLIRqElJmbwS/FBjP91a74POquiH4T9pSojlKKqgjv?= =?us-ascii?Q?d7phYk9e32Rjqlq9/BhhQ4LlUkWZb8BoYfJ6vHyiyK//Lo5NIGDtwXhMWeDn?= =?us-ascii?Q?SZh1QY8Xg0a/a2EU/ry6q5TLeeX33avsV041DXxjkfTq+dSgmK+6aF68kfqr?= =?us-ascii?Q?ymbvgUz/QyQkrKSGvQQ2XfrSqq8Hw3DZsbXJBEViPDJ8NIK28IpKtsaBm/Wz?= =?us-ascii?Q?L01wbqd2gmvu7KWRW+VyaeDLbCAGDe0tETVK/W+jZ27AiMi8nTme9ruBTRa1?= =?us-ascii?Q?HwrGkZmb+qXXA6Vfcf8e1ydScv0jG12WYfjUxnNnEpCbXIoqp6rP4Es/lZFN?= =?us-ascii?Q?4XjBDknmBh0gVQhsWHuYnpdyIARy9Eb22+GDHmO2tIareKzL/QGjxwGec8oB?= =?us-ascii?Q?MvFOggnWP3IcHvLcUEgpsLWE+5171eWj/0nShgjGUm4rtJbfL7XRpbzgkmac?= =?us-ascii?Q?rc0yKGXfE4j7VngCwIJikVZ5CsX4Q3zRIzuTi6mS00IcmuDYiUDh5IuTz512?= =?us-ascii?Q?iYUxZ9fq56RjkMJYOcK8m3xgmvptelmpMa6fQ+ePneDyr/8qI3PhrLXcTNNf?= =?us-ascii?Q?XPuukdWRBgls5NkDYBcuScMQaJgcq4E5C5Kxiv4L2z77C382y4OE/PeoO+Zl?= =?us-ascii?Q?hkxnGAXjeUCavvqHR9LdIvZ6hk+15MXFYcVDMbxMMXsEthzfhcpJTZcED1Np?= =?us-ascii?Q?S1FmjRJS9HPoxr0rX7DYwPXR+RGecFaT0i6agJ4F1k1WmSDUSCA21maV1bk6?= =?us-ascii?Q?XIsd+4eU4MENOaE7SXLSByO8Cc8y63cx+u3h8p29aFdVn4FJS5XWgL8xcLLJ?= =?us-ascii?Q?ofwCrl2HvV/fCrtDm4OG9xXyinr1Zili9MZzofwia8rwdpWwsxu61kftJpwR?= =?us-ascii?Q?SV76zs92zfMw9at3udrN0xv/C+5m5ku0Z1gzi+4PrShm85BEqJjkiXkz1mP+?= =?us-ascii?Q?F/znNCVJRjBmc9yVf9SuJa8UOWDKf4I8NEyOlX1xB0i50fwWb/+SAXhRBSSe?= =?us-ascii?Q?M0eVGgPJtDjbuVvgCneBpQyH07BIXezNb7vL7ToD?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 39cfa9af-2663-44cc-b0be-08db76af86f7 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2023 01:40:46.1844 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: qQ42d3jNsJ4q8agoRu6kklBsnnOiG1RRUuT26VeTZ+uDSoVlw18pkiJAxYhwv/m7YFdALmcDoRNhC9w1sCrMzQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB8277 Content-Type: text/plain; charset="utf-8" sk_stream_memory_free() and tcp_rtx_and_write_queues_empty() are needed to export into the BPF context for bpf_burst scheduler. But these two functions are inline ones. So this patch added two wrappers for them, and export the wrappers in the BPF context. Add more bpf_burst related functions into bpf_mptcp_sched_kfunc_set to make sure these helpers can be accessed from the BPF context. Signed-off-by: Geliang Tang --- net/mptcp/bpf.c | 16 ++++++++++++++++ net/mptcp/protocol.c | 4 ++-- net/mptcp/protocol.h | 4 ++++ 3 files changed, 22 insertions(+), 2 deletions(-) diff --git a/net/mptcp/bpf.c b/net/mptcp/bpf.c index c580add9c7f1..a1c85605ed39 100644 --- a/net/mptcp/bpf.c +++ b/net/mptcp/bpf.c @@ -171,10 +171,26 @@ struct bpf_struct_ops bpf_mptcp_sched_ops =3D { .name =3D "mptcp_sched_ops", }; =20 +bool bpf_sk_stream_memory_free(const struct sock *sk) +{ + return sk_stream_memory_free(sk); +} + +bool bpf_tcp_rtx_and_write_queues_empty(const struct sock *sk) +{ + return tcp_rtx_and_write_queues_empty(sk); +} + BTF_SET8_START(bpf_mptcp_sched_kfunc_ids) BTF_ID_FLAGS(func, mptcp_subflow_set_scheduled) BTF_ID_FLAGS(func, mptcp_sched_data_set_contexts) BTF_ID_FLAGS(func, mptcp_subflow_ctx_by_pos) +BTF_ID_FLAGS(func, mptcp_subflow_active) +BTF_ID_FLAGS(func, mptcp_set_timeout) +BTF_ID_FLAGS(func, mptcp_wnd_end) +BTF_ID_FLAGS(func, bpf_sk_stream_memory_free) +BTF_ID_FLAGS(func, bpf_tcp_rtx_and_write_queues_empty) +BTF_ID_FLAGS(func, mptcp_pm_subflow_chk_stale) BTF_SET8_END(bpf_mptcp_sched_kfunc_ids) =20 static const struct btf_kfunc_id_set bpf_mptcp_sched_kfunc_set =3D { diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index 5f9f046b2124..84a82967b009 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -50,7 +50,7 @@ DEFINE_PER_CPU(struct mptcp_delegated_action, mptcp_deleg= ated_actions); static struct net_device mptcp_napi_dev; =20 /* Returns end sequence number of the receiver's advertised window */ -static u64 mptcp_wnd_end(const struct mptcp_sock *msk) +u64 mptcp_wnd_end(const struct mptcp_sock *msk) { return READ_ONCE(msk->wnd_end); } @@ -497,7 +497,7 @@ static long mptcp_timeout_from_subflow(const struct mpt= cp_subflow_context *subfl inet_csk(ssk)->icsk_timeout - jiffies : 0; } =20 -static void mptcp_set_timeout(struct sock *sk) +void mptcp_set_timeout(struct sock *sk) { struct mptcp_subflow_context *subflow; long tout =3D 0; diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h index bb4d50c8c398..58a634fc2fcc 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -636,6 +636,10 @@ void __mptcp_subflow_send_ack(struct sock *ssk); void mptcp_subflow_reset(struct sock *ssk); void mptcp_subflow_queue_clean(struct sock *sk, struct sock *ssk); void mptcp_sock_graft(struct sock *sk, struct socket *parent); +u64 mptcp_wnd_end(const struct mptcp_sock *msk); +void mptcp_set_timeout(struct sock *sk); +bool bpf_sk_stream_memory_free(const struct sock *sk); +bool bpf_tcp_rtx_and_write_queues_empty(const struct sock *sk); struct socket *__mptcp_nmpc_socket(struct mptcp_sock *msk); bool __mptcp_close(struct sock *sk, long timeout); void mptcp_cancel_work(struct sock *sk); --=20 2.35.3 From nobody Tue May 21 23:33:03 2024 Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2047.outbound.protection.outlook.com [40.107.21.47]) (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 AF133A23 for ; Tue, 27 Jun 2023 01:40:55 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JNO0kgz3K6YU1o3Q8q2UO2HiZCFdObWbUh3iOTf45WXLY5vfnYlnt2uWu9H3bOkcDM3DO1ZZjR2ApgWuZ8zczUZg0eJIw1914aOmMCcvYyLPxVknNJeeqvXqoiBwAbS8b9OBbSNP1LHaQhhJA7cvKLSLp8KnmVfOiJ3cj/gFEGxt0T0Hsh/HEGzlYB5ZyRGOCJTeB8MmuWsXdmPSwqWVBhv2wj0vS50IQzwtJGiSNYYutS5yEGkkcH6UiNDRUaOd+Nod2j6dcXChgLga3yNzJbvLWDhokQyLsKl4vJyqHobRs7BMamMKKu9CTLs5bwbJNKVgebqkzGxiY5TE/wP8qw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Z2v1k3uje2I7jwVa4ZnQoEjOIuW0vy4FoIti+HCK1D8=; b=cf2SwHOVgUt4nasR3m0y9aDaLR9GA2AkQSiFhY5HEbsLymQ+64FetVaGizgqzYtzkHuu2nGYHKvSOVYksvQkyy0/0IYO0M4rkql3AuqZYH1jkro1OzFDtRREac5Jk9WUxy2e0sw89SST3JwgITFkRdygAjy9sAUCdRNcC5T79sE0Z9ROiFAO04M4ROXLu/eFEXtGqfchz633Ft+GTuldVLVD4ev3rrC1ZBa3sjmFcI6TlOlSHQL4b75ZYK4KKjNjml1eJUrPFeMBnco0XRfhyi6ITeP1HaST0s+H/CfqFGCEgQV88P0ONN/ImE7dBp7iEx3onagTFZepzMTTOIvgzQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Z2v1k3uje2I7jwVa4ZnQoEjOIuW0vy4FoIti+HCK1D8=; b=E9bbZpaThkiOkDjrgNPTn0sPNf2ZU9DS8kot/WY8gmsqtRJrzt82BdQsPqxmoVM+eAJZuc3EI37Q5qt4qIBpiDD8ZFCcq7ZOyGUsROAqtKCRLOFYR4fojkaO0gkeG7d+SvEnhOl6oCfZ7vbgtm8W1+uApb3dx7wNmom5aHaFKu0aTfCQFcNLSrZjvpbEUdEeh8plgkbvVRT5E6iO7CCF9XXA/oa7k8ATJtzBrbPjwiXd2nQzvststYJRhUUAwLYI8n1y3PIW95Lrzr94mF98dtDE3rCAxwd2p5jmOUOxSIc1UY7rx4Ig3I2GaVYPPpMsHmGql/mkxO6kOBw5/BpJ/g== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) by AS8PR04MB8277.eurprd04.prod.outlook.com (2603:10a6:20b:3fc::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6521.26; Tue, 27 Jun 2023 01:40:53 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::423a:a30f:5342:9d35]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::423a:a30f:5342:9d35%6]) with mapi id 15.20.6521.026; Tue, 27 Jun 2023 01:40:52 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next 09/10] selftests/bpf: Add bpf_burst scheduler Date: Tue, 27 Jun 2023 09:39:30 +0800 Message-Id: X-Mailer: git-send-email 2.35.3 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SI2PR02CA0005.apcprd02.prod.outlook.com (2603:1096:4:194::6) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: HE1PR0402MB3497:EE_|AS8PR04MB8277:EE_ X-MS-Office365-Filtering-Correlation-Id: b472f3f5-aeeb-4849-45f0-08db76af8aef X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: OQ87P7l4wiG4GByQWiMuDS4dFeNd679O/jLeE/uPbBrNr+ddJOivM3U9Twr0DpDstciNU/KNLb3zdPN0BS1YjdIyr/ZYzbOShcqPgARbM7XVBBmv9V0PuHNS2mrHyNkiVtll6DbvfDr/6F13aE0bOgz/P3Mh4KTLlhkv8OOnHj5ZRtBqvrx9uK1caM9aLCuJgWmCEE8Pn//2xvM/93hip1d4GeJyFwzakmFPwzFkxGqpaMeqtO8XZWGO2W0P6Vx/GfSesKQRuKFoHk7JLHzw+WwCCl2NBGc7mU0i5QuhlCgvpJXwcsxIzg14vC2/mSJWKuYiI41DTYUfC7eHCF4X4tDmlo27Bjo340YOZ21+x6W5lu3nbuI1WEKtXi7/Zwye4QL6+4GHlE+oZYzKpN7JSTf6LFeOU278ewawVWTQzXLDlIqrPp/VWlK3xdHJ9zhiQIdmQib36OHSQ+VzpQc0me7m4vcNcnPWuxCQ5cga5FNezWwE7wdjwDriln2TUa3hi7xUQllOWz2zczO2zbGTuYFmdBFPpmBibqj44XBmDdY1+pq03FvGqEDk6EuQNALw X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:HE1PR0402MB3497.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(346002)(396003)(376002)(136003)(366004)(39860400002)(451199021)(6506007)(107886003)(6666004)(478600001)(2616005)(83380400001)(26005)(186003)(2906002)(6486002)(5660300002)(41300700001)(44832011)(86362001)(36756003)(38100700002)(66946007)(316002)(66476007)(8676002)(66556008)(6916009)(8936002)(4326008)(6512007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?dPE/YSESFtySb3f7MrdQK+HSuV3Lv+qovO8zzA+aYCLX8XP7ar2ZXRS0eKg6?= =?us-ascii?Q?j/fmILGfXgFLTueRhxmO+m1tGmZ83bog/WxRJRD08uKc75KJfQ7RUYEmmPLT?= =?us-ascii?Q?4vYs/38U5vbXpO/jrFcKsGiZ+lB8fdFFDNPUhu8Dl+glYw5JkMeYcoaxxFKL?= =?us-ascii?Q?crEM4qtpp3Fc4EftS49//z+kLfx4cbxlXbqDg902rFqutcjJdjq2/+ngFAmu?= =?us-ascii?Q?0gmUDB6BybGWwhOAdVCiU69SpwAxO7hzRdaJXwZGah6/pKaKYiruEo25lWsC?= =?us-ascii?Q?k34AWqhQrU3bURSbSIdHXoBLn2QnMyPOkyO0QnpivIsg4SsEkWBUhe4sPxeI?= =?us-ascii?Q?RV+NkQrOO2mhMTmkbggN0ZWL7ufXUTuNFjoZHuL2hwVaZ4LYzIoe51/xrzTV?= =?us-ascii?Q?FRwU8/BwXbjQJW/nGlHELIDuekosAQ1ak6sH3mgMu+XhbG0AGYzfhyMPmKqz?= =?us-ascii?Q?8SfG/JD35CXUTds+CF24HxiY27F6gACiLJCB6ECRck0ptY65c1gu4njktm6d?= =?us-ascii?Q?kxIuXet3X+vIeZ8z/PEW6h4TX/qm82/7ZL6j+xfuit9/IgNgg2NboOl3yxd3?= =?us-ascii?Q?HIJVOJ1vkCP0OQbA9VlAhNFEI+TxR/NqBMS1BJ2/PsraBvo0Kyn8YsgiCsjY?= =?us-ascii?Q?T3oKldarhnUEuyMUFijlK5RvnrTnHwQw/k1CAL5RSbLZfl7aclkjOC16FiHr?= =?us-ascii?Q?dbxh3prKmjAzwsnVOrq1grGMT8bY0SxZJGy/VPn0VRKaUUyDV7Q55LsBP2v9?= =?us-ascii?Q?aIDPYLDXWUw9OLbqpN9wpQzyQsC5kl/LByo1n/XZ2SSHrmen/AkB1GywpMhX?= =?us-ascii?Q?9EQRRYPXgeyWafT/nVOSbFEGqX1nHJf/VLUWH0TIVxoTBAlm4u6R9w1Oc0sM?= =?us-ascii?Q?5PhnOrcq4It1YDIppHovwG0GXm40r4hkbXb0hCHWznN6RDiXYIGlWk6RRZYv?= =?us-ascii?Q?QmIiOkGI4rkfJsfCRgXc/it7luiuT7yA7/fcWVwGGHbRsjITJeoMEd5Jb5C2?= =?us-ascii?Q?XPJhwqN6BWgkRFT220CO6JoBp/+a4BbRVpI4D9kfSjjMZcxkwyw+XPHSVFQ+?= =?us-ascii?Q?WbwM10AJTr5aR7GFUB6nwrafwJiS4lsUlRg4CVETKYDXbT8/vqZZYQzZGR1I?= =?us-ascii?Q?KWVH0rwktUB+fEDpqJdKWskFUQ5aGxejTP+HMGoiFwYFR9hbOcqdniQ87HdF?= =?us-ascii?Q?VeRGCjUNF7OQaS6vTDBWJ2Bsn9anjdgBQXGldGOedNOpvsIEBLzNbup7k/NH?= =?us-ascii?Q?ms2uJ4VsteUzuEumN7+t2DcxZrW/ioI/pPEL9vhweNuu/72Q42JGjPBxruW3?= =?us-ascii?Q?zVIXYkWRzk73+abzkbfW1XcdcYczqEURqO4/p5VxBxUhP5NHNLHO4Tus1tqi?= =?us-ascii?Q?wZjp0xTdhZ5w+BFZt/J+ETuW6rQViDkBlTsZkLWxbyVpUMqvHi4GTrpwQkFW?= =?us-ascii?Q?N0uBbJWanSY7oG7TLH3WQQXGQUd1EFH+kcZOZF22EsTkx9WxQkNz2zVPuzV5?= =?us-ascii?Q?V+FicmqY3Cdp+J/8NBPuBGg7Glfn3shSLCHTM5KDrDN8ibetN0ZPq/2wrVCP?= =?us-ascii?Q?orMGXQP3H80Etxu10b9JMNuzgBVcnK0pTisP084n?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: b472f3f5-aeeb-4849-45f0-08db76af8aef X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2023 01:40:52.8178 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: iCA4c7eGYrvnpltGTZow59SpdpNxdWJh/2D8gzDbWaULv/v/S/Mit743zr0RJCY87N9KWFoi1F1LyKb5/93qeg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB8277 Content-Type: text/plain; charset="utf-8" This patch implements the burst BPF MPTCP scheduler, named bpf_burst, which is the default scheduler in protocol.c. bpf_burst_get_send() uses the same logic as mptcp_subflow_get_send() and bpf_burst_get_retrans uses the same logic as mptcp_subflow_get_retrans(). Signed-off-by: Geliang Tang --- tools/testing/selftests/bpf/bpf_tcp_helpers.h | 4 + .../selftests/bpf/progs/mptcp_bpf_burst.c | 205 ++++++++++++++++++ 2 files changed, 209 insertions(+) create mode 100644 tools/testing/selftests/bpf/progs/mptcp_bpf_burst.c diff --git a/tools/testing/selftests/bpf/bpf_tcp_helpers.h b/tools/testing/= selftests/bpf/bpf_tcp_helpers.h index c749940c9103..c1d7963c3bc8 100644 --- a/tools/testing/selftests/bpf/bpf_tcp_helpers.h +++ b/tools/testing/selftests/bpf/bpf_tcp_helpers.h @@ -36,6 +36,7 @@ enum sk_pacing { struct sock { struct sock_common __sk_common; #define sk_state __sk_common.skc_state + int sk_wmem_queued; unsigned long sk_pacing_rate; __u32 sk_pacing_status; /* see enum sk_pacing */ } __attribute__((preserve_access_index)); @@ -234,8 +235,10 @@ extern void tcp_cong_avoid_ai(struct tcp_sock *tp, __u= 32 w, __u32 acked) __ksym; #define MPTCP_SUBFLOWS_MAX 8 =20 struct mptcp_subflow_context { + unsigned long avg_pacing_rate; __u32 backup : 1, stale : 1; + __u8 stale_count; struct sock *tcp_sock; /* tcp sk backpointer */ } __attribute__((preserve_access_index)); =20 @@ -260,6 +263,7 @@ struct mptcp_sched_ops { struct mptcp_sock { struct inet_connection_sock sk; =20 + __u64 snd_nxt; __u32 token; struct sock *first; char ca_name[TCP_CA_NAME_MAX]; diff --git a/tools/testing/selftests/bpf/progs/mptcp_bpf_burst.c b/tools/te= sting/selftests/bpf/progs/mptcp_bpf_burst.c new file mode 100644 index 000000000000..1886e2f7aca4 --- /dev/null +++ b/tools/testing/selftests/bpf/progs/mptcp_bpf_burst.c @@ -0,0 +1,205 @@ +// SPDX-License-Identifier: GPL-2.0 +/* Copyright (c) 2023, SUSE. */ + +#include +#include +#include "bpf_tcp_helpers.h" + +char _license[] SEC("license") =3D "GPL"; + +struct mptcp_burst_storage { + int snd_burst; +}; + +struct { + __uint(type, BPF_MAP_TYPE_SK_STORAGE); + __uint(map_flags, BPF_F_NO_PREALLOC); + __type(key, int); + __type(value, struct mptcp_burst_storage); +} mptcp_burst_map SEC(".maps"); + +#define MPTCP_SEND_BURST_SIZE 65428 + +struct subflow_send_info { + __u8 subflow_id; + __u64 linger_time; +}; + +static inline __u64 div_u64_rem(__u64 dividend, __u32 divisor, __u32 *rema= inder) +{ + *remainder =3D dividend % divisor; + return dividend / divisor; +} + +static inline __u64 div_u64(__u64 dividend, __u32 divisor) +{ + __u32 remainder; + + return div_u64_rem(dividend, divisor, &remainder); +} + +extern bool mptcp_subflow_active(struct mptcp_subflow_context *subflow) __= ksym; +extern void mptcp_set_timeout(struct sock *sk) __ksym; +extern __u64 mptcp_wnd_end(const struct mptcp_sock *msk) __ksym; +extern bool bpf_sk_stream_memory_free(const struct sock *sk) __ksym; +extern bool bpf_tcp_rtx_and_write_queues_empty(const struct sock *sk) __ks= ym; +extern void mptcp_pm_subflow_chk_stale(const struct mptcp_sock *msk, struc= t sock *ssk) __ksym; + +#define SSK_MODE_ACTIVE 0 +#define SSK_MODE_BACKUP 1 +#define SSK_MODE_MAX 2 + +SEC("struct_ops/mptcp_sched_burst_init") +void BPF_PROG(mptcp_sched_burst_init, struct mptcp_sock *msk) +{ +} + +SEC("struct_ops/mptcp_sched_burst_release") +void BPF_PROG(mptcp_sched_burst_release, struct mptcp_sock *msk) +{ + bpf_sk_storage_delete(&mptcp_burst_map, msk); +} + +void BPF_STRUCT_OPS(bpf_burst_data_init, struct mptcp_sock *msk, + struct mptcp_sched_data *data) +{ + mptcp_sched_data_set_contexts(msk, data); +} + +static int bpf_burst_get_send(struct mptcp_sock *msk, + const struct mptcp_sched_data *data) +{ + struct subflow_send_info send_info[SSK_MODE_MAX]; + struct mptcp_subflow_context *subflow; + struct sock *sk =3D (struct sock *)msk; + struct mptcp_burst_storage *ptr; + __u32 pace, burst, wmem; + __u64 linger_time; + struct sock *ssk; + int i; + + /* pick the subflow with the lower wmem/wspace ratio */ + for (i =3D 0; i < SSK_MODE_MAX; ++i) { + send_info[i].subflow_id =3D MPTCP_SUBFLOWS_MAX; + send_info[i].linger_time =3D -1; + } + + for (i =3D 0; i < data->subflows && i < MPTCP_SUBFLOWS_MAX; i++) { + subflow =3D mptcp_subflow_ctx_by_pos(data, i); + if (!subflow) + break; + + ssk =3D mptcp_subflow_tcp_sock(subflow); + if (!mptcp_subflow_active(subflow)) + continue; + + pace =3D subflow->avg_pacing_rate; + if (!pace) { + /* init pacing rate from socket */ + subflow->avg_pacing_rate =3D ssk->sk_pacing_rate; + pace =3D subflow->avg_pacing_rate; + if (!pace) + continue; + } + + linger_time =3D div_u64((__u64)ssk->sk_wmem_queued << 32, pace); + if (linger_time < send_info[subflow->backup].linger_time) { + send_info[subflow->backup].subflow_id =3D i; + send_info[subflow->backup].linger_time =3D linger_time; + } + } + mptcp_set_timeout(sk); + + /* pick the best backup if no other subflow is active */ + if (send_info[SSK_MODE_ACTIVE].subflow_id =3D=3D MPTCP_SUBFLOWS_MAX) + send_info[SSK_MODE_ACTIVE].subflow_id =3D send_info[SSK_MODE_BACKUP].sub= flow_id; + + subflow =3D mptcp_subflow_ctx_by_pos(data, send_info[SSK_MODE_ACTIVE].sub= flow_id); + if (!subflow) + return -1; + ssk =3D mptcp_subflow_tcp_sock(subflow); + if (!ssk || !bpf_sk_stream_memory_free(ssk)) + return -1; + + burst =3D min(MPTCP_SEND_BURST_SIZE, mptcp_wnd_end(msk) - msk->snd_nxt); + wmem =3D ssk->sk_wmem_queued; + if (!burst) + goto out; + + subflow->avg_pacing_rate =3D div_u64((__u64)subflow->avg_pacing_rate * wm= em + + ssk->sk_pacing_rate * burst, + burst + wmem); + ptr =3D bpf_sk_storage_get(&mptcp_burst_map, msk, 0, + BPF_LOCAL_STORAGE_GET_F_CREATE); + if (ptr) + ptr->snd_burst =3D burst; + +out: + mptcp_subflow_set_scheduled(subflow, true); + return 0; +} + +static int bpf_burst_get_retrans(struct mptcp_sock *msk, + const struct mptcp_sched_data *data) +{ + int backup =3D MPTCP_SUBFLOWS_MAX, pick =3D MPTCP_SUBFLOWS_MAX, subflow_i= d; + struct mptcp_subflow_context *subflow; + int min_stale_count =3D INT_MAX; + struct sock *ssk; + + for (int i =3D 0; i < data->subflows && i < MPTCP_SUBFLOWS_MAX; i++) { + subflow =3D mptcp_subflow_ctx_by_pos(data, i); + if (!subflow) + break; + + if (!mptcp_subflow_active(subflow)) + continue; + + ssk =3D mptcp_subflow_tcp_sock(subflow); + /* still data outstanding at TCP level? skip this */ + if (!bpf_tcp_rtx_and_write_queues_empty(ssk)) { + mptcp_pm_subflow_chk_stale(msk, ssk); + min_stale_count =3D min(min_stale_count, subflow->stale_count); + continue; + } + + if (subflow->backup) { + if (backup =3D=3D MPTCP_SUBFLOWS_MAX) + backup =3D i; + continue; + } + + if (pick =3D=3D MPTCP_SUBFLOWS_MAX) + pick =3D i; + } + + if (pick < MPTCP_SUBFLOWS_MAX) { + subflow_id =3D pick; + goto out; + } + subflow_id =3D min_stale_count > 1 ? backup : MPTCP_SUBFLOWS_MAX; + +out: + subflow =3D mptcp_subflow_ctx_by_pos(data, subflow_id); + if (!subflow) + return -1; + mptcp_subflow_set_scheduled(subflow, true); + return 0; +} + +int BPF_STRUCT_OPS(bpf_burst_get_subflow, struct mptcp_sock *msk, + const struct mptcp_sched_data *data) +{ + if (data->reinject) + return bpf_burst_get_retrans(msk, data); + return bpf_burst_get_send(msk, data); +} + +SEC(".struct_ops") +struct mptcp_sched_ops burst =3D { + .init =3D (void *)mptcp_sched_burst_init, + .release =3D (void *)mptcp_sched_burst_release, + .data_init =3D (void *)bpf_burst_data_init, + .get_subflow =3D (void *)bpf_burst_get_subflow, + .name =3D "bpf_burst", +}; --=20 2.35.3 From nobody Tue May 21 23:33:03 2024 Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2050.outbound.protection.outlook.com [40.107.21.50]) (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 A7966A23 for ; Tue, 27 Jun 2023 01:41:01 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DDDrc/Mfzl61AQLg5X5wha60/igPeG8Pwh7QFoiJnmVadSbgrLREdRfWRndVgpU3XywzVdySzCE0442Hk/Gj6JU/Hog0AqYq695eb2BLuyI1303bD9lpvaZs749UhoYnOT4YTlOHC8pHvadVyXDGEyoopnb9DKEZy0xyAeY5p8mnbZQ0285NUl4REjbG0ROPekox2V7IZwUPBC9STCJzh/xWNdlthGfJtonyfXzPLDhBQI682Ib4De7Br8iez9nfHcpuBra6uFhqD+dPR9Ya/SnNQ/Uk1paZQIQ7uI5tMaI0ox4QeIbODgfYpI1MayAvMwiuPjOoqmmvA40vZ0chIg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=WSe0BMXgt29KWZAt6u0X+N0qZ6MkkdJzUYyFTBv3J74=; b=A1e2rmN19A5Y/pgH7p3nzRX6I+RvWEMI0M5nAeC83azHTagH0jfbDGy/9TIshdVz8a8Hs0elp7+6npkLPwZujqglYg8KcnTml+yvykPyKWFjHTFIi1bCFteoS3NNm2E85gYW/RMuqibPQ1NQG8YMGTwENXcSa2Weu1pHECPEJryNbuipnvEMiMR6nmT78WzJvTpKA8i93SA55qw3ShT2gmjcNr+XIha7Ear2yLAZsnVURjdaViP+azqV7aKo4K9pxWLJGyoe5WwsSJb+6ZE2cjhK3fC+jY9sl98yxPqlfXaYsrmc7RLIwDiOnMA/OPGqTJ4Xn3bbibW0FPQnf2yazg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=WSe0BMXgt29KWZAt6u0X+N0qZ6MkkdJzUYyFTBv3J74=; b=bPwkW+rEkukfxHtm/VOBJ0wXokhH5qo6tB28gWCCsTnBMQr/mH/MUIRUp1cX8HY/MtNxw5jo5W0DfABPdQMUvZcgAFEVbhxnpzVfK0dTIl1q5Bc069HHMtydDhhUKM5RF/fD07OyeJahBP5dhmDWBmOvCh3y+cfH2VhqmogrwhK1QWBz6gjcJoBiqPs7SIxbkgeO5d/YsgF3B4nz3IluP1eTip5Y2wkg3Niar+HQJ5Cdqss7PizN5skhtF1cAtdIv5a7groAvmVFY/HAmeqNLEDTNOT7oGGxOJkz1QX+ZZqK0x/PgncqBd8S3AziHTQDYivePifgfIIuZdMOWBusgQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) by AS8PR04MB8277.eurprd04.prod.outlook.com (2603:10a6:20b:3fc::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6521.26; Tue, 27 Jun 2023 01:40:59 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::423a:a30f:5342:9d35]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::423a:a30f:5342:9d35%6]) with mapi id 15.20.6521.026; Tue, 27 Jun 2023 01:40:59 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next 10/10] selftests/bpf: Add bpf_burst test Date: Tue, 27 Jun 2023 09:39:31 +0800 Message-Id: X-Mailer: git-send-email 2.35.3 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SI2PR02CA0010.apcprd02.prod.outlook.com (2603:1096:4:194::15) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: HE1PR0402MB3497:EE_|AS8PR04MB8277:EE_ X-MS-Office365-Filtering-Correlation-Id: a5a89f75-8558-4256-a3e4-08db76af8ead X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: hR/Sq4aXwM4jOL6aTJO1cRE1ii8QnMZFfV+Vzs/ERZ1FqKvKJKLD0jGS9DsWDqtA8WMda8NJC1VUlXhEUE2fw5WBU7LGvuCNBMYPprByNo5YfGgutlA2AyflLh0sT8zIc0PAZQz4n4kPHZUk+7dStMq5jvUtlFhEUTZkK9GpeHpuemjLNyVzBXXSSPiGr+bYq2IflE5Hi71OCFOBc6QeZEEBt8MpWM2EYLrC5lXvRE9BqQXlIvNkr/RIg76zHX8hnTEXtTklEyqP5byXCRzqUcX2vUZ5qQq/jv2BMENe+eb5stCq4csT+lgCtg0XNnA5F9il9c1VRkYVh2WspHxXv3/mW+vKpWi1pZh3zNrccUEGEq6D6Ec27OldAeMDGeHy+4+PTA3Xs0gGBVBNzzL+0cwBTfk7Bx8nb9eihydeayD/e3sbktZfapp7KaShRNi/VkG0bNjcllVe+WHSVxkeDJRVX66BxenPtwaUbjK1eoNg0jxo1qVL6tTRladrsbX9OHas9IaXtfDCUNaDk6rrLZb/6OtU/3YLRmZ+kYmiCWG/qIqlAAY2FXvRnIJLTiNK X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:HE1PR0402MB3497.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(346002)(396003)(376002)(136003)(366004)(39860400002)(451199021)(6506007)(107886003)(6666004)(478600001)(2616005)(83380400001)(26005)(186003)(2906002)(6486002)(5660300002)(41300700001)(44832011)(86362001)(36756003)(38100700002)(66946007)(316002)(66476007)(8676002)(66556008)(6916009)(8936002)(4326008)(6512007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?AOnrtEhXMH75KaHIJgXoi5jrEw7VUBmAmzZgrNSl7AeoB1ee1GXMymZd3RLL?= =?us-ascii?Q?i9st3DL2lY/N6NThl34xjMvZLYGV7wm2emlhsB+evnWmxaBW0XIN8+/+N0Ci?= =?us-ascii?Q?Poarz2P4orIXAdiObR5kIBgfENP+uYIaAQiCeZtyi9L0wXhhKsIRA9wmLrbL?= =?us-ascii?Q?4nDId/tPqz7Ln7XOTtzJUJ/TjZAopzYlyUmsDLC22yTHMwvFj1Av3Da/0LYn?= =?us-ascii?Q?ZdpLZxQgol7dprwYO0q6IoednU8PLe3sIEAKsftyunBk1fV4JAbJ9CP5/kYo?= =?us-ascii?Q?KgUU50PHtYguqQyDiUUDWIyr3oRBqwGweBJipFuuGQkHhkhgFznizg3tfg79?= =?us-ascii?Q?9XGpJKeAfa6WgEqULwVtYdQprp4GTZyWE9hUR7O1DvSUn3s1e5wK42UrdLi3?= =?us-ascii?Q?fx/VSk47pjfcH+G0lcucNaIUZUUCNimGUFq1e9wvxMJCf8bSI/HqoPvBn+op?= =?us-ascii?Q?WfDwPrQ0adJd5Zb9piu4CbvgFiQHU+Q9Wtj2XVeHLvglC4bE9e0zMt45Y4P6?= =?us-ascii?Q?yOMi0m7hLfCdPLhS+d4mVFVAXQ0ybGq6JZLSk2iBA3jhwLif6r0lv06AKpyg?= =?us-ascii?Q?aJZ3hPEAiba1Nq/cFay0FA0WWzRyACvkcvXWTMxWuyDqeQfpmVcc7W/982q3?= =?us-ascii?Q?/WVxOdENwx+UFjhS232D5M3ABuLJoNHjRsKVWauvR8qLGakmkTr9QxTBPBn/?= =?us-ascii?Q?7eYvRTt+iC877P6D69TTnEidFvckstjF0zmcLywoU+U7+hVk52gmfOmHdHQO?= =?us-ascii?Q?kbeht653ePiSa+GaYWkBFWkPwCcBIdbQz7IfICZceJ29tF6ZKROkqQjr6TCD?= =?us-ascii?Q?FlkSqGnMI/94RfKdNcrf75ZWBF4VrMaD7gQiaudWYbudMOuJqPrQ5QkUYIlV?= =?us-ascii?Q?AiElaEWchUoXuP+zIBa2MAzWaNJUkcjjZBSbZbDD1GuAAMy/qVKiPyEld2ac?= =?us-ascii?Q?XYCSPsCcu2FaO6SlVkEU6bophONrJw4U1xqD9EYJD7JrSPsiPOEMLq8lK29E?= =?us-ascii?Q?pl5VkFAWtnG7ROY73u00NodfpRODNSLC8x4XQW8WZ/u+gPpbemurQTaV2ftt?= =?us-ascii?Q?nCReaSCJJJwS5CIx6Wanq2GSC8h0WQGiOh7ktmichoHI7ZvoSZZYv4EfvTO6?= =?us-ascii?Q?Te0Jxd3IxouHiiD4nNo+afsZ7TSGh+5emouAgdQxp5aHN52mtJV0WfOq43JL?= =?us-ascii?Q?4Q7eRR1/viadqL9HZ8IeSHL0Ru2LEY6USl9Cp3iDF6on29FK3FVB8fCdNxkc?= =?us-ascii?Q?IP9PTXsTGHVidtX0+0k3kqv0ljjdJRFPV9ZTKoW8ykdYN+DuUM9cH3kGumGC?= =?us-ascii?Q?d/biiB36YClILqF5Ofp99KBwkf7Gh/hgwbFXF2U2cGLqlODNT9I/ZKjYVMx9?= =?us-ascii?Q?XKtc1VCsnGmvsnDWb2nhsoA6YKtmRbBKDTx2Rl6+1SBiYlHxGRI8nzhB6aNB?= =?us-ascii?Q?oo+oYarJvvr+1hge2pwum/W/MnmZ2kFHcONZz4iF+iz2BRYEKi7/ddyCYPEo?= =?us-ascii?Q?jsFj2gmgx5uVOfOnzSTmqw4P1fYZ7Ch65bnE302Z/l7LzBVuEiKcQK+hfCys?= =?us-ascii?Q?avR3LJfwvi8rUxMuPAnU/Sc9y0C1kCqukWrn2YXa?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: a5a89f75-8558-4256-a3e4-08db76af8ead X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2023 01:40:59.0934 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: i5NWxfFGiwo88D2fZHzOs3sN8AMtvt2v/TrPDmamBgK+W5ThOLuJT4z3xn2Ozq+twzykOtT4iZYk5dfEuxP8fw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB8277 Content-Type: text/plain; charset="utf-8" This patch adds the burst BPF MPTCP scheduler test: test_burst(). Use sysctl to set net.mptcp.scheduler 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 ADDR_2 to PM netlink. Send data and check bytes_sent of 'ss' output after it to make sure the data has been sent on both net devices. Signed-off-by: Geliang Tang --- .../testing/selftests/bpf/prog_tests/mptcp.c | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing= /selftests/bpf/prog_tests/mptcp.c index 851ea32dc1d0..43c0645ddc2a 100644 --- a/tools/testing/selftests/bpf/prog_tests/mptcp.c +++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c @@ -12,6 +12,7 @@ #include "mptcp_bpf_rr.skel.h" #include "mptcp_bpf_red.skel.h" #include "mptcp_bpf_stale.skel.h" +#include "mptcp_bpf_burst.skel.h" =20 char NS_TEST[32]; =20 @@ -524,6 +525,41 @@ static void test_stale(void) mptcp_bpf_stale__destroy(stale_skel); } =20 +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, 0, 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); +} + void test_mptcp(void) { if (test__start_subtest("base")) @@ -540,4 +576,6 @@ void test_mptcp(void) test_red(); if (test__start_subtest("stale")) test_stale(); + if (test__start_subtest("burst")) + test_burst(); } --=20 2.35.3