From patchwork Thu Aug 3 07:30:39 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Geliang Tang X-Patchwork-Id: 709811 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 230BFC0015E for ; Thu, 3 Aug 2023 07:35:49 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233921AbjHCHfs (ORCPT ); Thu, 3 Aug 2023 03:35:48 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44930 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234048AbjHCHfQ (ORCPT ); Thu, 3 Aug 2023 03:35:16 -0400 Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-he1eur01on2047.outbound.protection.outlook.com [40.107.13.47]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 685FF44B6; Thu, 3 Aug 2023 00:31:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ItgGjcowWbAZFs+pzozMm9FpHyjt96cCK7Rt+NNOQTPTfBhUQlZNqOmC9O4s1p0HP/Lid4Nmc4y2F8mZ2FPGV/cVwFx8s8PrD/WoZuWOo1BZalNVnUHE+GiLwgbn7Ck9hqbGv173+lrCAEnmuM5vO4qWjTwOuNIQl36sqQ+zJBCfiG6GY2l/ey6I0WVDa6STGiOFPN8g2q9Kh6yPxER0FzoLGv40WnOMGwSSJ1mGi1KBBeb5pMWY+mgAqgIrwMCRbAbp8jGWReZsC+Qi8X0Hn95MS4cjjLNsXklxlaRukqRLHlwNgZj4dgw/PuNau+tRsrkl8WSSTzbIZIMDPHgDkQ== 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=7ytRqdk3KEB9d6aj4yqz0u8W0I4u0l3uPJT5jvEkMqs=; b=m/d+4nPH1JTFQdjLb+/ivpX7vK0QnJ57Te0KHMkrU43rnWlvzuGeqJaVXrHamZ1gt0gIMcLNw3eRBlUry8mse/g9uWbjDywa2bDvpJOs0PU4K5wBfYUGKUlLPkSc50Lm4o7zXl59jZYC4HVSZT9ilnJl9/vBNJ/jO59/L2gNhrQAdwDegoxHNYuI6e74mnVBGGosSD09ZqatvyLlA9t8L9EyDQSqLyzL6R2hcK2wlyAiitHs8tV5nLrncdQV1SCLhvQn6vIbN9AVTAMv5OreyHSYZWqZwNGzPOBKkx4xKMe6Xu4LX+RoiXVSBDFgJvC3itC5foopSKr5APtVzVqWKg== 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=7ytRqdk3KEB9d6aj4yqz0u8W0I4u0l3uPJT5jvEkMqs=; b=ZOFQBJRC5PuUUwmr1DYNO2oaw+YUhn7O2iRFoR6dDZ1biRBu6GJ34W592cjy46gJylSvi9T1Hgt7CFGTP2wzwUiezsLX4dQhh0wmnLQ3hIRkgpveKqETrc4b/B+Dx+om5syeOGY+CTho0Foza4DHNWqzFTNL326PS3UR2QHNqEqjHXt+DodJ1+Lr58XYa6AYfzCHoQTGEjiTyHB2gR8tyb8F404aNntw4gVPV8+/8+H55NnyfFrUBF1MD+5LHuy/s8bYVEvGm/9P5MBXkF35mwEJw1HD06a34BL4NRoiki/RSkdXP4W5IxwjbFKT7hUISIJyxcIHFUzk1qdFhWyhmg== 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 AM9PR04MB8571.eurprd04.prod.outlook.com (2603:10a6:20b:436::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6652.20; Thu, 3 Aug 2023 07:30:49 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::bf65:a49a:8861:4f92]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::bf65:a49a:8861:4f92%2]) with mapi id 15.20.6631.045; Thu, 3 Aug 2023 07:30:49 +0000 From: Geliang Tang To: Alexei Starovoitov , Daniel Borkmann , Andrii Nakryiko , Martin KaFai Lau , Song Liu , Yonghong Song , John Fastabend , KP Singh , Stanislav Fomichev , Hao Luo , Jiri Olsa , Florent Revest , Brendan Jackman , Matthieu Baerts , Mat Martineau , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , John Johansen , Paul Moore , James Morris , "Serge E. Hallyn" , Stephen Smalley , Eric Paris , Mykola Lysenko , Shuah Khan Cc: Geliang Tang , bpf@vger.kernel.org, netdev@vger.kernel.org, mptcp@lists.linux.dev, apparmor@lists.ubuntu.com, linux-security-module@vger.kernel.org, selinux@vger.kernel.org, linux-kselftest@vger.kernel.org Subject: [PATCH bpf-next v8 1/4] bpf: Add update_socket_protocol hook Date: Thu, 3 Aug 2023 15:30:39 +0800 Message-Id: <120b307aacd1791fac016d33e112069ffb7db21a.1691047403.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.35.3 In-Reply-To: References: X-ClientProxiedBy: TYAPR01CA0090.jpnprd01.prod.outlook.com (2603:1096:404:2c::30) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: HE1PR0402MB3497:EE_|AM9PR04MB8571:EE_ X-MS-Office365-Filtering-Correlation-Id: 602f81aa-90a5-4ff5-e34d-08db93f38f2e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 5lNkwWiVe5D/uNZCyQ49nX0gkNC4IsG7FAGRy8KjLmweVM9YZukGQZZR1obBt2i8alOpEAquBPppJwlq4n3LxWvkKwFkWhtlw16M2+4qSsx6X9W23GIf0vEpF0yDacPdaTTc48jwC7wmv15ojbi1/dAcPpQZPswONL+3R6P4qa6R9DRnKAhLfaxmlw7Val39lfn3UfxyTvRk4JyEFnZWTf29k0PgHyTGEw5fMEfm38OjwwzcbjH4I2/Yl5AmtzfDS3L4Hd8AR1wV/Bj+uKct/2kizS6M3mCX3+a+qLnrpwdAHZKVyXait/bPp91kG1/E3QJL8dodkrK+udYsV768+hL/K7jsuxVkgpkmtV5k9c8a1g+OamrN+Y1zKrkoyn1Ih7W+6Mxqswt+LaahZDWWWAwAWyxH6PG2LAJUXawyjGg9U00ZH4S7dYo6qQKzmZsKEqnbd7i41ZcHXpVISb3lxs+eRAGI88WQloQ2UiQpa0Zvkt44P+7J/17SI6pr/vgm7vQ8c8Ets3pLCm+QQd/WC5aNCDSxDo88LNdUOAWEGamm8ZXZhQx7Hj0Vb0t/g3Wjx2Km6M/nTt0L1rr3d2C0ME/p27UbDwy8oXAIm1cMg0A4nzc24SgI94U9I+zGPBPih6+NtRvv/txA2BH0xwixGw8l0VMTqMFFGMLXcRTme3itvZXks6+LglZ6mAXRoiq/ 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)(366004)(39860400002)(396003)(136003)(451199021)(6666004)(110136005)(6486002)(41300700001)(478600001)(7416002)(5660300002)(8936002)(8676002)(7406005)(186003)(4326008)(6512007)(316002)(66476007)(26005)(6506007)(66556008)(66946007)(15650500001)(2616005)(2906002)(83380400001)(44832011)(36756003)(38100700002)(921005)(86362001)(13296009); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: Uzj8iTRFp0bP2Z6FMfAtyK5O091SPllwMsvRAvp0yDCaK6YXXzE28oRB/tCVcgFCJ2cHvNGzlwgvJi1FSkdbVXIovFp8yNsIoKZCRtrkJnEx9U7LO9X70RYZQSOpL/AiNyxRlhtOX8y6MuN0G3kCsyvbo362t/pP9GqDTf/eG5VxD1q6xMJ2BTlQXWTV8VU52u9GlAsO6cQLKZEaDfNpJM1piDx8BOfQBWxXHaaJm/JqHdNv1jX+EpSDJPPUYz+nZtFZspu1dqA5jG4OvsIqx7MVj+VAAmAy0HWIvjWznaVZ8LvT/NmI0bA6wM39xKC9Z+GVcP/9PEEPF/6gSvBCQWX69ywRXoqcmFdBk76zdoNoocDDrNNcRXwXeCduRCxqiu2DaTKhwSJed6KnpSk2SV/CJNdkw09/Sz+VwC7PFV4fVX9/7nhEXZzpu0n5JeSc3s3qoxhiAhEHkC86u7io5CRTFK8oUUu1/pPF2Ti8XTDuxVO65NtfjYb95cxvDay6xUwOMT9MU/IhydnFhxFDNEqKdooVxj9JS73Qz3OwvS2cxscglZtCDHjkXpzeWecP6UA1B7SlSWQIU0L9wY8UBornDMQvIISl2p8LSdB2B+9UEYrQcp6FFXisSU2musQPuybuI7n5Dd2hK0RBO+1TB+syVuJoDC/PdAWOWQrAM1Aj+V/D5qyWwZiukI5iaStzKTONNnARQVIJxkOK/cdy5sn6AlJyhdchXTtGLxt+et+Pz7Z9xgROxklH4v7/eeT4ku9Ze8wk3WKGZiQNYPst5kIDGAcfb9zlTH95V/o4hIwS83Eh/Kx5j8qXg2wQbfbS9ogbXNpl5MMw3lMGWm5Zo+MGLnuea8+lUI0d3qe6QhTis4SoQLPjlg5k/qHYMzTc05yIZ0Eq6czYoUDD2cn5oPGbcBb/2X+95anca7h98IVE0865bZ4b8W3jy9pPdWEWNU6uTjjURuOS4NA0FwkRfgi8/gSB7MDoaxtYjXlEf9c0TpwnvW9QHBCh0/hkg2od6O0TXPnnLZa5zKsHs+XzAZQ2VDxy8kWP+ZNzavD+CQH/Qd+I0JsR28vBidqTzHr1ATrQv27UZSWugVg/GvVX50KON5ogeIq9cUIoLM5TDNCEiG4ukUXVlGqi3hGk1aTi/zTFOFXa+/XriBezRwSMvzC8DLdB8Eo8GYuZjIugAeXIHGVC/VqIG7BRlxBBWbVoFTtp/yRYUMHK6FZ7kahcMlRhRkkSRG8xhxAmMoVhAGOrWmH1ML0jOmL4hB9hdakjx1EADEv4fjQZSHPYO77YYVGzKKU4xdzlljjHZ65v0gQF6iuwl73YlJR1LQNgOlNW8U8/D2NuRAcQx1R662e13rbPHHEE3czejTLeatA7LBAcysR3LoIESbUSlCUZWzt8DdVVJDj8mih/e01ipsuTVzFh9/WGhiwaesfyn4BQ7B2QCFxW+nj3tcYGBqnVtH/niFiMfk3lqbujVMPQHdA1ioM3Yhgev1IiB1CVZ/6bEr+n/xi2OCbW6H19D4VKb3T6gIeNX0u/piwXkz3W+xmoDrbg2/ghdJyJMoEIBzUsj9mMbOZiwl+9LDzWLZXW/VAy X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 602f81aa-90a5-4ff5-e34d-08db93f38f2e X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Aug 2023 07:30:49.5182 (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: BAxDRXM23xoUk1SWG0V5X7EKJBqjTW2D3MqeZ6VZcm6HyaiPEx8CO418m8TpzOLx7YLfJxSzKKHxU8CxjAA+QQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8571 Precedence: bulk List-ID: X-Mailing-List: linux-kselftest@vger.kernel.org Add a hook named update_socket_protocol in __sys_socket(), for bpf progs to attach to and update socket protocol. One user case is to force legacy TCP apps to create and use MPTCP sockets instead of TCP ones. Define a mod_ret set named bpf_mptcp_fmodret_ids, add the hook update_socket_protocol into this set, and register it in bpf_mptcp_kfunc_init(). Signed-off-by: Geliang Tang --- net/mptcp/bpf.c | 17 +++++++++++++++++ net/socket.c | 25 +++++++++++++++++++++++++ 2 files changed, 42 insertions(+) diff --git a/net/mptcp/bpf.c b/net/mptcp/bpf.c index 5a0a84ad94af..c43aee31014d 100644 --- a/net/mptcp/bpf.c +++ b/net/mptcp/bpf.c @@ -12,6 +12,23 @@ #include #include "protocol.h" +#ifdef CONFIG_BPF_JIT +BTF_SET8_START(bpf_mptcp_fmodret_ids) +BTF_ID_FLAGS(func, update_socket_protocol) +BTF_SET8_END(bpf_mptcp_fmodret_ids) + +static const struct btf_kfunc_id_set bpf_mptcp_fmodret_set = { + .owner = THIS_MODULE, + .set = &bpf_mptcp_fmodret_ids, +}; + +static int __init bpf_mptcp_kfunc_init(void) +{ + return register_btf_fmodret_id_set(&bpf_mptcp_fmodret_set); +} +late_initcall(bpf_mptcp_kfunc_init); +#endif /* CONFIG_BPF_JIT */ + struct mptcp_sock *bpf_mptcp_sock_from_subflow(struct sock *sk) { if (sk && sk_fullsock(sk) && sk->sk_protocol == IPPROTO_TCP && sk_is_mptcp(sk)) diff --git a/net/socket.c b/net/socket.c index 2b0e54b2405c..586a437d7a5e 100644 --- a/net/socket.c +++ b/net/socket.c @@ -1644,11 +1644,36 @@ struct file *__sys_socket_file(int family, int type, int protocol) return sock_alloc_file(sock, flags, NULL); } +/** + * A hook for bpf progs to attach to and update socket protocol. + * + * A static noinline declaration here could cause the compiler to + * optimize away the function. A global noinline declaration will + * keep the definition, but may optimize away the callsite. + * Therefore, __weak is needed to ensure that the call is still + * emitted, by telling the compiler that we don't know what the + * function might eventually be. + * + * __diag_* below are needed to dismiss the missing prototype warning. + */ + +__diag_push(); +__diag_ignore_all("-Wmissing-prototypes", + "kfuncs which will be used in BPF programs"); + +__weak noinline int update_socket_protocol(int family, int type, int protocol) +{ + return protocol; +} + +__diag_pop(); + int __sys_socket(int family, int type, int protocol) { struct socket *sock; int flags; + protocol = update_socket_protocol(family, type, protocol); sock = __sys_socket_create(family, type, protocol); if (IS_ERR(sock)) return PTR_ERR(sock); From patchwork Thu Aug 3 07:30:41 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Geliang Tang X-Patchwork-Id: 709810 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1B504C04A6A for ; Thu, 3 Aug 2023 07:36:10 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232235AbjHCHgJ (ORCPT ); Thu, 3 Aug 2023 03:36:09 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47164 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232386AbjHCHf3 (ORCPT ); Thu, 3 Aug 2023 03:35:29 -0400 Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-he1eur01on2047.outbound.protection.outlook.com [40.107.13.47]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 82AF446A4; Thu, 3 Aug 2023 00:31:51 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RnRMk1GYPmY7F0oTYnODCjuHXThHKnb1EoMurBOQLrnjKmTglaR/6koqAdOdX+STMqEECxX90922LSupgZl88ISzJ36ltZyUQ8kCx2LmClXuc4xo570IROOGKJhdu6+ZcbWRwyJTmslD/4npAgd8q+TpfgFRwvfIdltWERkQLaf1NTmFtGPWgj1upEMye3Ph/E7PaYuCNYUHkWAgr8NmlKbq6wcLWWmzEqNInKuIpV8iFTpJzN99FxsQ+o5x1IHMdWNZL7ZLS4NrqAxzGSWwWtZxw/9bn9teL7tmoXmXUAApNI+Qwetle2iINC3p127gLqfhhYrjJnXqZ3CBb9XhPQ== 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=lWqMc9UT7yWdDRGAA1JFdqK94iY4Pu9Cr1Kw+TYOXMg=; b=ne9w+SASlk/Lv95MbMWhAhkQTdsdNtw+2FU2WFehqL/H2PkVTqdFZ+sJlHKQbYdDc218G7AD7Urtujlht0sKh89tjz4TC0jBdN2+aNHeO3GO1wdghplI+rPM/tNYvr9jFXvxXBXZ349lVpyf1pVtgQb0RFgy2t3m0PrAK6hDg+eCH0kBP4Hx1pgpBV+XcGJhh7XdV52oRmH/NjvcvkKz6G3J5bM46vxgISRmu+UG3mBRAoMjT8x17lSZkgzYn6zhq/+66QuhJgCrbvYYHYog/h+SfQ08zE5f4G0Elqe5tIHFNjXC5FhUdU9YpRXhFNQbOrXnHhfpOWPiKcz7cCusgw== 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=lWqMc9UT7yWdDRGAA1JFdqK94iY4Pu9Cr1Kw+TYOXMg=; b=JPj0Irxqq1r9Z4qcZJMIEjW97dKK1EB9SHMvK0HSm1oWGMXkTH9IeFBGvmUeH4b03r2WoWZSYAbBjXJbmHZJr0h3K2otKGjWJaejLrAon/5jT/7cZd9mRDL96HHkVkrJfzOjN7JZ+DrqfyJkVrPy7ZX1VruFvafFrPhCXti5ZmJ6spt8uRMjJ4lND+Oel9qhX9WqC6e6EDk5nJqMYKdQRMIDRUTC2RsHM7eUjx49pGLm4Ur2y6QUhdOScFX3bG2CrKgvrb1dZlzxjv9cElButnqetmHG67MXmCos3ZeNr0v+ZyqePui9chuDE/+jqG/dU4lYbWmaq6aJi9e/5eHJ4w== 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 AM9PR04MB8571.eurprd04.prod.outlook.com (2603:10a6:20b:436::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6652.20; Thu, 3 Aug 2023 07:31:10 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::bf65:a49a:8861:4f92]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::bf65:a49a:8861:4f92%2]) with mapi id 15.20.6631.045; Thu, 3 Aug 2023 07:31:10 +0000 From: Geliang Tang To: Alexei Starovoitov , Daniel Borkmann , Andrii Nakryiko , Martin KaFai Lau , Song Liu , Yonghong Song , John Fastabend , KP Singh , Stanislav Fomichev , Hao Luo , Jiri Olsa , Florent Revest , Brendan Jackman , Matthieu Baerts , Mat Martineau , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , John Johansen , Paul Moore , James Morris , "Serge E. Hallyn" , Stephen Smalley , Eric Paris , Mykola Lysenko , Shuah Khan Cc: Geliang Tang , bpf@vger.kernel.org, netdev@vger.kernel.org, mptcp@lists.linux.dev, apparmor@lists.ubuntu.com, linux-security-module@vger.kernel.org, selinux@vger.kernel.org, linux-kselftest@vger.kernel.org Subject: [PATCH bpf-next v8 3/4] selftests/bpf: Add two mptcp netns helpers Date: Thu, 3 Aug 2023 15:30:41 +0800 Message-Id: <72b924b35bdad2a598534e32869cf3a19516bace.1691047403.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.35.3 In-Reply-To: References: X-ClientProxiedBy: TYAPR01CA0030.jpnprd01.prod.outlook.com (2603:1096:404:28::18) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: HE1PR0402MB3497:EE_|AM9PR04MB8571:EE_ X-MS-Office365-Filtering-Correlation-Id: 3ddaec91-cb1e-4855-9409-08db93f39bee X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: +0cIk9khNadvbKoMJRK2f2q66fY2HhXaEtUzaKCuZukaVuwrVmOxpM5dyV1pOk5gMWgyVlF629wzODfezF0SImwPwJmN708RYzVZrcMktv+PtZ92uY9O71/biE/fckEd4elCJnEI7f/9C5Go3hjLrOIqBXMcI4d7+DqQuf5zNg8fGz+gOD4TARufI15Hllr0ghZ3vRAUFyFCf+E58L2qx+sjXmOP2NksMUm0o2lnsSVGJWjPK1m6XmSXQlRlus/KeDw1Gq6pJBFxjRjOLCVKYiECuGqH/vi4AU6ZJCh1FDRyg+imjRE1N56XfP5uhv6FQtim9uzBbyitin5WMzT/pumzPBe9Cthabhl3x+19DtqHt2LAbovIoiEcBaReA/RQ8A4K8IAhp1xvJL5zTLb9W1HywCt2wbfJD3iU/Jd1JoIXBUxC3/SnV0nOXn1xl9NKbTzRS6QxmKvkMw6f8UooRCnyab3eElJCL/6Lb0P1dPqrLEZMpLro/89nk3XQ3djukWn4Bxkibj2ZAGC1QVfMukXaQYawDwGiHkoc7TnM0841YHNfwl0dHyP8Hqlrddl8sWUmhn7ArRS1JQisD5A67grCoW9QZH0bZ/za87rxzIPD6Z+40baY/Nix0xi6Yj6LQBZLHQuLbjLJquVR8CZ5+mHyxtQ/EVwNrcshfCzaymA= 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)(366004)(39860400002)(396003)(136003)(451199021)(6666004)(110136005)(6486002)(41300700001)(478600001)(7416002)(5660300002)(8936002)(8676002)(7406005)(186003)(4326008)(6512007)(316002)(66476007)(26005)(6506007)(66556008)(66946007)(2616005)(2906002)(83380400001)(44832011)(36756003)(38100700002)(921005)(86362001)(13296009); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: Ke5w8LaLcVypwN/7PZcZa0AVvIYi4dXbOUneqMMuTYjRJbEkCwzj/tF9ctV/W3MPQjEUsKSO7WuwwfSnKeXYcqKDFnrHdhWwMtNkv+ll0XjjSaPa8atXICy7Gb6V7d1VT5SsV9KtOekXhS5erIO29MzGf3dO+D2B3N47FZLFPVii7AHQx0LvTrYfWxvikcGjpzqDYHLZGgAJ7a4IdeMAtasabrjyMsGwncGJ7VEvkxpVC4IURKwDE9Ds7GoX9W6Wgk+MAdGqqCclY1J6fiVJ9qd0Veh93WGWTDeXJBa57k6zZUyQwm5aIi2Nay1Xxf2wRnJi7LkxDnj6gUd99XX86t5RzCZRu8Hj0zP40naGgpftLnS/ofDjAZB0E0iXn8KjJuE+nv8ngD3w6UQvsbnTOGV8y8onTcF3YWZFoZ14sEWiNp0i+HwwogV3jsihi5TDTZMDFu5UQYXusoG10r1PFlXtF+N9anygYUFOWtCxOzMuam8LNAR02Nxv1ECzIZbcG9g3D8TnbZKifR9OVKEDNi/zbL/uLv6cHgFNCJSvp8urUAt264kQ8BEGNvdXEoEDyQVkA0y1MLJWVuPK0mAJt/b9oyq1fdCb6vvGRDx/ha5FLvcxIiDPpNrd3IPN8D+1XhHhW0aR1I32V1AC0xIsPi/wJeDJdWXWK6lAHcmakCFzCh5ZeQ1UhDALczp+9S+o4erpMLv+2PFh7uAbf1Ao/rMAhHmZ+YR/DRV1dO/H+u7UV8312UGeiQgq2s89YSX+nvmnutJG8Z2KqqHwydu1842ON3qBhKzDvF6KOqla7J0QkDwmE2lIiQsbfV/enWSiHITQhICUZz2Hm46jHtYos/BOQQZs4xWVNQ99GfBtzXDDKLa/qjMC8Fc0SQn2z8OEj463bP15xxCbJLppdO6luV4ghFFgY6vQ6hdvpRgiLBEHn3RgXqEpB/w+gNjq1MZ9RW3prvgdCH+NPLnZam+/gkBgsZZyRHXJC/vBTSs3lx894oSdW1v+uMi0ysLW2Cp9O23FBaFSoD0yRTTdNs5U9XPmQJG50tP6ngSD63K2f/OKEYz2QymPg+qZmnCaNVOQsIzqzS3WE9tWDDkCzJhqmJVZbyOq0TO+bUzv+eTEvmkg5Recla36cmRbnKicA7oZIHz5x11S5YNU77OnS1+Os4/0ITayUZzm35f2c1gPaPV/lnXmmctUzw5OD+rbiRs6dNgripQzpObvTFVUxq1+1+RWsqHLf1P9AQv5VNOX52D3ZhT8H/ggk3nJn9aRbVCaQkt4F45zH7sM13VejnnhUr1OLRoOX8gFZh9s9nzmMZVpRBfHLXUAUJkztXbqZ9u4IBfRbVBCIHpY5hbiwn+C6C9Bs/4E569dELJOSNqD5N0h2SAYw6rVZh7GEGygYjBfWU/gSBKaze73jMtyrS93yoKl98JU5QCnF1lGlRVG3q/1GeR8ak/ZcoHJe6AsL+UzEhOg1BPS0806ir/nznRVlgSGwnK2W7KyZyJ0xbw+XHucpQ9xDbRK2V4ELc0Y1BA5e8s2RicJ4KU7ZG637ewpGDvNBsURDFwnvDNQV3TuX4k3PyYLAVTpELnVVttPYa4o X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3ddaec91-cb1e-4855-9409-08db93f39bee X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Aug 2023 07:31:10.7469 (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: +/QxLbbnPi8s1WSrUEKD2rJbm8uimYnGGtUsGWQ3IwL9I598JD6uZSJ7iD33sWIdUQO6ioFLLe+zHVyiBKwVYA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8571 Precedence: bulk List-ID: X-Mailing-List: linux-kselftest@vger.kernel.org Add two netns helpers for mptcp tests: create_netns() and cleanup_netns(). Use them in test_base(). These new helpers will be re-used in the following commits introducing new tests. Signed-off-by: Geliang Tang Reviewed-by: Matthieu Baerts --- .../testing/selftests/bpf/prog_tests/mptcp.c | 35 ++++++++++++------- 1 file changed, 23 insertions(+), 12 deletions(-) diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing/selftests/bpf/prog_tests/mptcp.c index 4ccca3d39a8f..4407bd5c9e9a 100644 --- a/tools/testing/selftests/bpf/prog_tests/mptcp.c +++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c @@ -22,6 +22,26 @@ struct mptcp_storage { char ca_name[TCP_CA_NAME_MAX]; }; +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 = client_fd; @@ -147,13 +167,8 @@ static void test_base(void) if (!ASSERT_GE(cgroup_fd, 0, "test__join_cgroup")) return; - 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); - - nstoken = open_netns(NS_TEST); - if (!ASSERT_OK_PTR(nstoken, "open_netns")) + nstoken = create_netns(); + if (!ASSERT_OK_PTR(nstoken, "create_netns")) goto fail; /* without MPTCP */ @@ -176,11 +191,7 @@ static void test_base(void) close(server_fd); fail: - if (nstoken) - close_netns(nstoken); - - SYS_NOFAIL("ip netns del " NS_TEST " &> /dev/null"); - + cleanup_netns(nstoken); close(cgroup_fd); }