From nobody Tue May 21 23:50:00 2024 Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2085.outbound.protection.outlook.com [40.107.20.85]) (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 8AAE53D67 for ; Sat, 1 Jul 2023 12:57:24 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ceZaaTTJXjlwnOtvC3oLqVzENiaevWL8xMxnj+qJR4ARt81lZ4NgEfPZ6TXee3cs9EUyv2hU+0pnTeatMz9zbr6ZUGyauFlqD/wQCFLGnbjvN9dBzfsfY8QMKO70ZcNGIdwCDFmaDSNbonPq64ga1DXuI06VlxLPkIM8dOw/wEzsHx2ucQ9EOgP/JxQnsmU9BSvOCdUgrSkEylsZsRVd/Idkw8xoUvNtvp6JihPxpF0IZonIrihN6qcPI6Ok82ceNzkHD93vIndfDLZt6ul7qJ76Vp+1y/PRQ4XKMOZp8ml1a4P0DY1JyTArP2z+ge1HvVjg7IqZRrq5VOCz2vW7sQ== 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=gMQEIil0tL+QZ0Am/PREDK8S+8721EmehYezdCoieCSqu5vcXjP56Fe+wTHt2gnCsnmfj0Jq46PB3/yIDM2rcENcp5dhAIe6Ht1jTA7I8RmCZufrh2+0ByrEd+4ajAdVrDz60hmpzZ6PXvF5ksi3UNXlJnB9sUTPcy9pOH3v8cHQBKNBEMTbAkDOr8O3hVO7BVnd6rzryL0WyTjoUu1MCz1TXvTf0utT/kuS7+8cKgf7yPUB2OEJcfCfQORO6V3dgZzSv+x9HKaEDX+/w0I/AmoknpCZ9jDu4aoeQV/E9RGjpF73NLSP/s4hCm2hJcxkR40+HKj36gwx7TFJT8wcIA== 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=Q4p4CuOGk8iZV7VYGRBNY+3xJ4Hb20s68cxUjUAiUGyfJieuw9NZbTIWFGxGxxCS44VZIM7z2OdNVJfHfvFovenB9n7YVjeL1S3ud5fpl4cNhigQHKSevXM32hUQDOmge7q52j+N2tVW2bvxqGnu1qAJ66v1D/TuOe8MVW0uawXlGqjipjrHJdWEpuNOUQpHDqbtgeqQAMVB0KYCSSoxC9crCsCAk4lz11ocfxZ99evbvL2nI4Et8kFPoZsRMUQshmw0gxGjDebBVraMAjsv8jLGrjiNQCONuf1lNX4Ev9k616mJ8OjPAcooVl5Zd4cFTI4WUah4e226/xEOyBelbw== 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 AM9PR04MB7553.eurprd04.prod.outlook.com (2603:10a6:20b:2d5::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6544.19; Sat, 1 Jul 2023 12:57: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.019; Sat, 1 Jul 2023 12:57:22 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v2 1/4] Squash to "selftests/bpf: add two mptcp netns helpers" Date: Sat, 1 Jul 2023 20:56:57 +0800 Message-Id: <1ce0da8fa8beb7277c15ea3aea4393d7413b66c3.1688215769.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.35.3 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYCP301CA0002.JPNP301.PROD.OUTLOOK.COM (2603:1096:400:386::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_|AM9PR04MB7553:EE_ X-MS-Office365-Filtering-Correlation-Id: 5d621452-f842-4c97-9082-08db7a32b5ce X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: AkyX8BiHEbeZgKg/nqa9feOV57pnfJ1Ya0FooPwwAdE43svMjZBVlRjTLopXoNEju9Z82HDRZEXuGx5f8H62zxLowZPmWa3z0ELXmafHkWg9TgH3u05alOx3tZW4K3ldxl6pfyYG/dxltvctDwuPl+l7Oro+leROH8+mZvSTMmogt0VQqkZhFUsOY2mVEMWsFWwSPeAwz+Vc/g0K68XMv0HvQI1svHZ5nrv1OarCbUgIY7f+qIuL3QKybHfGIuxIn7cC0UWtRRVtnGBdKLffp2QktZLLvnVmEDjsne+N+gDSoiNz/uwuPkCU+G+DYuCG6KSKR2J1ssFcHQaYBMXsynDwPP23uKt4uRU9WySApTZ61D2Y/GdL5fQUON0Uv9xuuG4613ihsglwRInw05v+zEQJQybWuLRpZ2zYr+k72VfGXkhWHnsdACO0AIJIF/llM3XJ45vI4BwSTXZ/AQ0jKnIRsgP9bh9QdKDgpZwfKr34Cg0CyQCL4FBrTOkHAWG3n32OiR4bXdKHH0NwuM8kE1LZjm7KufdzeMjH5/WVtOmVlv3KWhnVx8dU2s5+3aAI 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)(376002)(346002)(366004)(396003)(39860400002)(451199021)(5660300002)(8676002)(8936002)(107886003)(36756003)(478600001)(6916009)(4326008)(6666004)(6486002)(66476007)(66556008)(66946007)(316002)(6512007)(41300700001)(38100700002)(44832011)(186003)(2616005)(6506007)(26005)(83380400001)(86362001)(2906002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?MROa+Kr38MwV8ohivSbBFeOvA8JB3u55pwp/UqJgoCRPP5eDiIe6NKth46fB?= =?us-ascii?Q?TUCcRKmAeOs6o1wDuwD0tKIhP/f8PZDpCFhRQxollJkg1+v1dNPSQ/Ah5hEf?= =?us-ascii?Q?evlNxUcssXVT3PVvjK6zuAiee02+fTasw4e2W4XqqwIpZ1WbUKZsvAHlTKw2?= =?us-ascii?Q?3U7EJThr2ng1c1ia4v0FcF5ZbipYrh9GaTKfe7zwAl9Ytjcwkn73Omla3s3y?= =?us-ascii?Q?kKP45EkGUkbqcNB3FLjPcJUgCeS/LZ6rmdhc8aXLKc8BKuZpJaSGsiL/Spli?= =?us-ascii?Q?5iKq7YYDMx8MakCB4xo8eOjZoiGjfoLPP/1URYNz24PH3tHXKUYQMqAD6v5Q?= =?us-ascii?Q?XHOyj8d/OGj3Y2lBssW84jwblGI6oN9SeV648fmMEj5YYFzPG99hhlhI+bNp?= =?us-ascii?Q?M4P9wcfuOgRa4Ct0rMaDCgb8/LuILs+cZRKJIXJzGr2Ns6Zru1D+nVzMmx+j?= =?us-ascii?Q?DTzlcwbvHUx/c3BWkDYi+lczwzzXCPEmpj3Sm8o/Ya4kfcjNJmy84t6q9d1N?= =?us-ascii?Q?JMtveNgWssrw5c/gzJ5AHTH6vC8pYfP/xVn4dh3NkghWT5xnaAgUCn1NedfY?= =?us-ascii?Q?mnV8Ty4+p2ZQIDW7X1jXYSKmGN9osQ7mh1EQpypwSPgE1nRJOGLNsOXUATJj?= =?us-ascii?Q?JTy1fmdNQyuBB0PNsd/JYffQXxI7/SMxNQopDUv4z4XBV8LEHWGViuRAD6gX?= =?us-ascii?Q?5GxG4q4tGSyDQh7WacJGQgCCqJvu/p2ptZUguITz+30YlsrRKLCCokpWlau0?= =?us-ascii?Q?RDPWWWJveoZ/WDnWKvALzOplTcWx8NV6Gyg74XtYnXSCJ1528PaIC2Qb1MTQ?= =?us-ascii?Q?6dod+N0WR4XD3B7sIe4T32wPzn3w22K6J1UjwyynRdPalI10dMndysa6F0yo?= =?us-ascii?Q?VXF7PCI9qix31CM69VoqnmHDm6d2pveiogpZ9IYbwFhIsUKYTaBPmh8TMJSs?= =?us-ascii?Q?/OfMCv3qRq8C0Gs+h3TUA/fkUYOgUkFVKVF7LIyWy2LGex4+AT1jYisW4WNq?= =?us-ascii?Q?ARjj0g9pp63A69lS5ymlK+LtAiurFGM13WCKcWl4II1om7Et2NDQEXTlYIId?= =?us-ascii?Q?rxZ0gvIuLWCY3yqxBnKv4BWQvguY0x2BeQ56ng7bDTT3pbxQHPHuHrXUer+K?= =?us-ascii?Q?UZ4Vr2MX7+umwI26sxeAhb8ZS/O+aLQO0xDXWNWWbsYeB22oO3gdeLCVPXJx?= =?us-ascii?Q?16u+idTNyyUimq76dSzC/iNNHCa8ZQc8ra8gGr/eD1WThP/I86ozZc7w69eW?= =?us-ascii?Q?+L8HM9faMwJ/b0t7JibVAqfzBcpS5R00qDwHNL+VM5E8vJqgYG+nTyWQlKQT?= =?us-ascii?Q?XvzpBvB4rILhcDxikBGy0urv4jiIBqeZb8st4Mj4WAVLoujuLcQfMdVeU5QG?= =?us-ascii?Q?VAWCLNHraR60tFXvtDmToQxDYhHTANn3iZJyyFpc8TUQDcuHXXU1SmlQQipn?= =?us-ascii?Q?YjE8FYL6ZzmsVwZvO7NtBzB/NrZoZCCws2Z9MiuwXcNUSHEU6OF7dd/zVQiA?= =?us-ascii?Q?oVytrLF9Ikc+F1eQ2p2ksikcrwqPHt57vLOCjpP7KEGapaTp1i8oUtYduPXL?= =?us-ascii?Q?q8syYCHpFN+0tOlY8l0xyjC2iDWNmd7XbbxFx6aM?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5d621452-f842-4c97-9082-08db7a32b5ce X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Jul 2023 12:57:22.1754 (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: zi2MXG4injfcxwUjzNlpqxQGqwtl+NWq1a/zVaLR20nOaAA0vIlRL+hdz42q1yQCviXznb104mOKvzF69xFang== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB7553 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 23:50:00 2024 Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2073.outbound.protection.outlook.com [40.107.20.73]) (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 3BEBC3D67 for ; Sat, 1 Jul 2023 12:57:34 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=naXWQY9dkaOgIXmtOCMJtqKqLplQhFSV+pyMjQxdoePNE96dbUsRr/XKfq6KeXH5nNbOxK9lZ894OyhQAt4dMWiSYltEsOMZYVe/cf06LeNu0Icr2dA7mBFz0rX0K+XK1MHrnt7AZEU7fBkZPqABrw6eCd5/6PlkRaWeT0dnVIHjDpdrA2kCYjqSFFTQUaZ/shsspdnj51O7Id/rxZfboSh0mZnB+v/8QBvf0c3Qp8ayCnNLwmf0KCGDTw4GOkkSakWJGNzqalyik3QDAwpPw+asqvsfFJ0qPwoAx8RImjiPyR3NpxMScS/bzFUEBSPDLubKABlcPkWs94/hsSoQmQ== 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=pczfCTBDUN+4PxNRArlR9nYhsPd7NUF81cZB8rd1o7U=; b=hY4PBrIUbj1mys8lgpVBC9HvDaamH0asEXX6GQ00bv/K1vqHhA1jNLLxIsysIyuoxxSbxOXCGbr1SQiAFiWAj+918gG8CY7vKTYdD5N+ZKTkdRx7/s7D60WMlUIjOAIyqMeJpOykJLhbo3xN9O4D3/Lit3lOafq37h7XJkAnB9YRWOnRB0S2joQy9DdoVw4K/4nvW3YF3Vjx1AzXmPYqZf8qlvbnv4Zpd3SDcJSDuBLfizerlFTw4viGuvQlILwcQS7C57loztLpHtA2VUx7SwiT7IldR/pDSVn9jjWsnfF9/0wro1pMSMehjZEAdshDaLuzZzPzh+qqCwsANHEx1A== 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=pczfCTBDUN+4PxNRArlR9nYhsPd7NUF81cZB8rd1o7U=; b=k1caY3GW3ei4pl0+T2PID+jFmSSyJ0NGnQGIXGi/7hhmX3H/U81kHTXQsJ8Gm4Use2HhE1/oOsc2cY8MwAN1l1pekWByIJgnv5l90fdRuCi3R93XbW6rYOuDSmaMSdzWE3b/oQCLKGjczwjQaLCQyZiEFHOMuHSfdd7YBmWMTz7reWPcKvGzw60ssoJiVI2QQT3lyeDMzJW+GdprYp+qLcfZsM0EZ6ttc4oTDiNeIVFOTKzNUFsnAGGEKfCJKu+duexz3Iutr6XnLy1MtAo3LLCQjPg8I9Xj94zyrbWf7YoY4bA/A4oO8RS/ESwo9SYcqoHZmi9w9N8fCGatthjGLg== 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 AM9PR04MB7553.eurprd04.prod.outlook.com (2603:10a6:20b:2d5::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6544.19; Sat, 1 Jul 2023 12:57: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.019; Sat, 1 Jul 2023 12:57:32 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v2 2/4] bpf: Add bpf_mptcpify helper Date: Sat, 1 Jul 2023 20:56:58 +0800 Message-Id: X-Mailer: git-send-email 2.35.3 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYCP301CA0003.JPNP301.PROD.OUTLOOK.COM (2603:1096:400:386::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_|AM9PR04MB7553:EE_ X-MS-Office365-Filtering-Correlation-Id: c1f78e02-9ae2-406e-c470-08db7a32bbf8 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 4qUKDj5PfkS/VNyKaRcNnhCcwVBUMlK9f2ORIuGEINPcPHZcFNFzsSDmd1lUKd630Mxqle3ZFYiWr+NCASROPU9uktU7AsN66eHO8ZNJEFqv/5p2Wmw5qsqSh60/pPLLOFri2gg2X71JZgloyvB2jZpOaAfTdJ9ue4vK3kcq7/490R19fj9wTrlImY3MkN5xYQzTFurJaqFexUgHUQaDY/bFrSFvnYLwqJEto3dSvSvRoBvudxeYmswEtxNFAp4NVpgoxuVel8NROzlvmO7uAzoMewoZn6AGvdn5Va73ctdk4oCFzxbu1MtI7lazr/ox5kPX4fxAJ2aXAHOrH5uXXUXc1pnuYt39q3L8McyPPOH+OqJWxOu1VSycyXHxy5VWvTGRhMaw4fqNkg+hbnpdQE7nPNbo8BVKIOpln2L2tOPLPSGmzFSlXbfKQKoLPx/gIvZJVJ+oX4PAK6EHdcVZ3YLd/pFLItTKRHKJ+SvJ14RgOS2ZJ4gW0xKqXLG8nsIICokK7YKeSNSJvGVz4pzAWGU1RtrBuhhxt8lFNK1v7pYxHfual3KeKGpHU/dr9Yop 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)(376002)(346002)(366004)(396003)(39860400002)(451199021)(5660300002)(8676002)(8936002)(107886003)(36756003)(478600001)(6916009)(4326008)(6666004)(6486002)(66476007)(66556008)(66946007)(316002)(6512007)(41300700001)(38100700002)(44832011)(186003)(2616005)(6506007)(26005)(83380400001)(86362001)(2906002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?FP1UoagcIyp82UFj7YGd5cMJqBffTdwnacdpi2ezrjFPEMVr77rATIchqfBa?= =?us-ascii?Q?V/kcGjaKvTNW4FC4A/HW8zcPcTUqCKpxxWtNirLHe0v3asqjs53iaiDLqsdg?= =?us-ascii?Q?hecDD2Sv/zVAhgmVLK8pwLWt7PNnYHPLGSKLa7XODyZqR66glOvlgju6Nwur?= =?us-ascii?Q?DBb+DrhSw6/G6xu4L/ob5tT1CuQ2dNyuzaq2QpMVmTSqfMR/0c8B61N1aTcK?= =?us-ascii?Q?Oc7+vGUFZJsLf9gCJx0lS818rK9p6vLEqWAL0qyWEWUtjiey1GGSJGUIxz5+?= =?us-ascii?Q?6UplRa63EFkscgO3v+ge5aumHBzxIQHzY+ptHmLDFcsaFl6Hny39F06VRNS+?= =?us-ascii?Q?y1tN32iKh9GsKrA+MNEvXaGfAbH94iaFT/+vL93+LxWWLAqIxSq1HldpMYIg?= =?us-ascii?Q?a+55gTCKYdy33mbhTulWfQi3Pt2ngKRCk7p1+cXXUa87alA6D8Sg0zFktN7P?= =?us-ascii?Q?0SI/BhKNLiTiVGvFeC96ubftRoBHVnHvma7DZMmrH7VF3LunCue8rYWGONuU?= =?us-ascii?Q?1TYv6lYm41UdAAx3B3rNDHMsOF0Cr7FaewswmW9S5out8tKLN3JXecBIH4FT?= =?us-ascii?Q?aiuzKyToOvdnlVeZyV29Dwtc1igdPB/FvUrpKyjDbDhGGpb/3gD94pKQTzv4?= =?us-ascii?Q?gHCBrMwy01nn2Ep+Zju69TZQE0PgPofDxW3Zg2dI7wxwCyuy2MRCbTfE58Ju?= =?us-ascii?Q?xOpkwJJyci4r+dZMIQGfxXFFJ8F8LQ5bRoMYyJZnjDKSWtm7uWiYjMVdhbXv?= =?us-ascii?Q?yV6lOfIgnO4fESDgWBC0Snlv94i97FPcplPxz4n4TaJA7zAtHdDOvUdzsFvg?= =?us-ascii?Q?twVJWMP5PiKpr02vYONqcWOcsKTPOhDpu01QVafxFJX8uD7elOKEgt4sYPit?= =?us-ascii?Q?KaxQHBBYL6g0L6zi/l2cxYqvN3AyEwkzMQxGDapT+TPw+I5qD5FNQYN65ZAx?= =?us-ascii?Q?R6eDX3e98aE5PHPUkB0+xVhCS/SiSoebE3B0Z6PGjmx0UX7Qpj7YNu/8Gm45?= =?us-ascii?Q?3cUzVQhWP3AOH0KF70bQt1WeT0VcU6FfHpNtZyodWE1KwdhOw6FgLOjkfelF?= =?us-ascii?Q?RF1Z3m9oPwuhhfIQ/zPpPw90uFgeGr5aU/7RftLGSrjtOr4qnfdHqDKCsrSS?= =?us-ascii?Q?Q8HpYl2nWt6cILPdDx2oG0ipi1GgYzxq/M3eUIB1DSQriK93NO+1ix2gAl3w?= =?us-ascii?Q?/Aod5PepV06P1Z8slmne/d1fSVzoRcUzBg5gOlIdSCqsbEpzVPqCNgnQAVPA?= =?us-ascii?Q?nRDjCQyirDEBAeuysKgdKu+AmT1lsOuIhQyriwfqGgu68YB675UoEjVS/ibm?= =?us-ascii?Q?UOMGQTsyfHycRlq14JJrq6cHipIFahIp8zLwQzscLqVTyDCFMKPfvtO774Km?= =?us-ascii?Q?Nwon4ydfC2yig/WU2Tgq+dThRjxwI2mMLIfysHgZtwiZq/FucW9Lk4GJYoFI?= =?us-ascii?Q?H/Z7eYRcVnVNlJ6+nhY2H/6AQ5kA2iI3w9ib7yq4JOCVYP/6Ux94Ge6RA0q5?= =?us-ascii?Q?ee9tmOo27pLi0OXzLhydjyi26d95Qel20OKohQrfGykK63fn9P2RMc/OJ9xv?= =?us-ascii?Q?jJyBzfLXqiq7/gobT8hGkrhb4wisrDALwTjQMcVe?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: c1f78e02-9ae2-406e-c470-08db7a32bbf8 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Jul 2023 12:57:32.7187 (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: As8w0J8ZrVGpgUP6W3wmIQjKERTBk7g+MOqcf8f/t/y5QKSP5A4Ge7rdLD+m4yhYRx6T7Ojv4IkiEZyBNxfpRg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB7553 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. In bpf_mptcpify(), if the protocol ID of sk is IPPROTO_TCP, set it to IPPROTO_MPTCP. Signed-off-by: Geliang Tang --- include/linux/bpf.h | 1 + include/uapi/linux/bpf.h | 7 +++++++ kernel/bpf/cgroup.c | 2 ++ net/core/filter.c | 18 ++++++++++++++++++ scripts/bpf_doc.py | 1 + tools/include/uapi/linux/bpf.h | 7 +++++++ 6 files changed, 36 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 60a9d59beeab..fa8a80024b67 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. + * + * 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) \ @@ -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/bpf/cgroup.c b/kernel/bpf/cgroup.c index 5b2741aa0d9b..6b56de24e1a2 100644 --- a/kernel/bpf/cgroup.c +++ b/kernel/bpf/cgroup.c @@ -2542,6 +2542,8 @@ cgroup_common_func_proto(enum bpf_func_id func_id, co= nst struct bpf_prog *prog) default: return &bpf_set_retval_proto; } + case BPF_FUNC_mptcpify: + return &bpf_mptcpify_proto; default: return NULL; } diff --git a/net/core/filter.c b/net/core/filter.c index 06ba0e56e369..e43b2c42c094 100644 --- a/net/core/filter.c +++ b/net/core/filter.c @@ -11678,6 +11678,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, + .ret_btf_id =3D &btf_sock_ids[BTF_SOCK_TYPE_SOCK], + .arg1_type =3D ARG_PTR_TO_CTX, +}; + BPF_CALL_1(bpf_sock_from_file, struct file *, file) { return (unsigned long)sock_from_file(file); 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 60a9d59beeab..fa8a80024b67 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. + * + * 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) \ @@ -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 23:50:00 2024 Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2081.outbound.protection.outlook.com [40.107.20.81]) (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 BE8A93D67 for ; Sat, 1 Jul 2023 12:57:46 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cjEJGBWxpsik9TxcAUB8D3wrSc9U/bUaDDp5ni5YG98D7zaOG6eXs8K4qJNhcJxbeM6UwJ0h4ecuKza2RVge5UOLqUkQqCvarC62NAdRCNAFqsXaOaKn3VNFq7as7ZSfERM3WpNq1+6n9v8G9DyJe21JR5dBgPCQw2n/A1P0sukvSoUL/g79lmmuAN9BZXSoEzFy5EaongczXM+ClaiGKjhjli9n7TBxCZR4hEZCfRxkYSuy/5PGmhkhkDuXkrTAWC1u0YFTbV9vEaDjBuay6qvP7XBpAupy9LwpvdD7i0xnWdeLRwTidaamf8cUu98JKUPYRDXcFvEyGXNqr/Eqlw== 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=MnxtoG14x0dmnyOH/wzo2UmoJfRLpXfrvDltTuMZlHA=; b=Ww7Lnh2T98sz1Z8B8m6rRJ0MOH73kdCaP6ZdGhVLl8rfXI91teHK8ax5nxDEuvPz0hCS3xsCRKsSNCgnv1EO3s9DZv/GX/vibWeg+GVq58ETZuYDlwbvBjNAs9j6vdVz7NCo9OFXMiu95oZP5SrOLz2WpMxNORGHAbl/Hg+/hbNsXM67MYAWSzEtL5FNWGYE4V/H3ykYKmgP5XTC6hvL61XU/cxMoR3G1MU2SstrsNv48MUS+wGqOp/kLggHlsbrxhR3p28EmciiihuQq6Yo/PQqRnxkcOaXBkrpll6eh7zwvfmoTCKP/JasJHrxym92m3ZzbwYa/BrXUV8QPmHzdQ== 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=MnxtoG14x0dmnyOH/wzo2UmoJfRLpXfrvDltTuMZlHA=; b=n+0DNwc4obgiwvQ0B/8v2eGMgLf51TxZHTVrLuuj1I4rv1UeE9uYeugq0UYqnP5BIU2KRikVGJI8u0FWTXxE55FKpks8KJqMTc0hHA3c7B01qClGq3uXxJUmDKZZOYs85B0Xjff2ofScFpWVknX3INFsdbZF7KAynERO9YcWaCm0wGvun1viro2MLgGeOeQsR/tqaTmC3Y+PcvikcmsuYYomFDM4icnM/N6YvYqfwJ/ZTRUsdSS6Qd+dsVPjl00SDwtmu+tlKNXko5BBVhABVHZlIMvYGLeH5KVdDaqFb5yH7ldoDajdBZ7k6dgGE6OobtLyLOc9QIEc7cybNj+RDQ== 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 AM9PR04MB7553.eurprd04.prod.outlook.com (2603:10a6:20b:2d5::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6544.19; Sat, 1 Jul 2023 12:57:44 +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.019; Sat, 1 Jul 2023 12:57:44 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v2 3/4] selftests/bpf: Test bpf_mptcpify helper Date: Sat, 1 Jul 2023 20:56:59 +0800 Message-Id: <0e4650e3259aace1a64443a5dfb0e7729f40e656.1688215769.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.35.3 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYCP301CA0015.JPNP301.PROD.OUTLOOK.COM (2603:1096:400:386::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_|AM9PR04MB7553:EE_ X-MS-Office365-Filtering-Correlation-Id: b1a8f731-aec8-42e2-879f-08db7a32c2f9 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: MMteyj/9YkZZBdgxQlYy3Ef68ZVUejtR/NL8Fep5avjIwnwz/E5spXlx/Z+gNC/DorbXS8TJIk5tlp0xKUwnoqZllQbfTDrOTMxftSxH4KkYjBjsnM7Z9ui3Klq/DQDh7owJuNVi6FHxSr2ayNm8adHUqV02g+KLkWfQ1x+yNBDifPni14+QX2KHckkajYy3mUN3XtOEra115h9ptFmXjCBXZ5XIY0TOpW0hCqW+bcYoQBJviT3NzjoYKW4uPNRZxWk548miJKvMvPGdJpN4LmIOPqdaSz+1Roq18MuX/Z8k3a/dWNaz3jLGlr3+4n5rNf6pnA2BAL215z2/qBWmNZCfbJEiYyBe52lSIJ8prQl34DJ2/tim9tWmaBn3sy6enye/3nkbaPE4PmYzKP28IOAIT9E+ZRMIi68tI9zp8xliT4WZQ6szqETe8ak31Z4KYb8X5oU3L/s+4uRYFcPaPwCXctGLNA5eyG+3BE5ayzGYteoIWiMzSqmeITayO6dA4OsuunAl+MWQXNtVsbJ3xK/cobb1XH4N9M4xrQm8/QbRkyoIkWb5U1Vs6DmbBNtf 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)(376002)(346002)(366004)(396003)(39860400002)(451199021)(5660300002)(8676002)(8936002)(107886003)(36756003)(478600001)(6916009)(4326008)(6666004)(6486002)(66476007)(66556008)(66946007)(316002)(6512007)(41300700001)(38100700002)(44832011)(186003)(2616005)(6506007)(26005)(83380400001)(86362001)(2906002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?944ApkOco/n8xAUoRFeWumQasoCYOMUUdZul3k+l5wWBzkJtRuL0RwkGPAMy?= =?us-ascii?Q?Rrewp164rMdetJH6+YBKnMPzlXT6rdtHS1WfEBOXVMvJzB4MqvmrqD8+QIMZ?= =?us-ascii?Q?ZDZg0K2niKJhHuMnCnXbd5Esv8rr0/+JL2HT0hMKyUfgSkOtKOJB/9lg+LHW?= =?us-ascii?Q?hTGcy6kpiIGdl8a+oT34URCFzMgJM7F99+/Mybf1jGazM+7LiELG52Lco9xJ?= =?us-ascii?Q?ju2vq0XZm1bhakZIZ3Y20lCnDt3a9mSPVCewIRwgb53CLmvqfwRMN3BqSHYB?= =?us-ascii?Q?KYDCPfeHKMdqF19grzt03ceW8gvVk1HQGFMTIwICPGM+uFxCELh0jb7rqvM7?= =?us-ascii?Q?lGQrEmxjzQB2D8G0Pi/D5ovUhlybQTkClVAymq2Fx2aRIF4BLZpK8/YdQV3q?= =?us-ascii?Q?1hFibQXhQe3B1HIZcZKBrtoz07LENEI9m43n28fKOXdsekmIMVg4pd9w6Z0F?= =?us-ascii?Q?N4as5OQI73pgJry7GoZrqnhRfXEyhTtH39iC1SdX7WrOHY9AbYDZgTZiT4VS?= =?us-ascii?Q?3dI9CynhfZDYC1Hc5hks2XjPW6X5qJ8FTnAQQauGcmuDHBxrfaVIuDzVVWFy?= =?us-ascii?Q?ImmAgSg5N2qIBSCyIl9aWnsUSXzPEfIxe5gx+9ISwyjR6Rgmn1WCBy4Nq2nb?= =?us-ascii?Q?zq/e4fbntsjdLwvEpL0Dn9zI52kfHT9Yt2hhY7RSB3eOYMUYvIPs7ZFtTQ4J?= =?us-ascii?Q?3HjCltbtZ9oPjxKdF5uOEZi1VVDNhdIZkWAw8wwKU3PUNawuIN0xIn1dgDqr?= =?us-ascii?Q?SFPxagVFZxH7d7i/oZgUqTYdPlADXqM2hUEQ+WCZcVvMWoSmb4NxrNuOo3tv?= =?us-ascii?Q?gUj0BT+VLym6D+Y/dWaWOUxU4OXilDwIwvpx2+M/K+FyD9tXsy5fH22LDOPm?= =?us-ascii?Q?fWuP6q24qzYPutS8INrYwWzBLG1vgx1bVFOqIcVcjvbXsU3W4G3l/wdDhoG7?= =?us-ascii?Q?bRJz5/0JxM83of0/Rg5RfzS3UzjqnC+Bl2CIba/6ExvhYz38McMTSM46Qxjk?= =?us-ascii?Q?MDIAJweiPxuqvplCV2ZxHlo+1nKSjHrTTSQskheqAMYwX1eFQst+3X2vHmhQ?= =?us-ascii?Q?Qe4x1AyJpANIbjM/LIeRs1w0ZfwSRydya7hVgssyjVKi9+1tpJrg05IKP3Ix?= =?us-ascii?Q?Ffa9rXaJYAk+QPBVgpp6dlwVjA8QXM7f3VEZvbn4L2967U1GFttjXRNSLDS0?= =?us-ascii?Q?uIJA68Wc8Mef71lbWiZ3aiOkuqFn+edMY5W2zY+9Oz7HJgVmRO9Lqy1bQK0Y?= =?us-ascii?Q?jE0bG/tCMitVoKFGCVMKLr9MGg2dskOPFqpXzkZuy2Eym/sWhFUA3638m7rb?= =?us-ascii?Q?VroWD+5m04lOTrJ8f+U5l6TbHZopbhNeqMTgxIf3MKMW23+mpboX+6PRAwot?= =?us-ascii?Q?kGvu/p/9tFZxYQfw7XSi5fqvrhJ9X/M2y+5rqqQg5X5LAns8unB+qfO+CXEs?= =?us-ascii?Q?NsYciqtH84KkqAbYtwAfGjrSYaiihiGiWu4LrO4cPbhvg+N62sCG7WL8PUiu?= =?us-ascii?Q?vwqtKfSiuv+/qi1ywS5uTSDlI/4oncfiJhML/ef8cqH4j5FH7mxMr4nXujPe?= =?us-ascii?Q?bo6AM0W22XQ6qB9mPdETIY6SRsJPF/a5QTeqoVSL?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: b1a8f731-aec8-42e2-879f-08db7a32c2f9 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Jul 2023 12:57:44.4941 (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: 4gkK6p+zxq33Wkut6Saff5fT16wIB/0FoLYfTLw9H1jHms7CpD2+dxH19DSrqYGR8h22XveW2sAb+yO4CAqwXw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB7553 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 'sock_create' SEC, so it will be invoked in BPF_CGROUP_RUN_PROG_INET_SOCK() in inet_create(). Signed-off-by: Geliang Tang --- tools/testing/selftests/bpf/bpf_tcp_helpers.h | 1 + tools/testing/selftests/bpf/progs/mptcpify.c | 26 +++++++++++++++++++ 2 files changed, 27 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..f04b186b9c26 --- /dev/null +++ b/tools/testing/selftests/bpf/progs/mptcpify.c @@ -0,0 +1,26 @@ +// SPDX-License-Identifier: GPL-2.0 +/* Copyright (c) 2023, SUSE. */ + +#include +#include +#include +#include "bpf_tcp_helpers.h" + +char _license[] SEC("license") =3D "GPL"; +__u16 protocol =3D 0; + +SEC("cgroup/sock_create") +int sock(struct bpf_sock *ctx) +{ + struct sock *sk; + + if (ctx->type !=3D SOCK_STREAM) + return 1; + + sk =3D bpf_mptcpify(ctx); + if (!sk) + return 1; + + protocol =3D sk->sk_protocol; + return 1; +} --=20 2.35.3 From nobody Tue May 21 23:50:00 2024 Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2041.outbound.protection.outlook.com [40.107.20.41]) (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 AADEF3D67 for ; Sat, 1 Jul 2023 12:57:57 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jTMIuB3Qh89eKG2wDKcDaPwP+sbPbqODI9E9dA9zV5ow5c4Hz4CjcNZwITcmItRguMnW8mvULpy25yGFEF74utMmfwxWynU8rYobhb2ZLmZ3LfszogrVsxgf9xWdONgd1KZ5hF53Dl1vpBcVo4Xnd3ouUibQ76Ra3mB7OuTq0s7Pgm1PwvghZPcsUvZUoJkXAj+9Lke/q7IXbYpGmrrWYbnpkQakjQf5iGUDJmyzOEymDxeImZlsNduO24K75ey0vjiulG7cNx2nFxwt+hFDV4nfltTGCuwS2E1hBmzLmUfk3s6iRZTmBs/5AA2IVtfELUi2wWr+83AKZkQhHl72Ag== 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=K03zPrbKsteGPyD9MPaCNvWRRibZ6cS2jInZuWCy2k4=; b=BG0lQDPPUmyVFUqhdYyXzGnfIayuHHIvMf0OTtiqCu5IlmSyIr4cE189wCgwB8pw4QW9jDJR4Ic1n0mfBgFjBBlVl3MYmbHalr7+p8xgfmQsyOrOqysdK1CiwIL1iOZ9nwo/ZWNJyJe2lLQzDvJZtLb8frWNvGkj8peQ8hE3lssPBvLCMF/Fz/+dmKy1edI0ZPazm6Q5TBEjP+nccdo3KsAlJv4y4v0zfqlTpvPj07DyZXMEoTk78jhj8OanvptTn3dDtmDwq/HKbkBT7xv2xyqafM+W9jSOhfkoVQwY2esLeyTBBWA486E/LiBSYwLcnzD8VA/kzYs8rcXttqmWuQ== 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=K03zPrbKsteGPyD9MPaCNvWRRibZ6cS2jInZuWCy2k4=; b=h4b59VLEry6JhYM0q9Khl5seE/eILaYmKRAwHeVngBAFJe9lOF1EJyL88xVnHthhI8mcNovIBYIIQnuFOXZVQdq94+W3PmUSb6M+9K5IV1+b2EenYobszSRI4bkuv0M57m89uLDag2+urkSjqbXOWYPzfn6q9Y832XcQJ+wnEWmvfqXIBrGzqFM6GqgtEJ3pHp35mYbYLeMxLeZgWXcvKnpdI+RyW7xm1oeBpUdqXFTLur2NbeMG0TBP4Wz/M0ZhNARmpx9OgIbJOPwjiiDBo+SkVfvWC1r177SJfxNi55mqa2BdesO6/AaF79pWy3wtgnlTjaNsBYr4k8PstfdVaQ== 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 AM9PR04MB7553.eurprd04.prod.outlook.com (2603:10a6:20b:2d5::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6544.19; Sat, 1 Jul 2023 12:57:55 +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.019; Sat, 1 Jul 2023 12:57:55 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v2 4/4] selftests/bpf: Add mptcpify selftest Date: Sat, 1 Jul 2023 20:57:00 +0800 Message-Id: <56db1c21d35a76ebc9cc6017da64b30add33304e.1688215769.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.35.3 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYCP301CA0015.JPNP301.PROD.OUTLOOK.COM (2603:1096:400:386::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_|AM9PR04MB7553:EE_ X-MS-Office365-Filtering-Correlation-Id: 526eb61c-03f3-4a05-67b0-08db7a32c972 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: oGv8xMj2K7MGoNJcP/2Tz5vp7I99TaEGTwjSKm52PVKS1gF8P1YYgQoZ8nIrglLQtupX2l0uM7Pv5mmZqBLLmBMOs55lkXxatgX2MblCRYo6TMcLJb5ZQ77BsfugZleV7oJm8OVz5LkHHe5Ty6KUxqpM4m3Pnk9v49hb4Av9Uq0OPaudPlVcaemRbW/Lo3TlOd24oXZ6SHKSBjZ6p5hROUcGbAC761CKFfyBQnoJMiH+OCv0G0VknQxs3kXuABzux8JkVhn6GdVYgcMWSMsdBihgP31FMJTkfhka2u03/ZgWbaWQRXb5xnhS6pzuq9Bf68hVq9EGhUQ84LsYR3PsMuYEsrW2+DXR7mf4xXL6VrN81NHze7YLpcpSFP0DvYKWY2n6zif0OkOARgK6idaKQ1lRPDHlslFjckg0P9iRQSXEHfOWzTrJp6PNvCgSOUqibJWHNFmUKrH+oMC5d9KpKQh0+Zj22Tgo9ct5kP7b0JIgOE6R4BXR3lQOvkwkjsEK3IZQiGn3mkTMKrr1ACSddl/oh389ieIJLw1qtvBTNLEqSum2e4q6HhjCehLluJ4A 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)(376002)(346002)(366004)(396003)(39860400002)(451199021)(5660300002)(8676002)(8936002)(107886003)(36756003)(478600001)(6916009)(4326008)(6666004)(6486002)(66476007)(66556008)(66946007)(316002)(6512007)(41300700001)(38100700002)(44832011)(186003)(2616005)(6506007)(26005)(83380400001)(86362001)(2906002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?PfNIFQvZUMp5aHHFTNyY8OO6GSv6/1X6dn2wIRehVOvHp/RkIkNDSEQ12p/g?= =?us-ascii?Q?6yt8TRvHaoKVRTnUvqaC0qCOJWbItN9taTEAsf+s5g8InEQabHAU/wNb75kk?= =?us-ascii?Q?nClOYilCrBIQfKsLIhpZVxYHUNb68+LhVOmswU++RSjRjnIbFDTFIeCsHtfh?= =?us-ascii?Q?7pxl/k2zS0/VfJJNq69LsVGXrCBbhrSVML+a+28ig9xc9YABL+TOZ5mmRMEU?= =?us-ascii?Q?rAq67TR9OE4Aiow+8WNE6o/ahiujguDP6W9NWvjuvHPVQfs7VI7WUMSKLKvb?= =?us-ascii?Q?rjDZ0dZ74MYHu8aAw6Wq8LzsCUDVrgG1t1t4vHxjFaxbosiZ9EIKYYa5KAFD?= =?us-ascii?Q?5LT6GoTljwJvAb66OBwm9R5D/6SGfcdM3u2uj7voG3XxvoUOz3wG2KkNmWUG?= =?us-ascii?Q?5BcG6um0pS2axNSa48VLaFOYzYhw6z5Dq6M123XLImZ+DKSEhTqKbBNwy7PG?= =?us-ascii?Q?LbgoffvPvpkUkItevJ5A+j3lRlOFPtKwgsDJq0JP2J3Y6OjkfF6Km0LggTA3?= =?us-ascii?Q?MpaKPBAaoRwhWUsCpJz8UuLg6uFAThmT6/1aN8n7/razdz7ITfvYxRAGXXB8?= =?us-ascii?Q?jsORb6xVjtcL4lW0uNrVgwM6xM24L8PQTvdwz/dnr4B1+RviFLtzTOx9FRaq?= =?us-ascii?Q?w2j6X9t7e5EVmxhE7WjpWPOoD2YpduVx1K26QBjWhHFAbPJBpDMJag+tcS3E?= =?us-ascii?Q?3fKNCaXlxqrvT27wLFRu/PHM+ra97wSKnF/jZ8jhVsLg3JTQb3/a2aILPi5A?= =?us-ascii?Q?zsv9UIxIwqSSASoWDL3usf0Eu1jTt5BbSmrXfxGyojMt9MKbYGKQrKP4+m7r?= =?us-ascii?Q?mMYAuNJLDEMWKvW5ag8xqMqjKuEIDoGNRnSXICPvT1ilFZLtImciUncsCt79?= =?us-ascii?Q?7Rc5cBi/dFvRnwJ/UnZT6iZDEwbU16Q53xE+WU7mDcTAgYhiHDS8k6AjvOzl?= =?us-ascii?Q?9t+zhpzUe9bpZJCuxzKcA0WML/MykZERvoIaJC1RPKhN/SoKKM+K0Pw1R8Ah?= =?us-ascii?Q?hMU58xW6JA8PMIfhqSBgvdhbkyY7URiir37DStneDoz/AMI1+mX7pFsl+fo1?= =?us-ascii?Q?3tv25mgfNUNyrQVyJCE+gR5wqbbn4Gs6IhLwAh/xylzqqlQVG5PcDq+FjZq3?= =?us-ascii?Q?xxMFcvpHIFVdJ0lSSwvANkXa6qpINX6jCgichnoyYVfLL0Z/NphUsNQo5Zew?= =?us-ascii?Q?1RGYWVGNoj1JcOhnFjQuDCWw604uSjiw6hmupy366JNsdAu3ySlVZJH82Irx?= =?us-ascii?Q?nlwL/joOHDUos+6aPcnAfRcaBpZm1qQs7wXJxy+9wfb5E84vd8L/jB5PBRWY?= =?us-ascii?Q?R2ya2aa71vP3zPt8KsOI475xiZMgBhw3ptSne3kWDor5Ztf6I73PbcdCU0VY?= =?us-ascii?Q?tIcCtMdvKj1b6raClKS/OnXbtclZOr1G1BZCdtVDOgUI3AGvRufcd41CiQVb?= =?us-ascii?Q?C45NHqNm3xFbT1Y7ALsFfVx3cokuX6tZj0UUU1ks/LBX0dVZa3xtqICa3GpQ?= =?us-ascii?Q?/eXhKKbA4OXnX6/RNkUb5djIGquj9+1iT6OzrhZDA5fJ/77c6ISMk5rpvxOT?= =?us-ascii?Q?NxsT7LjTpWVw+ZqeQv7gswpGDKMjtS+ijCdJhUXe?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 526eb61c-03f3-4a05-67b0-08db7a32c972 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Jul 2023 12:57:55.3505 (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: vT5nrg7M0xN/lQMYc/lZxLv+wqmo7AzYw8VV26+Z/1VGA4iSUDJ8DzODyy81SnJ9WUMQwz8av+WY34eBw9JDBw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB7553 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 | 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..5f498bf5a677 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,87 @@ static void test_base(void) close(cgroup_fd); } =20 +static void send_byte(int fd) +{ + char b =3D 0x55; + + ASSERT_EQ(write(fd, &b, sizeof(b)), 1, "send single byte"); +} + +static int verify_mptcpify(int protocol) +{ + char cmd[128]; + int err =3D 0; + + if (!ASSERT_EQ(protocol, IPPROTO_MPTCP, "unexpected protocol")) + err++; + + snprintf(cmd, sizeof(cmd), + "ip netns exec %s ss -tOni | grep -q tcp-ulp-mptcp", + NS_TEST); + ASSERT_OK(system(cmd), "No tcp-ulp-mptcp found!"); + + return err; +} + +static int run_mptcpify(int cgroup_fd) +{ + int server_fd, client_fd, err =3D 0; + struct mptcpify *mptcpify_skel; + + mptcpify_skel =3D mptcpify__open_and_load(); + if (!ASSERT_OK_PTR(mptcpify_skel, "skel_open_load")) + return -EIO; + + mptcpify_skel->links.sock =3D + bpf_program__attach_cgroup(mptcpify_skel->progs.sock, cgroup_fd); + if (!ASSERT_OK_PTR(mptcpify_skel->links.sock, "cg_attach_sock")) + 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(mptcpify_skel->bss->protocol); + + 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