From nobody Tue May 21 20:19:33 2024 Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-vi1eur04on2045.outbound.protection.outlook.com [40.107.8.45]) (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 89B3165A for ; Mon, 3 Jul 2023 06:40:08 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GoeK7rumTYTWQnNO/zsQQ6TnO7+XMh1Vlb0GWlf4zF99C3IMolPSuC6MLeMtsDakYn/wOezMZkTDyM6XP0UOoWk8C769B2fFLpIlg4cdgUma2YPcnLNUEMGvn6gu05gfUteq0g5+fvmSeT9cTomsFvHi90I7LK4EWTbx/++MJQF882OOPPsxADeDMeAiRcL8wvDe9JHrpteq45BY/M6QlcuauB4B8s6V1yh0t7km6RmLKo0JtvWRIyc1XsKLV1p0qsdlHh8H0/xF4rc2tN+alc2ThTkw9AAa0H0GH/GdVQopKQNSBKZMb7uZrIS/hiCneAhYzmbr0Q4lbnhptv5xCA== 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=VObWVx7lM52bt2nA8f8h0h8GlYb273mMIi2tyP5Rut4=; b=D9NxAExxvbovcCsa14VvYJJpmfYpJKXCsTQKgmdsU8wGsc+/TUzSJ115fPbB58Tij9jgMZbTrr5d/NEypJv5ybIfbNzRoBIWDEhF/Mot3wpaX1IIhOT7MFSZ1iQCq81KakJkVMno5gDdL9fxs0QjayjmxGf324G/4KBjhzShhdG+44RfP0erunUg3SrbEA/vtjA2K17J7dDtrY81a0QGMlItzvRXG0kzVLyWQWz7boq1ogwy3tbON23lFzp8C6De8fPyHIKw+cEpNejiPB7PKraBSDmbeSBKX8ZY1qj3ZC1gfeJPtLx3CkkzEJ/bRm9wvy037zJ3/P9FBpVxfFTbFw== 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=VObWVx7lM52bt2nA8f8h0h8GlYb273mMIi2tyP5Rut4=; b=Kft9ohzy4vOwidiQ4QnqHVA+4V5hrjWirC0YKP6+DEwO/ou5hZZN1RHZHKRRQRX3Mumc29VtHMt8X4yUJeiCouTO1SpxjfYt5dD5sd4BhPFS/dFr7a/yAy34+Vv7vTeE2cyeQv+IjcqioFUFl2g7dYAQ/cJwACA+dYDIG21k50+0ahC6h/PbWkDmG0UxTf17KO83d/p9Hs+dUeTf8nyRxCrw+Bc+zSFetFYYf63h9k1/KWfJPR/amDMNIpdbXhhWUogs6uLEA7xOkWqOXvismTIv5F00ic1pfkl9krlbFIsSh6XQ4fgqcGThSDDe+6UFserIwoP+Jb4bQohlUyjHjQ== 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 DU2PR04MB9524.eurprd04.prod.outlook.com (2603:10a6:10:2f7::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6544.24; Mon, 3 Jul 2023 06:40:05 +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.6544.024; Mon, 3 Jul 2023 06:40:05 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v3 1/5] Squash to "selftests/bpf: add two mptcp netns helpers" Date: Mon, 3 Jul 2023 14:39:56 +0800 Message-Id: <1ce0da8fa8beb7277c15ea3aea4393d7413b66c3.1688366249.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.35.3 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SGXP274CA0005.SGPP274.PROD.OUTLOOK.COM (2603:1096:4:b8::17) 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_|DU2PR04MB9524:EE_ X-MS-Office365-Filtering-Correlation-Id: ba488eee-8999-43d4-ce8a-08db7b905607 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: NUbLTmM9AIveeOgnZ70wHd2u0rnJrHSgz96MF4+JZYAbC0ShYL1NyumXHEIISxkFxECKY2zBH3zqhTZdnkrOLwC3tYY08VIxfu5U2XEuazDju7P8/CV2gAqB061lCO/03b4bR2fFoPoAPDUH4wdZN7Q+1LWg2i5q8UBXQGCgD3Q0cBq7w0TmDWevP6TTGKcxm44Vh0CKKrO5Kbb/ebWZBucR9s305cL+Jz8/WrTunm9jOzt/0Rhhf/AjhnP8aOzVQ36A+7La0ozxxKOJTOJ8SgIjVWmW7xMb7ldy8RGcELh+S+8bI6agHRdcY0jiW3cPjUAUICoLu0+CFLqafd6NxsJBMu/2oB8bnY8apfZKdBwiM2WIuNzRB84GULHZMYb8IL4xPhglGAQxP5bLTVlDdMcIraR5QfI8I968q4ai+YspPcRgpn+rSUd3lhy02i74q9kvwep+EsSKvLqXq0090EO6BiJzpwTD4osrMxC0Ubbn6PdvqnVAg3YhO1OoKORJNSmnNZj9HAq1VgGQgfusbFHWiackP9eWbB6FrFDQ7KE8sPksapXKeyS1/fieRFQh 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)(136003)(366004)(346002)(396003)(376002)(39850400004)(451199021)(6506007)(6512007)(316002)(66556008)(66476007)(38100700002)(66946007)(6916009)(4326008)(107886003)(2616005)(83380400001)(186003)(26005)(478600001)(2906002)(8676002)(8936002)(36756003)(44832011)(5660300002)(86362001)(6486002)(41300700001)(6666004);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?npWupCOEswoMv5DDTMvwVFkVLXL5EY6hKSH/BcbvsDdi0SIrlvqLEGRLsMM0?= =?us-ascii?Q?ZUS5Gqz2jNWcSFaVuNpzML7WV5U6/4W1Z6P1fTVxBK/25xl464SUqjnjB9t8?= =?us-ascii?Q?EtBGuJqtyAjH7Z0kSHvlLPjvdO0ZR6LmqtXlKwVh2fDtJmQuhLUz1N9wh6Sx?= =?us-ascii?Q?j12KfQJBXZcFQvrtcUlS7xafEpAGr3HHOVHyQn53HfHzLKmUa7PhfHIVz2+0?= =?us-ascii?Q?J7sOP/yNpjwiU7lVoQ0zvxrc36VAK+eEGsorQgkATiDleeVcS1Y8mILfC2Fx?= =?us-ascii?Q?4+otlBtw/P9Q1mlEurx/TF/i/EpO1H6Vvz/dc8atNSLlP3Iry/qwDAun/gyJ?= =?us-ascii?Q?sOlzso9kMti3HNYQx5HA8heQt0f8kxiG/93NmyK3Q5DLgY5IUWifCw8nw6qv?= =?us-ascii?Q?bZJSNP0ds3rtPng3U726W5VqDOFId+VNKKmxSBA1mtkRFEHMSEcUI30OJmmZ?= =?us-ascii?Q?NDfICO9luTy50EdKFup7JjX/VNe3KH24qV5dUaFA5aOK7iMYpMHa4UQ92XGU?= =?us-ascii?Q?yTEU8pNfGM+cmmfwpV9B5skxPaCsAUzJyLJz4gFOXhCQw75LXFw9v54grQph?= =?us-ascii?Q?rZtFqIDKf16CiU7UkJ2hZKAsDaIwAoFG2q93FYzbmkj71GwE54gVh4a6ONH7?= =?us-ascii?Q?xCA5Zg7U5qdggMgFqx+jCpx4msAX+SaPq/2u+5GJrVS+3ygwWmAcEMZg7Zah?= =?us-ascii?Q?KnsvV+wm6ZNSYg1CZ8egHXde0g4zxT7e5pCksKxBlvGow7UnzQ2Ni83epcE3?= =?us-ascii?Q?11CgYC6CKjUkH4ZKfq0cev7P3iVY6qk163qmP1yDibOBX/EHHdJLkAZAGH1S?= =?us-ascii?Q?gATK9Sr16VvZEURF/HvQ83jmBpNG4Sn7Yl6IBRFvyfUOUbzE0olzaqIruYCu?= =?us-ascii?Q?oO99yaGuK+Mi/A7JBFNGewoQ31vd9Oh4hGpuCheLmuuSjT3flh/2zVI4XzrS?= =?us-ascii?Q?CJxC0holeQYGB1c1Eo/FBEHLBIqC39bipEAou0RZgSDMkPNEhqZsN6IfN0kO?= =?us-ascii?Q?9I4SqJubu0M6v0yfZNHU0lo/LgfWTNUIRH1dLAK5Qmrf+NeyJcqaTFEmaN8y?= =?us-ascii?Q?qLJRvYsL94Pm5P5eVdQB6uVuF3gI+ygbp/VO6bkrxfdNw4U7sox0gqOTsNae?= =?us-ascii?Q?SEEDoes6oZLAbHR4YVx+7aRFAhLbPU7OUXE38YcsP22qL5monVzKYDwaQaP7?= =?us-ascii?Q?UtkX4U9Cytp4OZYy5uP4MYbzvlao5Ew+3lRD5D2YmBIldtz2rEHVFxyoO4A9?= =?us-ascii?Q?YAhPI7huBbXiL9tiD4iTch3qAQMucotkQMBfUClOJ0CiZ17OnwmF4JMMMciK?= =?us-ascii?Q?2PB8Fg9+CKCxZf/XvtRZKynQoouWfwNd07xMutS0Cx29AiN5TfrKVlpg7g9g?= =?us-ascii?Q?/bD+yaXsTDl5ngCfMwi53aL8Omgz1aJlRFnAUspXwoFOeggszhYchhi6GZiB?= =?us-ascii?Q?jaYMP+1aXWI5OLOSCPsdoiwxXsmq7ltINqdqTlrILdlHxNHqYKIuPTo3dbfQ?= =?us-ascii?Q?b7LARwhcPJ8csD8MWCJZRW5NI8mv18y3dthY+T2JOYq/0ND/JC8wsmzZDrtk?= =?us-ascii?Q?flfrIZbB3r9pfBvdRZAUU74JyyC7WfAGWtdYdSfb?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: ba488eee-8999-43d4-ce8a-08db7b905607 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Jul 2023 06:40:05.4763 (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: fTtJ+ZoRIBU4o0kCPggWrBUfyq56znqDIiCWkfmViJURuf7Pafb0p4K71eJed+IY75jdGe+pCIr7bC2hyWDI4Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU2PR04MB9524 Content-Type: text/plain; charset="utf-8" Move the helpers to the beginning. Signed-off-by: Geliang Tang --- .../testing/selftests/bpf/prog_tests/mptcp.c | 40 +++++++++---------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing= /selftests/bpf/prog_tests/mptcp.c index a968641cc94a..e430bebebcf0 100644 --- a/tools/testing/selftests/bpf/prog_tests/mptcp.c +++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c @@ -26,6 +26,26 @@ struct mptcp_storage { char ca_name[TCP_CA_NAME_MAX]; }; =20 +static struct nstoken *create_netns(void) +{ + srand(time(NULL)); + snprintf(NS_TEST, sizeof(NS_TEST), "mptcp_ns_%d", rand()); + SYS(fail, "ip netns add %s", NS_TEST); + SYS(fail, "ip -net %s link set dev lo up", NS_TEST); + + return open_netns(NS_TEST); +fail: + return NULL; +} + +static void cleanup_netns(struct nstoken *nstoken) +{ + if (nstoken) + close_netns(nstoken); + + SYS_NOFAIL("ip netns del %s &> /dev/null", NS_TEST); +} + static int verify_tsk(int map_fd, int client_fd) { int err, cfd =3D client_fd; @@ -142,26 +162,6 @@ static int run_test(int cgroup_fd, int server_fd, bool= is_mptcp) return err; } =20 -static struct nstoken *create_netns(void) -{ - srand(time(NULL)); - snprintf(NS_TEST, sizeof(NS_TEST), "mptcp_ns_%d", rand()); - SYS(fail, "ip netns add %s", NS_TEST); - SYS(fail, "ip -net %s link set dev lo up", NS_TEST); - - return open_netns(NS_TEST); -fail: - return NULL; -} - -static void cleanup_netns(struct nstoken *nstoken) -{ - if (nstoken) - close_netns(nstoken); - - SYS_NOFAIL("ip netns del %s &> /dev/null", NS_TEST); -} - static void test_base(void) { struct nstoken *nstoken =3D NULL; --=20 2.35.3 From nobody Tue May 21 20:19:33 2024 Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-vi1eur04on2049.outbound.protection.outlook.com [40.107.8.49]) (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 9E816803 for ; Mon, 3 Jul 2023 06:40:14 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=alWD3lEsU2cy5xXspaZh7AI601GkZ5VfK7bfFA4ZGEJjn/4jX7kxBk01ZTpy4EGnG0d8cOeZeAEB2qwJU6NkniS/xA9w5SfGAcV9dL4q6gAbG8bN/ifQs/vdGYx/mRtnQcbZs9FBQAjQnYfjzU8EJu9uBfVWGt8pq08lbGIC31LUZyJl/IvoLxZoITDiGMseeRDKxFhif3E/bhw3YDvbKNK95U2Ghh4M2MlBl5flbwwCQb243SjNBdnzlZI3SPR0CyO40W1B97LDOPMpfIdKb4JPxFils7gCTU843fSTeto4mp8v0Kkswb50in8IukEqonoCDq/ZoHLKfKA/hRH+EA== 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=6xEsJ44QoGeXEls40BuZ+NbWQ4erG/BFXRl1iTFWXEc=; b=lR8pt43q4fBfglKguRH1CHDsGgFxLE8KBD2UjYhBJHmkcv8lmXtv7agZ9opQuu3/Nzcxfx+uvmCFq5c3luGjR+KmlGSG0PuK2kEYCpHv3SkiXZLY9ASSxBmH3TM7nbCM3CU5MqQpwbEgmrt2HtGnLcrZZvibFhlyjYF/a4UcTxPnnFYKqiruPVh3LmEalWrCtLRx4xHBhCqzjLqxeNBf2Jft5dGCKC+dGvOxFcQQTNmJ7rDolx3OAdQfjR5fzSdYJAqPbXokF2HGgCfFNmOLlwy/lLeAE+oXd9rZRofu206OpqQEiovoS9K8/VMdRTifUtprMJv9SzHVUlEvxLQDOw== 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=6xEsJ44QoGeXEls40BuZ+NbWQ4erG/BFXRl1iTFWXEc=; b=DYSiaU7e4RfV/LpMKKqOWQxabWMJHrUmM1a8+EAgu1K7LjWb8bjYzDOosjzFPFGReHu6Fm2xbznz5Gwhwz+U7dxS7MlLcnem3uqCArAs84fz/tKeqOk+0GQrVwGJN148uCsaxDSE4rmDMhUuzTtirYhF7d/LIDWPOouwCr35jusOqe5HPy/yji9rE+AUYpUe7GmnnG+Uuwv+wC6731E+6/REKerz5xvpqYMjd0FZlBCzlHW7gaz3zEjNH85wGejB3Yyq49Pl1UIiKmtI7hORtalISLqzJzNEkzHuYruND8dfjrUfVborljDEdvbeelwjfKRpRVgz/04iWbXgGxw+0g== 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 DU2PR04MB9524.eurprd04.prod.outlook.com (2603:10a6:10:2f7::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6544.24; Mon, 3 Jul 2023 06:40:11 +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.6544.024; Mon, 3 Jul 2023 06:40:11 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v3 2/5] net: socket: add socket_create wrapper Date: Mon, 3 Jul 2023 14:39:57 +0800 Message-Id: X-Mailer: git-send-email 2.35.3 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SGXP274CA0018.SGPP274.PROD.OUTLOOK.COM (2603:1096:4:b8::30) 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_|DU2PR04MB9524:EE_ X-MS-Office365-Filtering-Correlation-Id: 69aae49d-56e2-4539-6a07-08db7b9059a2 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 9nDPRY2Yqn5U2d/FVIJdNwyxEhgL0zS+xTDAnWamtoafqx/aPMoHrnk3sgdT6bN4o4urTXdXd7CSB3DbM+zmtuOF8734wGkxs9ho6QF9MpM5jyJufp/QYtBilPC3KTJ8e9IgAkt2yC0m+v6yXU7bytlyzKR6iqGmkneJOVmoijITcQeEg4iOFFpLtsjon9CwCKhrnnxeFmRLNPQD/XZyBR1DXwE7DsGqcMUoZQnyPJvyxVOayr8qYVAPrcQKqU27RStiKK4BRcn2jqXvp2CPGuwhvF/MunPm0uzJbdcqtNp1K8S+e7Rp0JDJineKEiNWhKNfOvPzW0rYTIahDdmnPLzlOK+Zh+lV+QSaaGNGN37o7JKB8/XeoCZlU481mjAyD1LMWVe3tTwRZGBFo8osZL/zs6+P7UCehtMz6FdFDRoRdhWhczDQxM8HgB+4T97t2qoHnPHsYYF18QIWerimKAvQX+SxWXLTLr518TbWQpfgujrhvAJGB8JHszepKUt0wybZ9u19yPVbkOrBKVJQS9uYKPIb2EhqWTTP2yYnosOsZhlFNGYnbIy+dimkRc8a 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)(136003)(366004)(346002)(396003)(376002)(39850400004)(451199021)(6506007)(6512007)(316002)(66556008)(66476007)(38100700002)(66946007)(6916009)(4326008)(107886003)(2616005)(83380400001)(186003)(26005)(478600001)(2906002)(8676002)(8936002)(36756003)(44832011)(5660300002)(86362001)(6486002)(41300700001)(6666004);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?C7tzrqX14AK+/bXzITchy58mbNJMNbr2fE//HM/6VusjY3sBwtxZ0D1Gu6U5?= =?us-ascii?Q?12Y2LkEOvnxB37UIeHUz61N3vV198yanoTjch4E5RGbf/34+U2KmEyHKL85a?= =?us-ascii?Q?goOlbJ7AYSjpsw0mKe1imGpK7KH2Hd1KMI01oOYoFjJf7UCHiUlHrTiHebu+?= =?us-ascii?Q?ghFKo4ZHqUXTfABdKiPkZomESbkrR7Hqy5nT19Poc6T6a1fMlXcZCcH3rnBZ?= =?us-ascii?Q?ehLIkQTuK8Ad9tnSmBgONlkwqnPEeheFBvNDBMN8UN4DbE5PbUbYTYyKjjdb?= =?us-ascii?Q?vHNaFr823zZICMAutVdmOibILjG2DdkwkkwkDTp7B5ng4AR1/O6B98lNzU9J?= =?us-ascii?Q?cn/nJV03GNSlqqBR9rJkRBZNd7RdmglONPUtdEJC5W92IPJLCVJDuX7L1pYk?= =?us-ascii?Q?wxyi3URoPAXtmrA3vnbEQdDIGeJ3LS1ML7d5nvyOxxemPeBtYPWsZp+s8+qV?= =?us-ascii?Q?JJCBV/4JYFO7XgpXFF1iXMylPza1/jcg2uXExlkbio4kzpyJxZMxlele4/Ry?= =?us-ascii?Q?HDkO1rDiPjnigVll3/qwhFk6LkYQaGXljdJSO31G+Y09wtYLHVkOeK+9D3VK?= =?us-ascii?Q?FrNIZbG2z6Aqa83Sn1UFqM8vcJ7K4+Xkfo+dPuR5r2nLbXNekW6UWdBJnXnT?= =?us-ascii?Q?BoYp/T2gkKjhEruHNVAmoYpClSWZwzgKPvQpsUintz9hOKHbq0Yzp6OVJlaH?= =?us-ascii?Q?c+ClOEVZ5G2Sa3Ww7CpWcrOteEG8L7k8ikfx5wNjRsWXkQO5KlI4JMp0ueH3?= =?us-ascii?Q?ibwakf1ho3J+O0GxsILvHWvUlWBfUBFA4hrEhgrrAGT7wLpg8ywgFh3FqNa7?= =?us-ascii?Q?xSc47oCWiZMPfabgosycFS7TbaQh18IXrleLSGd3axmcAC6Fcm/xc0Z2IOV0?= =?us-ascii?Q?px3vdjvrFn/at0mzkiTFLiTRSWUb0+vGY2Wx0gX9pGgzgC60BtOHnTW0hAaE?= =?us-ascii?Q?azySNxtiv7rpzHfc40Udhr/PuBBrZN2FaYp2SmtfIRdANnEroh76Np6RZMa5?= =?us-ascii?Q?PZug7kM2Zq/1XHnu5opTmikKaoZ7AV7rfgNBfd5Lyliuh5CR3rtft60+AoJn?= =?us-ascii?Q?OzLtRyF3HncF8VqGz0Daao9yJ2/fVQDFaD7g2c3HsoCijs85puZjMSU/qQBB?= =?us-ascii?Q?A7t9EUj3GMxbdT3qATPhrEyfFMgumBExgYmrqdyXXz7dVWhclHMPnSqYpG3q?= =?us-ascii?Q?WjMb27secYY/Eyxkq22ZAJIPKpw4fhYhnremXuGzs5LgHoxb3TbyWLriruIa?= =?us-ascii?Q?queWarhcV6+SbMTBgKxDv8OSaCw95iCFEZgpVcb1ffSLNYJmJXXwPxbTVcqr?= =?us-ascii?Q?2kvbhFiH8oYIS5zAPlfWMHVKN+lxDYdJ3hlitxDX7lxPucjHFJSXQQQWGvIe?= =?us-ascii?Q?/fPHmFesMojjvL99kK1jwfQErXnWMzLbtUzyOV8MeB5CAhdLTxTVUNjtx1gF?= =?us-ascii?Q?IgwT4xCdQ10uq7CiHbouu/nCfkRDLpiMOCE7BgklVgIW3lkczLP7ViAYijH7?= =?us-ascii?Q?+pYhPnZ8dQrDs8mf067OQVPCEAgSs4G7sXeEZW8Sq+rFjL4Kmv50Llt5DdpP?= =?us-ascii?Q?ref6IMo0qzNYuYaF4h7ciPfnDWxtt2wTBn8Calk5?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 69aae49d-56e2-4539-6a07-08db7b9059a2 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Jul 2023 06:40:11.5539 (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: v1OPBVAZ15WASYmdU8ta80ve/khDdPOUpzO2bg7b3mFt3fmkJQWbvqtFgTAH41QJMHYKhJ1rsvUQIAsQNlUxjg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU2PR04MB9524 Content-Type: text/plain; charset="utf-8" The arguments of socket() need to be changed sometimes like the MPTCP case in the next commits. It's too late to add the BPF hooks in BPF_CGROUP_RUN_PROG_INET_SOCK() in inet_create(). So this patch adds a new wrapper socket_create(). The arguments of the wrapper need be changed through the BPF traces. So add a new struct socket_args to put together all arguments, and pass a pointer of this struct to the wrapper. Signed-off-by: Geliang Tang --- include/linux/net.h | 6 ++++++ net/socket.c | 12 +++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/include/linux/net.h b/include/linux/net.h index 41c608c1b02c..81f6a85512ea 100644 --- a/include/linux/net.h +++ b/include/linux/net.h @@ -84,6 +84,12 @@ enum sock_type { =20 #endif /* ARCH_HAS_SOCKET_TYPES */ =20 +struct socket_args { + int family; + int type; + int protocol; +}; + /** * enum sock_shutdown_cmd - Shutdown types * @SHUT_RD: shutdown receptions diff --git a/net/socket.c b/net/socket.c index 2b0e54b2405c..72fc8701ce69 100644 --- a/net/socket.c +++ b/net/socket.c @@ -1588,6 +1588,12 @@ int sock_create(int family, int type, int protocol, = struct socket **res) } EXPORT_SYMBOL(sock_create); =20 +int socket_create(struct socket_args *args, struct socket **res) +{ + return sock_create(args->family, args->type, args->protocol, res); +} +EXPORT_SYMBOL(socket_create); + /** * sock_create_kern - creates a socket (kernel space) * @net: net namespace @@ -1608,6 +1614,7 @@ EXPORT_SYMBOL(sock_create_kern); =20 static struct socket *__sys_socket_create(int family, int type, int protoc= ol) { + struct socket_args args =3D { 0 }; struct socket *sock; int retval; =20 @@ -1621,7 +1628,10 @@ static struct socket *__sys_socket_create(int family= , int type, int protocol) return ERR_PTR(-EINVAL); type &=3D SOCK_TYPE_MASK; =20 - retval =3D sock_create(family, type, protocol, &sock); + args.family =3D family; + args.type =3D type; + args.protocol =3D protocol; + retval =3D socket_create(&args, &sock); if (retval < 0) return ERR_PTR(retval); =20 --=20 2.35.3 From nobody Tue May 21 20:19:33 2024 Received: from EUR03-AM7-obe.outbound.protection.outlook.com (mail-am7eur03on2052.outbound.protection.outlook.com [40.107.105.52]) (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 30600803 for ; Mon, 3 Jul 2023 06:40:24 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZYJA8jbwON5Gq2QfAdE5RmsPEb+by4soDpcRfLdsYuqrwNnhH048nMru9rOiQP8dc8lwK6z4Kq3LkDYI5AecaBkBmJBUwbdWH/QGCHxF0J1U2/NR+RIrp1J6FvNVH3l/kyDtaf41XaQOAbSbIOdVpApX28RqL+Tf+3ZgqHrMfxWmHx0dG9HowJ7YiV3Uzgu47WO3cwTpNu7GzqaYjU+z/jn6IS89jrRaWV7Qnsrsq52sGb7IOd/LuM3v3LIGE2cKlq9WaVQ5/HDyYT71iDi3aQrXftYque3VC+pFBJHBKIBWON4HBeQTsjf/gGedNkAROjAOZ+CohN/DueoZjy5X1A== 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=p4MHqDuw1vv1wd6IMHOf8J1XIGOnnaTq+2cQv+aqfpA=; b=NSPMacd6P/heyx8ILeR9/Gx/bJp7VCDl1bbMddQe3IW4ZWjd8EjNl/tbEGRttH8ZhkfFLJronZeOQ7p299MLvGEAkOFOy0oDQvKcY2qx2Fmaknmls27up0bCdfUzKbIoAmXLZ71sZrI1c6T1TJ6vP9xvwahCR0qK4FcVEGTVZRGgZRMiShoKY8YkPJiRULfCJr2KWEKB0ZDqPkbJn6BKRxY8d4EBMhwbISejzsHEUsUDE0d6aI1ZtzkDKZrslswHg8n5l9+HDX1FbGjn9IEXoObPLn7nInq4ml4U8Pteytrk7H8bOPDqOHSpuPa7Cd+Y5oiUPXRSQq7qspZGk3orEA== 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=p4MHqDuw1vv1wd6IMHOf8J1XIGOnnaTq+2cQv+aqfpA=; b=Wsrk3YlQ1nOuadxlmJ9o8emF5+jJxaeKomjCDqlKR0voyRWnD3yxaX+MxRZ5yVr1gaSBHwFBPDpH+52niPAMalFY38bsuWdJkF2jSLh6kUtwoD5QeoKYP51AYPhMjfFCxQnL+7WOWON+aCeaUX+ObhMRRj/LRMA17pzjeOLkbS75PpxB+n7vbBhal2PlEog+2a414RyynSqRxpnFXz4i+bOWtoPGLAKH4IYu0mlDo0LqlEQYHcuPVRLm1oxneujim5OH06nWei09IURIOu1PYqYIrDXsypy4OVyJRAtqAmhzqWFVfeG8IQcHpu+Yhvlwn/4fWn+yb1fpOS/AD+NykQ== 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 DU2PR04MB9524.eurprd04.prod.outlook.com (2603:10a6:10:2f7::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6544.24; Mon, 3 Jul 2023 06:40:22 +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.6544.024; Mon, 3 Jul 2023 06:40:22 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v3 3/5] bpf: Add bpf_mptcpify helper Date: Mon, 3 Jul 2023 14:39:58 +0800 Message-Id: X-Mailer: git-send-email 2.35.3 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SI2PR02CA0006.apcprd02.prod.outlook.com (2603:1096:4:194::8) 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_|DU2PR04MB9524:EE_ X-MS-Office365-Filtering-Correlation-Id: 12b2e022-1cb1-4b12-ad43-08db7b90601d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: myUmaL+emR43HQovAXKato37cxobpVqM3wgE2Q1SwnZKAHpnGPcJeBxQiUzi7uAHS2k/jVcPMKorUNbUFLwKPEvVXnfWp+OYnQ8XfRvPw3ag6n1TO6qm920BWYMDgsmdYA9BrP1bIqkLGQdrV0xxqNVkVntaBxeH7XwuPmkC6fbOA2GCk3ms4qZUJ5uhhI/lNu+e0HJBlg1JT7IVAcEtt3jxKmUGb/0X5g5N4EpOlsUtsMDUrN9QI9BVzvEeUKmBiCA5be8iLQ4ybcEEjtGCYXInVXGoAugbKkSjZBiE/ig93SDM0kFP5W3NByaOxGtLczX/VzdPtXQBHimXPEpaMb+OshmQnmMcLJQpjymM6QYuHklCTtoI5QYLbvzy+CAYDh5tQa65rGdUl8ii45zSD5pJy2DoBiEScZ/mdA+z/RWR+eLH1fphmrQRxiFs+qkIg2Fjphz9xBwRE/jUg658KEkbzKIbOlgAOS5WHT6frg4GVzkphEtssypglc+Vq5cAUsp7LVvyk2sMGrjEcyCVcyE39MMZdu39R8twpR6h3R2xITuXws/wStOmbknsQzQL 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)(136003)(366004)(346002)(396003)(376002)(39850400004)(451199021)(6506007)(6512007)(316002)(66556008)(66476007)(38100700002)(66946007)(6916009)(4326008)(107886003)(2616005)(83380400001)(186003)(26005)(478600001)(2906002)(8676002)(8936002)(36756003)(44832011)(5660300002)(86362001)(6486002)(41300700001)(6666004);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?zlWhhoUQVGpKNp31Vi+pAjzYxhqupVkLPcxHuY2u1CdD0w/3mRNBS5LRUlcB?= =?us-ascii?Q?Q/3bNpwcjTuFjoYsP8q38yvuWIjIUfZ8+JiZPBvO1X2LQufcY2s1ZOjoNTBB?= =?us-ascii?Q?LQ5O3FG0pNk4/9l9fESG4wMZgMKkFMIKrjHthYXMb1xqqFTfu8TWCWE+kCJs?= =?us-ascii?Q?k9AAvwXDc62G5lnLzuPhdCL6vP9dvOTtj8XGfuiQAN9wcKlt9ciPWhouIRsj?= =?us-ascii?Q?6P1tHjuYEs6JgE4xSPocChPnwWvLIo3wsY1lXZQAmFt81V1Qyw09U4SkYSPL?= =?us-ascii?Q?XmxOaapm7D6kDkwV5feBVL9i7QVeZiblApig611NxTghiRtWH+JIkX8JOD/h?= =?us-ascii?Q?VVSZ7c+NKW9WnlbLklLGgLgfF7Ul3iMmBNvDx2lyVxtnJvVQajXKoZCHUL0P?= =?us-ascii?Q?LHd9SutEJWPW6+yXBnNMVjRVbmJZrufZBngYECsOz7V5jfU6zGLiCdsLIP90?= =?us-ascii?Q?HEwJJ24kpOuh6urhOpwvw/jpYMhXBgftaUphq5XUZuBenG+jwK/kTzmzoxxr?= =?us-ascii?Q?nwjFg/KVJZvzgDXq9kmHuJVMQXjkF2q4+n40aaOcE9KkgtTTqrft5uNQqy3p?= =?us-ascii?Q?2cq4UhF6UGMW4xVrg9yeepIbGC1XOrHWlN6fuaA857gqpUzqwc/50nxssuZJ?= =?us-ascii?Q?pmPqM41JecmeWBJ75o3tdNC6Twdzvne4hdGwsIJ7Yq4R6Cxr84DoIGmygTAt?= =?us-ascii?Q?9zdv/hjRlJHBKLeeZ3LMTb8BBCnbs5w8WFlu80sXcH7CAu0O9zqFoAlXTIiS?= =?us-ascii?Q?DCdqcvWXa/84Ss/x/RlBqD7Er6SuMoK+vg8qjdCbwV7doWHmvIDbesDGSbdt?= =?us-ascii?Q?8eOQ1ta50+8B0CLcsOAhyLwa4Ste28mHfHg9mDENlzXXTDGciq3AVor0S+Kn?= =?us-ascii?Q?uplZ4mqdSeFzsW/nEym24Xb4GWMKsdyoA6cjf1zHQl+5mCx0VNDUEXNFenx7?= =?us-ascii?Q?lVUbOOB9DA+s+HwbV77sBh0A7sos0bPR1EcChiF3CtwNdUzsPp/Sq4TV1l3E?= =?us-ascii?Q?K5qBs2I2FJxyia6x7+uFREI2/F0BFL02fKahiAJMpBLYyAEpsCgEw94qdbGC?= =?us-ascii?Q?n3IrqWbXlgovCWlKCb4CaNxI6CdnBZPIf55L7mmly15AmHYObc45u4ugfVtj?= =?us-ascii?Q?aA1LLBQapWWSMl1JxrkNyIXrcCs0HrxIJUt7WQekntG+DWLxJPMfryONebZy?= =?us-ascii?Q?Y3DQZ7n9qiqPzCcko66CKdYSFdpRG+wpwBe+ix5HmKnpIGOOHlMUWE4S3mU9?= =?us-ascii?Q?TvxhaHUGqggt/Tqg+w9lNbpQgKaSJfOTgJbwYNeEOwiBBGqVao2xYr9vuXzC?= =?us-ascii?Q?ciJYHIY1q97PKDNrp1TSFLzV90TZ3kH32weNDU8wxjwQ7hlavI0VD6OYEVVQ?= =?us-ascii?Q?wryLTxrbX6Qm15w6CxoHR/NZwJx8oJ/fgpX16sp4kJSDhbERa1e+E41X9KLj?= =?us-ascii?Q?ImgljikvpaaMWqoBaeb/BCW/Vr4K4DT+cT8rSbrB3p+J5nlhS5hPozuqK2/e?= =?us-ascii?Q?C2WIoMwMVHj1Iwt3becW/M2RWNdnDXnSH+TPBYWjia8ZkqJSSE1BlbfQIgBu?= =?us-ascii?Q?cwbh5hIZ8ruZPJ5ka2QWdV2PBUJm88wFYkI/ICx0?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 12b2e022-1cb1-4b12-ad43-08db7b90601d X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Jul 2023 06:40:22.4131 (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: QbMTLcNKdZuTcTFoe2coNTkOpERCqkt+/OYWVaK2+Z+p/3WRJl6UEp6V6LVrRXDtIw4GoXMhV49MwGB1jnTsbA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU2PR04MB9524 Content-Type: text/plain; charset="utf-8" This patch implements a new struct bpf_func_proto bpf_mptcpify_proto. And define a new helper bpf_mptcpify() to mptcpify a TCP socket dynamically as an MPTCP one when it is created. In bpf_mptcpify(), if the protocol ID of sk is IPPROTO_TCP, set it to IPPROTO_MPTCP. Signed-off-by: Geliang Tang --- include/uapi/linux/bpf.h | 7 +++++++ kernel/trace/bpf_trace.c | 23 +++++++++++++++++++++++ tools/include/uapi/linux/bpf.h | 7 +++++++ 3 files changed, 37 insertions(+) diff --git a/include/uapi/linux/bpf.h b/include/uapi/linux/bpf.h index 60a9d59beeab..0fb8222964d6 100644 --- a/include/uapi/linux/bpf.h +++ b/include/uapi/linux/bpf.h @@ -5573,6 +5573,12 @@ union bpf_attr { * 0 on success. * * **-ENOENT** if the bpf_local_storage cannot be found. + * + * int bpf_mptcpify(void *args) + * Description + * Dynamically mptcpify a TCP socket as an MPTCP one when it is created. + * Return + * 0 on success. */ #define ___BPF_FUNC_MAPPER(FN, ctx...) \ FN(unspec, 0, ##ctx) \ @@ -5787,6 +5793,7 @@ union bpf_attr { FN(user_ringbuf_drain, 209, ##ctx) \ FN(cgrp_storage_get, 210, ##ctx) \ FN(cgrp_storage_delete, 211, ##ctx) \ + FN(mptcpify, 212, ##ctx) \ /* */ =20 /* backwards-compatibility macros for users of __BPF_FUNC_MAPPER that don't diff --git a/kernel/trace/bpf_trace.c b/kernel/trace/bpf_trace.c index 03b7f6b8e4f0..272166e9689a 100644 --- a/kernel/trace/bpf_trace.c +++ b/kernel/trace/bpf_trace.c @@ -1886,6 +1886,27 @@ static const struct bpf_func_proto bpf_get_stack_pro= to_raw_tp =3D { .arg4_type =3D ARG_ANYTHING, }; =20 +BPF_CALL_1(bpf_mptcpify, struct socket_args *, args) +{ + if (args->family =3D=3D AF_INET && + args->type =3D=3D SOCK_STREAM && + (!args->protocol || args->protocol =3D=3D IPPROTO_TCP)) + args->protocol =3D IPPROTO_MPTCP; + + return 0; +} + +BTF_ID_LIST(bpf_mptcpify_btf_ids) +BTF_ID(struct, socket_args) + +static const struct bpf_func_proto bpf_mptcpify_proto =3D { + .func =3D bpf_mptcpify, + .gpl_only =3D false, + .ret_type =3D RET_INTEGER, + .arg1_type =3D ARG_PTR_TO_BTF_ID, + .arg1_btf_id =3D &bpf_mptcpify_btf_ids[0], +}; + static const struct bpf_func_proto * raw_tp_prog_func_proto(enum bpf_func_id func_id, const struct bpf_prog *pr= og) { @@ -1936,6 +1957,8 @@ tracing_prog_func_proto(enum bpf_func_id func_id, con= st struct bpf_prog *prog) return &bpf_get_socket_ptr_cookie_proto; case BPF_FUNC_xdp_get_buff_len: return &bpf_xdp_get_buff_len_trace_proto; + case BPF_FUNC_mptcpify: + return &bpf_mptcpify_proto; #endif case BPF_FUNC_seq_printf: return prog->expected_attach_type =3D=3D BPF_TRACE_ITER ? diff --git a/tools/include/uapi/linux/bpf.h b/tools/include/uapi/linux/bpf.h index 60a9d59beeab..0fb8222964d6 100644 --- a/tools/include/uapi/linux/bpf.h +++ b/tools/include/uapi/linux/bpf.h @@ -5573,6 +5573,12 @@ union bpf_attr { * 0 on success. * * **-ENOENT** if the bpf_local_storage cannot be found. + * + * int bpf_mptcpify(void *args) + * Description + * Dynamically mptcpify a TCP socket as an MPTCP one when it is created. + * Return + * 0 on success. */ #define ___BPF_FUNC_MAPPER(FN, ctx...) \ FN(unspec, 0, ##ctx) \ @@ -5787,6 +5793,7 @@ union bpf_attr { FN(user_ringbuf_drain, 209, ##ctx) \ FN(cgrp_storage_get, 210, ##ctx) \ FN(cgrp_storage_delete, 211, ##ctx) \ + FN(mptcpify, 212, ##ctx) \ /* */ =20 /* backwards-compatibility macros for users of __BPF_FUNC_MAPPER that don't --=20 2.35.3 From nobody Tue May 21 20:19:33 2024 Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-db3eur04on2042.outbound.protection.outlook.com [40.107.6.42]) (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 76B2A803 for ; Mon, 3 Jul 2023 06:40:35 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=D3vU2yXnRPwYa4c1W2p00Fh++yhC0pAmD8pPIF4wsW1v9LJHIX/tGKFOoOco5Kjt67Yx4jJ91cusv7fCLUmLElsKWHfq01xtLHlfw9Cq1Q3xqMfTc1VvjCYqwx7ARPwUX51AebrCm/dx8HWFKpJoxETKHPOlx4dqS/4DSlQ/IRKD5Tt64ACpcTD6qCVWwA6tCO42KkYqLph6us3J9Aez8akIMJEr5hcyu+d/oB6JTiy2WEv5qd215hTs5G8zurOO/UFOgZMlKL22MOsCOg38b1O5kNFquY3UrfGb0u1VxjYpV3NxWB1UAugYoTgelb9QuYg1i0GSPghDVKXsHxMlCg== 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=PH6bP1094r29ByuFTJb5/07E/YcQe3WKZg110OvNdkE=; b=Bxgf6jwdO34oCNnY/kbJhjBMcTo7PLnlsfOXoH/e7bnvPKKKl00zIbv7qJfsAeCB33moVaFBSYfKBA9HpOCBegY1bHnV1ndkDpxNEXK0bh1DOEnse13F6VMSEdN2yTy/09Ghger+M3AD7l4OkTjk5cf0agG/UKzCpR5gFkdQtDkRDeV0VNkzJldf6/rPyurXjphnwFouF0FjCF0enlnV60C+pQQBgCWfckYxPc28qTWa1fr1hsbWQmfOC+CRElDkbb0HNUIQvqlicJ3oXQ2O1X6fch6EKJuiC1sL8I9hKVFMu4x6Cwpysg4V5vxiNSSuTC8ugNbFE0ctql+0K/oybg== 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=PH6bP1094r29ByuFTJb5/07E/YcQe3WKZg110OvNdkE=; b=hJrBQ4PZeQLzG5GTLpRu839jHXTumsn6n0kBgyU1t77mA0BuofB+nsB9D3+EjDvZcPSKVsXpu47vZy7UuSnsr28JVJky7YiVCWKwKTDBMlYTUBBsYYGNwDy8L8MTguM82vFwlThNFuz/ykIBhP2ORi/OPVF31vUmvJT/OWB7MnjvVevp/uq8ZKMA4xvp1D86JhHiTa5K8LAWI9GoPD3nD3l916X3mzYUYX0rqXCXh5Pct6Ok8Wj9FsEkx+kdSHNEeOCrN2Sl+TYYi8Qm2hSdutp7iYgDVWk9ySPejeVc4CuB+QVmsd5UPOwV2DYJc0L+FhJtWv1afCYYRnMIObPEjA== 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 DU2PR04MB9524.eurprd04.prod.outlook.com (2603:10a6:10:2f7::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6544.24; Mon, 3 Jul 2023 06:40:32 +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.6544.024; Mon, 3 Jul 2023 06:40:32 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v3 4/5] selftests/bpf: Test bpf_mptcpify helper Date: Mon, 3 Jul 2023 14:39:59 +0800 Message-Id: <97e0a030557e9693280e06b581c39b0efebcaab3.1688366249.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.35.3 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SI2PR01CA0006.apcprd01.prod.exchangelabs.com (2603:1096:4:191::14) 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_|DU2PR04MB9524:EE_ X-MS-Office365-Filtering-Correlation-Id: f928acce-6240-4306-7dc7-08db7b906664 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Qn96HFnCuCWPfvt0gfLp4Hy7JTwo5E2IgtHrprZNx0xXVPYL6uWiW/guKnL1IY5cgPxF5s4yL36GGgW+zt5VV701vmgcPFsBfpyoMaN1diRgh3wUeka8aukAiyQoCFxKX1QpG7i8VHcfJvu6V/iuBrpHOjkjN4eJSaeion/PGdAN/g58qh0K7NpHT9z4WcSSXihJ9eiwU0uo2LX5+QkNLQ/ybXOPZ7Qiv3/gjkDevOZOGe+EnPepBeP2HMaSWsZeGpdcIA7bPGZHj+39JNE/RlhnCLkwn0OFd1hfpBfQ5HlLbNQEM2++PNT1Nfn2CZAiYWNrk7b4c/y+u6pJpmMz24pk+J+9I/WatY150u2OqptW9DCmoF1V9Dmi5p1Eb2BF4t/8XDXV7SC17jYDM4smg4SUTnbhPgBwXFwMpweNfIKGZSUeG8szPgDEZo9UBxTNoPteJxh9fwgaABmQ2TFPfD6yzFa5SV//ua+lnbufdc8tBKFKnfUvvbKsQ+k8kyuvl8w0F1HCY5RB3KyKcgHfg7nmy2hiobnd4arrWdSacKpfn5Cal3H/xJbL88NfEtuH 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)(136003)(366004)(346002)(396003)(376002)(39850400004)(451199021)(6506007)(6512007)(316002)(66556008)(66476007)(38100700002)(66946007)(6916009)(4326008)(107886003)(2616005)(186003)(26005)(478600001)(2906002)(8676002)(8936002)(36756003)(44832011)(5660300002)(86362001)(6486002)(41300700001)(6666004);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?i/lZu6MtF+L1/l5cfU/Iq6Oc5Zpa9zMwKZVOGpn02PV7t46qat/wSmW9FW2X?= =?us-ascii?Q?IZJ4w1pnJsQfn//GA2BxcjyRnUGLHQWU8Dx6pNGfGWXEL7OiSINiUvZQt/6U?= =?us-ascii?Q?7yy7i2r8GMHoCP8vh92L3mE/46Ox5GNX2vyemIhG32LmGa+nApxf1uKABYaw?= =?us-ascii?Q?Nly7+6/E+1RrnfYh9RxguqTu7mb9EBxjsZEcRHYW9lvd+NX03sG3DEox8FG7?= =?us-ascii?Q?2rOzcVCN2zldr8WZt5s8bQY34/h0AlaIRFFCK8ZXz56FPG7O34np/8jw+lRW?= =?us-ascii?Q?TOphf2DdQu86LSBUiFxCFLIOeymBwCGT3fqWmgMjfSZ/BiwXgAnF/DnIK86E?= =?us-ascii?Q?R+wG72MsxqqgzrMSN+Ira+Gmw8jJT22p9K2FfmUI8TSk6ASaNkMqbjM5kr7T?= =?us-ascii?Q?kcol5Z81ZTW0o8wrOWpdraaxuFjCzZap2R2oJ3JIQC2gGsU1ltqW6tMiZZVh?= =?us-ascii?Q?q+F746bdl0+2gr9A7PV+EVZmuCz9I+w/MbODhffOwi6kCqgXMfv3K59Bbf+1?= =?us-ascii?Q?csV7CttwTn4wYZHIHsCOkbOqMoLxruhmkjTgbaSwiLpKGuA4/M7TMa7f6sgS?= =?us-ascii?Q?msIcuXJhYKqGSKzkUdAvDvkZxFXjRAyhJE2MqdW/i9okibZ7FFoU0s2MtSD7?= =?us-ascii?Q?6L4dbR98/3xZPqB66ZkOIl3KWKh1OAXwcNuY1xoQ858hTpcExVayap3+SD1g?= =?us-ascii?Q?uvtWYaHT5/Td4LHlRem3Jc85Arj/0MFzAV+fY2nwm+ESjodb/ufNwROAwQFA?= =?us-ascii?Q?1Ou0U1CjQ8iihDq6Z7w9vzyZcHwlb91rYID/3ofFIpnPdv5MLDf2J6f1wGUg?= =?us-ascii?Q?WZjalFZLBvmXPAkJ2m+3sNCvZgtCqlIPun0Lkz/IA45Nc7irgpcsleYQ4NnY?= =?us-ascii?Q?sCQ/LdwDshs6y19J1TSklv6lc3EtSydwPPEcxO1wR5WamEMSwKStKpQwLgQj?= =?us-ascii?Q?zTXak1HKq33vyR6D7G3EUk9/5/gBZKFUTUxUoVRf4ZQY4mHkJubl+45Hjc8o?= =?us-ascii?Q?efVXOZ4/JWG6ESPkMwDR0wspQiuRC5XPNxaQ32/EZw3ZMwTtZbezw+32oCDk?= =?us-ascii?Q?pVQXMaaYJyCrjK7pbAxmX7WJN5pUWpWePqkopbcb312+Vgminb1/fK1Nzfrm?= =?us-ascii?Q?u+vpdO0+03rVaGQxIjW69lhHbthb99SgpIlspu0q8jw7xvs/BA+CBHkNlZpn?= =?us-ascii?Q?n3WK3181L5uGPy3Hhl48FMAFezB3+Lz/9ABghkXEWhHc24JByeZuQTk1vi18?= =?us-ascii?Q?R6CFpHSKlf4NbX+kt5AnUmumAcoQdJMrJ519bscyIpietkvkOCR6V68kZNZy?= =?us-ascii?Q?mLTKPYQ5vFkzJS47zzYs2Y4nXm1rNbTo5Rui19lI2cvVW4RhPw3BU6LF4F/x?= =?us-ascii?Q?Q8MOcS+QI9y50d2KtPkkhjjhQmv0hiSb+IPTwyX9FhRF6uAKhlsf1XltW2qW?= =?us-ascii?Q?fgvIDda2b1NNbzAX9g2eJKLwJqrw1N86ZLzFft1vXzjwcciO5oPvXRwMfkRm?= =?us-ascii?Q?ldiiuHrqVF3kXOT+BG5NUmB89tP8YsVSfW0hmvVV+z7qzeMSVcnrWlv6EjTa?= =?us-ascii?Q?MAso8lZjcPiO5Nst1FmODvGmILEPY6e6w/OzqO9p?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: f928acce-6240-4306-7dc7-08db7b906664 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Jul 2023 06:40:32.7462 (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: KoSx4ZoN9rpouIsZF3f8F3lVeewkQEOeCUYgXFF3iLZLxVYbOmmoEzxBfeip2O3WMw90LJP/zcweL89I+p9Drg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU2PR04MB9524 Content-Type: text/plain; charset="utf-8" This patch tests the new helper bpf_mptcpify(). Store the new protocol value after invoking the helper to a local BSS variable. This is defined in a 'socket_create' SEC, so it will be hooked in the newly added wrapper socket_create(). Signed-off-by: Geliang Tang --- tools/testing/selftests/bpf/progs/mptcpify.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 tools/testing/selftests/bpf/progs/mptcpify.c diff --git a/tools/testing/selftests/bpf/progs/mptcpify.c b/tools/testing/s= elftests/bpf/progs/mptcpify.c new file mode 100644 index 000000000000..18078c1d351a --- /dev/null +++ b/tools/testing/selftests/bpf/progs/mptcpify.c @@ -0,0 +1,16 @@ +// SPDX-License-Identifier: GPL-2.0 +/* Copyright (c) 2023, SUSE. */ + +#include +#include +#include "bpf_tcp_helpers.h" + +char _license[] SEC("license") =3D "GPL"; + +SEC("fentry/socket_create") +int BPF_PROG(trace_socket_create, void *args, + struct socket **res) +{ + bpf_mptcpify(args); + return 0; +} --=20 2.35.3 From nobody Tue May 21 20:19:33 2024 Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-db3eur04on2082.outbound.protection.outlook.com [40.107.6.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 D5A56803 for ; Mon, 3 Jul 2023 06:40:42 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=P2BygcxQbVsUUE18sYi3rTHmAnPEcN7rH7fvCtCIuiHzBW670YLnK0SeyooKScSY7LxDNFjohMVnzpb4uHmcEDpIQMi0PZGq72pNgt+Fu3oCW+s7njctHL8UStwGdGBiDr8JFBwjUrUKDJ6GbyllwPx91XXTaUoGyW6Nz6L4u2xBkhg3jk6OzyExHpLNW5gd/u/InQu6nQGRpzZ7nGI7nWf7si0tce4tY4kV7UVw3rxQhHvo3M1WTmzyN6W6e/lrlxGIfd0sMLhr/DDIXuLQ8ajEHH0Zl4pvHBwiHnGZJeP9BDhpBKI3t4Z+Zj/Cd4agRwCu71m3pL0/Zx7QqK4iWw== 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=9UEtpas2l98HCoZRgueIDtGoULD5dRKZzMUnJUl3z/Y=; b=KZ5N3WnhYQskHOPkUWIuBvUtG2awuwdvSyVKg853ER3IWg+9MPEb1JugyKprrBcLxyBoS0TvejBa5tz8OjHERqlM/gDpJ/9Lur5wvELLsIcnrG4IlgeWcFz6sfhV7pFayVue8s0XoOtuWOfLYPz/RSZXLP8gnFDCQWaz397zPIJYUjbsfj8bAU94LyYAARuC50PDgn1Spl+8kM/MXQU2XDYFnj1IkXFHRKZDdoTbFanQaRGiVC7sy4c+vfs4n4xju/8HJ1PZQkOqXvsWfge15NEZqxcl6E/GAaurP3HEWafJBBXZYiFy0Lz9miLTR99Y0ERVC4yOx3ABOfuRgkGyuw== 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=9UEtpas2l98HCoZRgueIDtGoULD5dRKZzMUnJUl3z/Y=; b=L3grCImAPs3yDYlEKRs4MLZxYqIg0IAKJCdbE5A6i540w1+WZTfDVVPeb2HNHidyA9R/kYVRnCutzpyL+VG4qECg0PfyJn9XPdXOPM89RTf2lvnzoOrSM9FsXcjt36l9fQJT4m3aYQopKUN59fic39/SLejg7iXsn2F4jpjYTBr1ZuGM9VzBbL5b8wM3QiazMLN2ZX506NsBvEO45I8pXM7U2hox/7iPH1fV2PoCoadC59Q+7+495eGKJTgIn5G+n7WwOzJtoUV0h1oe8R5+u2JWpTnmx2ngUix10QvVtlPjMcu7TdqtF96jco5hkkkcooFb/Hs57co/52GnZdVnWA== 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 DU2PR04MB9524.eurprd04.prod.outlook.com (2603:10a6:10:2f7::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6544.24; Mon, 3 Jul 2023 06:40:40 +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.6544.024; Mon, 3 Jul 2023 06:40:40 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v3 5/5] selftests/bpf: Add mptcpify selftest Date: Mon, 3 Jul 2023 14:40:00 +0800 Message-Id: X-Mailer: git-send-email 2.35.3 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SI2PR01CA0011.apcprd01.prod.exchangelabs.com (2603:1096:4:191::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_|DU2PR04MB9524:EE_ X-MS-Office365-Filtering-Correlation-Id: d8f6aaab-e093-4a25-81b0-08db7b906ace X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: RyQuedZRFlFJDkYKPGbtLfmD4AO8yRxdJzVr4orZxFOgb9cXgVhq0ikjPbv+Y0hHV86G8hX8s3fdeNdXYrxKsTfqnPc3aAb23Al9lxGTokjvGzjvDk/rrrsl3aVT/lLO1e6ZHWj8U19EH2EYcY6iAxhMo/cZ/GOACXKKzYmyiSGIidzGp1oLIBynenv3ktv7o7Ufig7A/1QBLfipz43b24xTaPpjQiTgZwJ5At6lJ+Gb8unNixVXvBCRYTYCa4V2vZlUKFlDsnMJyXUWQ59WlFRxKV+UkTqlNJx8ZdcT0WnDbgeZccLM/hHKaWUJdy0M7vAve8jLzJDBjuGlz4KVkbu1eX3poBybmdbNoHTdZC+72G6S4DmHGekjvQft1NvKFW8AIysTBc2kYXYjKXTxDQIVhqlnmtBzI8EdSs9pbkVxDxm07VivVcmvz6MSyvwlGmsR1UdkAdHIknWTR6uNRvqmCH4R7OahE65wP1vj2aiu7ajP3O8H8qsQGeb7b5qWn7pomSPbLfpwM/zoDeXCjOFNID0wkzfqqnA30tyaEqpanasnySbP0KsdPf8Uze82 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)(136003)(366004)(346002)(396003)(376002)(39850400004)(451199021)(6506007)(6512007)(316002)(66556008)(66476007)(38100700002)(66946007)(6916009)(4326008)(107886003)(2616005)(83380400001)(186003)(26005)(478600001)(2906002)(8676002)(8936002)(36756003)(44832011)(5660300002)(86362001)(6486002)(41300700001)(6666004);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?rlPoI0rchI4z2+98KUNg6CciSgS/blwvYJODCDxxru0W1hbltyWNyWq+lx0B?= =?us-ascii?Q?vJbwJai1Mn9+AQ8O2+oKp7g0F8s5RsTyAzTp3PR3akKXOH3iNMbvxLfG3+PK?= =?us-ascii?Q?/ZLPvxGTlUlGfmAg9K1CMOHEI6d5Q0iKGqp28/B31f9+WKN2DdhW+bjd8x6T?= =?us-ascii?Q?GxOptCjkfaERinJmYpvTZL1LFLBkeUNjkZg3PyvcNJ51hdOxdr2m09oRsg0+?= =?us-ascii?Q?VBiK15jRSfkgk7FvntBYYz0oez100EHDnWtGoXcobql51taIUA4iwzwfY/ix?= =?us-ascii?Q?nmjfVt+/0kz06IzqpUGzRIEzaGUZ4JFFW/3RG9owunbG3Sc0hq0T5tkbBjm2?= =?us-ascii?Q?7Z/z5qm3SCXllD1xxfXisd67ShrbGy8KFx7OXnY6or/RPjphfJzM4yH8aN3f?= =?us-ascii?Q?0a7KfhQX1uvH1r5HppqztoPMK9SLxkz29qDOPzqE/VaU/QE2zPnovB5TRvBM?= =?us-ascii?Q?SGokfX9UAS+76uLeNzU0wAVZt0ihkUmk4Y1P9ijuy1CQLk3sJEHM8+syDCCH?= =?us-ascii?Q?ARVmzf+Tj11zD0WxjecgH0yixo6/EU3L/3k/497T42ghrgjKumYZ3DupN7vl?= =?us-ascii?Q?C1LeU4W7F36Js0OKsZ6xU9vs5v3XFqIUp26HrUJilfvFmlOsH8EjvLjDJ2Ry?= =?us-ascii?Q?yaX8JDvk/5lElReldmchjEC3ePwueTS9uRqmrF2L35G7TZFgFn4rt9j5mmQF?= =?us-ascii?Q?h7s2S56DuRHog3/G6CJ8ZTMA8LOWKHFNaF6FoYxAsXOXf5cISaT7ux8CQ1EM?= =?us-ascii?Q?taJwbsbBAhtzfJokZ5DJX7pv7Pyq+jPCqNCqS1omuUiQUqBhZ075KyT2dlgq?= =?us-ascii?Q?xEuRZAGTRQuUkGyKE+rghY0vlmag0Pk/4FAKwy1U4HPxOAgI9szHqDYzc62Y?= =?us-ascii?Q?z9m0taaFNYxavzcMXHXfari8/Dk8H/LuLFg+VvFYyEK0jFEpyem8bpHLBZ/c?= =?us-ascii?Q?pj9R6OnkLAP3Oa/jBDnIX7niaWKsuVCKdfom95SRkircVisIDMWfkrv6Sypq?= =?us-ascii?Q?R83UDz04UIZTZcm6WSofRkBQkEIwriVx7toyMFsrTF5NaPtQYp4VNm5qC8Xs?= =?us-ascii?Q?JFc6+CFqSEj12YEBPcYg854ns8EotI7XeJUEByL+kMMhjty9YEFsAnc4GtLD?= =?us-ascii?Q?eMCFxc7CcM6wYogeg7EHzot0r9oBkNCSekCBl2gtJTgyVwPhYYD/hM55kTNv?= =?us-ascii?Q?JHiK/O+LAh18gAIfM92tCmiLk51X4GaW9KtBw+yH0CcASaVD0koom9ce/Aq9?= =?us-ascii?Q?P6n25Ijvm7aVPTr2bUebZ2tM3vRmDRcSCrcrB5MY66LX6wP+XvUrGO69IbTj?= =?us-ascii?Q?+cgL1hIdzS5kgdDEHpv6els0kNfJI2b+uSzuC/N16CU1E9ji0AJyvHOg7emz?= =?us-ascii?Q?QikEypRSfBogT/6O3JcQuvNk6It93kKLdF7z88D3FAXLMVfinch4m/+c40vZ?= =?us-ascii?Q?AmRyKMcwor78s7ZaM9+s7pgebFJQhwrpua4FtnbuXpt2fLC7zsoWOVBy4IvO?= =?us-ascii?Q?s9gpzBisx5geiojrpCZsdhrePbspvwWcVf/cLlXVPvdmeRC7nFZTELKKIqIb?= =?us-ascii?Q?eo//uCGUiitlZpM/+Wc4tkuwZ2dbfz6zCaKHCE2G?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: d8f6aaab-e093-4a25-81b0-08db7b906ace X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Jul 2023 06:40:40.3624 (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: ZlsBuW/ouKudQQAxjyrEYr4/ZiIUYJs4vL5FNrWIwu1CixHGzrNJObgU1ZnNqPURP0G0vZeW4cAZSEpm8iLpPA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU2PR04MB9524 Content-Type: text/plain; charset="utf-8" This patch extends the MPTCP test base, add a selftest test_mptcpify() for the mptcpify case. Open and load the mptcpify test prog to mptcpify the TCP sockets dynamically, then use start_server() and connect_to_fd() to create a TCP socket, but actually what's created is an MPTCP socket, which can be verified through the output of 'ss' command. Signed-off-by: Geliang Tang --- .../testing/selftests/bpf/prog_tests/mptcp.c | 87 +++++++++++++++++++ 1 file changed, 87 insertions(+) diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing= /selftests/bpf/prog_tests/mptcp.c index e430bebebcf0..ac38d473329d 100644 --- a/tools/testing/selftests/bpf/prog_tests/mptcp.c +++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c @@ -6,6 +6,7 @@ #include "cgroup_helpers.h" #include "network_helpers.h" #include "mptcp_sock.skel.h" +#include "mptcpify.skel.h" #include "mptcp_bpf_first.skel.h" #include "mptcp_bpf_bkup.skel.h" #include "mptcp_bpf_rr.skel.h" @@ -200,6 +201,90 @@ static void test_base(void) close(cgroup_fd); } =20 +static void send_byte(int fd) +{ + char b =3D 0x55; + + ASSERT_EQ(write(fd, &b, sizeof(b)), 1, "send single byte"); +} + +static int verify_mptcpify(void) +{ + char cmd[128]; + int err =3D 0; + + snprintf(cmd, sizeof(cmd), + "ip netns exec %s ss -tOni | grep -q tcp-ulp-mptcp", + NS_TEST); + if (!ASSERT_OK(system(cmd), "No tcp-ulp-mptcp found!")) + err++; + + return err; +} + +static int run_mptcpify(int cgroup_fd) +{ + int server_fd, client_fd, prog_fd, err =3D 0; + struct mptcpify *mptcpify_skel; + + mptcpify_skel =3D mptcpify__open_and_load(); + if (!ASSERT_OK_PTR(mptcpify_skel, "skel_open_load")) + return -EIO; + + err =3D mptcpify__attach(mptcpify_skel); + if (!ASSERT_OK(err, "skel_attach")) + goto out; + + prog_fd =3D bpf_program__fd(mptcpify_skel->progs.trace_socket_create); + if (!ASSERT_GE(prog_fd, 0, "bpf_program__fd")) { + err =3D -EIO; + goto out; + } + + /* without MPTCP */ + server_fd =3D start_server(AF_INET, SOCK_STREAM, NULL, 0, 0); + if (!ASSERT_GE(server_fd, 0, "start_server")) { + err =3D -EIO; + goto out; + } + + client_fd =3D connect_to_fd(server_fd, 0); + if (!ASSERT_GE(client_fd, 0, "connect to fd")) { + err =3D -EIO; + goto close_server; + } + + send_byte(client_fd); + err +=3D verify_mptcpify(); + + close(client_fd); +close_server: + close(server_fd); +out: + mptcpify__destroy(mptcpify_skel); + return err; +} + +static void test_mptcpify(void) +{ + struct nstoken *nstoken =3D NULL; + int cgroup_fd; + + cgroup_fd =3D test__join_cgroup("/mptcpify"); + if (!ASSERT_GE(cgroup_fd, 0, "test__join_cgroup")) + return; + + nstoken =3D create_netns(); + if (!ASSERT_OK_PTR(nstoken, "create_netns")) + goto fail; + + ASSERT_OK(run_mptcpify(cgroup_fd), "run_mptcpify"); + +fail: + cleanup_netns(nstoken); + close(cgroup_fd); +} + static const unsigned int total_bytes =3D 10 * 1024 * 1024; static int stop, duration; =20 @@ -459,6 +544,8 @@ void test_mptcp(void) { if (test__start_subtest("base")) test_base(); + if (test__start_subtest("mptcpify")) + test_mptcpify(); if (test__start_subtest("first")) test_first(); if (test__start_subtest("bkup")) --=20 2.35.3