From nobody Mon May 6 13:50:53 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a17:907:7811:b0:6d8:2910:9a8 with SMTP id la17csp1660518ejc; Wed, 23 Mar 2022 02:29:22 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxRo1enqBM9cp1YSqbU1p3TfOf6iZHwNxvIqb8ein42MausPeQi7s4WL3elPuIslDkFlEvw X-Received: by 2002:a05:6a00:3387:b0:4fa:9063:dfed with SMTP id cm7-20020a056a00338700b004fa9063dfedmr18035434pfb.15.1648027762566; Wed, 23 Mar 2022 02:29:22 -0700 (PDT) Return-Path: Received: from sjc.edge.kernel.org (sjc.edge.kernel.org. [2604:1380:1000:8100::1]) by mx.google.com with ESMTPS id cn12-20020a056a00340c00b004faa27b19b2si9021140pfb.311.2022.03.23.02.29.22 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 23 Mar 2022 02:29:22 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4369-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1000:8100::1 as permitted sender) client-ip=2604:1380:1000:8100::1; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.com header.s=mimecast20200619 header.b=M9MRUZB8; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4369-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1000:8100::1 as permitted sender) smtp.mailfrom="mptcp+bounces-4369-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=suse.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sjc.edge.kernel.org (Postfix) with ESMTPS id 0B9CF3E0E7A for ; Wed, 23 Mar 2022 09:29:22 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 266DF1395; Wed, 23 Mar 2022 09:29:21 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.109.102]) (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 A26371391 for ; Wed, 23 Mar 2022 09:29:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1648027756; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=SBetFJ/hf24FoSZ/3gQHTEBo+uObUxuEPrr46Np0joo=; b=M9MRUZB8HB8JuRcSSfQn7HOozrrU23YEOQyEJY1GUcJPprs1zHwtcxyZtoIPvz1tvy6gde dBCPO38p1X8cJZfPk2k2oCoM34Fc8mvWnqB2pvVGAp8Pva0kUDg48+yqsTGL9XQDmoJMz5 8KAKaXHKp4FJcOtpMhLornWW6bJeWDY= Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05lp2173.outbound.protection.outlook.com [104.47.17.173]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-35-OYUIp8hEN2es-FsN9IPmmQ-1; Wed, 23 Mar 2022 10:29:15 +0100 X-MC-Unique: OYUIp8hEN2es-FsN9IPmmQ-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=HzSMTXeCkfOn5N/eMZ8vWInVimWiSm3bY0jsiG/QD6TgMTWC8Q+ZM//4+00Tif2IdT8me+1z3QA3HOU1wS4+/nrmMPpGtjC4UQuNv6Ege7x7XZDQE7XypQBc/mFrQ+5pYiW6/cE1/t4TXTtSoP049XztYIyCRGldqiMtMY7BeqDiSPDYf2CBEBHl+Wgz6Lx9+wNZ4qnzl27HTVFdPn4II92hf4F+dJV0wpbnS6vDajeW0eYFJJstjR+KpwAVEFdRIn1zdjPKlQANfJPgY45mH2sCNYc7G5jIuQ2UaWBHfo6i87rHvsjOTsL/mobqT0pu7L5Tw0Qx1wZg+v8M1Pfgyw== 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=NFUb1G0gcEjAAwlYB1STU5HkHqMxAZTWE5PIj8MNvv8=; b=MPdxJPos2A70Xy+GoHw/DQJkiUvRJl/FrT4wTbCK8NYtNbDjE4FI1FkhE3QLqKiM2zV4hSTs8CG55rSMXyBnHaOObLg0867iIzO0MN2alimHfyeOQjOXdKwiZVEO/W4aYyBAm2tnMPRynerIrflbAzyPzGSCB8f7Ip/yzPWrjqj2ePHZ1JcVnYs/VlBJX5sdE0dLeHoGe5PA95Q89WT5CwTWXQHe/Xq56gB2uA+HAoHODEjShCLOLKZkRBxfc6Ep8EeRB0isWF/JdIzkJNDxHTS3OiJbR4s9yjQGAbCevTG0lLEliIcWETyhai1Zb+zFXHp85g0jmG0FtWFjUcDY/A== 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 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 VE1PR04MB6733.eurprd04.prod.outlook.com (2603:10a6:803:11e::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5081.23; Wed, 23 Mar 2022 09:29:14 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05%6]) with mapi id 15.20.5102.016; Wed, 23 Mar 2022 09:29:14 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v5 1/8] mptcp: add struct mptcp_sched_ops Date: Wed, 23 Mar 2022 17:29:00 +0800 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HKAPR04CA0015.apcprd04.prod.outlook.com (2603:1096:203:d0::25) 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-Office365-Filtering-Correlation-Id: e5b49e50-278a-4332-1c39-08da0caf985a X-MS-TrafficTypeDiagnostic: VE1PR04MB6733:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 6MAA1NCbfNENJ5DGsCFe4WwxAfrGcNYgP4x8i5g0UjQwD0AePgk/Tklk68F35vldhdqOH1wlKmhRHtHfvN1lNzZu5DgOqE/WGdpDFQy0BX5PGOKZ+O50yEzec/6NXuYrZS+PxkgdSDtijB5neRbnE7QYZpEkMmpDutExscybLJrqVilx6ChSh8HjTN2G6HysciY1bpvNvkFiChj3fiMsfqZPdhlWSjD4jn80ZeU3MXZp4OlhiczvMfuRgfqgYSAn5s0zNzVaFbBrvuEST6m32fw/tD3dnEJG4kh2dWRqsxkya0NTL39zY+2va2SuIUvEm62EpZ69ZXE+ulowCrRPYQrNZCi3fFjpim8YmVCHkRWMOJ3RvoJ91Qq/N1lqKspSA4dkvT8BsGKA+KlqejR3oN/fLB/TBpaoMNi5n+SGw2AR5JWlaU7/MAinkUEtbAEZBcANOO2CbUzPmG8DpnNgPOQlFXMBsGtbJ3O5wTiXRtbX9agR7qKxUiXbQvDpNieyGYuR7uqwUrmV/09wXn0xiItElSwWFeGfQ9PyHm4reAHi+++PDRgWMiEtb1yUtC0q7wWHHWmSmzdckZc1kUJW5zqE+gTJCNx4uxDyUu2TZnS5cALLIOXnZEZBJ6kydZZUMMyB4175ez6L4TZGAznbASN7IDWM4VE0fCIRVgRWKJpUriktV37KtnxHrLnfOobf 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:(13230001)(366004)(36756003)(508600001)(8936002)(83380400001)(2906002)(38100700002)(6916009)(2616005)(316002)(26005)(186003)(6666004)(107886003)(44832011)(66556008)(66476007)(66946007)(8676002)(4326008)(5660300002)(86362001)(6506007)(6486002)(6512007)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?e13VTZe3DGq9W3T883xjdASenGanagtCp5fKRF1XKe21b+Ga83s8MNrtaiNp?= =?us-ascii?Q?LACwNG6jlRjFdMVzypq7cPHhgQsxfSG7oEceClcrP0nW7sRRD2Cmx7Qbj+QS?= =?us-ascii?Q?4lo279BCI3IpO2MQP6N/D8x/0AYXd31aqbeTfrfPUEpKTJF1WqUZHJ/BnoPH?= =?us-ascii?Q?DvU+3zVURitKpiA1WgjegA+aoEmX377CIfMbLlZLnjXuf0Grbgslq6c/jaGY?= =?us-ascii?Q?/hsCilRK5Xkpxa0Wh31SY2KmpOZBq/aLfLEw9NeUSEqOJBaKoWHxN1eyArYr?= =?us-ascii?Q?dCnejmtKniEtfm+Ra9N4TNJjOintkGWdpJSwKj6DORNDFbpqMldpTrPOf6iZ?= =?us-ascii?Q?Gvjt7T36qTGgKU/g4i8YvO/vVo437rnbYBTaeqJZg/WDlROMxazAsjqjf2mf?= =?us-ascii?Q?uLvJV4SLf53GFAqKAap8+gD6DttnlqucnOh6rpY/vL875tj4N8nLaOX1FAer?= =?us-ascii?Q?OU9V16cNM7tHUtIZ/7HvUjNrOpvnfvOrAIjWjxV8izTQIzi4RumJXrK1GWXV?= =?us-ascii?Q?PchTZyJ3Op67UOIOzGZCdu/qHtkZwuH98871ecUJhqGDUkswdCTvmhsgvzPn?= =?us-ascii?Q?My8aUpKoFPRMdAjo4nyyrNl5eJyc8/yzhHjNRUsi+gaPjZxmdbnim7jAgEEb?= =?us-ascii?Q?pJLaTbGxMJsyOlPG8rh7S9+1b8kMF/FWQyuvv15PwEhk/zPxiKQuXxcA+a03?= =?us-ascii?Q?cEMq4FGN76pMRX2aI9swxdJANpB3dWnBuCWUzmFfJojqdWBzC6CWeqjHjVyL?= =?us-ascii?Q?tGM4ZJQS7FmgIynVpPQ/XHrrzEjMCnEXTYiBQ0p+LgDbDdhCFNwvOu6H1Mja?= =?us-ascii?Q?SLVj9JtYaJ7Kq9C+mRbdbzx+nl6czq/C8257Jk1CvxFTNu2HtHdsmUYnQg9B?= =?us-ascii?Q?0HpYiLoxawoX+q6WeAjfgrYn3qCvUu+wbpWhoGplcbsoH6aj29OjllMV2QoM?= =?us-ascii?Q?nEteBhJ7uZ4CNvqc2DSOK1PuEjLSqKQxR9SvbbsT/4Y+5gRSXlJuYAmqpduc?= =?us-ascii?Q?rKNG1grOmKP43qx3kwD5EFDR82U6CyzB+eopIR84/LMRWd0i7KLo+stSjDP/?= =?us-ascii?Q?GK82RS4UEtrvNgUP8tFdG9mUJDHzM534egQTRDXpuJesGS34/MqY+JCSKj7b?= =?us-ascii?Q?mio13KPJmdXS1L/P0+QHlcdEthKPxbCSCqamdsOSdLQPzvnOOedPoZAs0cPB?= =?us-ascii?Q?aRnIAuLifZT49EEL1BlttG8I+jLtU8i7j5V8dhspV+VNkLtfHxMWb5vI88RR?= =?us-ascii?Q?JQztPtSlVKgypZ5Kw+Dovrrl3NP8VrvXNJWc8Xg2SWiPvXjklVB3Hr0tg63D?= =?us-ascii?Q?LllDqovsKD9VKWOqVKNgqgHlSN75Wlbrm8SxC7yka3KQMMwurnjzdXonZOkU?= =?us-ascii?Q?/swFI0b2qbOHvA3f8bpa6Ba0fUu3cK/JcBo1esV41QGLLSQaw3pQ6S0Y8Xkb?= =?us-ascii?Q?PM0i4B8JYkCR+v2Oj9rHNOeAI1YcU0e+3GuNQL/ABUjIA8aXNovk4g=3D=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: e5b49e50-278a-4332-1c39-08da0caf985a X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Mar 2022 09:29:14.3854 (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: hfqEg1KLDrgf1mry1IK8y/Zt6MlF/Y0rGVS21WNlvP8uu76td97jkvvraeUGyawvDpXa4nlN6PKbeoR+Cm+rog== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR04MB6733 Content-Type: text/plain; charset="utf-8" This patch added struct mptcp_sched_ops. And define the scheduler register, unregister and find functions. Signed-off-by: Geliang Tang --- include/net/mptcp.h | 13 +++++ net/mptcp/Makefile | 2 +- net/mptcp/protocol.c | 1 + net/mptcp/protocol.h | 4 ++ net/mptcp/sched.c | 111 +++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 130 insertions(+), 1 deletion(-) create mode 100644 net/mptcp/sched.c diff --git a/include/net/mptcp.h b/include/net/mptcp.h index 8b1afd6f5cc4..e3a0baa8dbd7 100644 --- a/include/net/mptcp.h +++ b/include/net/mptcp.h @@ -95,6 +95,19 @@ struct mptcp_out_options { #endif }; =20 +#define MPTCP_SCHED_NAME_MAX 16 + +struct mptcp_sched_ops { + struct sock * (*get_subflow)(struct mptcp_sock *msk); + + char name[MPTCP_SCHED_NAME_MAX]; + struct module *owner; + struct list_head list; + + void (*init)(struct mptcp_sock *msk); + void (*release)(struct mptcp_sock *msk); +} ____cacheline_aligned_in_smp; + #ifdef CONFIG_MPTCP extern struct request_sock_ops mptcp_subflow_request_sock_ops; =20 diff --git a/net/mptcp/Makefile b/net/mptcp/Makefile index 0a0608b6b4b4..aa5c10d1b80a 100644 --- a/net/mptcp/Makefile +++ b/net/mptcp/Makefile @@ -3,7 +3,7 @@ obj-$(CONFIG_MPTCP) +=3D mptcp.o ccflags-y +=3D -DDEBUG =20 mptcp-y :=3D protocol.o subflow.o options.o token.o crypto.o ctrl.o pm.o d= iag.o \ - mib.o pm_netlink.o sockopt.o + mib.o pm_netlink.o sockopt.o sched.o =20 obj-$(CONFIG_SYN_COOKIES) +=3D syncookies.o obj-$(CONFIG_INET_MPTCP_DIAG) +=3D mptcp_diag.o diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index fbb14dfe62b3..95f7c3fc943b 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -3743,6 +3743,7 @@ void __init mptcp_proto_init(void) =20 mptcp_subflow_init(); mptcp_pm_init(); + mptcp_sched_init(); mptcp_token_init(); =20 if (proto_register(&mptcp_prot, MPTCP_USE_SLAB) !=3D 0) diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h index c8bada4537e2..dd10899bedfd 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -605,6 +605,10 @@ int mptcp_subflow_create_socket(struct sock *sk, struc= t socket **new_sock); void mptcp_info2sockaddr(const struct mptcp_addr_info *info, struct sockaddr_storage *addr, unsigned short family); +struct mptcp_sched_ops *mptcp_sched_find(const struct net *net, const char= *name); +int mptcp_register_scheduler(const struct net *net, struct mptcp_sched_ops= *sched); +void mptcp_unregister_scheduler(const struct net *net, struct mptcp_sched_= ops *sched); +void mptcp_sched_init(void); =20 static inline bool __mptcp_subflow_active(struct mptcp_subflow_context *su= bflow) { diff --git a/net/mptcp/sched.c b/net/mptcp/sched.c new file mode 100644 index 000000000000..52e7c74b33ae --- /dev/null +++ b/net/mptcp/sched.c @@ -0,0 +1,111 @@ +// SPDX-License-Identifier: GPL-2.0 +/* Multipath TCP + * + * Copyright (c) 2022, SUSE. + */ + +#define pr_fmt(fmt) "MPTCP: " fmt + +#include +#include +#include +#include +#include +#include +#include +#include "protocol.h" + +static int sched_pernet_id; + +struct sched_pernet { + /* protects pernet updates */ + spinlock_t lock; + struct list_head sched_list; +}; + +static struct sched_pernet *sched_get_pernet(const struct net *net) +{ + return net_generic(net, sched_pernet_id); +} + +struct mptcp_sched_ops *mptcp_sched_find(const struct net *net, const char= *name) +{ + struct sched_pernet *pernet =3D sched_get_pernet(net); + struct mptcp_sched_ops *sched, *ret =3D NULL; + + spin_lock(&pernet->lock); + list_for_each_entry_rcu(sched, &pernet->sched_list, list) { + if (!strcmp(sched->name, name)) { + ret =3D sched; + break; + } + } + spin_unlock(&pernet->lock); + + return ret; +} + +int mptcp_register_scheduler(const struct net *net, struct mptcp_sched_ops= *sched) +{ + struct sched_pernet *pernet =3D sched_get_pernet(net); + + if (!sched->get_subflow) + return -EINVAL; + + if (mptcp_sched_find(net, sched->name)) + return -EEXIST; + + spin_lock(&pernet->lock); + list_add_tail_rcu(&sched->list, &pernet->sched_list); + spin_unlock(&pernet->lock); + + pr_debug("%s registered", sched->name); + return 0; +} + +void mptcp_unregister_scheduler(const struct net *net, struct mptcp_sched_= ops *sched) +{ + struct sched_pernet *pernet =3D sched_get_pernet(net); + + spin_lock(&pernet->lock); + list_del_rcu(&sched->list); + spin_unlock(&pernet->lock); + + synchronize_rcu(); +} + +static int __net_init sched_init_net(struct net *net) +{ + struct sched_pernet *pernet =3D sched_get_pernet(net); + + INIT_LIST_HEAD_RCU(&pernet->sched_list); + spin_lock_init(&pernet->lock); + + return 0; +} + +static void __net_exit sched_exit_net(struct net *net) +{ + struct sched_pernet *pernet =3D sched_get_pernet(net); + struct mptcp_sched_ops *sched; + + spin_lock(&pernet->lock); + list_for_each_entry_rcu(sched, &pernet->sched_list, list) + list_del_rcu(&sched->list); + spin_unlock(&pernet->lock); + + synchronize_rcu(); +} + +static struct pernet_operations mptcp_sched_pernet_ops =3D { + .init =3D sched_init_net, + .exit =3D sched_exit_net, + .id =3D &sched_pernet_id, + .size =3D sizeof(struct sched_pernet), +}; + +void mptcp_sched_init(void) +{ + if (register_pernet_subsys(&mptcp_sched_pernet_ops) < 0) + panic("Failed to register MPTCP sched pernet subsystem.\n"); +} --=20 2.34.1 From nobody Mon May 6 13:50:53 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a17:907:7811:b0:6d8:2910:9a8 with SMTP id la17csp1660554ejc; Wed, 23 Mar 2022 02:29:33 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyJaunPcKrwsA8j0R/MgpRyKKFakQxPAyIYMuyEaAkIC+3czhmZOS4Jz8wAnsQ2WAhX8vpp X-Received: by 2002:a17:902:9345:b0:153:4d7a:53d9 with SMTP id g5-20020a170902934500b001534d7a53d9mr23266995plp.116.1648027773229; Wed, 23 Mar 2022 02:29:33 -0700 (PDT) Return-Path: Received: from ewr.edge.kernel.org (ewr.edge.kernel.org. [147.75.197.195]) by mx.google.com with ESMTPS id p2-20020a17090ad30200b001c6efe3d954si4692798pju.30.2022.03.23.02.29.32 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 23 Mar 2022 02:29:33 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4370-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.197.195 as permitted sender) client-ip=147.75.197.195; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.com header.s=mimecast20200619 header.b=nKE4jiog; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4370-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.197.195 as permitted sender) smtp.mailfrom="mptcp+bounces-4370-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=suse.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ewr.edge.kernel.org (Postfix) with ESMTPS id 12CE71C0B3F for ; Wed, 23 Mar 2022 09:29:28 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 90BC71395; Wed, 23 Mar 2022 09:29:26 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.109.102]) (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 A6EEA1391 for ; Wed, 23 Mar 2022 09:29:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1648027762; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=7qhtkeQHiTIWLK3A99Zdb05IDzmabPFz0TGw7n6BWZ4=; b=nKE4jiogeI3cSBm7ze6dzpde8pOfTVGbiOgGSNMVkwHdf3U4911vr6vHbBs7KnvBoSM8/c A8dSIYh9ZkrUY0ouE317ELmYw8XDDRk4Q80x/0SORWUyG6Q6yRt+pwglaiZ6CVGCeB8gxE VXWiWC5YaBcBKkJiiuzl0jUauC8oZUA= Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05lp2110.outbound.protection.outlook.com [104.47.18.110]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-11-eWPezd0zPX2Bp0EiJQnthA-1; Wed, 23 Mar 2022 10:29:21 +0100 X-MC-Unique: eWPezd0zPX2Bp0EiJQnthA-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dpVAHte+LOSqXrzE5jJ+ZzxAU2JR+pX6Li8JlmBfLl2SxnFqnVT6twIM9OyLIWIlpKqt/4ic4f6jnp/1lv9y9EC0y17/MXgiEl5TRvoabFU9+c0Lx0IPm6B38UbCVYN2+y0Ns4j0hTDASpNGj70tIBL1nt5BbojJZIAsrOnvOMRY0sJutvCz38dxDOIdQCdyQWlcRzbb2upqelCjN+ltOYI5mBslp2TnB7a++2AB5QzJR8BGKxgzbO44um+W06nHdNksa16hsNlpw9hvJsxeTjGbWQLrHvodIC4NPWEhCxVJ/MM8f1/JCmiaEFM3DuGpZT2THYwSc43FmeV8qVk7lg== 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=J9kk9JzUBUFjEG9kHXdIwl43h3QiA4lCl8AW726vR2U=; b=lO+sCcEBMYyLaaMW9BCh7hBhqo+YOAcHP6nUPxGKlj/762RWTP0tzuFpsQVfsw1qz/1QtUIj9WqGP6dKKCRqfW6jHCk5qcIaexjQXXFjei80cY4Md0bwNkTmJ1xRgqDarGQG0yk3uOkAwug7IPPvSnzzaDF/g/fkJI9/sBG8azPKH891+znrJhMNE8fTdGecgyNu/vlpEefcC8l5exrEcUXE6fREXuPqf8q8z1KNAU85FuzJG/MaU1uZcjbqvEdCFJM7j9B8QauV8Z/ZJixyQBbt43LxgCh8zpRid9yodjkKSilGTj00F2LbbvwQ6JgBzfasbrKeZHQArquaGPLU0w== 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 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 VI1PR0402MB3359.eurprd04.prod.outlook.com (2603:10a6:803:3::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5081.23; Wed, 23 Mar 2022 09:29:20 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05%6]) with mapi id 15.20.5102.016; Wed, 23 Mar 2022 09:29:20 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v5 2/8] mptcp: register default scheduler Date: Wed, 23 Mar 2022 17:29:01 +0800 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HK0PR01CA0060.apcprd01.prod.exchangelabs.com (2603:1096:203:a6::24) 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-Office365-Filtering-Correlation-Id: 66dcb6e0-1342-4e1b-0301-08da0caf9c22 X-MS-TrafficTypeDiagnostic: VI1PR0402MB3359:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: H8zVJ07p1mPf58xDW1EEfgDbtGtJHa6meXNsdmZ1ZEqxeZOvyIpYtaSOt14kGFjKHX4IJd6SZIcUIxzCrirPwJxwcQ4J3auKepWnXKJEFKKF9b8vvoP1gFJx8dErI9LXwrpo/HViEJaWNM5HJBnV2f/HysTEvM8vDzMVV/FmbmNDpz3ZW3RDZN6363J3ZrE3C+9w2hRO7N56ejxrzGRHXj1eOc4cAmoPSGigm5d6ndBDNJjb/D+6/5wWRjhre+rymgIWy90QOnvodXQgYMlYpgbVKhYWxNKlNe5ki7K0HbsW3eCxYRtYhfmOa5OobuUuqvbDv/gVtgVSwLgFK9RJ20ydW4kBNNWIklBcUfM5wzfwXJ/o/0Gr9UypkDIO+sNrMxIQ5V3loq4cjPZiTSpAq2ROirkDok6YmHPhqeLdYM8I5L8XvDYKbZedVHnT8lZlBbx9+chBam0K5hIFOL2aZ6qwimqt/uFijsrWoLDzxtIKsDpdihQGEXlGVgeLC4ThkKnvfr+xUGatmRxCjF+bZGg6eqdQYFr/5lV3tHZsdoE42X/N3mI4a9unWZXxpDZ55x2fF2NWkB67IrjDek9XrG2r1E8ADL3CJA4UPe5D/lw4YpWqUVy8t0ENfjuIuIM//9VCsbau6/tqnNXYrgFcrK72/9hcmR9NZGqMzk/W7NO0lSvIs2kGC9QuERdN5hk+ 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:(13230001)(366004)(6666004)(508600001)(6506007)(5660300002)(2906002)(38100700002)(2616005)(44832011)(8676002)(4326008)(6486002)(66476007)(36756003)(107886003)(8936002)(316002)(83380400001)(186003)(86362001)(26005)(6916009)(6512007)(66946007)(66556008)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?wYVX/jhHRnUdzWS9ikJXic11E0cZV9nIuT1lYo336E01S9sILHuj53sgyjsG?= =?us-ascii?Q?dpn/zH11cYtqZZnYminlbdrXFqQNLidGNg4FAoK/kVeq6gf6X4vH4sOqdSS1?= =?us-ascii?Q?k2JJDbRvamVLjUw1WQ61Z46cYAkmjQazRf24eqcluFEnb49qwqg8f7hQ61ez?= =?us-ascii?Q?y6pZP8M02sHp3XbADxwlEDIDB+1lar2WN/GcUa9jcKQaTIiC7niKgUqkhXiU?= =?us-ascii?Q?tE3bVbyQTxzPNl55RSTT9SS3/LNBiUBAOk1o+vv5BEHnqUPVv6eCsl7AnN10?= =?us-ascii?Q?64Hf/VhGziyrw7WLLYmpq7xKzjbYs13epWXjI8dc3Cri9WAWwLClzTQRdGyo?= =?us-ascii?Q?wXBez1q2m/h7hR09hadz5BK42uIxzhAbPArdHSmZdc2vUF09A9l1dSXOb9Kx?= =?us-ascii?Q?/hB1/F4Xr5RFOYTWuQ9kCYfIS5uzObVO2JYceXFIYjP7jx0AmmFwqYCwkJmS?= =?us-ascii?Q?n3mxnkr30jCXtV5Q49YR6waLO69Unu8BU0tk2bmJfqOaFmFqaxZ1YuiUhQ3L?= =?us-ascii?Q?6BuodXX1WoQf8KVJEMUA0lvoTENK/yanlwQNPaWBSRdibUEvIyXraigdQtgf?= =?us-ascii?Q?+AsLEgFgzr2nhEBY9jzIUXyHN4t32lnIIC7k4Hw/2tf79tvKkLnEXpHS0sVD?= =?us-ascii?Q?I2jNPevRyPaPmmyWuzzr+PJnwr6X1wIBOoLolvfLAFG2z6IgPEV2OmY0jlEX?= =?us-ascii?Q?Q3v5Aaohs5cSDwPqmBO81jjELKui5upVTGt7qYEZVS3Qn/8nb04vyEtEkihn?= =?us-ascii?Q?+cgUQ5WCI2ICU8IXBVlxxzWAma+DUmqND0s94m+z43Xc1rx2xIiQ/3YXsWm9?= =?us-ascii?Q?AsyuHky2qgiKLHMuMAWRFJM9rpqnWTG8D97e4kXlvo4v6EkqFpHv5474C0HS?= =?us-ascii?Q?f6qSojir7yqhhvTs7HjtS0kz6g18/HpLYK/2pfFJRPDy9Un/nV75V/Jw56I9?= =?us-ascii?Q?mM+cupg9rBsJ8kZ/3lbHwgePG9chFycL0U4B2EWm5d0Kq6PGqvvimSopXq42?= =?us-ascii?Q?kBf8O5p7M9GXk+tnKdzJVwjKDco4yr0kBs1wyw3Kg9oKDZR+o6JE0XmraFx0?= =?us-ascii?Q?pcgsGURvh3i7xWinMgdqTW6xlY1Nvl3K6kYN64y7NFLtuSFXXRCF3IzVjDT7?= =?us-ascii?Q?7fjbVo8WDh2v00Vcw3QFGjIkdPJBZPTHRichfM4V0sNz1urnjxxH+7EsSzJ7?= =?us-ascii?Q?GLTbwJCzwMWHjNX735cslMu8UxC5645LJ/XMbXeWbrrh0OKvrlmUjCAu9Flx?= =?us-ascii?Q?n349R2t+HGqKSeHM4gDjKfJ4L+qWnOB5NIODhrKBszInn7e9hk1hgQJQaKVe?= =?us-ascii?Q?Zx+avZR6o6NaKiW/Tr1yj+xQzhFIzpcW/cu1fwirT3ul0JrfVRIlgGxhagMT?= =?us-ascii?Q?5H4jtcHhCXUMORePSo2rV0uAMAitE0mpBXw6vae/LTycdKPxkam32s5FNA+z?= =?us-ascii?Q?kWVQum2OfbH6dwtu0VvGfv0tHIGu+x+8FzDpLZ+UAaadJuf6qkT9qw=3D=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 66dcb6e0-1342-4e1b-0301-08da0caf9c22 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Mar 2022 09:29:20.5724 (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: oLVtUnSx+8uGYjhIlOVYZ4W0Dfefczvrc5pXjoGn5+n65hR+krpxzr1XDt0c3e9z2Xlxb6CBRaUSBfpBCLpAnw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0402MB3359 Content-Type: text/plain; charset="utf-8" This patch defined the default packet scheduler mptcp_sched_default, registered it in mptcp_sched_init(). Signed-off-by: Geliang Tang --- net/mptcp/protocol.c | 2 +- net/mptcp/protocol.h | 1 + net/mptcp/sched.c | 10 ++++++++++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index 95f7c3fc943b..11e19ac9d5af 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -1424,7 +1424,7 @@ bool mptcp_subflow_active(struct mptcp_subflow_contex= t *subflow) * returns the subflow that will transmit the next DSS * additionally updates the rtx timeout */ -static struct sock *mptcp_subflow_get_send(struct mptcp_sock *msk) +struct sock *mptcp_subflow_get_send(struct mptcp_sock *msk) { struct subflow_send_info send_info[SSK_MODE_MAX]; struct mptcp_subflow_context *subflow; diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h index dd10899bedfd..85642ba3354c 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -608,6 +608,7 @@ void mptcp_info2sockaddr(const struct mptcp_addr_info *= info, struct mptcp_sched_ops *mptcp_sched_find(const struct net *net, const char= *name); int mptcp_register_scheduler(const struct net *net, struct mptcp_sched_ops= *sched); void mptcp_unregister_scheduler(const struct net *net, struct mptcp_sched_= ops *sched); +struct sock *mptcp_subflow_get_send(struct mptcp_sock *msk); void mptcp_sched_init(void); =20 static inline bool __mptcp_subflow_active(struct mptcp_subflow_context *su= bflow) diff --git a/net/mptcp/sched.c b/net/mptcp/sched.c index 52e7c74b33ae..3ee23b24b771 100644 --- a/net/mptcp/sched.c +++ b/net/mptcp/sched.c @@ -23,6 +23,12 @@ struct sched_pernet { struct list_head sched_list; }; =20 +static struct mptcp_sched_ops mptcp_sched_default =3D { + .get_subflow =3D mptcp_subflow_get_send, + .name =3D "default", + .owner =3D THIS_MODULE, +}; + static struct sched_pernet *sched_get_pernet(const struct net *net) { return net_generic(net, sched_pernet_id); @@ -67,6 +73,9 @@ void mptcp_unregister_scheduler(const struct net *net, st= ruct mptcp_sched_ops *s { struct sched_pernet *pernet =3D sched_get_pernet(net); =20 + if (sched =3D=3D &mptcp_sched_default) + return; + spin_lock(&pernet->lock); list_del_rcu(&sched->list); spin_unlock(&pernet->lock); @@ -108,4 +117,5 @@ void mptcp_sched_init(void) { if (register_pernet_subsys(&mptcp_sched_pernet_ops) < 0) panic("Failed to register MPTCP sched pernet subsystem.\n"); + mptcp_register_scheduler(&init_net, &mptcp_sched_default); } --=20 2.34.1 From nobody Mon May 6 13:50:53 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a17:907:7811:b0:6d8:2910:9a8 with SMTP id la17csp1660581ejc; Wed, 23 Mar 2022 02:29:41 -0700 (PDT) X-Google-Smtp-Source: ABdhPJx2FwgKPnWI5ep6u6WqGYoQfGl/RFlozyEVHCFR7jTnDgo8Ad9mVtltpb76D84NtkVASUWH X-Received: by 2002:a17:902:8d87:b0:153:bb61:383b with SMTP id v7-20020a1709028d8700b00153bb61383bmr22874596plo.117.1648027780810; Wed, 23 Mar 2022 02:29:40 -0700 (PDT) Return-Path: Received: from ewr.edge.kernel.org (ewr.edge.kernel.org. [147.75.197.195]) by mx.google.com with ESMTPS id a3-20020a1709027d8300b00153b2d16493si308009plm.155.2022.03.23.02.29.40 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 23 Mar 2022 02:29:40 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4371-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.197.195 as permitted sender) client-ip=147.75.197.195; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.com header.s=mimecast20200619 header.b=mw58u+jt; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4371-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.197.195 as permitted sender) smtp.mailfrom="mptcp+bounces-4371-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=suse.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ewr.edge.kernel.org (Postfix) with ESMTPS id 863901C0AF3 for ; Wed, 23 Mar 2022 09:29:35 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 221BE1395; Wed, 23 Mar 2022 09:29:34 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.109.102]) (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 523A01391 for ; Wed, 23 Mar 2022 09:29:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1648027770; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Cmco0Wf5WwlkecFY216c55rUILEoL6PdNmsEyA5BVNo=; b=mw58u+jthuHi2EDjD4+pmtNUQq2ndbET00ZUB4RifKn2aWT41LtLmMVTF2ZshQ2jyZdq4n I5m9dwh4nuRwPyeDDafy/BOJLF/hCGmNe4Y3zy/VbDH4hEyS7afTfCZHPaKlSP/bBLhewo BgKjSrSXd3YGsaIf0wp55CS9OMMIBXA= Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-vi1eur04lp2056.outbound.protection.outlook.com [104.47.14.56]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-39-HqoYsrABORCFKiTZE8BhyQ-1; Wed, 23 Mar 2022 10:29:29 +0100 X-MC-Unique: HqoYsrABORCFKiTZE8BhyQ-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=EOs8We+pdA0dGiWF0/3yci/TAHVqxMxy3OxsHkEtclCevDruJ5tOYoB93mly/iQ/TMaaEM8BmzyFF93VCK8i6mhQlzdow04/GrpkN0EAT0zG0a1wvau0CxG98f+R0toQ/czt48uBA1A6C17hYA5CUTHS2neNW73O4bkuOclXfotCT+tGneCsEEW6HnYERaIpemvOCC8lmHfNxbkwBAEPZSDT2R73q7lVhGCcqz+B7cptG6qLIwTPaBam50g7uwIDgbyltdzDrPmFt57IXjlyCsaoEKLdpSvpzZdQ0sQosum8iwbzMo9l5/jd50dsuUYZI5RWHvv9VmZN+WjqcZCXhQ== 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=L6N+1O3G/c58JzyM6TMxTD6ZtLo1hWUkOLFTflrItr0=; b=ebmdEqs+X+OHmTllsHQSYqAyxSTWlh9XrFaY/YfIeDV7zPgPcso9Lpriy2KqQBmXnVKuUNG+KCDYOrzvefZggzA857tzxEywMPE9trGFGX/cWL+AdyJUCbt/DFUsIoDUKJE7ZDD1v4vmGNpXi4fLWi8az5ORGBrILq9NDdJFVXDPmpyw4huujrCHTAB43+iGSQE+Woc7QBxrNB4vd92mt+NFWD/oMxebCrgB2NLWtqF3V/SV8tENhaXSXJUzg8ACXQvXbJaQI2r9Wg05i2bCUof/ihebjpXyYL/ReyfSZVrXOTXv5KoHsQiI2LkRBa2vIq17z3/IgWcf5DVn4W9jtA== 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 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 VE1PR04MB6733.eurprd04.prod.outlook.com (2603:10a6:803:11e::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5081.23; Wed, 23 Mar 2022 09:29:27 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05%6]) with mapi id 15.20.5102.016; Wed, 23 Mar 2022 09:29:27 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v5 3/8] mptcp: add a new sysctl scheduler Date: Wed, 23 Mar 2022 17:29:02 +0800 Message-ID: <05ba880230a93bc157687f540d725cea56fe4560.1648026806.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HK0PR01CA0053.apcprd01.prod.exchangelabs.com (2603:1096:203:a6::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-Office365-Filtering-Correlation-Id: 522dbbea-a3c0-47f3-99e9-08da0caf9ffa X-MS-TrafficTypeDiagnostic: VE1PR04MB6733:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: krtPsyTtmlHauKmsGVYqOIhyXrfOskLt8nUl+I59kfKZf2UHrimxK1qmEpUSFAzfOG2MeJoZ897ANoqoK2n1tcuOH/049iSBFvDVRFkVUPEFMXkGvk32rQZeK/WRVoS+VA3ryY86wbi+DicEhukh76L6jNsCfSVrw1bY8H42dONCJM2VC1b0Ci/Pc5eM63Dl2woM3adiz39uJKzJC1mo7eCP9ZcB/FPGwQ7eptQFGTOfRPrB4Omiw1JMV2Ssxy1XivWnGIlWzzeJEUp71Y9qe3S2pi0P/66sGwhN9NKBl7MT25ed+YCpamgMPNT44SMhcX76bV0scHTcOlJiShk2+7VDmbgqAhhBgaC/WgxjVeXY/d73boGIchz/02J7/tTH7eXV8L91oWu+n+U4jNXYAhaILo9sY3niWUq4Ea1T+NNRfJ/bowHIqVx/W7qhRz5mSwM69OwwQZDNwIwsBHzfSVaOnEulW1UVYsQPYsofTCB2DZR/cqhEgGiptROV4GXK2XcomggJ05GJD/UYMhLnPqvRtGE9VHKeXcwMBR+P0We6PV2uU+28+9VCpseJ0zTV2w5wGqemsRs7jHZIq4YzAzmwBbOi13CdpIxPk38yyRsiRfW+jyX+aXlE8KrFRWOcHV42icyvEfxMpZPseDmJuHqHkAPj0DjIZwXjzSOqhsfMJsgYK+HaqtsnKoHYTurZymrbdeeow7a9DeCWEuoYVA== 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:(13230001)(366004)(36756003)(508600001)(8936002)(2906002)(38100700002)(6916009)(2616005)(316002)(26005)(186003)(6666004)(107886003)(44832011)(66556008)(66476007)(66946007)(8676002)(4326008)(5660300002)(86362001)(6506007)(6486002)(6512007)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?7uRYdb4Tf/g5oIxTCq6MdJ+Qr3D9CmnUo7L+Vl+caPwGNsD8z8nVesLpL+/k?= =?us-ascii?Q?t6Mh0nRIFVmVudgENycsgD9BOhM7hZFi3V2YcuYxs53vKjio1g7YsQHjPMVp?= =?us-ascii?Q?Fsbj4gDh7w+8SjuVuJ+TYQHjNrl9E2Ufutd4Cl8gcXSZur8MNE9zrwDkXK6H?= =?us-ascii?Q?6Q7BoR0qjWDnpSK2GjHN1G3JvbItK66pUoe8mwK5YBZj93mv3z38ptXDAGLR?= =?us-ascii?Q?bCcL0pBD9/BeeQC19zwrTK6wWDyhKfoqeDQ/4cJryZZkRDH5Gl5hMVWBNSY4?= =?us-ascii?Q?VnQcH6Md6c+8e1TtBXUuxcb2wCZYmNex3/T4JoKXAhM76pBDjKz4q+NviSmZ?= =?us-ascii?Q?P1b6n4o5bO2GLpgiizchjAnpUDX5OZg54lkuTb5vgTWYbKSwOzja0gWfkn5e?= =?us-ascii?Q?Zn3aKuXme/eupCldVZN79pfX9Iv5K5TFQTI3VdQbx4wEm7u4SXj8uOfqjcb1?= =?us-ascii?Q?u9QArfoiwMvlszuJbRWTMd8q2CzJ41rqJ4wW8OSEmcKs3OsR8v9XQcxl0Rhg?= =?us-ascii?Q?8xUILB7dWybZy6/Sqj3ErWBxUpBylwkJYU86kKYWYx/pO+yQZNTW51N6Phk9?= =?us-ascii?Q?dEJnjiVxf3cEdHsKu6sfL77jfmfVFpXkDOJRJ0U2H3zXDwVZd3LsXGgypZ3W?= =?us-ascii?Q?L1jVStjP9iNjf1CcHcgRcIHB16P9NuoQTBdxwrHku2ef+/O6OgXMg2Y5nMNR?= =?us-ascii?Q?OzAXkRaAqUCPKHXHCcJwI36M7tjvCAEYm5cLvCL247LZ7TqiQTX8c+S2SsiC?= =?us-ascii?Q?h6hChH14e7o3AtxaRYqM1ajefi7Cqm3uJicUm5LgZou/6h9W7DO4VxL7P1ur?= =?us-ascii?Q?sS9i+n9aGC0j1V15mgOMOH4v+kI6UpKJYBCqGREQFjl+Ds3Qgjxadl3T/hhC?= =?us-ascii?Q?HCI71rTER7kzfL4KPqLtnbKb9EVLe4HLSS8v/nKurFT+E4ee2FBarxB8MzBo?= =?us-ascii?Q?s4VOh2S/XzhURgXYQISoLr2GF9jPF46RkKNAmUIub/jus8q9gsG9PYxQWtoQ?= =?us-ascii?Q?MI4H8M/aoK00QCbiUDiIF/+Z2b4HYbhw/FJwYQrDN7Z/QiPgCclUK04s2ul9?= =?us-ascii?Q?OFRG1LvqrW1LM3rBmrATo33Cbo2DRU+rH0WPd15U+RaG8ZmoRVGLq+qK6Yi2?= =?us-ascii?Q?fKe3DaS3jb3vqgP8Gn9KaBu9VxK6gj8nHS0hOakFaNYYUkorWFkm6gLolZhz?= =?us-ascii?Q?1+yJDtz6eyQF6i1UAgXvE+bmdDsuLrZGCEYJ8amUI/ARqAvzGiySpsiqIUP6?= =?us-ascii?Q?oXLzvNExHqipx+tRohLinjZgdBisVEO9Fu7lzZr+jbiLf347mTFDWSGHuNNo?= =?us-ascii?Q?od71MN0T0+V2wrzAE5zsgb1beo1xz0NJGw3ZuZGAC9wj4mRddi2Q6U9mLhNy?= =?us-ascii?Q?yo5tZnWpNNy/t03vAJcldXboHoCrebEM1+6XtfRILbwqNksyK0dF0tmaqj7Q?= =?us-ascii?Q?dVg0jwsnQDMj+ZLpHAjQfQ0ngvrBjtKJEMLZ34jboO8r/fn5MbTWCw=3D=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 522dbbea-a3c0-47f3-99e9-08da0caf9ffa X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Mar 2022 09:29:27.1813 (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: O3sR8iAKCGlyJ7VtAFGhLpLKQd3LJyCbtmOYQPwImn5lEZ7rpSEB8kdmpV4fqhMNGr+GMDwxlCFwcGNEI/zkiA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR04MB6733 Content-Type: text/plain; charset="utf-8" This patch added a new sysctl, named scheduler, to support for selection of different schedulers. Signed-off-by: Geliang Tang --- Documentation/networking/mptcp-sysctl.rst | 8 ++++++++ net/mptcp/ctrl.c | 14 ++++++++++++++ net/mptcp/protocol.h | 1 + 3 files changed, 23 insertions(+) diff --git a/Documentation/networking/mptcp-sysctl.rst b/Documentation/netw= orking/mptcp-sysctl.rst index e263dfcc4b40..d9e69fdc7ea3 100644 --- a/Documentation/networking/mptcp-sysctl.rst +++ b/Documentation/networking/mptcp-sysctl.rst @@ -75,3 +75,11 @@ stale_loss_cnt - INTEGER This is a per-namespace sysctl. =20 Default: 4 + +scheduler - STRING + Select the scheduler of your choice. + + Support for selection of different schedulers. This is a per-namespace + sysctl. + + Default: "default" diff --git a/net/mptcp/ctrl.c b/net/mptcp/ctrl.c index ae20b7d92e28..c46c22a84d23 100644 --- a/net/mptcp/ctrl.c +++ b/net/mptcp/ctrl.c @@ -32,6 +32,7 @@ struct mptcp_pernet { u8 checksum_enabled; u8 allow_join_initial_addr_port; u8 pm_type; + char scheduler[MPTCP_SCHED_NAME_MAX]; }; =20 static struct mptcp_pernet *mptcp_get_pernet(const struct net *net) @@ -69,6 +70,11 @@ int mptcp_get_pm_type(const struct net *net) return mptcp_get_pernet(net)->pm_type; } =20 +const char *mptcp_get_scheduler(const struct net *net) +{ + return mptcp_get_pernet(net)->scheduler; +} + static void mptcp_pernet_set_defaults(struct mptcp_pernet *pernet) { pernet->mptcp_enabled =3D 1; @@ -77,6 +83,7 @@ static void mptcp_pernet_set_defaults(struct mptcp_pernet= *pernet) pernet->allow_join_initial_addr_port =3D 1; pernet->stale_loss_cnt =3D 4; pernet->pm_type =3D MPTCP_PM_TYPE_KERNEL; + strcpy(pernet->scheduler, "default"); } =20 #ifdef CONFIG_SYSCTL @@ -128,6 +135,12 @@ static struct ctl_table mptcp_sysctl_table[] =3D { .extra1 =3D SYSCTL_ZERO, .extra2 =3D &mptcp_pm_type_max }, + { + .procname =3D "scheduler", + .maxlen =3D MPTCP_SCHED_NAME_MAX, + .mode =3D 0644, + .proc_handler =3D proc_dostring, + }, {} }; =20 @@ -149,6 +162,7 @@ static int mptcp_pernet_new_table(struct net *net, stru= ct mptcp_pernet *pernet) table[3].data =3D &pernet->allow_join_initial_addr_port; table[4].data =3D &pernet->stale_loss_cnt; table[5].data =3D &pernet->pm_type; + table[6].data =3D &pernet->scheduler; =20 hdr =3D register_net_sysctl(net, MPTCP_SYSCTL_PATH, table); if (!hdr) diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h index 85642ba3354c..ffe7e551ac84 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -583,6 +583,7 @@ int mptcp_is_checksum_enabled(const struct net *net); int mptcp_allow_join_id0(const struct net *net); unsigned int mptcp_stale_loss_cnt(const struct net *net); int mptcp_get_pm_type(const struct net *net); +const char *mptcp_get_scheduler(const struct net *net); void mptcp_subflow_fully_established(struct mptcp_subflow_context *subflow, struct mptcp_options_received *mp_opt); bool __mptcp_retransmit_pending_data(struct sock *sk); --=20 2.34.1 From nobody Mon May 6 13:50:53 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a17:907:7811:b0:6d8:2910:9a8 with SMTP id la17csp1660587ejc; Wed, 23 Mar 2022 02:29:41 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxcsij4YZGGfwai9uhqK9T3fIad/1TghmMB1T7fKe12JNDBVaaWX6hblESr4mULna59FxNJ X-Received: by 2002:a05:6a00:1488:b0:4fa:ac61:8b11 with SMTP id v8-20020a056a00148800b004faac618b11mr11680725pfu.58.1648027781621; Wed, 23 Mar 2022 02:29:41 -0700 (PDT) Return-Path: Received: from sjc.edge.kernel.org (sjc.edge.kernel.org. [2604:1380:1000:8100::1]) by mx.google.com with ESMTPS id 97-20020a17090a09ea00b001c681166e91si5462382pjo.137.2022.03.23.02.29.41 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 23 Mar 2022 02:29:41 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4372-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1000:8100::1 as permitted sender) client-ip=2604:1380:1000:8100::1; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.com header.s=mimecast20200619 header.b=Zpl9gb4b; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4372-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1000:8100::1 as permitted sender) smtp.mailfrom="mptcp+bounces-4372-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=suse.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sjc.edge.kernel.org (Postfix) with ESMTPS id 3A4D33E0E9E for ; Wed, 23 Mar 2022 09:29:41 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 1C6371395; Wed, 23 Mar 2022 09:29:40 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.109.102]) (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 6F8DB1391 for ; Wed, 23 Mar 2022 09:29:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1648027776; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=zrjfIdT4p9oZ7ZSa95HmOvm9+2EPj5oac2eeNaHFfik=; b=Zpl9gb4b1wbMVhmTyv8CKHOdr2P9E9xnNiTkRbuZRo9MehDC98B4YwbyOVJEoJnlBD3dfn 2Kj18o7/cxDKrZpgRbLYMDRwUoHxUtw/AMl8uPv6zVCPuWQCu+j/+HMnKpUN5YBP2TouWJ 9gVfhLJEox0+fRopGy6riJ7ZqRLQMNI= Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-vi1eur04lp2057.outbound.protection.outlook.com [104.47.14.57]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-17-tlAnhAR8NeiX_X0vgTpbnQ-1; Wed, 23 Mar 2022 10:29:35 +0100 X-MC-Unique: tlAnhAR8NeiX_X0vgTpbnQ-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=aPxCSgTobcUIslce+pyFQlpFh3vQhw1VwOf5jiYjcyc8FZ5rpQPcoaFu4GQL4An632RWgz9Uv0l8grahPM6XCeuYDWiK8XZS4JOLEUeFvkcmv5LBFlQHI6U8/ptyUiW9xJbGugbgt46Zc63YSdkKysFSCg5qFSL31ticQUmBjsYgLS6LF3Je8F1nbYXjBaJdiphPn3JbaDM0ptsVzJGmlwMe3ZAaJrJYhoPxrkB1JjHwaPyF7enOtWMtistRJ/7mJGjRURmWnxZ/nd3/JD+e4o/KE1xCICrgkwMYgt5qEnPMPP0pJqUw+6Ya6ZcwsijIoNYdo+57cgHXnlKvT49Pqg== 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=E9i75V0DyOfyw0OYUYar9BQ8bjd40BpFos/j68qYDio=; b=kTJdCeR4EcC/BJkKFjVzufdm5VJhzEITDpG+S7NeRP4QGJEijzVF93EZU2RlvBvQUxv5/cgjqcJxsE+9Dy4UVRt9zJdSPCizH1E/7xwnaF7YtqGYzo1zUuuV+6+7TNJhV8uEIJNDHRrcRT8JeCR/WB+aMGw+WRk9QYIQGbg3r9BhHYZA33vZuPFMh85wot9GX21EtdyWDXEGA8GCBpa7CqYkxy4//h35IHUhP9klYwFQUGGCrrUjx0siFoc5JLkq2LsHuXCmSQdUUMNl5ODOF1N0a+sRJ6C2eAy1fpnRl7CIIyh7XFnHPDseCF31WGLOtH1EqZiaJOdDYQgeEDZSHg== 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 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 VE1PR04MB6733.eurprd04.prod.outlook.com (2603:10a6:803:11e::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5081.23; Wed, 23 Mar 2022 09:29:33 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05%6]) with mapi id 15.20.5102.016; Wed, 23 Mar 2022 09:29:33 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v5 4/8] mptcp: add sched in mptcp_sock Date: Wed, 23 Mar 2022 17:29:03 +0800 Message-ID: <4aee9fa6f5d21337cf826463d5c9f92ffc1ba5c0.1648026806.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HK0PR01CA0069.apcprd01.prod.exchangelabs.com (2603:1096:203:a6::33) 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-Office365-Filtering-Correlation-Id: 5504a7f8-e02e-4454-30c9-08da0cafa3d3 X-MS-TrafficTypeDiagnostic: VE1PR04MB6733:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ZEnB+hiDzSzg2aSI/DE8Ek3FpWUSx5FSetBDJjw2DtTrf4kt/WD5BuU0o8jDmS1FhkKanMCdETO5idfc+inRI7TXnlsoQrXZAKUD7VITACgtMfxtUk5rwqdt+sDtU2zlqewVPXrDdfVKZp3HJiR4qnRwOE3A73hRKZNqCERsa4WQxkW12YToYUXJu3WnaLJDcC31r/K4Ez3ZcvjZqhWUFQV5rApI3DW1C5cI+3EAPCg0r3axVV7UBy7gaKF571x0U7nWGyA60Ciu4zJaIHSIG/vvyxOwO+6A+Unb403VNQ6MmpYhds/yXosZN5GY7WG2Ufgg0+XV975N1VyXC/eGtTufVgI94YTcRWCcyjrWstjfUaGHfuBfV1rDYH0TLdWeuqweWxK03mglh6f313UdsJtKtLseXUVaDzElESB9bPML4q9RzEOw7A9jLIYxURKeSfsoozOe11qjapCa0Ct0v2xvXA5UNqmZaVSZTb1+TXbcPh9weypBnV2uMgiCZO1S+BVkALDmjwKvopZ8HmAH91nap9/rHaDPNIA84irih9z0vicndOLHgrI2FtwCJ+QuNhmPiVQNHLndHupU3JlKjh7ivg/TJbdte3prrOzEQlWL+rYY12Ca0EbjS2S0FyxY+v2kkA+tRqlF+8fzHvpBCrQ4S4qVr/ZMCtJ/i4TAK5CqhdxgcWkCPCKILC/OHJNbburxhhkmLzgf0WpcOXY3lQ== 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:(13230001)(366004)(36756003)(508600001)(8936002)(83380400001)(2906002)(38100700002)(6916009)(2616005)(316002)(26005)(186003)(6666004)(107886003)(44832011)(66556008)(66476007)(66946007)(8676002)(4326008)(5660300002)(86362001)(6506007)(6486002)(6512007)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?1FqaAitlvkfjKwW0pxeP6T09oS4wSMjehOKd4tfZZmcn15mESSEOvCWv9X8D?= =?us-ascii?Q?mcOSMsHzAstxbmWi+m39FjUZ2RPBsuQLxsNFaFwV3hW1/p8TaR3PH9GU6XFU?= =?us-ascii?Q?Zg9I+8fZIDtd9CkaRJBJhRJIYlbDruC4PAG8nTXIk2hi9tEwkGayV7B9bBLu?= =?us-ascii?Q?cNlQhxpotuOw8OwB6hxC2y2eVYaEForcwCOEZbRnkKOzIVppb2/9ITgEU3v/?= =?us-ascii?Q?lusbrP70wRrcxI8rs2YipJOnNKIEcBo6Tjd+F8qXPWHIZ9EpOX30aBwfOglu?= =?us-ascii?Q?s04X9LpJhg9ic41difiXUn3y8DUDpJG2NfUzyDC5yX2kafMU7bV4tIOYChNQ?= =?us-ascii?Q?9gaVTaTBYLT+4Nnr0XEl6oAefKloj/iN2VqJKVGlLH9n9VDr+pAGyo7mEvTS?= =?us-ascii?Q?SeabJW83zne6lyYHivu5GyDZO/LgLvEWpltUmdelY9frOJUIZ2SnP8th2ZlB?= =?us-ascii?Q?xX5of3YwymyZd3DR4BvBynnHRWKkyEdqR6DgLne7DsH4RtnF7obABZGsK71/?= =?us-ascii?Q?gdyGaFtVbyzGOra3pK3DXVE3bYREZ7PMPenFdT6ONzDhM8I0qzSnqR59qdFp?= =?us-ascii?Q?LLL8lqHovB495reGhmfS6JguG936c2UxaVNL1uVtt/RqOiDa3/VF6wm/CmFy?= =?us-ascii?Q?igzU3blpQAoJDsVWDzGGw74X7snfjDClwexJybTNXcJoy5x+c/GRJ9CrZjIL?= =?us-ascii?Q?04oONo3X/FFpg4MxaF7lvpdHy3r3bNkU18WNNI665MTbK8tncDTJgS++k9MQ?= =?us-ascii?Q?c+FLrm4r6wwOs+NfQkllz1roSPPWsVMXavV709VtrS0FmHnP8A7zEr0CrhI4?= =?us-ascii?Q?PuraIqYh/r340t2F5zTN6NJMeLES5tBq1QBpMTPPrna8lzEU20KF0hXm1Ra/?= =?us-ascii?Q?23qEzRNe3AWbv8+sNmPU2P99dFu0DXsIrxr8DvQcMprhpkeRkM6N7uNqHIi1?= =?us-ascii?Q?RX/t/gb0AUFSf+Y6FKAfbYjPYnvtsn04HEnEZoD88x22cRAaEgJ806vkfbOD?= =?us-ascii?Q?4KeVY3M8501mx9nYudSVinFzuIcr6rZQD6UmsxCgZHOJK03vkeD861eeJoXn?= =?us-ascii?Q?pLDMQoCkgtLM+D+NK7R3IGDcsYobbN7EEEVjtkAzoiYtx8nIChFvD46g7qPu?= =?us-ascii?Q?UjujzpYSo45L1N/2rlrRvwhnViPMlUGQZXOQE4Fs0dUO/Uu4+w4iTKTSqH/b?= =?us-ascii?Q?A3mtU8UiVnUOfKPo8Zc2165YZvRrTMpt5fL5aqebOyZ1DleZ8cYtzV9KhSB4?= =?us-ascii?Q?335UtckIUVZHEVRJ0IsllG5vL51JaX43iBkykU6bXX6l1p+7EL8zPZm8XPwm?= =?us-ascii?Q?f0oHMVraJQzc5evhn3WawOJ6CDdKN17z2IUnKhKJaLuV5PFnO5RqmtS/7nFu?= =?us-ascii?Q?5L30xMGnnUgo6ja/hlmIpNjgm5sgf1SCR57FE8B9hUzGJ/aTQSATXnWx+n3u?= =?us-ascii?Q?LPE24xCRSRdmnjKMg0rSVq394VV/insH4vtyqZfX/oscRRePJGbzMg=3D=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5504a7f8-e02e-4454-30c9-08da0cafa3d3 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Mar 2022 09:29:33.6651 (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: GKayZaAmfhzd8QEP1+EuIdrSgw8PJ9z9Fch6qVSfx7hlfol81Ham0OVgdjMfMk+AOrgXKGXu70T1VFp63NKXbA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR04MB6733 Content-Type: text/plain; charset="utf-8" This patch added a new struct member sched in struct mptcp_sock. And two helpers mptcp_init_sched() and mptcp_release_sched() to init and release it. Init it with the sysctl scheduler in mptcp_init_sock(), copy the scheduler from the parent in mptcp_sk_clone(), and release it in __mptcp_destroy_sock(). Signed-off-by: Geliang Tang --- net/mptcp/protocol.c | 4 ++++ net/mptcp/protocol.h | 4 ++++ net/mptcp/sched.c | 21 +++++++++++++++++++++ 3 files changed, 29 insertions(+) diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index 11e19ac9d5af..c309922bdb66 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -2609,6 +2609,8 @@ static int mptcp_init_sock(struct sock *sk) * propagate the correct value */ mptcp_ca_reset(sk); + mptcp_init_sched(mptcp_sk(sk), + mptcp_sched_find(net, mptcp_get_scheduler(net))); =20 sk_sockets_allocated_inc(sk); sk->sk_rcvbuf =3D sock_net(sk)->ipv4.sysctl_tcp_rmem[1]; @@ -2760,6 +2762,7 @@ static void __mptcp_destroy_sock(struct sock *sk) sk_stop_timer(sk, &msk->sk.icsk_retransmit_timer); sk_stop_timer(sk, &sk->sk_timer); msk->pm.status =3D 0; + mptcp_release_sched(msk); =20 /* clears msk->subflow, allowing the following loop to close * even the initial subflow @@ -2933,6 +2936,7 @@ struct sock *mptcp_sk_clone(const struct sock *sk, msk->snd_una =3D msk->write_seq; msk->wnd_end =3D msk->snd_nxt + req->rsk_rcv_wnd; msk->setsockopt_seq =3D mptcp_sk(sk)->setsockopt_seq; + mptcp_init_sched(msk, mptcp_sk(sk)->sched); =20 if (mp_opt->suboptions & OPTIONS_MPTCP_MPC) { msk->can_ack =3D true; diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h index ffe7e551ac84..9441a510ec6e 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -286,6 +286,7 @@ struct mptcp_sock { struct socket *subflow; /* outgoing connect/listener/!mp_capable */ struct sock *first; struct mptcp_pm_data pm; + struct mptcp_sched_ops *sched; struct { u32 space; /* bytes copied in last measurement window */ u32 copied; /* bytes copied in this measurement window */ @@ -611,6 +612,9 @@ int mptcp_register_scheduler(const struct net *net, str= uct mptcp_sched_ops *sche void mptcp_unregister_scheduler(const struct net *net, struct mptcp_sched_= ops *sched); struct sock *mptcp_subflow_get_send(struct mptcp_sock *msk); void mptcp_sched_init(void); +void mptcp_init_sched(struct mptcp_sock *msk, + struct mptcp_sched_ops *sched); +void mptcp_release_sched(struct mptcp_sock *msk); =20 static inline bool __mptcp_subflow_active(struct mptcp_subflow_context *su= bflow) { diff --git a/net/mptcp/sched.c b/net/mptcp/sched.c index 3ee23b24b771..9ddfeb553c78 100644 --- a/net/mptcp/sched.c +++ b/net/mptcp/sched.c @@ -119,3 +119,24 @@ void mptcp_sched_init(void) panic("Failed to register MPTCP sched pernet subsystem.\n"); mptcp_register_scheduler(&init_net, &mptcp_sched_default); } + +void mptcp_init_sched(struct mptcp_sock *msk, + struct mptcp_sched_ops *sched) +{ + if (!sched) + msk->sched =3D &mptcp_sched_default; + else + msk->sched =3D sched; + + if (msk->sched->init) + msk->sched->init(msk); + + pr_debug("sched=3D%s", msk->sched->name); +} + +void mptcp_release_sched(struct mptcp_sock *msk) +{ + if (msk->sched && msk->sched->release) + msk->sched->release(msk); + msk->sched =3D NULL; +} --=20 2.34.1 From nobody Mon May 6 13:50:53 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a17:907:7811:b0:6d8:2910:9a8 with SMTP id la17csp1660639ejc; Wed, 23 Mar 2022 02:29:48 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzb5erm8sh7xUO+2Z5QLRTAVFEaWBN/Td4ifhRguFhkAXsy+CniOYEiNoKzQdsOMmSDdiX8 X-Received: by 2002:a17:90b:3b43:b0:1c6:f878:ea52 with SMTP id ot3-20020a17090b3b4300b001c6f878ea52mr10498427pjb.68.1648027788720; Wed, 23 Mar 2022 02:29:48 -0700 (PDT) Return-Path: Received: from sjc.edge.kernel.org (sjc.edge.kernel.org. [2604:1380:1000:8100::1]) by mx.google.com with ESMTPS id x23-20020aa79417000000b004fa3a8e0082si12143995pfo.313.2022.03.23.02.29.48 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 23 Mar 2022 02:29:48 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4373-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1000:8100::1 as permitted sender) client-ip=2604:1380:1000:8100::1; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.com header.s=mimecast20200619 header.b=edHTGTSI; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4373-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1000:8100::1 as permitted sender) smtp.mailfrom="mptcp+bounces-4373-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=suse.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sjc.edge.kernel.org (Postfix) with ESMTPS id 37B173E0ECC for ; Wed, 23 Mar 2022 09:29:48 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 4E45B1395; Wed, 23 Mar 2022 09:29:47 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.109.102]) (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 B41D71391 for ; Wed, 23 Mar 2022 09:29:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1648027784; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=XL2xunp+RtTybm9qBGIclSF8uOwcpN6+UYkDlorjBv8=; b=edHTGTSIlXBi9qrQZ8cLe1uZBRkIJoTFS8JEO7vMJn86XbPhMQJk0YfZiaWlbSASkTwutM sUcxNQaTSrPa88UMWz+rgjiD4RRDVVo0WdifaKbzOaW0sJoQosyMP9RPxMjjZ763xi7oIa fLI8ry1FeCs3N71VgaWahb6tO8K1LEU= Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-db5eur01lp2055.outbound.protection.outlook.com [104.47.2.55]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-39-8RDUdeqBM_m0Hb15VN6rqg-1; Wed, 23 Mar 2022 10:29:43 +0100 X-MC-Unique: 8RDUdeqBM_m0Hb15VN6rqg-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=FVCIAzoXnMD2dPZ0MwMw6lTPzarSj3dPG7VtSAlMF9iBnjzfAsDjzKqZxV5AuO1ZlKM6gBAEsXPTyvrbeuLTBzsV+Mj2MetmEJaqK+zHBPNwlXCT3qbK6sBvDwWUofvoRjoIlYPen1hPcBk5DOafxk5QzEd8KGw7wVk9CmYjxJpvlPXL+VLb8FU6VK83reACDGqIJBrwrN/slwaqIGMcdHnHEdg24pOM4+L/e/0RaX1Yo+nRU+Ha/fwH7H57iWYJDGqvQn3KUPCD0Dmci5qG9RVC50JDHiFyDupqpaj56afqXY6zOB/fqiEZF+vhdX+USmSrFNWd8fIIoR2B+YfMmg== 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=H4K27S+cFA5BSkcqF0AK8FENfLYEAJKxccjLMd7FSZE=; b=RI2OYWwmmJllmgr5hjTf47ubO4qQzbNQsf3xK2XhwM5Oplqc7Xr037pWOcxKVH6sO9Kfu8sEolxUIuwUnT4hchiCfyi5KvfiSUHtRiiazSiDQ1LERlbMGYXu3vhVMbSzfx5Z8VJkPqWmn09m2xYvmTP2v3664VaZpJiBhFm82mZQeDgd5oj2QovhPP3txRge9vLuX3o6fLhV+QmmUupGgvSsbxXqQCLIPLGvKt90M54kZf9xiIgfh7uXmeKBFfd0WhrhFU3rbQ/y9VqSEE5YJUChKezaA9vSIp1Pfn51NzXDKomrPU3+j/hFJPGhP9Do5dLO/G0it6rnxV9tyx9ztA== 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 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 VI1PR0402MB3359.eurprd04.prod.outlook.com (2603:10a6:803:3::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5081.23; Wed, 23 Mar 2022 09:29:39 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05%6]) with mapi id 15.20.5102.016; Wed, 23 Mar 2022 09:29:39 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v5 5/8] mptcp: add mptcp_get_subflow wrapper Date: Wed, 23 Mar 2022 17:29:04 +0800 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HK0PR01CA0057.apcprd01.prod.exchangelabs.com (2603:1096:203:a6::21) 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-Office365-Filtering-Correlation-Id: b8c0d86d-63e5-42c4-c9bc-08da0cafa78c X-MS-TrafficTypeDiagnostic: VI1PR0402MB3359:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: UMWPl6ia2J0N03Lt69sCny4QAOzBz4Od6UIjXhUTZof89d9Vn47DbySosFEyrKOBf1W1empRwITijzf4xv09c21qU/MSmxk9dcZE/qnq+A1jLwGhRzrRtqzwzn6y3ySR1yWV7g9aekZnXT1Z/kTeGY1jvfCTU2dlEBOPgqziDTlW/fc49b3qs6tURX0Uq5TnxEhORqwqzhC8TiL9oZRX4ESiQCJcdo9yojjZYsFT64KbHRJZXa24eJ+RoFphlAVWtrYY8tqJo9qihTv7YCRg5W4k7iypt/sNpy/lZLFzQya1NoUskD/76pl6F3jF8I8GRdGeD/9Mx6tWxmK3s2bGmHakl7YpsgGZqM0dmDHo88JiJacJIybI5Ez4+M48SE3lnkzQKp0L4PvV3EzxcFH/sPYIMRZyVaQCnoLzW2vPVPmfa1yVfXArjngYxl5Mlb+HQglYIpZ7ZTv006MxWAQiKN0z+QUqV6sVEDkgsvjGlIdq3e3eUbXNmHtKCtRNee85S/9TGfKlFy+s3xvFxqac0WMwd1JESv77Nqwn8gj8NToPGcbTRmX4HRXuNkRtRLW7Hk3j+VZwcwj+9IbLZ6a+cJQDeQ+W94L5DJdeQx7754HbjvEETKTusu0tS17PQ8cSq67KdNtDXiTUghz0hB8EbVbcKFqkWX60baS57Ayet4ieq2MrcMaFNqRabTKb6QXD 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:(13230001)(366004)(6666004)(508600001)(6506007)(5660300002)(2906002)(38100700002)(2616005)(44832011)(8676002)(4326008)(6486002)(66476007)(36756003)(107886003)(8936002)(316002)(83380400001)(186003)(86362001)(26005)(6916009)(6512007)(66946007)(66556008)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?4nJPY5OFCGrLofUDZTZ7kZ1FrqcgXwTCGqiYvyfFLdqw1GGVDi25IGyA6gqH?= =?us-ascii?Q?0SKNSTqFAa5H5+H9P04GhrSuyGUuBGr6FpUv6tKBPzkJcWb7S3U3Z3NfFoF8?= =?us-ascii?Q?DIFb69SYhQ4E0OsVplv0uiDhTjfyY/VP4cl7atC2ESFqp1jPcMZgGNTpLlyf?= =?us-ascii?Q?xOG2MRgJxlpEjuMJBElBj4+G52Fr+x07RBE5avch+IOaGlGoJ6Trvn2BMpk9?= =?us-ascii?Q?1mrolBFTCillvtJDm/yRUCEKFap9UA+J1GQv+VzwUAXYrxpgd3lE+mMOAv35?= =?us-ascii?Q?dknhnGKLCpu4io5PlTGTL+l1OrpGaKEQbYcmLbvRCAkFZmQ1EGw7k1B0bW9J?= =?us-ascii?Q?VxjMBgncO4SnAYeHEz1oV/nF1z7rBCcHhzQNODMZ1T6W48DuFQu2RZNxgwkp?= =?us-ascii?Q?upjZKKZKiPfrIOg7ldSuzry2xQUktrAp+uzuGqF6MVztX651nZj+0oqZ0wsu?= =?us-ascii?Q?L9ANjfbN7NV4d14hMhZw2CCDuyw9uParGmbl004Sij9rj61PNZwQTdctlTpz?= =?us-ascii?Q?96nU1+0PGT+9TG4FNHA3W/0gmZOnG4Fk9vjyFR7sWd6piCACEAFmP7q1kYsM?= =?us-ascii?Q?H75l6i1as4hEnkK8nbjgcAThK0NmUidYq30TL7XP6boDCjjOs8GHLJUbM9a/?= =?us-ascii?Q?foUkMHiyGdeJ1ztwhQHY7D2cfEFWA0DgVDpxzPPVXVE5ChU/Goo2Kz1A0cqK?= =?us-ascii?Q?gMlxbdqBSd6W1nfWCJ9aocWOKKqYtsrzW7OokIb9DHXOI3Lu8Y8v9jx7Czj4?= =?us-ascii?Q?xg2rr8fYswmPuyRiSOLJY6Cn1VMOWj/XAJ1shS+WXgROMlnuCgLf+79NYJTK?= =?us-ascii?Q?A/27Gl8fJ45F11xuOiyv77O/TjmeFbKgCSHCq6yDUTPl6/9huuzBwX/hS97q?= =?us-ascii?Q?/wd4NIVZ/4p0R806iWC6WL9mvBGQRcHbFWp8QYJpJEUeKKyCP8EAsuyfGqJN?= =?us-ascii?Q?N0hjYUGt/Sl3Ga4DqMgUy5xz99z8v1bvNn9H0ZIdP0Hspq24bERCX5pogn6T?= =?us-ascii?Q?yl7PGMqoSIzUEvhKR2BfQBDB45oZwDKhaLVAYoGB51coRiWOqJCA8YNhiLOU?= =?us-ascii?Q?Tgjqx3+zB78Fq5LKuKVi68AO/CmutQM7qccHfCaKefhnS8dirx31XIle5z+h?= =?us-ascii?Q?U2Qj6IAwBnc8K3VwIq1KWjOK6LwNVM2rlZtG5pQBSi4p+/UKUxQwIeT6DCpU?= =?us-ascii?Q?e4VcFTTpiEpMDS0y5WDJcVVxumzfcdXhp324SYD2/a/5UI472CtpdlzwLYlt?= =?us-ascii?Q?SkBG5dI7QVAMzPQ0VUt8B1xi13+NJvrra05k7Rs7fPyXCjOHaMN59+9Y0wJZ?= =?us-ascii?Q?WHEWmeVcsj8Hs8BYRxtehxl07QkIuiEkr5VH28uSSCNqTgIsrEhnBpTPE/mC?= =?us-ascii?Q?Ri9H28iMJ88nPBRGAx6VAhEn7b7LEWekpcAqTgbeOrJQGCEkNyhdkor9giwm?= =?us-ascii?Q?CmAffGqXqkku26snNNMV1xNB0aiu2nLTso+uhuRV1V2bXdQ1op+w3g=3D=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: b8c0d86d-63e5-42c4-c9bc-08da0cafa78c X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Mar 2022 09:29:39.8834 (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: QrPy7pEkToUsvzPrquabIXYP18a/iTejGhzAK6QBnB75dCNF9a2r1cxNNJVpW639+8UGZ5TYLo0sUWfSHsODuA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0402MB3359 Content-Type: text/plain; charset="utf-8" This patch defined a new wrapper mptcp_get_subflow(), invoke get_subflow of msk->sched in it. Use the wrapper instead of mptcp_subflow_get_send(). Signed-off-by: Geliang Tang --- net/mptcp/protocol.c | 6 +++--- net/mptcp/protocol.h | 1 + net/mptcp/sched.c | 7 +++++++ 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index c309922bdb66..4560cdde96af 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -1567,7 +1567,7 @@ void __mptcp_push_pending(struct sock *sk, unsigned i= nt flags) int ret =3D 0; =20 prev_ssk =3D ssk; - ssk =3D mptcp_subflow_get_send(msk); + ssk =3D mptcp_get_subflow(msk); =20 /* First check. If the ssk has changed since * the last round, release prev_ssk @@ -1634,7 +1634,7 @@ static void __mptcp_subflow_push_pending(struct sock = *sk, struct sock *ssk) * check for a different subflow usage only after * spooling the first chunk of data */ - xmit_ssk =3D first ? ssk : mptcp_subflow_get_send(mptcp_sk(sk)); + xmit_ssk =3D first ? ssk : mptcp_get_subflow(mptcp_sk(sk)); if (!xmit_ssk) goto out; if (xmit_ssk !=3D ssk) { @@ -3074,7 +3074,7 @@ void __mptcp_check_push(struct sock *sk, struct sock = *ssk) return; =20 if (!sock_owned_by_user(sk)) { - struct sock *xmit_ssk =3D mptcp_subflow_get_send(mptcp_sk(sk)); + struct sock *xmit_ssk =3D mptcp_get_subflow(mptcp_sk(sk)); =20 if (xmit_ssk =3D=3D ssk) __mptcp_subflow_push_pending(sk, ssk); diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h index 9441a510ec6e..c5957fbff35c 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -615,6 +615,7 @@ void mptcp_sched_init(void); void mptcp_init_sched(struct mptcp_sock *msk, struct mptcp_sched_ops *sched); void mptcp_release_sched(struct mptcp_sock *msk); +struct sock *mptcp_get_subflow(struct mptcp_sock *msk); =20 static inline bool __mptcp_subflow_active(struct mptcp_subflow_context *su= bflow) { diff --git a/net/mptcp/sched.c b/net/mptcp/sched.c index 9ddfeb553c78..464f030bcd86 100644 --- a/net/mptcp/sched.c +++ b/net/mptcp/sched.c @@ -11,6 +11,7 @@ #include #include #include +#include #include #include #include "protocol.h" @@ -140,3 +141,9 @@ void mptcp_release_sched(struct mptcp_sock *msk) msk->sched->release(msk); msk->sched =3D NULL; } + +struct sock *mptcp_get_subflow(struct mptcp_sock *msk) +{ + return INDIRECT_CALL_INET_1(msk->sched->get_subflow, + mptcp_subflow_get_send, msk); +} --=20 2.34.1 From nobody Mon May 6 13:50:53 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a17:907:7811:b0:6d8:2910:9a8 with SMTP id la17csp1660659ejc; Wed, 23 Mar 2022 02:29:54 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyge6zv2/eNlEa22Em3QHTY7q+XZwk9NjKffX/U4TPndg3SYvJ59dmtLaOHyWhtoiGaCgAa X-Received: by 2002:a17:902:b7cb:b0:154:57eb:c754 with SMTP id v11-20020a170902b7cb00b0015457ebc754mr14540971plz.2.1648027793758; Wed, 23 Mar 2022 02:29:53 -0700 (PDT) Return-Path: Received: from sjc.edge.kernel.org (sjc.edge.kernel.org. [147.75.69.165]) by mx.google.com with ESMTPS id i19-20020a056a00225300b004fa98040016si9561027pfu.142.2022.03.23.02.29.53 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 23 Mar 2022 02:29:53 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4374-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.69.165 as permitted sender) client-ip=147.75.69.165; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.com header.s=mimecast20200619 header.b=W5EkP5Kr; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4374-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.69.165 as permitted sender) smtp.mailfrom="mptcp+bounces-4374-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=suse.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sjc.edge.kernel.org (Postfix) with ESMTPS id 2488F3E0F09 for ; Wed, 23 Mar 2022 09:29:53 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 065721395; Wed, 23 Mar 2022 09:29:52 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.109.102]) (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 694DB1391 for ; Wed, 23 Mar 2022 09:29:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1648027788; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=30o9dqawjELxNI1XIygMh7C4rPD4Zx0ine1saTvV1+k=; b=W5EkP5Kr6OgjwLxpV6HlfmGde/BJZklMIO0RPqtEfjwA9VfBBHtk3wsxLnlrS9M0FLYvxR 1Do8g1dqfVQtwXlbZCt1e0l1E2TuAipFH8nKeHXjkIlZGM5iWWRJGBTU998nyCQmANP+YK /3DoE0IqsURZlRQUIJMaxToTxi0ibSc= Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-vi1eur04lp2054.outbound.protection.outlook.com [104.47.14.54]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-13-EsPNrIifPZa18L5YG0xH3Q-1; Wed, 23 Mar 2022 10:29:47 +0100 X-MC-Unique: EsPNrIifPZa18L5YG0xH3Q-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lRzFBO00zXvQykMY8kQeAW6T57n2YusLnJICUIyrizHgClMiTdmu/FoFadwTw8vErKNqc3IR3DtWZA/GclDBXfHfAIKFRO2BV2RGt/FAfGTpP4DcbkdenJ6MBr5VmZgH+hN4bPjfxQCLFpX6mo67GXHYZS6Q/RF+cNZAvI4DEeoZJPbWK9nnCl1nX9U16fqGpbTVKoKcXim1Njzy1LoXNfY6Phbkre/SFriEbyJ5ekKeTvjLwkvsXRS8ENO1HxXjnUXhy/2/nP1ASEgo3xfsfkkKdwTgW5LqwGXs1b6t7hu+7W/G2g/NLZzu6qKTOdYxHMXptcbwctJDa7EYbp+5sA== 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=bDq7fswjcrNBl8Z+CypHoa/b4lWmhk6rkeNqoRFV+/c=; b=hEDKOoEBvOM/3FR0i8UiEYUngJr8ZdcPj3rj7wIP1ktQIu4SGdncQzIWspx5ix+sYZIop+Q0EvJB8qKbzqWGxVWuLLKgeMRBT5tQhUGcxDIljbsqSWeZfmoOriUi/Cnpyl0yaS5yHeGpYCGB3qx3fqqQDtKXVe5dRFDW7QlT63kLFFTzdVlYf6kghzPBw1IK84sZ3HjW+DhPYvrS3HbKLsHfmDk1TvMBsUq7aUU+UUlD9y6LLx1HfP4kmAJ/WVIg1nd7rqds6IRq/4UHL0Dh0BmUNauuUFFbOEdRAcq0tfGs4ldbHikHEyz2/CV+w/zxzK/Qqurqlnc1Jc0gZWXvCg== 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 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 DB6PR0401MB2536.eurprd04.prod.outlook.com (2603:10a6:4:36::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5081.23; Wed, 23 Mar 2022 09:29:46 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05%6]) with mapi id 15.20.5102.016; Wed, 23 Mar 2022 09:29:46 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v5 6/8] mptcp: add bpf_mptcp_sched_ops Date: Wed, 23 Mar 2022 17:29:05 +0800 Message-ID: <40b62df857a2a1fc3f96731ff5b9ef258ad1a3ca.1648026806.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HK0PR01CA0062.apcprd01.prod.exchangelabs.com (2603:1096:203:a6::26) 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-Office365-Filtering-Correlation-Id: 634749ef-668e-4551-fe6f-08da0cafab62 X-MS-TrafficTypeDiagnostic: DB6PR0401MB2536:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: x7BGFS3wkM5N/zQXdp+dI/WCIdtvjUpLYuMgAALhM4/74ryW4QO0ebMfcyiDoQvbtr9ce1moyePKEgTvJ/T7zlcoaJN0B+OX4LrmuncoTYFggKvNnWstOHQPI87hxuW6SsayHOH9YUh2EteAqPnfU7NXt/PqRu4tNiIsAvCfsqjeoL9VRp8BTZns10gfGLtmmbZHjh8UJuoUfKe65d2Z2ur04iDog3BW11ApSdbt/Frhk4nj3M5GtCDUKr4L8+j2+p4PjFf9shatOmTMImz/tYa4bzKezz9+q+ZE1AkV5f8tgNJ8RIIWGCOkTA6uCliZI1ZJzrOPHA3Bo94Rn7kXe7lF8x6Gd62U1+MKyuy+dW+NKixiaTff3MfbCud9EP1IIeaVKDv7zOo9G0dbZQpPvj/Y93c02U78xdiMVcHozX826kvQVQw3LjK40oIzZchAOWYryXOAvrSYsPJAsHEQHyBSbLiQ7BDDhw0KdyXEknAuJuhyAFgR2NhcQyau01B8SYQvn89s6hnGOygUqrvINhLdcec2sgJCFESh/Yfnffv4x+vpgSxYMeqe928x2rCy497Q5KI7B0y7T6lqTRZLpRIU+daoPCVAQ3SP588+t1pYFlCTyqBXmEiLVR6JA5+nNfYixHvYW0o4MKFX0RjaMqsWv32sJbcQ7D1x/kZaSuAKFpqAsDoAm1hitUq4Vlyz9VhKmycNzn45Pdk+kq3MMw== 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:(13230001)(366004)(508600001)(44832011)(6486002)(8676002)(66476007)(66946007)(66556008)(6666004)(6512007)(6506007)(36756003)(4326008)(107886003)(2906002)(8936002)(5660300002)(86362001)(316002)(6916009)(2616005)(186003)(26005)(83380400001)(38100700002)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?gFgsNp54XkTMyylzw+D85YBpzZnw2ahWCQHlctp1cCj+rpxUlqpZ+jFdSfdn?= =?us-ascii?Q?Wttf1VDzijwvk6kW33+/4vWnVrUWQSiOpm9kdMGK9dWbDEvSF/1IaYsz6YrT?= =?us-ascii?Q?HaHivTkmGnZPM+5cAjsGi8pIMXDBpSsKArMjBAvh5vrQK0TkI04s9Z3EyIz3?= =?us-ascii?Q?hhhlul9PuiMsyFCkoSYRyNi4kAlxqnsR7ZSHikOZoqVa4CHOr20DxHwC3gMY?= =?us-ascii?Q?O/e+ALASdijH8Dp4UjSN2+VSLC0H5T4fGPx0Vbv163r9Yac279oYWiuCQ8FV?= =?us-ascii?Q?0+NY7Xl41rfwcpOzchGIyFgaESjzRrLiHRe8y33y4qOa0haCQIlIWhPJODjk?= =?us-ascii?Q?1HheGwuTeUPOgsZKfJg+uC33H17UDjm4gV1TZTWQBnlBkFdfBN3qihuTF/Tc?= =?us-ascii?Q?XsfP/Vq+pY+nLIrf4q1xisQyTTousj435RXDMa1d6kYw52bpILbG+6pMbB26?= =?us-ascii?Q?ZeZMebNFE2WbBvskhLWCKmBCZWjB7fpC8Wggh6ns4QcXpcK2FIzEAfJB6IC9?= =?us-ascii?Q?TjjXk3u96Y0SUd+t/4Ezf/rudfN9PN3jJK4GyiVKwSLTgwPXJyU5SgIajhSa?= =?us-ascii?Q?jSGcnMlx30oi/Bj6y6S44Du6A7rL8UAm0d2CFpGQDwkvWXp+VZaDAm5t5NkA?= =?us-ascii?Q?oiEleW+3CGssdXQ5I3nzdyeNpldQhWH8TvsKO+zw+1H0//3kwHC6L92gfXbS?= =?us-ascii?Q?WNC6n+X2195TuYfzeD32jQAOib+jNY+mMofFvitUE0g4FYRE9azIi1uUy/Cg?= =?us-ascii?Q?XI3E/TlC2A03VAphza+Gr3A1lIJVwka2wHSVPFQNrwHz71M+ieWrrzklQldb?= =?us-ascii?Q?EZK7bKFVXbZFuGteXRTgL06Dip2a/NTzwo0hQhp/Q7icrpq+mL7t6IXi4ETs?= =?us-ascii?Q?lBPq9z+lmgIWNmxHL3IpWyggOHWr85uORYbYzmJBIsoF9dxL05EBPzL/h08E?= =?us-ascii?Q?zmn9lROctdIj7n+/Z/OvJGxOPR2w6xxmjg3pfq7C9GjYUeZ9nef4HbbbCYoJ?= =?us-ascii?Q?EXlucR/r7evitL94KsS9NsrMhDRRb/sDwkgu4ZOmYD+prsMF/HNOTOTQ+v2Y?= =?us-ascii?Q?vdmerXaKAQSv0Ny8kbXwAm5hO8JBrb5LNeFw++cYPoRkMlxzREkZUtA+qs5z?= =?us-ascii?Q?EeePotAxD89wRD0lsoV18Un9YdPQ98856tfgK+6NuAUXoH/Di+S7hbPWjwMg?= =?us-ascii?Q?HyJ42tTGR21A6TDOTv3oOJwxIgfiEcx5J0G0Jx9Pmb6uSZmk8N3miOjxLF1g?= =?us-ascii?Q?cYZxZ5fdjLorn1otaZ0c7ZCj0Lld0DzLozW1liB2pURtbQW1gotGskq3p3D/?= =?us-ascii?Q?YawvVBgZg5o+Go+sPR8b4UOqRcO1hA04u26yWLrAgoeRKtG0dxVrkOakuHsi?= =?us-ascii?Q?G6LKiYiaX5XqQMthADn0YItmM8+iD/+LUsKW7jhfpZvUvBmmS5Q/o23CGApZ?= =?us-ascii?Q?AaWCwziqRcsM0cx5oxBy5JQFDOXvekjaXxdcLByqTWmwkQDg59ag0A=3D=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 634749ef-668e-4551-fe6f-08da0cafab62 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Mar 2022 09:29:46.3360 (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: 6qoAvJ7o0J2s9z0ltUGKhaa4V8lvsSO21dRN+XcIudP999Z1k3/8pt1v3g0Uy+0mE4/ewgyrPcJWz2nY7Gr1fA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0401MB2536 Content-Type: text/plain; charset="utf-8" This patch implemented a new struct bpf_struct_ops, bpf_mptcp_sched_ops. Register and unregister the mptcp scheduler in .reg and .unreg. Signed-off-by: Geliang Tang --- kernel/bpf/bpf_struct_ops_types.h | 4 ++ net/mptcp/bpf.c | 102 ++++++++++++++++++++++++++++++ 2 files changed, 106 insertions(+) diff --git a/kernel/bpf/bpf_struct_ops_types.h b/kernel/bpf/bpf_struct_ops_= types.h index 5678a9ddf817..5a6b0c0d8d3d 100644 --- a/kernel/bpf/bpf_struct_ops_types.h +++ b/kernel/bpf/bpf_struct_ops_types.h @@ -8,5 +8,9 @@ BPF_STRUCT_OPS_TYPE(bpf_dummy_ops) #ifdef CONFIG_INET #include BPF_STRUCT_OPS_TYPE(tcp_congestion_ops) +#ifdef CONFIG_MPTCP +#include +BPF_STRUCT_OPS_TYPE(mptcp_sched_ops) +#endif #endif #endif diff --git a/net/mptcp/bpf.c b/net/mptcp/bpf.c index c3b6f94f033f..c706850f0a87 100644 --- a/net/mptcp/bpf.c +++ b/net/mptcp/bpf.c @@ -8,8 +8,110 @@ */ =20 #include +#include +#include +#include #include "protocol.h" =20 +extern struct bpf_struct_ops bpf_mptcp_sched_ops; +extern struct btf *btf_vmlinux; + +static u32 optional_ops[] =3D { + offsetof(struct mptcp_sched_ops, init), + offsetof(struct mptcp_sched_ops, release), + offsetof(struct mptcp_sched_ops, get_subflow), +}; + +static const struct bpf_func_proto * +bpf_mptcp_sched_get_func_proto(enum bpf_func_id func_id, + const struct bpf_prog *prog) +{ + return bpf_base_func_proto(func_id); +} + +static const struct bpf_verifier_ops bpf_mptcp_sched_verifier_ops =3D { + .get_func_proto =3D bpf_mptcp_sched_get_func_proto, + .is_valid_access =3D btf_ctx_access, + .btf_struct_access =3D btf_struct_access, +}; + +static int bpf_mptcp_sched_reg(void *kdata) +{ + return mptcp_register_scheduler(&init_net, kdata); +} + +static void bpf_mptcp_sched_unreg(void *kdata) +{ + mptcp_unregister_scheduler(&init_net, kdata); +} + +static int bpf_mptcp_sched_check_member(const struct btf_type *t, + const struct btf_member *member) +{ + return 0; +} + +static bool is_optional(u32 member_offset) +{ + unsigned int i; + + for (i =3D 0; i < ARRAY_SIZE(optional_ops); i++) { + if (member_offset =3D=3D optional_ops[i]) + return true; + } + + return false; +} + +static int bpf_mptcp_sched_init_member(const struct btf_type *t, + const struct btf_member *member, + void *kdata, const void *udata) +{ + const struct mptcp_sched_ops *usched; + struct mptcp_sched_ops *sched; + int prog_fd; + u32 moff; + + usched =3D (const struct mptcp_sched_ops *)udata; + sched =3D (struct mptcp_sched_ops *)kdata; + + moff =3D __btf_member_bit_offset(t, member) / 8; + switch (moff) { + case offsetof(struct mptcp_sched_ops, name): + if (bpf_obj_name_cpy(sched->name, usched->name, + sizeof(sched->name)) <=3D 0) + return -EINVAL; + if (mptcp_sched_find(&init_net, usched->name)) + return -EEXIST; + return 1; + } + + if (!btf_type_resolve_func_ptr(btf_vmlinux, member->type, NULL)) + return 0; + + /* Ensure bpf_prog is provided for compulsory func ptr */ + prog_fd =3D (int)(*(unsigned long *)(udata + moff)); + if (!prog_fd && !is_optional(moff)) + return -EINVAL; + + return 0; +} + +static int bpf_mptcp_sched_init(struct btf *btf) +{ + return 0; +} + +struct bpf_struct_ops bpf_mptcp_sched_ops =3D { + .verifier_ops =3D &bpf_mptcp_sched_verifier_ops, + .reg =3D bpf_mptcp_sched_reg, + .unreg =3D bpf_mptcp_sched_unreg, + .check_member =3D bpf_mptcp_sched_check_member, + .init_member =3D bpf_mptcp_sched_init_member, + .init =3D bpf_mptcp_sched_init, + .name =3D "mptcp_sched_ops", +}; + struct mptcp_sock *bpf_mptcp_sock_from_subflow(struct sock *sk) { if (sk && sk_fullsock(sk) && sk->sk_protocol =3D=3D IPPROTO_TCP && sk_is_= mptcp(sk)) --=20 2.34.1 From nobody Mon May 6 13:50:53 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a17:907:7811:b0:6d8:2910:9a8 with SMTP id la17csp1660735ejc; Wed, 23 Mar 2022 02:30:04 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwfprGrUcYsTYPQeniXzXS1L2LGAuj7wlXnjXTA+55cwicxfelzjPfeKcsvDtxsMQlL3WiE X-Received: by 2002:a17:90a:9106:b0:1b9:115a:a2c1 with SMTP id k6-20020a17090a910600b001b9115aa2c1mr10479595pjo.80.1648027804556; Wed, 23 Mar 2022 02:30:04 -0700 (PDT) Return-Path: Received: from ewr.edge.kernel.org (ewr.edge.kernel.org. [2604:1380:1:3600::1]) by mx.google.com with ESMTPS id v15-20020a1709028d8f00b00153b2d1663asi14906777plo.578.2022.03.23.02.30.03 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 23 Mar 2022 02:30:04 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4375-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1:3600::1 as permitted sender) client-ip=2604:1380:1:3600::1; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.com header.s=mimecast20200619 header.b="Ch/+aZFO"; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4375-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1:3600::1 as permitted sender) smtp.mailfrom="mptcp+bounces-4375-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=suse.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ewr.edge.kernel.org (Postfix) with ESMTPS id 942921C0B5C for ; Wed, 23 Mar 2022 09:29:59 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 3F8971395; Wed, 23 Mar 2022 09:29:58 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.111.102]) (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 B589A1391 for ; Wed, 23 Mar 2022 09:29:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1648027795; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=el14mbDNzMQKfIz7X8FmdkOL32gSiWivSI0Gycj16jY=; b=Ch/+aZFOdkFeeh0/skJ7jejk5m24w8w3AU65UDiLWeUOUu3vpFEopRzDDpSfjE/GHOKoDh u/Ub3Dwpleopi/8mhMsAG+OMF/jf8X9gzR9VtndlJHir7J0Z2/G1DK5XcmyvvKdya4/rYR AmDz5/qIXeRw/+WJYsps6n7r8iIWrX0= Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-vi1eur04lp2058.outbound.protection.outlook.com [104.47.14.58]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-20-jf6Gii46PW2gfwYCbw-Bqw-1; Wed, 23 Mar 2022 10:29:54 +0100 X-MC-Unique: jf6Gii46PW2gfwYCbw-Bqw-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=T3+YAywFNg9Bydd2yP32glVVIxTj7I/i83J+lUKbNTyP/Kbid33B+B+LMoRsPrLVSQWjoDekb5loq2irQU0jXDw6nRaBcggnOdYcFbtY3irW2A51pWsfmTtbmYgtKEvKweN+wB8/B54DRU5kauri9JfEBkYWIkLgPgO7/Nd/vizYpcy0PsozBEu7N3nmVG4Br7+uw7n+Lk7tfCA/7Sdjlw1pY1sXiPujkaNLVoFl0VfumGo6eXZpXmqatC1X1OPmBkPna1Xi487cWKXsDZwQY3Vdbey0aMNn0HvEAHHkvaowlVTEz8VgF6zD4kYAN5F9UG1M2HSO/NU4TWYZbV5qOg== 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=k5FH9XtcH7HyTwHY5I1wHeCwYLtUvyGzKzyt2JprDa8=; b=VFe3UpTxycrfn8R1reTA2gzHuInKU7dF8gNI68LPepq/ZEDKY/n0P+kQZukccndwXBUrLbZ82LPnhCjoF8xZiymrDMkpvJ5Hf446EUqJ1s2Tn4brRbiCwJFgYERb0XJkU/G37Hi0v4zVz03PyHjzIa6PBltOKdmvnFYWWFh+pRL4Esl2XSmxf5QeEzygOILh94S1qbMAIy0qnJlEko+eOE1ckT0PQxhdKNgbB+h6LT8eyqjf75wpaO28v9mSwdvGlfjUUAtlazA7//wDhdDpBT8IR6sszgZ6SFv/LfZccqfE1dGIYtJmQj24lxlTMTswm/2Nk98dm7i0wDRiJUecdw== 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 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 DB6PR0401MB2536.eurprd04.prod.outlook.com (2603:10a6:4:36::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5081.23; Wed, 23 Mar 2022 09:29:52 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05%6]) with mapi id 15.20.5102.016; Wed, 23 Mar 2022 09:29:52 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v5 7/8] selftests: bpf: add bpf_first scheduler Date: Wed, 23 Mar 2022 17:29:06 +0800 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HK0PR01CA0052.apcprd01.prod.exchangelabs.com (2603:1096:203:a6::16) 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-Office365-Filtering-Correlation-Id: 7a11471e-5fb5-4839-6e67-08da0cafaf34 X-MS-TrafficTypeDiagnostic: DB6PR0401MB2536:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: F/lQPn7Vgr2s5NQjFYFprsTD42NpMz47R3YvxkhaVey1ZHQG74cS5sqEyV9dUzw7DulrbD4icX7qnjXWSgQuzz7tYYEGfXIirbQ+aV16VwUmTAcWW0MYT/C7zODdwzjJK50svTvnnZ58FyduPa/IEmiByFOyGcatEXvKoPLUCH+aJc11xjl904naTkczhsKc2pKyXOA3wSKSSSTyyS2qgAM9gE7hsX78bTcC9/+owj/trovLOlGEqlgJmTrFnHsj+JzXQiC1Aeq3n7btmt8E/AyShIFjaiDwMMPDJPa36qbAzp6SW99HAfo4iUTitOz4rl4ksT7sgKdGvE4DUS9tkciwMmVfuPzc+hdP1i/hGto20KJrVVWxYyoVQ9fnDWqHb4cZXX3i8GIGhXeaiaVsHaNTpGMCSDQAxuQReqpNtMqrjOmZt7je4tveuFuNDKCVHh/EGqhjGjZsCSsZp2wroVBS8hQJCQhZGTzJx+tl/uupAGQc4QsaYdLKTz8lQzGax9xUj94Pu1seQF1t/eWYypvogU3gNi00JNjNp8TRapI+wJ9qLizBqOSY2oqyKrFXrToy85nATA7h4AHILEJVrCrhnMRn/Gk38LPUnXtEz9t9/Vn6qUJSYtxnfRFVH3W5kIhJIf/CG5kwvS9a/RghMAO7iCTznSHhFtu58FQDgjO9N7viOB8RsmtWT64isQ3D 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:(13230001)(366004)(508600001)(44832011)(6486002)(8676002)(66476007)(66946007)(66556008)(6666004)(6512007)(6506007)(36756003)(4326008)(107886003)(2906002)(8936002)(5660300002)(86362001)(316002)(6916009)(2616005)(186003)(26005)(38100700002)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?jCJCSQaYzT4TfSxHKjPSFSFRr/TTLFyJ+HEzO4Xx+F2p0tleRFDI/tBZDXmA?= =?us-ascii?Q?6rY3K5SBrU3uxY1vtSeaPUxnMm7tmVQFFeAt7n/c0nXwfjeJsF+OWi1seJ8F?= =?us-ascii?Q?85ehNU+vqBQyM11my8jkD8BwrA6Ev8f5DEOlnKpYfSkrcfDxxjIAh0GUYD8L?= =?us-ascii?Q?hDsoMKj1cotmvMg8BPXjnzsaVRnu1IQMmX6/aQwROqsVCAxmxt8KEiDm8Kdc?= =?us-ascii?Q?R6uvkxC0NB3yA5/7oKCF8AckU5isSX93WVKUdhZQTmJHPYxpc8uZVjjOvaQE?= =?us-ascii?Q?MHPMUxdovJOrFr2Bpznb3HnVjmDTYeMRCcbJAkKktq9XrM5CNLBz80DYzpmY?= =?us-ascii?Q?fZsJMUDc1UdA1f9Xatbus7SgsObGklotTiWkzu1zcOEf9wD7FZYjK6n2dwGF?= =?us-ascii?Q?y/WLvs5eY+YL6cg3k6eNnNnHH2U0RNBBift6Mlsn0i4H/WXplb9PUqvoZWcv?= =?us-ascii?Q?LoA7ONUNAjsOfAA/Yvwrr0ef95UbVhPZ0dX0tAS65fGn1g4rAFpQz0tlVzI/?= =?us-ascii?Q?ddgdZcPp0WoHiK6eYbmWq6rESiv8jYRY9IVXzn+q/fXyjtY1ndnhBmytI/Tb?= =?us-ascii?Q?iZX6nPams94vGedMXvnb3lG3ckkU8FpAY7IhwYye2aPT2Kwhp0tuJnF6QkUN?= =?us-ascii?Q?p26A2I09v9eCwiP3q4WaGbpbjrJKkZaIIG9tOy86a9/f8DpO9tOTACy9hc12?= =?us-ascii?Q?Yh/bbOn97XSg6Srk0FC731189rs6RpnWBb7B5/ft+kgM4Stt3DK/YvlsZ62g?= =?us-ascii?Q?Wyq8BoUQfhSjukDxaJ7r813D9xDlnP4jYmwvqaH5Sk/lsDYHGmJ4Lt3brPG6?= =?us-ascii?Q?tFhiuetC+6xK6mOHYfzc6ytQt9+1CCzPPF5btcVJ0eyYjyLtJHv/LTLlOk17?= =?us-ascii?Q?x8SYslXcbizIMre0HXswX53/Et6B3rIxSY6DfV0bvgE1nRgsfvEcgQTncjl+?= =?us-ascii?Q?dUCulWMsv4m54YvBYgBvjf+1WA9qAnq2orDDqsdhQ5ZcaNc1k7AN8F2gDU3H?= =?us-ascii?Q?Yr/xtt/pzJTfXSOGpJgx7MWoJwviHEHVwnKC82G7gFKihMETtLFNPh/VX0xM?= =?us-ascii?Q?s1Dv2Xi3eD6+F/cCznSdRNiHDXNY7EujNW3vYNti7KdaHZsD4rFWsumYiSIs?= =?us-ascii?Q?vvHBpoYCotkiw6KaLt9m8BxnZGp0IMgGuX5/gmEGRCZTvX9rWKMx9YxgHRE8?= =?us-ascii?Q?7B1oJwUwrHaIrUfuISCXsyrxLmhYFseKECds/VQZ9sgv5AHdLZoosa1RSxcl?= =?us-ascii?Q?z2na443dhUNg29nd25funo5jDBd0m9U7pszOBiuifdty1bXLIfost1Yq+b5g?= =?us-ascii?Q?c8clsXUpTgc7LSOQCD7wd0QgZUAc0VTcMK+0vLkuHAJTTkjv5FJ4XOQUrqPy?= =?us-ascii?Q?OV0Yfc34E6277MeBKKr9qYTzAlFURkUGUkqINfJlG1mJqQn7751nIToam4QG?= =?us-ascii?Q?4mN24FGy5ikLmruRQXpx6yJ7YnZIHKcuHbXVkZjlOTY+c+y/HjuK1w=3D=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7a11471e-5fb5-4839-6e67-08da0cafaf34 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Mar 2022 09:29:52.5230 (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: 3tX5MNKABXlEgtOmt9DzoXx99YH1nZ62RPdrWFEubPMY1kXx2WRV7nByW3zCL4GGI5LEto8nou9a7yCLR6UDmw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0401MB2536 Content-Type: text/plain; charset="utf-8" This patch implemented the simplest MPTCP scheduler, named bpf_first, which always picks the first subflow to send data. Signed-off-by: Geliang Tang --- tools/testing/selftests/bpf/bpf_tcp_helpers.h | 12 ++++++++ tools/testing/selftests/bpf/progs/bpf_first.c | 30 +++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 tools/testing/selftests/bpf/progs/bpf_first.c diff --git a/tools/testing/selftests/bpf/bpf_tcp_helpers.h b/tools/testing/= selftests/bpf/bpf_tcp_helpers.h index f92357597e63..5bb21b24231f 100644 --- a/tools/testing/selftests/bpf/bpf_tcp_helpers.h +++ b/tools/testing/selftests/bpf/bpf_tcp_helpers.h @@ -197,6 +197,18 @@ struct tcp_congestion_ops { void *owner; }; =20 +#define MPTCP_SCHED_NAME_MAX 16 + +struct mptcp_sched_ops { + char name[MPTCP_SCHED_NAME_MAX]; + + void (*init)(struct mptcp_sock *msk); + void (*release)(struct mptcp_sock *msk); + + struct sock * (*get_subflow)(struct mptcp_sock *msk); + void *owner; +}; + #define min(a, b) ((a) < (b) ? (a) : (b)) #define max(a, b) ((a) > (b) ? (a) : (b)) #define min_not_zero(x, y) ({ \ diff --git a/tools/testing/selftests/bpf/progs/bpf_first.c b/tools/testing/= selftests/bpf/progs/bpf_first.c new file mode 100644 index 000000000000..3ae5c1eab5f5 --- /dev/null +++ b/tools/testing/selftests/bpf/progs/bpf_first.c @@ -0,0 +1,30 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* Copyright (c) 2022, SUSE. */ + +#include +#include "bpf_tcp_helpers.h" + +char _license[] SEC("license") =3D "GPL"; + +SEC("struct_ops/mptcp_sched_first_init") +void BPF_PROG(mptcp_sched_first_init, struct mptcp_sock *msk) +{ +} + +SEC("struct_ops/mptcp_sched_first_release") +void BPF_PROG(mptcp_sched_first_release, struct mptcp_sock *msk) +{ +} + +struct sock *BPF_STRUCT_OPS(bpf_first_get_subflow, struct mptcp_sock *msk) +{ + return msk->first; +} + +SEC(".struct_ops") +struct mptcp_sched_ops first =3D { + .init =3D (void *)mptcp_sched_first_init, + .release =3D (void *)mptcp_sched_first_release, + .get_subflow =3D (void *)bpf_first_get_subflow, + .name =3D "bpf_first", +}; --=20 2.34.1 From nobody Mon May 6 13:50:53 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a17:907:7811:b0:6d8:2910:9a8 with SMTP id la17csp1660774ejc; Wed, 23 Mar 2022 02:30:08 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyJeuadjAKpILMiHRxtwXT4LTBahxi0/POjrLKXkS/N/Ah+o3JSw1s8X4fdAXTrdCReB5yb X-Received: by 2002:a17:902:e746:b0:154:124e:6415 with SMTP id p6-20020a170902e74600b00154124e6415mr22148174plf.79.1648027808576; Wed, 23 Mar 2022 02:30:08 -0700 (PDT) Return-Path: Received: from ewr.edge.kernel.org (ewr.edge.kernel.org. [2604:1380:1:3600::1]) by mx.google.com with ESMTPS id n2-20020a170902968200b00153b2d165e0si15647253plp.488.2022.03.23.02.30.07 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 23 Mar 2022 02:30:08 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4376-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1:3600::1 as permitted sender) client-ip=2604:1380:1:3600::1; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.com header.s=mimecast20200619 header.b=l4TjNMWA; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4376-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1:3600::1 as permitted sender) smtp.mailfrom="mptcp+bounces-4376-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=suse.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ewr.edge.kernel.org (Postfix) with ESMTPS id EA8471C0AD9 for ; Wed, 23 Mar 2022 09:30:05 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id EE3CB1395; Wed, 23 Mar 2022 09:30:04 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.109.102]) (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 373911391 for ; Wed, 23 Mar 2022 09:30:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1648027801; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=MW8x3gVCm/i03jXXw4PqqL3DPZvowfzj90yFEhZ3wEw=; b=l4TjNMWA7TemVgXjhpP05VDSiKpf4l715aJ5I4bPqHcAUjUHennZ0bI0xdXHIN6ceVGwPE P0QNCdc9vu5JTt1h20LWbzA0ouiZrYX1p0QHFmlh/KqJV2uQJ6hhfAzX9HeFffuvV3FXd2 ZWJQoBN5oe9fMyWh98dx5jDhkkURcgY= Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-vi1eur04lp2056.outbound.protection.outlook.com [104.47.14.56]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-3-rJeVVQAMMkmfLZVENFvZxQ-1; Wed, 23 Mar 2022 10:30:00 +0100 X-MC-Unique: rJeVVQAMMkmfLZVENFvZxQ-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GyWsYeb+HJSfyq7RZjUL4aoju+rl2ceg4qUcFqXjqikJYgMx6nMIGsaosLs06PpniN++R4hHhDeRNf42iOcjcNRnweJ10VwdqTnZrFis52RShqW1dfJSnOhzGOXmGgTlQ+P0CKCqbbHOE3jxww17m5h33Sl/8tKQa1K3t/YSqin2wB3Ik4Fx9tieP61s9VKhAhkL4cA215viAeqsBbkToE0NiczGCebV4dug079yhMRLlbkmhSrZTVE1URO6Um3YbuFiybtl05A8rPA4FmRkMHIIpEWVRh4cysAgBZ1m9Sh9iwpbwcTrFQTk4fNCKkA0rs/s0F/zRSYSicCgmPcYRw== 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=f4Fixy0a5Pig8lBH4+G9l0eHkbBVyEZjGO8vLZJlPRU=; b=PbxBLuU0k8QHw9Y7emUYLhWflmNW3u8tdt41ZYfi7KQP9VqcRPqfKzCar0z29V6P5q/tlSL/USA9Pb8l8AJAjZeWKt+ulVMSHs+r7zZTmjHPnLZJcFoQE3ADf+st7mLSRyihRmBcy4Z67ahjQEjt6mySolwQDpsl1T7GWykrCl7VLdivsrSg0LDLx020LUQUQVwwibmKYIDYpXsVGuqvDlBNrDdY3dkElvEJSL+jS3uPUVhD2rtVbe3olFAn8ymupEUfRlj2fp80C5L0HvKMICFE3KTJCFuniukIE8jYKvrJ7bT2rVMLTRjFip+kBwIwzMk6WyzNLmGAWD3ljHhNAg== 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 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 DB6PR0401MB2536.eurprd04.prod.outlook.com (2603:10a6:4:36::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5081.23; Wed, 23 Mar 2022 09:29:59 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05%6]) with mapi id 15.20.5102.016; Wed, 23 Mar 2022 09:29:59 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v5 8/8] selftests: bpf: add bpf_first test Date: Wed, 23 Mar 2022 17:29:07 +0800 Message-ID: <68ad408b471491ee86157598acce5a64bb71af49.1648026806.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HK0PR01CA0055.apcprd01.prod.exchangelabs.com (2603:1096:203:a6::19) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 0c9fa954-4e41-479d-7e24-08da0cafb2e4 X-MS-TrafficTypeDiagnostic: DB6PR0401MB2536:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: BCKwrx2D4ZFlYmHpevB++Yd5cKF/NKA850DGW9EQ/hWSpJO3rPyy1y+AAw1D36/MLZgRwPtLAZWXrAB6sPOzAxdQXVGFe203m1Mka+/5V9byO47+nd8KylWk7v+uhqCD6b++nzIK52XNCarjoi6IU21K1tTBnfpq10x6/EjDrl+pBtFkVrdiUBhfwik07QUROnm6jZvnJh9349q4Cq//FKa8abwLeOm3yFTj0Eh8rr6f7rX2Bjny1AEjvHa1NCstoaHiLqGellU5Fxl0B6G0/I6bHZSZj8gJTZO+7dcMvgZ2azZHb+ujCM4FPIjAPdyZawhvvQJUihWkSaS+qweG8BexVs2N2Eglvfc6DPOAxK4bevIh4Js7hLOrrboby8KbnnzWKSGWrjDVJL09rEWCcjgAJ7YZ8SsSAzK5E2zzm+/gDIi1VpcuToU1dm6aSYiCXB6CFKq7hPiJjLRG3evNT2LqWAL6tbmv3dFRn+6JTFH3+EXqlJkeGwVc8cmfjDVeTjioYAiKBWC352ZfPE9/POxxw9dM5RKHQchfr+ogBIkiW02kqPaBWdClGoYcUzq4lO1FNYiyZJLANrBTevA91Wo3NCulg0okFaa6wKzBEb/ruR6NnsbD9bovW7tRBUpCbOosO96lBm7UnM2id85BiiVlM3ngN2I5ieD/CRcvtpSBMFZkv3N52RzOXjXlEFz7 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:(13230001)(366004)(508600001)(44832011)(6486002)(8676002)(66476007)(66946007)(66556008)(6666004)(6512007)(6506007)(36756003)(4326008)(107886003)(2906002)(8936002)(5660300002)(86362001)(316002)(6916009)(2616005)(186003)(26005)(83380400001)(38100700002)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?0NLwZqLb+bPvgiV8+k3vHBmgk5yJIGoF2hLV+YNQV+0mXk2QAX6hBTuS1BVK?= =?us-ascii?Q?WdnuLM57+EmXhDgqVNdbFxUnSVUxkwhhlXHJtd4qjAtbDrem0tT1jxU1XthB?= =?us-ascii?Q?s3QwPdmkxTZJaHAKZeq/RQQ6/PdGqPomvuZUiN6qaLF1hDC4JSQ1pCs1XlTj?= =?us-ascii?Q?TnvGHR3fjsjv/Z+sVjsVQ9CzesrC1graXIwMyCgBXH/8Ih81rb1jviZ++QO9?= =?us-ascii?Q?VdmJwd+NNjcsO/kvAfitb2hy5YGQhi/gCyl7kAkKLfb4UjOalxyNUYNAXG78?= =?us-ascii?Q?UV7ymGtsNXXxw2WHmuOinoBqy3ZfYkR9K6fTZ4HdFcZlR/MGPfd/5e+Ha+ZH?= =?us-ascii?Q?Ia9Ls6Zb0KxrP31nsocVW9ysFDoMf+9ZrAruPEM8aGQNJS2b/ALQNvoZHpsR?= =?us-ascii?Q?zOe7/d0qkyCNw3S5WiXrWBfJ/2DEgSMlPBD4RUOCSOw+i9oF8EeuzPAxBNI0?= =?us-ascii?Q?vlsQj07YQYYecBo/Js5FHYRHU4qS+zuuaCJrVqoNRZNuCIWG8ZJkzQbO0RpI?= =?us-ascii?Q?VwWLSTZioawqQOaGryGfbW6woGDqzNLPkXC1DI/tz8NE21OeY6uakt+a42R8?= =?us-ascii?Q?KxuymD1g3S6lQFTbzosbE7cFIo/99UWWTw22L8nJ3V6lBvjsIcWzjJ35kgNe?= =?us-ascii?Q?PZJFetk30Ifdb0NZUC7QQzQ7Pr2wicOaAlgo/rcR+P1dBL1d58eFY05NTey1?= =?us-ascii?Q?qwJOsqcfMFqvZcfXTFl70tSJ5PArkYrP8TxuiqoYhSisyabUCn/HbjkBo2Fr?= =?us-ascii?Q?BQvOjcB9SQVoGCI91YguJAEe83xT4aO8NZ9ljwxRYA65yoixbZxynY76/gpk?= =?us-ascii?Q?TM/IkKUdv3Ktpq+U/WIs004j0D3EHeHLJ/+RJAmalnCmse0ABfe+1DVf7/ge?= =?us-ascii?Q?Geh9DEp8x3kJ+48sCn090ii9klN6sZkegMvAaFzpJebk0E6Mq0xE7pzy6v2W?= =?us-ascii?Q?0/z7i/dkC55kJ3n3eIYimmicrgMrtpypL+0eLNv5TL+e4pF2n/fTWHcEulo5?= =?us-ascii?Q?EqrzPiDuQ7TUqn3Zomz8cgYq1gahTpb3W2+fnNDp3Dv0n+1XKWa5zdGCe6ZV?= =?us-ascii?Q?lHXF8v/BaGRoLdWnZ7QZ81Vt0iujHAe1miMI024DrugCAPnZou8NTkycOinh?= =?us-ascii?Q?ZXPx76XfPNo0wr+VADl8YZFlBf1dQoxYHucis9yDFmjQ4/0OmNBl8ayAjFC8?= =?us-ascii?Q?5ZctkCUitnV9Z78Ow5eWFDWZtugo88QaRcZMyBZm6F7cYaZNzEgh0Cv4y6rw?= =?us-ascii?Q?fS4PPpmKtvuPTcPh8V7S0zyU6tGV7feFNlrU8rRMmerhW9EyLBCG6fLJVP9c?= =?us-ascii?Q?mBbLJtJO0JMDPL9wMwFd5n0b3nTCfoaItDkeVFiVZnLIvRdhDDv879g1wEAj?= =?us-ascii?Q?2IIDBbWrDSfUE6p4IMjPio2jIwWhnd08m3ZKgcFXyjq+J3EHAR4Kub3DKvpo?= =?us-ascii?Q?ko2/QOlUUCCsrWgDL9DU7498V1tVJYqZ/qXfq0CrzITWzDBiwItvpQ=3D=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0c9fa954-4e41-479d-7e24-08da0cafb2e4 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Mar 2022 09:29:58.9287 (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: syLhBCounOLfekh2XKnQ5sfDncShuJUo7K11iYs7yxns9tspDS6Y7unUIZ1mkYO9LHMCT4EgX6mJdi9WTJVPqQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0401MB2536 Content-Type: text/plain; charset="utf-8" This patch expended the MPTCP test base to support MPTCP packet scheduler tests. Add the bpf_first MPTCP sched test in it. Use sysctl to set net.mptcp.scheduler to use this sched. Signed-off-by: Geliang Tang --- .../testing/selftests/bpf/prog_tests/mptcp.c | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing= /selftests/bpf/prog_tests/mptcp.c index 325f8b51f621..873027cf92fd 100644 --- a/tools/testing/selftests/bpf/prog_tests/mptcp.c +++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c @@ -4,6 +4,7 @@ #include #include "cgroup_helpers.h" #include "network_helpers.h" +#include "bpf_first.skel.h" =20 #ifndef TCP_CA_NAME_MAX #define TCP_CA_NAME_MAX 16 @@ -19,6 +20,15 @@ struct mptcp_storage { }; =20 static char monitor_log_path[64]; +static int duration; + +static void send_byte(int fd) +{ + char b =3D 0x55; + + if (CHECK_FAIL(write(fd, &b, sizeof(b)) !=3D 1)) + perror("Failed to send single byte"); +} =20 static int verify_tsk(int map_fd, int client_fd) { @@ -185,6 +195,8 @@ static int run_test(int cgroup_fd, int server_fd, bool = is_mptcp) goto close_client_fd; } =20 + send_byte(client_fd); + err +=3D is_mptcp ? verify_msk(map_fd, client_fd) : verify_tsk(map_fd, client_fd); =20 @@ -237,8 +249,38 @@ void test_base(void) close(cgroup_fd); } =20 +static void test_first(void) +{ + struct bpf_first *first_skel; + int server_fd, client_fd; + struct bpf_link *link; + + first_skel =3D bpf_first__open_and_load(); + if (CHECK(!first_skel, "bpf_first__open_and_load", "failed\n")) + return; + + link =3D bpf_map__attach_struct_ops(first_skel->maps.first); + if (!ASSERT_OK_PTR(link, "bpf_map__attach_struct_ops")) { + bpf_first__destroy(first_skel); + return; + } + + system("sysctl -q net.mptcp.scheduler=3Dbpf_first"); + server_fd =3D start_mptcp_server(AF_INET, NULL, 0, 0); + client_fd =3D connect_to_mptcp_fd(server_fd, 0); + + send_byte(client_fd); + + close(client_fd); + close(server_fd); + bpf_link__destroy(link); + bpf_first__destroy(first_skel); +} + void test_mptcp(void) { if (test__start_subtest("base")) test_base(); + if (test__start_subtest("first")) + test_first(); } --=20 2.34.1