From nobody Wed May 15 18:20:38 2024 Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-he1eur01on2044.outbound.protection.outlook.com [40.107.13.44]) (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 81D6215A8 for ; Thu, 29 Jun 2023 02:12:28 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=OvSz04o9k+3BJYSinY8yzYoB9DzJ7Qc5594dPB8M2nVaH1u5JHIQ0+DAQVaGK9r66T5J4bvibqebLkDFr3DA+yDcEhN0eN+hfmxyRUqaZFHQ/TmW7yaquZddVfsNG7DOo8GxE48aVtBqe3aswn5JPsjlseSDVSsisrXAOcwRuxoLvy1TeHqG1gr9F0ngrFZy4GcpcHQBD2hM4lXLNQdgYod5Zbh4IQCpFwtxykDF+auV6Ca2KkWmKFmw90+fyzJDcxy2klHq5KkokQaVvFwIQiwAiBSAFjwu1CrzfvfMUgG5Fv2wXIOceeIKNIoHPrcpP9zguNZttsrQi2r/+78+kQ== 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=EwYy/8wEIhnakHe94yP0rgFPidm9r78XDKd2P1vgnfhG7sa0u9W78+24wuBcTlC/joPrmvWveuicyFLwYq+gKq1DaqoxaRoZnILHnJF6ilXCfaUiHBpCoNX3M6L+8o8otL3Q+yZPAue9zxwJN/xmvG/7he6X42N2iZs4Qvvmg/UlHEPdUW8JyehFUlmVzBeXx5hGvP3Xf4P8U4p+fpM2LZKHbx+VNwk/3/ajUlGiv647H9S4q+mS2Y+tJVAnx8isfBsJF2n01F/cis+HZWqnsNw/KPa09uY5xhxLtusnF8Wi6vUbtq+rX1rr72m63q5jTKSRaN3E2/ByduI/y3cQJA== 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=enslWa1kBqHpVjG9nGGAyHo8ttTw7Nb6bVV0mn0v9/58SYRvRSHLysWzmaSgZno+gNhWeDrma2Kx0Ib5vMDJniEenDgYO2L6bG0NdiLsh46qFXLHO9e1vG97XEQKSZPpyRq+6uQd7uqoCemImFaH/DindSgkKd1Jqs+zac5UJ+4skdY0W+zOQqvk7qQBf4pK0pFLSSZAgoErx/WInOKRtkQ0MGrhhmvfqoDDoYDe8rziINUBuqr+K/5rCWFDewg9vX9fK5y91HB8mLUOFMkEgAbBNFv6KHPArHiZIJNbNuv3ubVTdHSXayibIlv+IHKjf3VHPy+tccKtrOq/MolCpg== 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 AM8PR04MB7763.eurprd04.prod.outlook.com (2603:10a6:20b:246::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6521.26; Thu, 29 Jun 2023 02:12:26 +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; Thu, 29 Jun 2023 02:12:25 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next 1/4] Squash to "selftests/bpf: add two mptcp netns helpers" Date: Thu, 29 Jun 2023 10:12:14 +0800 Message-Id: <761e6b275589c5a9d34b60159b82799ba8fdfc99.1688004307.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.35.3 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2P153CA0045.APCP153.PROD.OUTLOOK.COM (2603:1096:4:c6::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_|AM8PR04MB7763:EE_ X-MS-Office365-Filtering-Correlation-Id: 235a2486-1650-4d8b-7e30-08db78464832 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: BExxgo/Qt3UKqncHAi0GYBWpMbNrpz/22tNCg2PfrV+HDJ0c7xEPgKG6Z+JxjcgtyjfL4l+jdt4FspSiCOIZ3mVl1X7Ym4KJCshu3DbvrfuIrgQE2CYwL4SspvkvMuk/ZTSn3lgZ9Jf1eztbMx9TYsGPfYT+ItuyHT8r0pK4d4bgM+suoTRkTnJhfVrS1e6KoleFuns2Xu7YPIH4ptOL1oXTABJMqh6OEM46JxSrqOw3VggUrJno7AKVuMPzZWH41A6RTIZiFBXlLF4HdtJ88NQha1O98jW2a5Yd70/omLN73qhigE8e5/Q3AUolvn1uzLHYeTNPhh9D8Z6NEyWYyP5Yt+xLjfERWxCBQsgyVKCblFahI9NJwbKmtRmSKwPimJwiYLqJ8NVOAFPH+j+PBSVw4oH3OYKEs1EucqvH5kXC1u9v2L0UV2VUNZ7qHsuKX/NNER/LWAO7cyfTmy8QQsoD7d2uWU0gyLMa9Nv8AEmuoBA2dI5LI5TCQxcgfUK66wZ3nvXeNipIFJcaltZumXXNsPRc2bvDsnwHwYpVDEyErvrl9WG1Yy2pgFOsgAn7 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)(376002)(346002)(136003)(396003)(39860400002)(366004)(451199021)(6506007)(36756003)(66556008)(6486002)(107886003)(478600001)(26005)(2616005)(6666004)(83380400001)(2906002)(6512007)(186003)(44832011)(86362001)(316002)(5660300002)(66476007)(66946007)(8676002)(4326008)(6916009)(41300700001)(38100700002)(8936002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?wrqg0eMHiksDWJbksqX8AwwVA7gSa+mzj/MyUekBdY8SOHP2xylz71aWOMrS?= =?us-ascii?Q?fOsfZEtWJXBnsduG0FME/WTm744LVA2PCVs54lPIX2bqjFOqyavCpo1UdZUM?= =?us-ascii?Q?jo+2WHISqaAkYa4y8aCfZOXXSuI1S74cv0Z0G0engL6vBP6Ecr1W0ou8wPBl?= =?us-ascii?Q?Vqei1UxK8c60u6M74sYOUB/HljeGO24eBFn74/4Gyzj96zd0sa7+bdNXA7qQ?= =?us-ascii?Q?gaq3O1VfzufS5a3TpEDd9BH6jeiVK7edD89imKFCah4i7/dT8WzOhA27ncrr?= =?us-ascii?Q?lpvyQFbZwy6JvEeVNo3cdvPERgoeHusOe9AIIpwl+ubdaGJNc5sLHgvf9MXh?= =?us-ascii?Q?NgV633a7wnVWR+gqSbanBlUewZUVnniDAqDO2PvLpXkmDJUwYmfm2f9tPI2x?= =?us-ascii?Q?4063VS3Vf9SUJxuhirCZS1CZsEz1vmHmNsNQoSpXwO27ly/HkC5hH0DBcl3W?= =?us-ascii?Q?tbteLJdUQqtCjjrsgeKG+C7uB0CplmE17P/ubrhLh9fEIYJC1TkzOE775c30?= =?us-ascii?Q?d+7uO/W+uGghkCUZ2/B9f2kTnbzpsFMoRgI34NHyFSJmqLPNMAH07+4re6WG?= =?us-ascii?Q?uVvMUZs1hal2ktbECeZmM8VV1s2V6W29voRBnfyByPi2iMtjZpzziy1/AtWO?= =?us-ascii?Q?yOIxGSCDcbWe5+rfTSbXmnE73MKbJoktMuwWKmD9X62H0YRbrlPi/zwqHBih?= =?us-ascii?Q?zUzY+8nsRhhdyGyz+Ba3vcecLOwvayJZgD1Lyz9xcF2a9mmIggD26fJp1RPy?= =?us-ascii?Q?1mT6Ngle56SVTMLFzLlpu00kB0uLmeaRRSwfYmKWU6KxIpRHpk582SAI7YFo?= =?us-ascii?Q?hIrzZ5SoEIHiY9GjIoqYeKADF5HKL4iZKqKhWfVmo2WCkNicNrD43cmrHvUB?= =?us-ascii?Q?fAX+vfJlP4K3nVptMH0Y8rp6M5q+AD4o3P0WSW+h1ZGxQYmhj9HnzK4KK61y?= =?us-ascii?Q?WHBmBwe8Njxf8armJOkU9uMePwVKtIyDE9AHgsuqDbWys+JpKuv/KVw6HHYU?= =?us-ascii?Q?BQ2PGeGMOeg1scHnjq69vJqCtDTigv0ExuntxxtMfP48juvSUB8BHaJSCOIt?= =?us-ascii?Q?FqKgNOE44mlUlwUIeUYYhNn2PaWhwWHWqD+RgdTpz9X0jB7506Hk35FZVC78?= =?us-ascii?Q?qcXu7NIfO69rAE5apmyo9k77pQ0gd11RQixcnitPV/Ncq70zIVL/bX5/06Ms?= =?us-ascii?Q?4H9DW2sxiJXsAX7VLx9lIGvAc4bri9KLd+23FdLsv5QQrixqp9j3ml7hEchd?= =?us-ascii?Q?aXOyQbKnngLAMLLt+EvyBkKAP/6zaasMy1Wp5UAOkLB23RUzWhJSv+lY9VZs?= =?us-ascii?Q?Kb3J9eclpDKO81bBcoEJzT+8LrvlAOhA8DpJCMd7ehrv7ahdmOHeUMOR5Ef3?= =?us-ascii?Q?X3CoALLu4+cVsB6m66uJrxsJkPCbpknN+N08Oj5Bl6EXgeptu+xYAuz8fiBp?= =?us-ascii?Q?B6UcUpbDF/sodNH7gfOaaAsLc+3T3BHr9/TUsnxPTwvRoPTftHP1yRD68DR9?= =?us-ascii?Q?q27c8A2e5qF4klt/jkwKxLSI+p9HIhhaLz1cMs6fNg2acQI6M4d5G0IVUxQS?= =?us-ascii?Q?aY8Sz4Hag6Z+DQuTasPzEok8IhJul9ayBDT6DZVw?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 235a2486-1650-4d8b-7e30-08db78464832 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Jun 2023 02:12:25.8416 (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: 94CpKDIVSh4SCc+ObSracdwZ4lddRzOxYSsN1txh/P274rLVLkF3ivWsuNMlNnimAWAdmikJAX+OscHMbNZ8Mg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8PR04MB7763 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 Wed May 15 18:20:38 2024 Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-vi1eur04on2075.outbound.protection.outlook.com [40.107.8.75]) (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 D12EB15A8 for ; Thu, 29 Jun 2023 02:12:35 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ioVuaS50H8d3NOqGwTQMcSbzORBUM3Uj+9vOcv6ZlarplOrR8+4utdfFiZcwF7eVq+Lon8Z0p483PRAZ7thSFrCcaGVZxpwMeYE4Rq5f3Aep7jLjEWi0glSjLJyngANajLZ1R2AwhXlidpY7uOWfsGQjBGZmF8FVqhJbXUBRfaooi4ahMc8jDloDs8GdljxPlmikw6pQXZwR/fqscT+vCCmQdWDfi1Wbk+4fjwQ6QXFN5SsBoDw9f67vyRee32GI72s50JXF1p3pbEB3kyzPhtvkYBNUhIGd/2tGsnnp70oNbFXPmNRJxQ7MeggbLrHzIDcgZHK6v8AOD89+RMsevw== 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=/AZWCo/UuXKr0hjg1LXBmOPEoSb0iFQlegdcbPvHTpk=; b=Ttx1UtSkGgHAyjmbUihVT6aaduAliEpXlVmF5uxmLpCsv/JaEgxRoCS+FjUZOld2zQR6wZoughz2avH2WmIY0n4/vTybZSHnyj7aVEB0p9MCm65X4p0BUwFhW7fUTvO4QWfTqCuP7pzlp6ZniFuYYKpLFeYvu7T85/PEzLCcdzVmsCUNSRCnoqQtgJ+wlQEhlNBfbLGlPcr2I2NT5/JTXLDpcx02WV5rSQbgKqjdG3eL6L9kEGwBHZk+ty57yY5LYs8PMlQlqi/VmPaA9NI8uho+3x7bUiYoJYS+vCu/pOjERkvIQ8CYFGhfGqj3CzBymoAOaD1+zzliBiEc/Tq/dQ== 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=/AZWCo/UuXKr0hjg1LXBmOPEoSb0iFQlegdcbPvHTpk=; b=oHdSgGrWSLwvmMAfmfXpgTJzQWAZUooDHdSxvI7sPJ4lpOgayKvGRyCUHNFVjI2k7yIdPidkYHAwBjdAyOyg0pI3ltbdhT+3fEowSPZArb7jzuq0itNeNPJ944gZDLa+Nw6nfRJKwCLdjcULsZrE4s0167vQw2og9IR7KGo6AbJ0JdRllM5Eas4i5xhbQnR1cwq+YDzHpPXrMgleui6hgPZszQqZ/eKfoaLkH2PMCW07QcNg0OwGIvcw4Tl++Ge6buOCRUYDLFR3P6sD4g8QvYjIzUi8v0LM0IWWqybDPD/dSv7JO6/5X1VJ3SydjSenx1phEPRe8uQM3bFQI16e9w== 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 DB8PR04MB7049.eurprd04.prod.outlook.com (2603:10a6:10:fc::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6521.26; Thu, 29 Jun 2023 02:12: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.6521.026; Thu, 29 Jun 2023 02:12:32 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next 2/4] bpf: Add bpf_mptcpify helper Date: Thu, 29 Jun 2023 10:12:15 +0800 Message-Id: <53359d2572fdd676206c35d29e823e9dffd5e9f6.1688004307.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.35.3 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2P153CA0040.APCP153.PROD.OUTLOOK.COM (2603:1096:4:c6::9) 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_|DB8PR04MB7049:EE_ X-MS-Office365-Filtering-Correlation-Id: eb86578c-54fd-4eed-de33-08db78464bd1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: vCrGaMWT56CwUWTkiPaR8F3CLolQ6EAi0khxzRlhyOpBAoje6F8qzTU3btPs1WsYreNbEwCLepcizhsTppkVMKqe9qFHB3Gp0WiBw5RSAiDO/liooRFL1m6XuGicJGcOGbAq1Vs0frVL30kkygHHzs8WQQ5JKo63DU8giMiy+ZY7RwRlouY9znQPnu3Kq2B9m8IpSCz+iJ7wk4SSRGwOAKTguNmSdPjAeYx4Y1ZdYdOGd/I4pClgg226emWtp/fOqkW3NWcli1+0gDaMxIPMekK4UbTeqKpMHx9lWHGEteN2kcm1e8CJmxYcTlLLgrI6IUAfoK7v2i6LusXXV+vgXJOtJhC+9/OVwaTTKadrapVomAY0Hq32ITWriqZTkAfSErGfMxsXPf7Ic/MM+ClCYQAT/ila2IDsH6r0KfNd7nLbLnVODV5xCB2ujNO4E6DBC/LOaGFqyEcPiQETPeHNHwtWH0oltR/B9ESeIZgKErsm1YpqNuCZWI0eZ+MdyFyJmI5mhzTZJ5Bj/E6vpKE5KKVsSWIlNSR5eqsB0K/TigjoOt1Y0/KMo6hBC+B0lyep 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)(39860400002)(346002)(376002)(136003)(366004)(396003)(451199021)(6506007)(26005)(107886003)(6666004)(6486002)(478600001)(83380400001)(2616005)(2906002)(6512007)(186003)(66556008)(5660300002)(41300700001)(44832011)(66946007)(4326008)(316002)(38100700002)(36756003)(66476007)(8936002)(86362001)(8676002)(6916009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?VvMO+793oZG6gZRk+N8tAQG4bEdk2qbxQjSIsKm62W7eN1G2SpzoutSsjtlR?= =?us-ascii?Q?LYV55BUBWvfSiDKqWMTW0znSq/gfzH9rQiB0q1qusoFrs3ETO3jr49Rm0XXe?= =?us-ascii?Q?SG0LzdYE8vORfVdeQuBOpWvdIxdiuosu/2TayvU1ZHB2BES1BihqPm55D4Pw?= =?us-ascii?Q?+zsg8Nh2OCjnHF3PAJahbFmaOBoWgoAq/SWetmpR1b0w0wd3t9TFszz6DF8a?= =?us-ascii?Q?a+lbyABW288ep6QkgwyHYW9HWEtO7HLV7cNWFxsPAGxz41NRvRBwL1WsaMiQ?= =?us-ascii?Q?HLAOYL0b+kQAOCbetJxbn3No99pyIBjVOfYRUg8+xFtPxViSATRi0YKWouaC?= =?us-ascii?Q?HFw5h/upE9l8VxpSlYWD5u1ca3PM9HTF+GsvkchdWjOKrrwFj2yoeDKgSRPN?= =?us-ascii?Q?d4hpmpwWR5LA+yp7nD15NtxA95petErv8s4xwR6TFQ9hLaPHsz/p5cnCBXGy?= =?us-ascii?Q?9e1WaHXBPO4zFh98Y1mivf3eNRC05Pjok+c30uRsPQC8a2zId6fRVvQW+FLk?= =?us-ascii?Q?WxSIK5dyMuo77IbCPR0wqyYTmIOvvYxaKhJal8MavJvxgtUYri7CiooOgdJi?= =?us-ascii?Q?/MYtNUjRwm01/4/8tfVYryffK9zZ0Q0oRpw87c5GpaRZGYwpbg8fo24FRoGH?= =?us-ascii?Q?Leh+jwmwYDl6/JibvEwYezr5dI28C4eRUDyhmIAMHHh+FkKUvkMJuGbns/vR?= =?us-ascii?Q?XC1HhKSDOuQnT/9IxVkzdnpM9RagB1hsarBgWKN3rBlgFntOvBzuBm+vegsN?= =?us-ascii?Q?u3YL4fb98XBySTAwoLKdFoAQQAg/1pVNBNrySGEGd8O++FNR2pGqc/wiwrpe?= =?us-ascii?Q?SIq5ZzcFkou4gxpmVQ6NvA7tb8GvQHnNwHjRSbx5MEH5unYOUndXY1KEY59R?= =?us-ascii?Q?UzUNywEGIl1XAw76qOP9/JBRWaKs3TPDb2wxTQ0+zsAiKFNn4mlRUbZLXHrK?= =?us-ascii?Q?C7kzQg5bO/btnQV87BIkJf/RUW1QB12dHWVs6GkPnsneHuFRzGMLk3mXMxvv?= =?us-ascii?Q?I7Aa6QdJ+JvyaseAAs1eszQ0dUwfBQ5BNsYfG0FDEMXSu8eO35nBt2+D/vzE?= =?us-ascii?Q?8UI0hXko3gyrc8cM5u4GvHzEn7aMENSLs2ja8qFoOwstbk3awyEmZykdioZB?= =?us-ascii?Q?ouXdN6J79c2cOtlzAGUkRKPOcg/gclti4zVIgHKXRP94Jl3+DBIyPP/HUDvt?= =?us-ascii?Q?nfRr2ZCU1JjwpL4hcadGTX2ID0u7JPIgoiFKzCG+9AwVHCZ7Ca1F8/yqW4oV?= =?us-ascii?Q?5Ps1/zNDgUWaRMqG6xAmJFWT3qr4e0ojDS3FIFB1a5s3XjtQdY0z3R7DUXr2?= =?us-ascii?Q?DTjQDe1iZtxW3vxtVouNvtNY6w+dYdkVyHHiQ8pW/9oraugC1o4sDCCFF+Ot?= =?us-ascii?Q?m/AiphuoTVIM3rBr8AGt3jIaiJBJzsAOhtbPAwt0P74f5+mh4ixYHbgoeoZt?= =?us-ascii?Q?THWI6ooXGt7s5q/lt7Bbx28/fJnhTq3u6iA7Yw3lqBvgKlR0ppveKOczXWdU?= =?us-ascii?Q?crdCLMP+bXiU4WsRDv2UdDpGsTIxaefFcuPyOk0DcXPZy5SXwOgQZVkq5ykg?= =?us-ascii?Q?gdPb9iSAm7rY0Vs4UdMFyRsBeBq8jfAmW6ulQM+Q?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: eb86578c-54fd-4eed-de33-08db78464bd1 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Jun 2023 02:12:32.0818 (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: L95LRj+QKhIXwiwfVRAcT4IQ2liww0ROWCv51qTKwfC5z2m3/YAWZoQAhi73kgKcyrZQmpZy21cm+esanM4uPQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB8PR04MB7049 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. Signed-off-by: Geliang Tang --- include/linux/bpf.h | 1 + include/uapi/linux/bpf.h | 7 +++++++ kernel/bpf/verifier.c | 1 + kernel/trace/bpf_trace.c | 2 ++ net/core/filter.c | 21 +++++++++++++++++++++ scripts/bpf_doc.py | 1 + tools/include/uapi/linux/bpf.h | 7 +++++++ 7 files changed, 40 insertions(+) diff --git a/include/linux/bpf.h b/include/linux/bpf.h index f58895830ada..424056fd5335 100644 --- a/include/linux/bpf.h +++ b/include/linux/bpf.h @@ -2883,6 +2883,7 @@ extern const struct bpf_func_proto bpf_skc_to_tcp_req= uest_sock_proto; extern const struct bpf_func_proto bpf_skc_to_udp6_sock_proto; extern const struct bpf_func_proto bpf_skc_to_unix_sock_proto; extern const struct bpf_func_proto bpf_skc_to_mptcp_sock_proto; +extern const struct bpf_func_proto bpf_mptcpify_proto; extern const struct bpf_func_proto bpf_copy_from_user_proto; extern const struct bpf_func_proto bpf_snprintf_btf_proto; extern const struct bpf_func_proto bpf_snprintf_proto; diff --git a/include/uapi/linux/bpf.h b/include/uapi/linux/bpf.h index 6961a7b70028..ef175ea8ee4a 100644 --- a/include/uapi/linux/bpf.h +++ b/include/uapi/linux/bpf.h @@ -5569,6 +5569,12 @@ union bpf_attr { * 0 on success. * * **-ENOENT** if the bpf_local_storage cannot be found. + * + * struct sock *bpf_mptcpify(void *sk) + * Description + * Dynamically mptcpify a TCP socket *sk* pointer as an MPTCP one. + * Return + * *sk* if it's valid, or **NULL** otherwise. */ #define ___BPF_FUNC_MAPPER(FN, ctx...) \ FN(unspec, 0, ##ctx) \ @@ -5783,6 +5789,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/bpf/verifier.c b/kernel/bpf/verifier.c index b54193de762b..fa8d656d25cb 100644 --- a/kernel/bpf/verifier.c +++ b/kernel/bpf/verifier.c @@ -523,6 +523,7 @@ static bool is_ptr_cast_function(enum bpf_func_id func_= id) func_id =3D=3D BPF_FUNC_skc_to_tcp6_sock || func_id =3D=3D BPF_FUNC_skc_to_udp6_sock || func_id =3D=3D BPF_FUNC_skc_to_mptcp_sock || + func_id =3D=3D BPF_FUNC_mptcpify || func_id =3D=3D BPF_FUNC_skc_to_tcp_timewait_sock || func_id =3D=3D BPF_FUNC_skc_to_tcp_request_sock; } diff --git a/kernel/trace/bpf_trace.c b/kernel/trace/bpf_trace.c index 03b7f6b8e4f0..26c170a456c5 100644 --- a/kernel/trace/bpf_trace.c +++ b/kernel/trace/bpf_trace.c @@ -1926,6 +1926,8 @@ tracing_prog_func_proto(enum bpf_func_id func_id, con= st struct bpf_prog *prog) return &bpf_skc_to_unix_sock_proto; case BPF_FUNC_skc_to_mptcp_sock: return &bpf_skc_to_mptcp_sock_proto; + case BPF_FUNC_mptcpify: + return &bpf_mptcpify_proto; case BPF_FUNC_sk_storage_get: return &bpf_sk_storage_get_tracing_proto; case BPF_FUNC_sk_storage_delete: diff --git a/net/core/filter.c b/net/core/filter.c index 968139f4a1ac..e439f8b5f203 100644 --- a/net/core/filter.c +++ b/net/core/filter.c @@ -11587,6 +11587,24 @@ const struct bpf_func_proto bpf_skc_to_mptcp_sock_= proto =3D { .ret_btf_id =3D &btf_sock_ids[BTF_SOCK_TYPE_MPTCP], }; =20 +BPF_CALL_1(bpf_mptcpify, struct sock *, sk) +{ + if (sk && sk_fullsock(sk) && sk->sk_protocol =3D=3D IPPROTO_TCP) { + sk->sk_protocol =3D IPPROTO_MPTCP; + return (unsigned long)sk; + } + + return (unsigned long)NULL; +} + +const struct bpf_func_proto bpf_mptcpify_proto =3D { + .func =3D bpf_mptcpify, + .gpl_only =3D false, + .ret_type =3D RET_PTR_TO_BTF_ID_OR_NULL, + .arg1_type =3D ARG_PTR_TO_BTF_ID_SOCK_COMMON, + .ret_btf_id =3D &btf_sock_ids[BTF_SOCK_TYPE_SOCK], +}; + BPF_CALL_1(bpf_sock_from_file, struct file *, file) { return (unsigned long)sock_from_file(file); @@ -11632,6 +11650,9 @@ bpf_sk_base_func_proto(enum bpf_func_id func_id) case BPF_FUNC_skc_to_mptcp_sock: func =3D &bpf_skc_to_mptcp_sock_proto; break; + case BPF_FUNC_mptcpify: + func =3D &bpf_mptcpify_proto; + break; case BPF_FUNC_ktime_get_coarse_ns: return &bpf_ktime_get_coarse_ns_proto; default: diff --git a/scripts/bpf_doc.py b/scripts/bpf_doc.py index eaae2ce78381..7a20ab9c6513 100755 --- a/scripts/bpf_doc.py +++ b/scripts/bpf_doc.py @@ -751,6 +751,7 @@ class PrinterHelpers(Printer): 'struct file', 'struct bpf_timer', 'struct mptcp_sock', + 'struct sock', 'struct bpf_dynptr', 'const struct bpf_dynptr', 'struct iphdr', diff --git a/tools/include/uapi/linux/bpf.h b/tools/include/uapi/linux/bpf.h index 6961a7b70028..ef175ea8ee4a 100644 --- a/tools/include/uapi/linux/bpf.h +++ b/tools/include/uapi/linux/bpf.h @@ -5569,6 +5569,12 @@ union bpf_attr { * 0 on success. * * **-ENOENT** if the bpf_local_storage cannot be found. + * + * struct sock *bpf_mptcpify(void *sk) + * Description + * Dynamically mptcpify a TCP socket *sk* pointer as an MPTCP one. + * Return + * *sk* if it's valid, or **NULL** otherwise. */ #define ___BPF_FUNC_MAPPER(FN, ctx...) \ FN(unspec, 0, ##ctx) \ @@ -5783,6 +5789,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 Wed May 15 18:20:38 2024 Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-vi1eur04on2055.outbound.protection.outlook.com [40.107.8.55]) (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 0A29315A8 for ; Thu, 29 Jun 2023 02:12:41 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Jgwi0mv1I3mxCOh6Igo7qXkUFt55/3lCOREmLg84DaQyYwUfA7gFf5PbZOfuivhxr/m9Do2U3CS7S6Wq+nTGb93imZXbCjkf77W1xCaM5cb7/lFaqAbTEIJ9dYOIoHp6RiY96Q9dr1JMz6hgJoSMWwE87icBni15cg1IuUyEKRTewTSV43XjXKBg9d5GnvgdkGtZC2o0uzAfEgnj6EZW/iCcYY06pBm9ZY4P/96zYCwImmJlJbF+IBY6HeWmmhAdEIrbmt1QsIkGrfxCVh5sCeCKzdriz/J86aReDw1qWoezGZN+x2F8D4/DRLTJs7jxVz8pGnN0iAjc2BRdxO6+qg== 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=OUhlbe0qYjQdMzsCOTWgOZLfHwevcXok4YFCLMkeVxY=; b=PrIWVqxtz9IEu7smBdyer2aEJ+f2mDaT5JoJe2iNgg/i/gKgKqXtnfgkCaR48HSxCkIaNIw8hqWA2bN0Mp9aTTymKia5Qm3kKhBa928hOveBcX3pVZa6frYLSplvUnQOk4Ym8rJlHmqqEWXU0sf1IJT7xDDaCuNn7dYtcW7kMm+8eeSRz1TSl7ZXFL8xVQfRpGUnNcMp4J8WLOcNDwA5IIIuFW6j+EcsNMrXPenhHNFvF8x4HnonEZDLWsMBWwUcNtzk0Z1qz/+Pub0oHVMs6khhrNGdu64v47VrxP6pZmRE0AISOAK5ThsXLH3ZIq2TPZvinJyJ7Ptr/zu53iDg6Q== 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=OUhlbe0qYjQdMzsCOTWgOZLfHwevcXok4YFCLMkeVxY=; b=mdjttteRrK2F9fHcF9Dev9gIh6Zb4wqVu1qiu3K5Cf4oC6awukve/WU3dMHVZUkRLZr6SY+zLNz/mfN0msRk1wQ5tzfLNYt28WHVZKeFIfpJ+4cvlHeXl8dALr9q9qN9cRgh1l1UjvHR12wAm6u1nFVx2rLf3L+FBUAPb2K5MbzJcmvNrSgdS/NHlJJeO5NFw3R3uc3sLgziNBzdBJji4Jwlz3LIgGeoOFQbVYOPVBFbDcFdVY/5E5+mX5gBCAZ2amCyWg8CK1OEUriCMZDr8wztYhEwecXhjMjRADCKBuRpBp812C9NXO/wB8J5h77qbzhB26edHucUuYoygo9BAw== 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 DB8PR04MB7049.eurprd04.prod.outlook.com (2603:10a6:10:fc::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6521.26; Thu, 29 Jun 2023 02:12: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; Thu, 29 Jun 2023 02:12:39 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next 3/4] selftests/bpf: Test bpf_mptcpify helper Date: Thu, 29 Jun 2023 10:12:16 +0800 Message-Id: <266b27617ff55cb95cedb198723d609fe5f3f3c9.1688004307.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.35.3 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2P153CA0048.APCP153.PROD.OUTLOOK.COM (2603:1096:4:c6::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_|DB8PR04MB7049:EE_ X-MS-Office365-Filtering-Correlation-Id: 587c56b3-57ac-43e6-5add-08db78465013 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ZuyBIhVhU+7J6fI1LBNNYFf8/DXwdQ3cSkeouADBF5jNT2z7T5E+n1pHo7D+ymcBFMVOT8NKMaSRfIN/zR4/uscv6QbLk8Pe4uz1TXms3WUIxxBUxwWSUmNV10SMBpvoEbTdPCDPt16DG3g6kTUA/3Xt7ghcRS3uFL0PcoNzVvI1Mmbpj17gXOlWZmXfBdaZuHvJV7HxK15GBPDEM2qHzLBGi8AbozlxjBjxasS/ShxdS0Sf7juEHoAVqvjLfrsOcZjcowMcn4wgv62DqlV2PT4Yv3qlY3EuiPsVMM+9ioU/RJTGvx2giFL+sUxdgaQBu8AbysmQZI2vY2i07/33AJgY6wR++Acg68yYQZ7R/QxVO9d/eC/zrq/C7CgDH1/iyOFvoWt3tTuycyRKqijx0iYQpdm3ADj5on0p6h2TtJK1Jex2eVEN6RU23Qj2jM0oLRokcLB0vqj1u5z6A549Te3iwy1KA7PmS1NrY9ZxD+EA+izJjKs1y27rJ/Yq6BWbrHyBjiHIBrNKPwFgWYIaYBqLz7fLMIVnBXgT06Ir2VX4o3NNKVpl5oztqpbnnxLQ 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)(39860400002)(346002)(376002)(136003)(366004)(396003)(451199021)(6506007)(26005)(107886003)(6666004)(6486002)(478600001)(83380400001)(2616005)(2906002)(6512007)(186003)(66556008)(5660300002)(41300700001)(44832011)(66946007)(4326008)(316002)(38100700002)(36756003)(66476007)(8936002)(86362001)(8676002)(6916009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Z+tTn724Tl3X9NPzzUHN52Tk7lUyNWHcy2wSjbjnEDDvyVzU9J7ytwabHVQ6?= =?us-ascii?Q?rRJrdxcGc2IJ+tlmFbhzUv+vRgbIeWmSxHcGFCXtf81ji434WKUZssCW2dqZ?= =?us-ascii?Q?ssdOYpC6KiTG9EBAy8I/hmC3JAoBSy9Dcj71vmZBtFSoOOroK1k26YIet9ap?= =?us-ascii?Q?nhLOsA3jS/Lx2l8Xb/zIJb5HnlMpNsRsjCTr1lcCINNfl5JWQ0khPRy/a0qp?= =?us-ascii?Q?FbM9Dt+HX5xb06vdmcxLiKCy5Y/T7UTjBhUsyXQ4noADJgYBbZ7gtLcNnqPm?= =?us-ascii?Q?HFfsUmjMlSq6GPFjxevIikmU/BDM+iHFtQcmTa8OWFA40W6vZF5vRTB7HeYL?= =?us-ascii?Q?kMgxPKlPexAhx66/9xWkH1dcTvpi/2jh/JSuJAgXDQ18eStGDkSjM2nOvVHR?= =?us-ascii?Q?vAipaRyUYFqk+1s9xJltsv39ZdCZdaOyJacRxEHIDDk8HC5rL/rZDeo+80Fk?= =?us-ascii?Q?y3bhjtj8kg5QJVCVGaTKpe8kSNG8KM/gZkksWB2TNdLsRcnI1/nj9gqXLe+c?= =?us-ascii?Q?pABmCOskECRW7K+cc2gtlVacnYWuBV/LFD/R9ViBTvP/ivQqWqqfw+c0AWtE?= =?us-ascii?Q?f96QVBFEVbG7DeosG1B/AjWc9mkenplTtas7lWJhCKDKnP1E5Kiosj+mdNKj?= =?us-ascii?Q?EIxXZ/wZCba6vac3bmSAeCGrJqH3jVC8eww1zu76200Z57odxbSnnpVPSrOu?= =?us-ascii?Q?pxqKS4nouj1ZZTLRVwCezUdQEVL5z9sgHut8Ld7aeweFXXO67bqumGo5MfN6?= =?us-ascii?Q?uqDMit8aWlohNOZX5KNY0ESj+SDFIA1AxByxbeSFRCpqRWndEssdlkQEkvE8?= =?us-ascii?Q?RzNrWfKJ2IKgOqUcaOPW87Ms2r67BU0/RalmTlvnJnjSkLwxEkBaEAuJOfOe?= =?us-ascii?Q?kUlyfjMewaMuJHBaERjRGUArOmvo2rhqwRN5Daqp2mbqDpRg/bkhfqjjIuIV?= =?us-ascii?Q?zKCwE3KeSdIzNjZA4dfDgyas76rrNC7z2QU7dwXsAMZ8xJToGQa1eRJvWe+R?= =?us-ascii?Q?Ht/iMjoKpvvuMLXBJND2BQQnUExmlUCD+3hJ9VsHAnmYR0nhOMhSsinvye7V?= =?us-ascii?Q?kmubG8P4cMJ20A26IpSCXU2kKGeb+TTmzDSyjuUap8eK83dFj4POOuR/9v7a?= =?us-ascii?Q?wO/PNIEQ+j0p7y0gqpWPZjRbBmSvdkyBk6Z4idF3v5W3O+3bEPfDbso6rFAX?= =?us-ascii?Q?UK8s2K80udpM8Gi/UzK7kQQctCF9+ja6ahdAzAicSdjJTIC5eZLzvnEgjlfK?= =?us-ascii?Q?yYAtTOnVFBFaepAmLdVf8uVxMJTGpYZza7a6cO7votQidaGHk30X02Anl25B?= =?us-ascii?Q?nv5As1AJEBrck0CHvyDwxlc3obzaRG93euQI4JKCK2H+7mFzrA/ilDJaG9ky?= =?us-ascii?Q?GIJHGS4J80c93jN1jCyf0VCcmG67vPbaWYSvv9vcPWCjLSn5RKwH2FEN3/lu?= =?us-ascii?Q?nQJczGkyIjtJ+0KbYOQo75CaqIFgGwcO+qBWo/r+bwLXRm44r5wVRjdM3rM+?= =?us-ascii?Q?QRhcdYD6QwClVukwyhl6KU7ytn2vgDXDDch+GeS4tU+OicZeRYe/hFZqmlbU?= =?us-ascii?Q?3sIdRK9JXQ69qfswDHZ/wugHWaJA03CgFnp8AKKL?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 587c56b3-57ac-43e6-5add-08db78465013 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Jun 2023 02:12:39.0415 (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: oy7x23se66ZI5ospjV+WM6vTAiMZCNBfHEr4mK9NpFqWlsnhegppdg1WJYtPYuDidKU8zBNqWt+J5SFSGjvLyQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB8PR04MB7049 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. Signed-off-by: Geliang Tang --- tools/testing/selftests/bpf/bpf_tcp_helpers.h | 1 + tools/testing/selftests/bpf/progs/mptcpify.c | 32 +++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 tools/testing/selftests/bpf/progs/mptcpify.c diff --git a/tools/testing/selftests/bpf/bpf_tcp_helpers.h b/tools/testing/= selftests/bpf/bpf_tcp_helpers.h index 72c618037386..f846d5d62529 100644 --- a/tools/testing/selftests/bpf/bpf_tcp_helpers.h +++ b/tools/testing/selftests/bpf/bpf_tcp_helpers.h @@ -38,6 +38,7 @@ struct sock { #define sk_state __sk_common.skc_state unsigned long sk_pacing_rate; __u32 sk_pacing_status; /* see enum sk_pacing */ + __u16 sk_protocol; } __attribute__((preserve_access_index)); =20 struct inet_sock { 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..0eb167dcfa22 --- /dev/null +++ b/tools/testing/selftests/bpf/progs/mptcpify.c @@ -0,0 +1,32 @@ +// SPDX-License-Identifier: GPL-2.0 +/* Copyright (c) 2023, SUSE. */ + +#include +#include +#include "bpf_tcp_helpers.h" + +char _license[] SEC("license") =3D "GPL"; +__u16 protocol =3D 0; + +SEC("sockops") +int _sockops(struct bpf_sock_ops *ctx) +{ + int op =3D (int)ctx->op; + struct bpf_sock *bsk; + struct sock *sk; + + if (op !=3D BPF_SOCK_OPS_TCP_CONNECT_CB && + op !=3D BPF_SOCK_OPS_TCP_LISTEN_CB) + return 1; + + bsk =3D ctx->sk; + if (!bsk) + return 1; + + sk =3D bpf_mptcpify(bsk); + if (!sk) + return 1; + + protocol =3D sk->sk_protocol; + return 0; +} --=20 2.35.3 From nobody Wed May 15 18:20:38 2024 Received: from EUR02-AM0-obe.outbound.protection.outlook.com (mail-am0eur02on2049.outbound.protection.outlook.com [40.107.247.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 11A3415A8 for ; Thu, 29 Jun 2023 02:12:50 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=F79/ehdakJ1S4HFZEhtxRoosCO2qIQ9CrT2sqxRFpbyja7dKDrQpLtmo9P8OTkdD3LGCuM6nYKP15FLG9wsS7l5UnLYaoQ4VCJeoJt3MEhpqmdgY+nofZmjQzSc3EC0EVNtg8Z9IpnIGjeTAwZV9nVPv5j5ulWiqOuNHFWkqjoCFuOs4xzAbZpocHinz84x6v1wY559EeEM4Hknl+noy1LAXpYyxLdxlBI1OxdQpgZUPMVyEOoIpZuN8X3yGF8Ti3IvnhfNtuOC+oGgugkrtQhYKJHQkHeKBiI8xWTWsHKKpo/ZEsFMwZwAEy2oSkdeM1e2UonBUAS0d5J271h6pcg== 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=Aj8Khvm2MFLUPALt6R/mkZVAmoZZ8mRJ8n/jSKaIfi4=; b=TwDH+MGf+3SJyeODpLvvgh6YRS57kSYE55vAcIW6PPScwW6HY+b73+2pjoh6rDnVOUNSmniKVVlQUTBYpRzBXPSrWn+q7hi7b5K9ARBA+ikle8tAub+NirrdkaBfcd4e32O0CgqV2wqurI5h1/YTimrtmKP2NVrns+h449qmxHG7z6K8AG0bJ9sOGI90bWhUYf17iz1N6IGULiQyB4NqWpYDsewxPYiwq8KMhPQCsdkWDPrhHe/V3EWBrDDQPgrLtmXbeNWs4YJMLjyavM/Qv3BkN625+KmHfLoKt61n37xPUAGo2CYwmJaZE41ypzdRQXxNPa60E07GTPajlxujcQ== 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=Aj8Khvm2MFLUPALt6R/mkZVAmoZZ8mRJ8n/jSKaIfi4=; b=QKhqBIFNcl2DOK21485sJ3iy1cP2HhvCNkGhUhMrv7pc3rGRQmRhJlazWoggupbnkmGX9zTVjirLdoQdvYYpiGWrwzIDKMylrUGU3E9EO29y/g2EFZTzw1GhJJWNTN/nSOmlmQMWFrd0QHXqjNE8JLtjJq8NXmWk3fOWOqwJ+Es064VC2/hFNKKgF/gtA/cXqyq7y8Hhbh9dwj23IF+++xidJOE8z5iKZSEvtK5AFTGDyWJqQ4qFDRZqw/RPdOSYZDCbkcbsC9BVzol62frgPxczyckcTD28+gB2/aPWA5a5H6NHlQSxwFn0stdp5hsKGaPjWKbUdm+1fNYa3M84nA== 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 DB8PR04MB7049.eurprd04.prod.outlook.com (2603:10a6:10:fc::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6521.26; Thu, 29 Jun 2023 02:12:48 +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; Thu, 29 Jun 2023 02:12:48 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next 4/4] selftests/bpf: Add mptcpify selftest Date: Thu, 29 Jun 2023 10:12:17 +0800 Message-Id: <5276902ce9c5492bd2029fc3b46bfcb927afb18f.1688004307.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.35.3 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYAPR04CA0003.apcprd04.prod.outlook.com (2603:1096:404:15::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_|DB8PR04MB7049:EE_ X-MS-Office365-Filtering-Correlation-Id: dd7d33a3-d9a7-42b9-8dbf-08db78465532 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: vqDBxDGYBMTBarVEDXQJdiJOHkU2drDtKvaL/+7KWimEKTb0yveL65EyjISDChaixAmLTJS9irIK39sVp34JnBVh/9INeGi+iM8igrv7DiHu3wxlgGlm2fBFjKQa9KJ9GA7wW0adeQ+EKq+yr+RyPubk8hyqUElOrGpEJbh51oRtD949lUGFtsXS7nedX8HukAhjrx3mwKX4l+x2uQO82ymeTInn8VSmq5nIgtFv7XfgwZygKs+L87ufjff3UZP/A+0ODb0H+4S+YUdyyzQg3F8fDMatABb5Hj8BB2DkHs6KtXfOg0oZ3gvTUSauemiKpx3zLPfksK6nHB8DBQIKiVH9jfND+LM/o0tb7RANfALQzwQaUhzopqoqVrfRVceeC0UR3FLgws12p7Dix29wznbggkGfudmZ+zZS+1CtXkOQGmuDgTaML8NEMNBlANmMCRv5mUFuLTnAPVunjSZ9x6jRBF7alXLg4e5M0aTasMCTJbMINFfP8tGPxgCxRfbHUreEAMmpsls9xV457ZSe/qA4O+n3iDzuUfUSXLGzlG5bPBCY8j2kgerqkhnqc20Y 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)(39860400002)(346002)(376002)(136003)(366004)(396003)(451199021)(6506007)(26005)(107886003)(6666004)(6486002)(478600001)(83380400001)(2616005)(2906002)(6512007)(186003)(66556008)(5660300002)(41300700001)(44832011)(66946007)(4326008)(316002)(38100700002)(36756003)(66476007)(8936002)(86362001)(8676002)(6916009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?or2T8Bp04DCQtluUPkTm8dj2PcvJdBj6EfpdLDjF8ixzKBmLxW1/eSz/oMpz?= =?us-ascii?Q?N4hdHkJQSw6F1OaIra1KfWZ7FTCzTmkJzYmgLm3bbKKGJAJvqlihYMVumVYC?= =?us-ascii?Q?v8btQY5cfxlsNiME1DCOCX4vhGG+fh6xy7jBvBaKnyrHqQUK6cmmTMre+n3d?= =?us-ascii?Q?gEuF8tDWAmpjbr+ALdJgNyHEiYUUFlD1kqEXDP10i75OL3kApASSpkVr5pF+?= =?us-ascii?Q?uZ5Zmoap88VjRzUy+hV4PCkTWiSdFLIhfG0XNxY+hqXa9RYxPkYKxFzXg+4n?= =?us-ascii?Q?KHuO4rPNSWMhNBWVvdlCLiuDgu145pC+WOiZ7wSLqHLsn+RsH3E3X+WwUUSF?= =?us-ascii?Q?hQyPIT5R13bqhS3SrHc+FyPEYDrHrsml1WNwuCqVj7Sq/Cd3JtMuGz6/WUTK?= =?us-ascii?Q?c7kUya5TzDMLZUJhTcnggkNNwVzJFVgiQlFWfHyci5iejRFCTGKqtCqAHSGG?= =?us-ascii?Q?ZwPHufwRW89rUz9CN1jkFzN0mEOBs+TdUr1uQ84eI/tL6zwLDzpAAfMDrNve?= =?us-ascii?Q?Is0FvwcNcQyWp68uJUWIP63MIdXw4pf/ROtjk5LshMtTY64NvdNAdXEh9JDy?= =?us-ascii?Q?POCJqnJexb7mNcS3NOO9nyhzh9oZFSCFRS3Wa1eC5AUMa0Lf16IZ97DxftQE?= =?us-ascii?Q?fOeL86yVh47QRLiraFR4NlZHXnEujixQ3FbdG/vpNqvXjdUh9wLuU4HiLmjI?= =?us-ascii?Q?1NygUj33cVEtznQh1lsZo8mz7Suf0LMjFvJrYxyN4QwHjDwuo7phk9+86WT7?= =?us-ascii?Q?NCm1UEs0fc2+DwELL9cVzWxgQE3lb31tqdALXNXEHAyfuwFShxoyb+lyBP/V?= =?us-ascii?Q?Z4FirK1QsC1ZugZi4XyKNqrPEvzkAr5BPk0dwgIJradpMNE4I3oiUZ5X9fVP?= =?us-ascii?Q?zkA6v4OyrMluD2orDyiJMJaleKLK+O/Gyh+WtWFY8bznoMeQGGzm85MO4z0w?= =?us-ascii?Q?jY+XSIyWt5r+MCA+C1Gez5ssoxzYE+5CtmRWDCWloRYiqiOZsRfI6q+5smId?= =?us-ascii?Q?GRVn1omS98qRFQ4mADXce2I2WTJZs8PJC5Dqtnj+hSeDDevwIgc3jUs9WeyD?= =?us-ascii?Q?BimA3Sm+E76zlvmEqzZEEOYs2yeVcdZk7BBdDvKUGock8xO7MXy3DoY73o1Q?= =?us-ascii?Q?aFqSoYfQ4UwKwp25Ipf7lt/s5McKGwlHwItxq04qDTzGPCUDv7om7nYwaI9Q?= =?us-ascii?Q?YuRLeV1ujnLmB7O/9m7rSNeijmVdXrKLGDkyzQyKN7gAHDPjwpRG7lRSiXYL?= =?us-ascii?Q?Bx6OTEJAKJWDXzoenNYcdFk1Y39BNHnoG+Xi2HKyzU6ZfwOceiMnWTXRzDKh?= =?us-ascii?Q?5JrWvDnyKfJyEUf3rZQ8ss7HXoQuL6W0/mi/Si2Ek7OmFyyVpSuLpV6g72Qa?= =?us-ascii?Q?MOZg32mT3BA6C3yjUIFNLb/T529G8gMPL5vZhHGbsdxodPwcQRLpLi9VEP5z?= =?us-ascii?Q?O2ZGMBCEP3KgP7Elv87a+cnIbdYlj9EobYhCxN/EriSi16/K6Vd76q9WiHtj?= =?us-ascii?Q?Y78SeGco6qSnem74AQjKxr04Qg7Psxy9hfUGC1ZuqijetJpo8dXyg17rMhJ1?= =?us-ascii?Q?UsnfzSdFiKZDoq2mnRTYEXnvULUnHCcy14LPtL+g?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: dd7d33a3-d9a7-42b9-8dbf-08db78465532 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Jun 2023 02:12:47.9405 (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: /PuQ+ue+3iParIhxCR1lKpUVYBJJTs6XbUpNp3CPGB8eKCIU4psLMnKuwf5Bu6xnDwohFVovjMm1ZJ5wF3kVyA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB8PR04MB7049 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 stored local BSS variable. Signed-off-by: Geliang Tang --- .../testing/selftests/bpf/prog_tests/mptcp.c | 83 +++++++++++++++++++ 1 file changed, 83 insertions(+) diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing= /selftests/bpf/prog_tests/mptcp.c index e430bebebcf0..4057ff07572d 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" @@ -13,6 +14,9 @@ =20 char NS_TEST[32]; =20 +#ifndef IPPROTO_MPTCP +#define IPPROTO_MPTCP 262 +#endif #ifndef TCP_CA_NAME_MAX #define TCP_CA_NAME_MAX 16 #endif @@ -200,6 +204,83 @@ 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 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._sockops); + if (!ASSERT_GE(prog_fd, 0, "bpf_program__fd")) { + err =3D -EIO; + goto out; + } + + err =3D bpf_prog_attach(prog_fd, cgroup_fd, BPF_CGROUP_SOCK_OPS, + BPF_CGROUP_INET_SOCK_CREATE); + if (!ASSERT_OK(err, "bpf_prog_attach")) + 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); + if (!ASSERT_EQ(mptcpify_skel->bss->protocol, + IPPROTO_MPTCP, "unexpected protocol")) + err++; + + 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 +540,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