From nobody Thu May 9 00:46:46 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:aa7:c50d:0:0:0:0:0 with SMTP id o13csp102137edq; Thu, 17 Mar 2022 19:58:30 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyYt6VzXHjiUW3gfH547fFGCS4kKtOeNkDXITxdbCVTwJ2Ju5VTUsNRpYw+SKpgDSyzB61i X-Received: by 2002:a05:6512:400e:b0:447:5d84:c40 with SMTP id br14-20020a056512400e00b004475d840c40mr4604690lfb.591.1647572310584; Thu, 17 Mar 2022 19:58:30 -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 e4-20020a2ea544000000b0024952f7bc75si763587ljn.464.2022.03.17.19.58.30 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 17 Mar 2022 19:58:30 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4303-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=Zytw6rdI; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4303-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1:3600::1 as permitted sender) smtp.mailfrom="mptcp+bounces-4303-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 665B01C0D4F for ; Fri, 18 Mar 2022 02:58:29 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 5AEB315CE; Fri, 18 Mar 2022 02:58:28 +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 860C315AB for ; Fri, 18 Mar 2022 02:58:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1647572304; 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=UUiEMbU85YReMz98lB4dcKozzqa05TaVJaK1DXyQ8Kg=; b=Zytw6rdIg5ZtfQsZmVFiw72dj+gXQVrBPgbkaCuIC4Dd9torChcSxVKxZeQttbF8y64MBz SVBhtT8CdFC+BsaMsQu3a5bbbt8iSn6+nWYrOE+B7m9xLsL51MjBEUxJP6jidVOCuJVGoh QDwUEWLmiVo1DNT5D02vgIBaQtgD+Fc= 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-27-LM81veyfO2eUJebpSbLaYw-1; Fri, 18 Mar 2022 03:58:23 +0100 X-MC-Unique: LM81veyfO2eUJebpSbLaYw-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=m37fztI0N9f4tpA2LzfB50S4BFLn+xLecIyz2tSXmCgpsANfYg14SGmnr58d/eb/kOHEnBNvnCP+0ww0Ritoi8Qm9HB+azNjzyzI06ZzLgXDcS0Ql2Mrs6Yk+4D4rxUM6iwtftthdSRKo2TpgYzzTQoS3Jop1C3qEzqnaRHivIlnuia9m0ji3FqLe8SuWlIR61JRuqWTPwrTD8lG3SWlT0B5eA5AmHpJMrS6PHsFC12UC+AuKZjamSmY+BtGoYoogMDwXvQwlnF4BaYcR9GS1hnRQzGcL3q0S/9myQsF1rQvaVAqvt11PENBEBVJRSS0/m+Vzh7ixLaQ7bvxpAjDXQ== 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=RBwh+BstVxnZcq4v3Nvhg5/PkI2onUsBH87oSPa8NaY=; b=DuQPmDfvAv4oD+t0tJzWl7LSZufU4Uc0rHiJCOGuiNuvYabvLGtw6dP3ZIlwicgJLclAmOkY9wcZ1oZz7JkZYiednEbeRd77Di/Zv3DB+412nVlqLWTM1q1OH7+Xj+8rjU3wtZ1C0GG5fh7RK+igBpgnj/e9jFUnDAu4VnXAjjbwa/TuWAvsgaynQAZEoCKJLJakPNwMEi7O1KOmHBa4/jfDE7FUYIG7mgTyPQP1sPiKKPAitSCUpbyIVMFjDcsn/f+IocwQqbLrHbvZ7T2cmHeU78ufPx8s43dHEXgaEkfTAvblWuLmjR4j7I5XlpFQqwk9/nMUAUg5sZFdvuDmhg== 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 AM9PR04MB8321.eurprd04.prod.outlook.com (2603:10a6:20b:3ed::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5081.18; Fri, 18 Mar 2022 02:58:22 +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.5081.017; Fri, 18 Mar 2022 02:58:22 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v2 1/8] mptcp: add struct mptcp_sched_ops Date: Fri, 18 Mar 2022 10:58:03 +0800 Message-ID: <50a302c839de8e9f885b14b20f3d2047cb8d0197.1647571510.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2PR03CA0120.apcprd03.prod.outlook.com (2603:1096:4:91::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: 02491f69-8f1f-4b6e-80ef-08da088b29e7 X-MS-TrafficTypeDiagnostic: AM9PR04MB8321: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: 82DyYsTSU2fN34o7hvUJb8TwxsrF82Du6ktOTFTqE8WABAIQEymftSa9gl33qCHME6mnUlKv0hPEQfnDNsPMboPjxY1V/ULow95yqVnIe9SAVEzC9qhJZl5iptVMbijb0RA3OOCBLX8pSQtKdv39eLaBHMKsoRDemP5XPZ+RZMIqsr3wwIwMyOKjdNSnL+M+M4LKIJyviN5zMQ2BenWGWlwft5IK18siDeha5cr+/GdMTeSrwS+tOddceEjWyywBl0hq9XRhEJiK1mwvWcb31O2FbN3GBMNGxZSStLhk2U3L0ppTBJnRlf+sXHqn3TastxIqUGzPyjtq34vAt2vGFGUaleBWH5DtLcNMZ8lNBeTDHPJdvOpRcaViWPHCo5ANFRB6K4YM0CdaM4ey+jbY+LntVbV1Z3J0WVPQXZxOptxVw8bnJ/8yBJIr8lUuvhTsWmhw7013aFw9OyK1H5GqddDE7tXsgzg4agM9GXaCF8b1zE0yIsmfqyTuDaGGthxou3Y2sKFKAmujzu3n8/AMaJ4IDrpYeboLqU77awTUnALRQaBr78/U6haDcUM1jXMV0jH++P0FLlI9rxjoMO1N7VbCpgAIm2jlfEy2zUo1mQTCvrVVhRVpp+GAMLn3CRbRy64ozVLLu1myMd4v24MH6EJf0/v0zeMs8knqU66lPUlvwYkRIRhnHqx7QFSOmbq4 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)(83380400001)(38100700002)(86362001)(44832011)(6666004)(5660300002)(6512007)(6916009)(36756003)(316002)(2906002)(6506007)(66946007)(6486002)(4326008)(508600001)(8676002)(8936002)(66556008)(66476007)(186003)(26005)(2616005)(107886003)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?d56i9NzLvL+HfL+kk+ddbcSRl35X7ffnUwwrPk1SQ0UDZz6FGv9/ZDspWUoU?= =?us-ascii?Q?oB42azDpi9TYLRW/g506+kutAI6A9cPwnkra6lrWChzD3zFfEtOVpKVsHHp4?= =?us-ascii?Q?ep5IlysvwVLnCzCabvvWpgwMFjNX5aWoqhviJS/Nrrq6TL5Cb/nq/l/Ecqou?= =?us-ascii?Q?9XCInsDYL9X7VTvFp7Lcxa3gr0WAzxhU7l77x1r6yuseDpzQeQxJCh+kXeac?= =?us-ascii?Q?ZrPR0YUhI6PSzUN18joJIS9hRtJpKm8l8fgnJ3ZPoHtK/VhgirLSD6HgPsKV?= =?us-ascii?Q?a0QDUnUm9CeBnDwNKTmh8ufZKnwLATiMvuVOaUCKrPO5RhiaHICGurWCselF?= =?us-ascii?Q?FgrWw+1QjBKz+bhOtd01gSk+ed/Pz/CaDhsOFgtWC3MiPkA+m63R5etqxuJb?= =?us-ascii?Q?/FuEC/M6lfdhBTiinslyD2eyetoPbCiFlXMdRSQB3iinF1c8k0Zqd5OtTT7b?= =?us-ascii?Q?K/QSQsnCIJ4behutbG8MbYjepOigSjujCRIb98d7yehmpPdVd7Gq8DkNjEiG?= =?us-ascii?Q?Br1u6vQjEtONXyj8sDfJhc04XpSh+P7xTT/5mNHWp3dZtSU+FmdI8WxM1gYX?= =?us-ascii?Q?nVKjfvPeBv5+E51MixlqyQ4BNd/7ta2ShnNLCde/NgoYIXmZ22CzumTZHjcf?= =?us-ascii?Q?q8JntBdx954WitEETVWL/da5B/Sksfypc/8+U80EcXwzjjfWOu/zZ9qq4j5g?= =?us-ascii?Q?zDUN4TaVB4S7J/pqE+cEO9byykFiajgqalK4Bxs891XEp2ZhaRHs7NbXmdf+?= =?us-ascii?Q?zm09ySMEEaKv8gJEx09aQz8CkDAVzK2xLbeJ5T8LRLw76eD+cpePsrvunal4?= =?us-ascii?Q?E22i1kzRc3XefLKGQk+Lsde+9zkVkn8EOr2FajTVZ7NhBO+PsVDnWUhbBP87?= =?us-ascii?Q?oeKLWwD/xM9/B1EfaItd0Ws0NeI1CWBI3GsBlBvGRBiBlJOGFp+aXJFPxtHY?= =?us-ascii?Q?o2mE5D0b1y7j11Lv3hwn/MMeFmE0SK6dYscAH09hTKCptF4ObLQoPuj8MDD8?= =?us-ascii?Q?h1F7EJ5SI3kGZrzhvdZuPve+9ojlQT6NTcngu3/mTO4U/gu9TBnu11Kuc/th?= =?us-ascii?Q?gX0yDPtyY9/oNxTueXRpeE9+MvrJ6yIfksHVY1tEm4VPQlZslBolTJQ24mje?= =?us-ascii?Q?/ejV3e06kLJ+H+K4b2oq7kuozZ7d4ctE3FuB8FB+Jz39X8Kiq+57pYpngg8s?= =?us-ascii?Q?WR5vJzWC4t8AFPkepzasjF4YSnyKRGkkI9c3Q+b7D1K3UHNstNTHD3VHAEqG?= =?us-ascii?Q?vVu0TXE7hkhwSSbybFrTV/1ybxf/nfsUKOQHu4CxemFYidUb+LEHHn6kp+Wv?= =?us-ascii?Q?WBq9PhZYFBmDpWMapCMmpGZGW8RtxsX08I7+K/Sugs+PMXH2m1y/ESKO06jf?= =?us-ascii?Q?INsWsxPNDQtOW/6kKh6lkcSLSJ7yRDh6qPrNtL8HTtSnjA7OS7AL1PCPFDql?= =?us-ascii?Q?3k0ZzrwOaLDCC6bFqL3Bl31s96kbMiv+HvuhsDd/hPaFWBnK4LEvjg=3D=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 02491f69-8f1f-4b6e-80ef-08da088b29e7 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Mar 2022 02:58:22.5516 (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: Rqy4gsH3gknd7PQ7JTQX2Vl/MjHGf/2C9JTWloWf2qe1bYmNSgo9/bOhTPqRNqlsXZaGGKB5bC7WJ8SbPFrWxg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8321 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.h | 3 +++ net/mptcp/sched.c | 56 ++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 73 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.h b/net/mptcp/protocol.h index c8bada4537e2..500dc7b3fde8 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -605,6 +605,9 @@ int mptcp_subflow_create_socket(struct sock *sk, struct= 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 char *name); +int mptcp_register_scheduler(struct mptcp_sched_ops *sched); +void mptcp_unregister_scheduler(struct mptcp_sched_ops *sched); =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..88ddc4aba4ea --- /dev/null +++ b/net/mptcp/sched.c @@ -0,0 +1,56 @@ +// SPDX-License-Identifier: GPL-2.0 +/* Multipath TCP + * + * Copyright (c) 2022, SUSE. + */ + +#define pr_fmt(fmt) "MPTCP: " fmt + +#include +#include +#include +#include "protocol.h" + +static DEFINE_SPINLOCK(mptcp_sched_list_lock); +static LIST_HEAD(mptcp_sched_list); + +struct mptcp_sched_ops *mptcp_sched_find(const char *name) +{ + struct mptcp_sched_ops *ops; + + list_for_each_entry_rcu(ops, &mptcp_sched_list, list) { + if (!strcmp(ops->name, name)) + return ops; + } + + return NULL; +} + +int mptcp_register_scheduler(struct mptcp_sched_ops *sched) +{ + int ret =3D 0; + + if (!sched->get_subflow) + return -EINVAL; + + spin_lock(&mptcp_sched_list_lock); + if (mptcp_sched_find(sched->name)) { + pr_debug("%s already registered", sched->name); + ret =3D -EEXIST; + } else { + list_add_tail_rcu(&sched->list, &mptcp_sched_list); + pr_debug("%s registered", sched->name); + } + spin_unlock(&mptcp_sched_list_lock); + + return ret; +} + +void mptcp_unregister_scheduler(struct mptcp_sched_ops *sched) +{ + spin_lock(&mptcp_sched_list_lock); + list_del_rcu(&sched->list); + spin_unlock(&mptcp_sched_list_lock); + + synchronize_rcu(); +} --=20 2.34.1 From nobody Thu May 9 00:46:46 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:aa7:c50d:0:0:0:0:0 with SMTP id o13csp102165edq; Thu, 17 Mar 2022 19:58:40 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxmAYr1fWfGLVZFZXsc5P3C2yAK3PMzOalXA8OLkKhIX2V1Bul3mi07B4tyTA2PnpGLuwiP X-Received: by 2002:a2e:9203:0:b0:247:ebe3:7d0c with SMTP id k3-20020a2e9203000000b00247ebe37d0cmr4739483ljg.278.1647572319861; Thu, 17 Mar 2022 19:58:39 -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 f41-20020a0565123b2900b0044847b54793si6900172lfv.132.2022.03.17.19.58.39 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 17 Mar 2022 19:58:39 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4304-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=gVRtDC8c; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4304-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1:3600::1 as permitted sender) smtp.mailfrom="mptcp+bounces-4304-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 6D8FB1C0D52 for ; Fri, 18 Mar 2022 02:58:37 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 13D5F15CE; Fri, 18 Mar 2022 02:58:36 +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 1113415AB for ; Fri, 18 Mar 2022 02:58:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1647572312; 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=/0AnpNvzVQuBzoxCisyo1XtQTgibC09rFuTkmx26SOM=; b=gVRtDC8cEZqWFAi9Xz4N4RiFpm2hV7qrgVyaop4dbyLPbXK/y2nT0t2WcuOisYibZVHk8j LSdt1+rHAyeSHhA0CvMsvIZOmLLVMFnEgECerbImybZa5h571MGG0nVD7oYo5eFLv182qS 0hqH5hE8UV/xBfg+S1rThAvZQznB8J8= 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-29-xUfQ27HsOQaYrK3t5V_17Q-1; Fri, 18 Mar 2022 03:58:31 +0100 X-MC-Unique: xUfQ27HsOQaYrK3t5V_17Q-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lm1kJtG9uf1s8ZRhiKUiaKNRd1rRftIfshc/Li7B4AHlo4aZWvinma6rycf7PzZYu3uSswYRwq7igaebFKflOTRNkunisZ+222cc0OD7nHExZtF+2tujIiaCLhRFhaep85qqvmFAkGvmE1LuryruVQzvPKXI5VwdPzsj8PwdXWloVdhvJHdYb6Xov2k8Eyd4RNMiPxxvsKSVPobxEAWJ76tg0rhAV4JjTPACIyDVFkMoJe9cWoDaBcGidK8JVdNyTc4iEj8e8M0qIlpOkYsvwq5/gQAanDnHF2r4dsj7Mz9iMAn9udkhWADwRfcuWxNpM9hQgvF4pxGDZNcniuKGmQ== 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=ppFVMKXoqmOSxovAXMb1wNoWaGNH44gYIBRy3WapThc=; b=OMD5ygOydrqJS1Kud8CDYNZ2qu3Ud5gmQwaThLjAzSWncMfZZF72GRVjqo/rBrvLGGDs8KVWBFF/TLteMAJmzJOX3tCnGSUaAvMjY/9ZvIZdD2VPODD09esY9GFQ2Uxkwug1+ENk1VhW74YCaq+ykHXmC4Csas8ML5SpFZvbtQg/g1Dji+TtuCJbCVznxK3qLf2gJ1oUALeBsQ8U/iR0AMmdJsH++thIyF4+sh5OT6ORQOJaQOf+UMpB3twS0EpFEvRy9LzGZmCRWFepiXQzsGAGKJI5sfliQZEWzw8j5sBgN94srwL+AGlvEV8jCpgBEcppxFTrg9vwKPH/8tvpdg== 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 AM9PR04MB8321.eurprd04.prod.outlook.com (2603:10a6:20b:3ed::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5081.18; Fri, 18 Mar 2022 02:58:30 +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.5081.017; Fri, 18 Mar 2022 02:58:30 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v2 2/8] mptcp: register default scheduler Date: Fri, 18 Mar 2022 10:58:04 +0800 Message-ID: <70ff4322bee0aa3da2133b1bfe2c907d835051a2.1647571510.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2PR03CA0111.apcprd03.prod.outlook.com (2603:1096:4:91::15) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 7e1d096f-5993-42d0-80c7-08da088b2e8f X-MS-TrafficTypeDiagnostic: AM9PR04MB8321: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: sw158Iy2FLgLkfO1meqHo2BXiWKwNVBAdKy9Ij8iQwq/asPf2UtQJ1tGN547TXzNlOCPccCnjOjsJjXrYCEbXIIujHlzK2KTBYc39JPH264HPDIkLi3VQeaW+V6iYQ6h2ZBsQbGgJA0nb9rBAOnZlhVUvBhlML1jlrO7D+4mbvtIHjiAojVb73CKa1dtAJC+LlpFQYIcUI1mY7xO92i5zEdry6yc11uj1wLYS1LesJE+PKBDcrTNvfoebENAgM54UR8xcqT7k0cfJjCrEtOTCAr+8WLdtfkx1bWSPZLKVa8356PisD5RBjlCe/3RTJpd3T9uCakHl/yceeuLQxpESltx8W2uBU4WsRRBeag8LECfloJaP3qeMhf9sSnRSDEL0u3xAf5ohChSWSjiQReoIJd+0jw4la35uNHp89pJi//9aKfTgZlP7AbKTa2X8MDm7PE5F8pbHgTO9WL3xeb114N/1fVcVLaYhZ34VX8zEq4ickREhlM3/lIptBCFSvMTz6xWJeeM+N8DyFlw+gacYzorX0i0I7Y6Q3JkBIQZZt+4EigyzfXWDKwOeu+Dr4YlhddjHMi4PbCoVzZY8odwrIWdxFzbsh8b9d4/DElPiyhbQ9uMdUFf6lysO4AUIpilBV+Km0rRhsJUWKJA8xxkFTJd0AlN1UIdvA5orlvn0BBfov2Z0vb0h6zMdh5IqEaB 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)(83380400001)(38100700002)(86362001)(44832011)(6666004)(5660300002)(6512007)(6916009)(36756003)(316002)(2906002)(6506007)(66946007)(6486002)(4326008)(508600001)(8676002)(8936002)(66556008)(66476007)(186003)(26005)(2616005)(107886003)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Qc+4erTUj77QLtDQ5PqWrgdzNMZAcYC6EAuH3F83ZFJ7CfjEThE/KGqtfN6c?= =?us-ascii?Q?T51J0ulwdRfe53UT2rqrlV9AJMEvudzf2bJyrRNz8d0lqQfc5QHNy8iQbZAx?= =?us-ascii?Q?Px7c3FQCzpcK6YKIeiAqJa8diySklLj4rZzpXNwSgdMpDHp6tMv/kiVpSLuD?= =?us-ascii?Q?wt4EJXXHTQZ21EmTfN34MAlSxjlmjguUmTiVansFOpEX04q8tSVGInrBGybj?= =?us-ascii?Q?8LDtLIKMVjLPWcu2H77qKSkE3PAkMV9ozteO7C9VtpXOTWYDF9GyNwA5X0PT?= =?us-ascii?Q?GERTH4y0uDdLv5QYQOOkMNiAgEV+VBlX27ecNwAo6pHcrKs8mjzRX/9ywjEi?= =?us-ascii?Q?JwDJyOQsRznQ+InKRfRHyjR9YUqfxTAF7UBRXlZ8FmvAqax4TTW+DWE94mNO?= =?us-ascii?Q?wYY1+jY7U5pN1t5F8KOBUOazo+c7KlZoSORzFDdabxdAMyV8TZT0jNp5Ebb1?= =?us-ascii?Q?bbS8PJObps+eB5gKDflzG17OLNjOVzn0iwWk/PkkkEH5n1+kSqm63g37rYYO?= =?us-ascii?Q?FVbWBAROkhmHyo5BeYvYVLrxoBJ4tOC5jU9X4MT0k4pgNCmak+K0uOilVLFz?= =?us-ascii?Q?3uATcy8b06Ko38JOBWLMmLvdOkeJtIWKWWA5gJL0F8AO7iOal8wW463AU533?= =?us-ascii?Q?jcHd9lLWOhry7wt0OgTLTC/zeSkxMnoGqitI3Y4AaR9vIfb9ATMcLDzgpTHi?= =?us-ascii?Q?SX3nj3lNBy/+itzSF97fXwGg76j1C1Y4Knf4Hhog8b+6am5//keU1vo7r7QQ?= =?us-ascii?Q?ON1Xjy0PJDaXiLRgPLL0upcDp4IkhjGpw0T+vXgGvEGOX/5JgalAIPjQ7bji?= =?us-ascii?Q?eKCp3kpHaPug6TsJ4Fwjd9Wyy9TYrNqqGqXfYyen/jF91DO7PecZvjaH0lpd?= =?us-ascii?Q?eSEQRWip49VH+02hTeNhSqFa+AYEAXmNz3zBwUmfdhKkKwuUvtByKFvR+qhj?= =?us-ascii?Q?YSRoBQkywW8kPL37NkNHE7+OnCvnNZRZvtXtwnf2NsZK1XzJb/oL8H+fh/E8?= =?us-ascii?Q?aoq/nhHys+S0Zldxkus1QuTdmrZ8jU/RSeGa0boWPRjMlGZCALx6M6y4O6Xa?= =?us-ascii?Q?ccAhSqzymzqHYoccXdRvj8Y0fge0z0KMnz3UPqVngrusNC/fotR7hVbQmiiy?= =?us-ascii?Q?MKc8Dwpq/VkZNg4Q/w/v4w07oBJxfGnSFK4OP9POuZVxYb3mUe270W9FsECy?= =?us-ascii?Q?XdJbCGnYqt2R21jlFr6slp+7s+1qsAXk3AGqgHmYyCzoQ53hiyF4QJYMiNTA?= =?us-ascii?Q?jINY5lqHqOW9RAxLDGhF7o+PMg5ErehfxqKtcgoxbb1FSV2VyCnowe74QksD?= =?us-ascii?Q?3AkCCSSEtNlXFK1smH/EmujnCfDSijh7IoFh1Jwsd1Eh89viEUevYdOQK4yJ?= =?us-ascii?Q?wKz3AGjwoUijEMGQoGT3Nxneq7oOax32scCL3innyg+dYqQ7Pt6S86zRZ/ro?= =?us-ascii?Q?AmJWm29nmK/hqDD5Ir5m31USwTbgvaeXY2SiOY2mr68N7aRC4bsurg=3D=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7e1d096f-5993-42d0-80c7-08da088b2e8f X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Mar 2022 02:58:30.3322 (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: vhKUmuWyTzG4r8TUI9TS+OkbfmQ61QqBYdycfa+nNQrIBbrsEDgskU6IZ/zVnEdbz8CBFU5/QdC2/ixlll0tmQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8321 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 | 3 ++- net/mptcp/protocol.h | 2 ++ net/mptcp/sched.c | 11 +++++++++++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index fbb14dfe62b3..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; @@ -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 500dc7b3fde8..c186d199cf5b 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -608,6 +608,8 @@ void mptcp_info2sockaddr(const struct mptcp_addr_info *= info, struct mptcp_sched_ops *mptcp_sched_find(const char *name); int mptcp_register_scheduler(struct mptcp_sched_ops *sched); void mptcp_unregister_scheduler(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 88ddc4aba4ea..9612e182b7b7 100644 --- a/net/mptcp/sched.c +++ b/net/mptcp/sched.c @@ -54,3 +54,14 @@ void mptcp_unregister_scheduler(struct mptcp_sched_ops *= sched) =20 synchronize_rcu(); } + +static struct mptcp_sched_ops mptcp_sched_default =3D { + .get_subflow =3D mptcp_subflow_get_send, + .name =3D "default", + .owner =3D THIS_MODULE, +}; + +void mptcp_sched_init(void) +{ + mptcp_register_scheduler(&mptcp_sched_default); +} --=20 2.34.1 From nobody Thu May 9 00:46:46 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:aa7:c50d:0:0:0:0:0 with SMTP id o13csp102184edq; Thu, 17 Mar 2022 19:58:46 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwS2C1wDyVK+8IAPEtg5f7saZYpxCgGbsen500pTuQoGOI2NfmBtlKxwVNCeJRZn0q2l1NF X-Received: by 2002:a19:6541:0:b0:44a:e68:e98b with SMTP id c1-20020a196541000000b0044a0e68e98bmr172809lfj.313.1647572326213; Thu, 17 Mar 2022 19:58:46 -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 j1-20020a2ea901000000b002495dddbd0fsi797728ljq.394.2022.03.17.19.58.45 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 17 Mar 2022 19:58:46 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4305-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=nvgr1B+G; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4305-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1:3600::1 as permitted sender) smtp.mailfrom="mptcp+bounces-4305-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 22A6F1C0D52 for ; Fri, 18 Mar 2022 02:58:44 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 0177D15CE; Fri, 18 Mar 2022 02:58:43 +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 D7E9815AB for ; Fri, 18 Mar 2022 02:58:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1647572319; 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=NUfMKSLA5Bp0kliy1ANdGDuSrdGkb2DjLPMLmhk4Z0g=; b=nvgr1B+GmO7xy/mOP7n7deQip66daGZ2Hhycm5xB7ZD5yrkj5IIRm37xAsV2lobabaJYmL m/5t56VySUxGKP9au2bhjs4jUx4N8GBoUfYY3V4V1j/uDlC3/UkSHhWr5X0pAfqbIzPoK2 k3OgMXFOKfnHB8Of57e/OKSABpCBK+A= 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-33-i4l_DNp_NXalZtLuz_iV1w-1; Fri, 18 Mar 2022 03:58:38 +0100 X-MC-Unique: i4l_DNp_NXalZtLuz_iV1w-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=FGTfcV3CaPiKb+72d8PR6nseAQQQsKAsASs5XK2xUeg+Ge0oyhxfKL3xFFiaWsFu7pl0ek+nMH/hEUW34Z4s7SmPh8/WMwhM0r60qB0vZKvYcyetg8bGkyX8ESpN9xAX8tkN9rnCLTTplO5hFfhbgxcn0WXRkwSgZ1KTvQyB0sWu/LdAE2Ro4OUfaWBagelAFUNZbPA9LZ6S6UZQbcn/Teae0RA46AT/m/wGvRpO1/L3IZxwoZ7Zatz1oar5U6NNufOmcjiWWbUjwP7yO3r1jPXIi5Pz26lHh+Zrk3IF4dCYVMx2u5q2orJ6kanrQARHzKyU/c2osz2z00mclU3BVA== 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=j+LeuUiTsVgMDiquyysnuN32qrFMkLGwGx+kyi1viLY=; b=VTKojzGySXvGqInxGketnrS5jrAstwIc6L6pmpmBDXCGWK4wWgbX3kfCY5ZCfWrKUXEkonjdGSXgkTNGKZNjqooxt5cqSFQb6Rnr5eMgKNnxfHbqM0y8oj99VzXEnrnqs4SGfbQ6LV277yd9J6AE0yFz/3Rrin/VX9w8pmE/gKPZ4zWdAJxsaOVycs1Zl7VJorD0q2/hh8IG2mBI0EZaH9jcjxQsT5hsobb3Ko55boM0kbRXBGEK62Ps/+nyFjCRMfAmovLK4WVyqI37MXhyNNwRWkSorPflFlq+Qlcxf3YiYyrq5SNYuvsa9odXnpEC/vbAsi4X/zrl9eSUVWp4bQ== 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 AM9PR04MB8321.eurprd04.prod.outlook.com (2603:10a6:20b:3ed::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5081.18; Fri, 18 Mar 2022 02:58:37 +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.5081.017; Fri, 18 Mar 2022 02:58:37 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v2 3/8] mptcp: add a new sysctl scheduler Date: Fri, 18 Mar 2022 10:58:05 +0800 Message-ID: <7613acc6e70e8275f037d1ab64b4e54d3cb61e7f.1647571510.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2PR03CA0110.apcprd03.prod.outlook.com (2603:1096:4:91::14) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 474d9f83-af6a-439b-28a0-08da088b329a X-MS-TrafficTypeDiagnostic: AM9PR04MB8321: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: almgkphaJzKLZ9TBrPBvUzeqSXQB2ln93Xea+nN2ED2JFHE9t4vrufTLR7BGAOx1E++NkB6xZgaHpv7efzzk2Vh1ixFx0upVsCS3pnjylZoKU3aWVgVbrOsgtEhh9wJUpTrpFGWIVihTIiJFevZ9D9zez55p2co2XBaozO7+tlTAPREShSICf2HzXFT+h/sABE4+Vjfpi3eM2iXvewZ1yvSFEGU5effBUL0N3jXf5KRwPE6UgsGznPIW2KpxHbUaJTfzzRm8Z1Il8yfCiNU1IWp98MDlABqWeGA/iTz82NOfcNaO3tecl7zf6xSN0cTrUwcYCOzs3+F8kZokBhQm2WwXevC93Pv67lzQqbp95wAnsWHRBXTIdU2Wdp55TAFsE0JkyA86ljN3raUWDoXuOSB1f44OTp1LHTA2NpuK4aL+xZJAmmnRE93W0N+vrXx7yA+JCb3Q7ULVRUUxXUXHwtFbdyyjRAAkQQSkztIw9yFDKSohvZI4zLYsulHEiw4iBJyKfh2Rk1hu5q1Kr5CdhFbuSr9V7vDR4uvqKQ7+aMj1Rl+vfvirdKbSmlO58JYwjOPiZYsvzbx/ZUd7VLS1TTffvFAZ/ahRCoEhUSxgRzR/AathElPVLpqrdH3BWf0OJYZH2ICsuoUbK5tbDFYhlh1Aw1hZo8Q3Kazd7g9L9QUMNELkaKhnv61JE5Ko8mOJUpnE82GT+Lt0HzqpglIxaQ== 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)(38100700002)(86362001)(44832011)(6666004)(5660300002)(6512007)(6916009)(36756003)(316002)(2906002)(6506007)(66946007)(6486002)(4326008)(508600001)(8676002)(8936002)(66556008)(66476007)(186003)(26005)(2616005)(107886003)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?juM26n7eBTP38KuM3zDhRZEra0wcklRVD50fboz2gR3vHOIOhIrWkGSAOiES?= =?us-ascii?Q?d8kUAEuMgqsYl95yrK0HrwLr52ki6oOXwXikRR49zwSCxnMZeYHGNHwjn3PD?= =?us-ascii?Q?JcMCMGd1SeJGBoWqSta5b0D5hZOebJpAKAcRltFBWOKKNoFUE47DNKE2mULJ?= =?us-ascii?Q?hxFxLnVfs1O3fh4RUJ4nCJEjuFzdYmBBlFIjjR7ay+SBxj+sW62uPzvNXgtO?= =?us-ascii?Q?wV3pSeQBZQPoo1Vm2BN8zHKfRAuoxkBR7jinofwC6O9JQg/AK9UyQVRymHuY?= =?us-ascii?Q?fsEBy3VqdMmZ3Pkt9OvwFE3KjMbvGwIOI6ZiZtostnaGRb4L7gB3te+57X0l?= =?us-ascii?Q?sruvsEsVfCYYw23idSgyG7AK86WLLczpsGMQGCq8/Fqtx3IcTPdivoNtSylU?= =?us-ascii?Q?xX+mOn7G+zOJ1+1n2XDNDtyQV1WLwcA0CIwBKoJzFmidA0p4ghUIP7MOlCtH?= =?us-ascii?Q?4kxrFeBzfq8mpCnZ7zV/5TrIjk9jHryinr2M4sstjWv7nKmwK/JTrpoN33k8?= =?us-ascii?Q?7xZNuyKeTAyG8lvpLEazK26sQdU1eh7j3df7+7qndpxES4TqnI36ouuMtJeY?= =?us-ascii?Q?zximnRbq6WUhG1rSEYSoxcPHe058SA6gtPyWD6So2MR3Y+6paaR6gjc/lfDj?= =?us-ascii?Q?HqhPF6VFl8+5FbGCACehvuLjq4Mr2iqXQzMzBJiU/wN65xg8uVIDMUBd1lRH?= =?us-ascii?Q?n0Rmcs0jjP12aPGWGxW6A6JGJ8yXOufrMsj0l14gQncx1zD2fnWjaU3dcbzk?= =?us-ascii?Q?rUfNvDwUBPEWgx1glKVz/x8dwC5I+TIfGREekryDxPHWh709SAcSM9acvW8g?= =?us-ascii?Q?QabDgMwyIZo+Zj/5f1BFMf3OlR9Qm/zVmQPkWSoLgHalwgrHLKmMKPx5rJd1?= =?us-ascii?Q?49OYWAeTMZSXCxyP/fMkg3zagdTDk01ykywd+C8riifL2py/l0Y55q9GlANB?= =?us-ascii?Q?t0KLMV+LpucU7BCUK2p7JHh/oK/CFfmSwvtdjgXL5XPOVB0RDUAjVuyOt5gb?= =?us-ascii?Q?PpRghkMPxCpnRSHNNFc5wLtcp3KY2YQcZPrpvlTvt1U+HI9jNlc049dq+Tg2?= =?us-ascii?Q?+N7Z7kKMErIyjyq702G3rkW1dRj0VTEXlLpMWERBvvzN1g9S03Zpz7IdvzJ0?= =?us-ascii?Q?sg3lKPZhFxLP8LxD6v107xxybSNiFgOe9m49uT2Jsni5j4LC1ryZOwOcVaGn?= =?us-ascii?Q?N/uQp0TSBH+BvsyHTURgQovPJJWxl8Ja3POFoDF8s/Hw7RtRo+GI30xGNtlM?= =?us-ascii?Q?YJQNGOkDNT1eLyGOtEYlzKpIND7OMGY6e+FGQ85uCOcxtbDu9931zPPZTKpg?= =?us-ascii?Q?/CzvyChXmKnHXNa5XaBYhTO+kPGk45R/SN6dCnWNpdm0Blum6gXmADFjk0zL?= =?us-ascii?Q?U+rakcWFVaEgjEEQiBcYrImdutj3V+iLVMtdHOZOIBTsNDnPtzRyAxEPuspZ?= =?us-ascii?Q?XlHRKfVzcx7fs2kowhXV+9hDTPuFb5JPNC/0/lib5HXX4utlGqW1hw=3D=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 474d9f83-af6a-439b-28a0-08da088b329a X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Mar 2022 02:58:37.1130 (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: 2CYMl3aLD/YZrqL3kh4OXIj22epI2hEUgn2ucoCsdKPZUkHn8tt0DEKVsDzW9HQiZdTMBhsOVjJi36tQEMaADw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8321 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 c186d199cf5b..f0bd2e17f2d6 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 Thu May 9 00:46:46 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:aa7:c50d:0:0:0:0:0 with SMTP id o13csp102203edq; Thu, 17 Mar 2022 19:58:54 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwOBk4wlL/qjj8RBw+20p75s9oM95QotEPJDsN+06SSI1i1hjEhcG7lJNVCbvXlonavDCXv X-Received: by 2002:a2e:808d:0:b0:23e:f35:506b with SMTP id i13-20020a2e808d000000b0023e0f35506bmr4937351ljg.285.1647572334273; Thu, 17 Mar 2022 19:58:54 -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 k6-20020a2e92c6000000b0024952f7bb1esi706018ljh.121.2022.03.17.19.58.54 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 17 Mar 2022 19:58:54 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4306-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=nG2dwUuF; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4306-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.197.195 as permitted sender) smtp.mailfrom="mptcp+bounces-4306-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 27BE21C0D66 for ; Fri, 18 Mar 2022 02:58:52 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id CF61615CE; Fri, 18 Mar 2022 02:58:50 +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 528F315AB for ; Fri, 18 Mar 2022 02:58:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1647572327; 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=b81zmStCh1pHGMbgipJC3nha8ac7ZI04GXTqw7revtQ=; b=nG2dwUuFBJMDKgJcpBtQPW9TyeZiluYOgGfig2Q3L8W7FsTnKVngR9mab+r3AK6oL9eK4R qHxevbmp3OEYqv3K4jkHxWowH8DvX1RvpXzlbfmJaTzt7422CHm8XokadHmm1a2Vs3g+Ho rLdUrl5UAXH4WRKjXyhIrRafOx8NBcE= Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-vi1eur04lp2051.outbound.protection.outlook.com [104.47.14.51]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-39-YF8btjfDOT-ihxYZJX1PqA-1; Fri, 18 Mar 2022 03:58:46 +0100 X-MC-Unique: YF8btjfDOT-ihxYZJX1PqA-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cuZBshbaFWaaXCaDGP4S0U2QnwpLjJdkb9JNqgOceu063waujtT2h3tCS8hN8G3JWQpmWWGddwRGuyGNWDd+FgzUOhxsBD8C+Ojv3CcnIMCTYdYy0qs2exSwNhzVkhtPYJaENgQzpz515mGOjf8eZ1D7AM4PKyk7PIAdiJre06Co5NLTJjxG+BljMDJ1QeoLSmXHDEyAM+IIp4TKkIGBCZGWg09Rel3S3Zjz351Ii+uE6RGEmQH2IOASbPS6XeCAJ+wFek2vI+AKXV7jHRiWvmYCZArCxKggZ1pflG9qw8supXcqFeY/xeI5PHtxirmTQz/6vBtZ8aiRN+iNyWeG2w== 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=FTMduRfphey0P7Qj+nrIa+rQ9fiEIkWolDDaZ8fxYKI=; b=hJ5Dbzy7/00EXnXCZ5ONjgi9LUp1iRLbWE6bUT6qqLPy6jpZ6T9MovKNrc7JBDgKqIwQIwwte3WJiur+obXGniu2IW9rQjMr0JBmy7lDUMNFTVUXPJ9wv2TPs6EiLDiUUfhdCVIhQCgqqVsM32bYPBElcAhEmW05byyLuJlCLIphQdl1Qu93+aFQLhUqTalm/PgVI4TFA87fit5gUrIubrYKb2imRj14TSFreFaJ7xggEkMReI4u3KZ4M7PGqy0ny7A6BRjGMFIQBhfsuMuh4376soCpdxT5mx3q7Etga5GQEABJjOeHodcTav1szuGD45b+24hGZQQWPOkIhU8VDw== 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 AM9PR04MB8321.eurprd04.prod.outlook.com (2603:10a6:20b:3ed::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5081.18; Fri, 18 Mar 2022 02:58:45 +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.5081.017; Fri, 18 Mar 2022 02:58:45 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v2 4/8] mptcp: add sched for struct mptcp_sock Date: Fri, 18 Mar 2022 10:58:06 +0800 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2PR03CA0109.apcprd03.prod.outlook.com (2603:1096:4:91::13) 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: f29c36a8-7db9-46be-fb7c-08da088b3797 X-MS-TrafficTypeDiagnostic: AM9PR04MB8321: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: +a7aVwL9blQMk+reatdPh0kq5i+L+eswxDd15Anal5IAIxWH/+A9jQk1ez83lk4ke0tp/ygzbCcvYe7G1K+O5JEVvPK40nmqrijKHsjdXUfV6QjNOOm5qQf/i4mq0MSIzkWYXkUJLq0MMxtFxjwLhtz4W9mpNTwiqE1hEZFzf7h70K7NgxEn52RhzRx54RvKCI3TXHV36jQpIT+q7Mw6yr3IMs6uvJT8J7PwGI0HiGGnxxanuD47FuAaq6gLmBCpHex7vv9IXexH0bJ4rzEHGRn6+hqwuDy7XcUqfdj5kPiARm6857shHLvJafWhJHvmiNYEfqv0S0d8CmOOkXj3mwxJkjNzoR0ooSudeuH8XJQZ44vqWalA4BFdZyUtimnuns1hlcNFavMhVBSxLXKTwpDHnsZH3axxuFOjSwRFZGBzh1zi6INAXpfG7QjoWmRYHL8f0rPx17o8Kz0ZlbqZbSpJ0YoiJ4qtDoqSeBfuzEx8RxVEq06LOC64GMxiOD90q/eY9RZhdQDZRu8ByGCylWI8yxGhkppiq1d4AvIDuFSHStV5BOmT8hoQqckQ407S0cDJxdxqWevB32ZuXQqK16CqtDoqyuCd08l/zHGRrHAInqSRuStQGdsNV3iVJ6JG9zo9CfUVVP+BAeAVdHNb3ZWX8Q7FCmxJytw84DGY9rMXg72bu6qrExE/kMkpvTb2xcsvP7PshLJxuA6CTP3OIQ== 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)(83380400001)(38100700002)(86362001)(44832011)(6666004)(5660300002)(6512007)(6916009)(36756003)(316002)(2906002)(6506007)(66946007)(6486002)(4326008)(508600001)(8676002)(8936002)(66556008)(66476007)(186003)(26005)(2616005)(107886003)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?XNMEJqXa4rzD8UdxXqSItaz9tEYQyjGaobeW+FfBhKBkEm6Vr4peNk4X+aVN?= =?us-ascii?Q?E/SpmkV34OCGck4p2tHQSdC1YvJ/lej7Yy75QhU+Mi7rHyeYwMNjT0KNfQQG?= =?us-ascii?Q?bboDtwLU96tNOsPEuklXYx8ILVS1T8PiGse6zML7boX8wUqbvub77SRjtFy5?= =?us-ascii?Q?dtcmwa6QFxD6s7xar6TmOWKSzJK+gNaDUUX15VKq4CtT1CXj6RAA5v9wBgzv?= =?us-ascii?Q?AMWUzgsiemgtblHkpSU+zOJIYas7IZeXccIiEj6xXovY5kWl+RROh+NeWRZ2?= =?us-ascii?Q?CEUBTHo8baq0PZHikBFa/SoTUjP63TB2uXNkIDLaIV3zzxahQOC+SJ5jTkpU?= =?us-ascii?Q?qesIyvdjUr5RLKYsznyPrvzp/OvXS7CQsj9OGYCpF+gkcaUBPVwbdm5A/Onm?= =?us-ascii?Q?k4AnvWLsIxweYBlf/TUmizUoxjHhtpbHSKNodi7CPsdANlFLtke47kAf3nzJ?= =?us-ascii?Q?cXWVTsCJ7PrryzTKZZWQUdOj54QJ/p9JBn0v0ktzzmvDqwV4I94sIBoPMIRO?= =?us-ascii?Q?9qPrUSkWxyKkyUf6abPbGNT/pHdWH+ppsxjckyApHhulF3H5I9StGGF7dUTn?= =?us-ascii?Q?ghDDZEEvzwdBjU55Blh7EThbRe9jhsYrh7bNgDa8DysaOXjX2+QBapddrqz6?= =?us-ascii?Q?w+VlgLe2jNZ7FwFgdnWptl7anYhWxk3r8Af53YVjf8bwy07ZiymEdn3CaYg2?= =?us-ascii?Q?57bhw1RguvDNs0D1mVDbWhg5rAZ65sm+eG1LvcE0G6lcVJZRffxC1vALopYI?= =?us-ascii?Q?sYnhyfWcXLsGZD4QUDYq/Z9lZNu5VwL628CQcCHnxA5LchZ7snb+gWq0G/WL?= =?us-ascii?Q?yb1fZqtQ9kx1rXoTESxtoTEEn3Sj6PgJ9KSUkfnAJv8YdvZZoN0WeUjeBIJm?= =?us-ascii?Q?8BThnYCYl83vTYvrlrHGyioCCDZvuiAaCjeaKRvDcyJ0vKSf8JGeDjo6U3E3?= =?us-ascii?Q?0D06fdUHCSgdQyf2/ehNk8lQ2O9mDNduKYMSTiS/bQYhofTbuQCIWUgKPfKe?= =?us-ascii?Q?Q1Mz9Tqfmb8fi/4ppC1vvVp/LWkZOvWHAPlPd/b1GZGSObSwS+LnYL+wesXY?= =?us-ascii?Q?1DogLufApZMiczShfrlrmzEf6b6eTnu5xMLnPiGQAFkcJ1KJTU98ARXUM0wY?= =?us-ascii?Q?SJnBv/1pdiDr8eDtUympDbrMNzmulMOZ0cwsQTun9uOxlxuy6CSmGMKhDRvX?= =?us-ascii?Q?36rQt6wcz0WY3EMaFtvf73nMuLdBoRUrSX2dD18Qd63lWI7Iamuy/2Ufcwk8?= =?us-ascii?Q?Z/wI3oRNCXo6+3XoY6YhBQFIEGBhJRiGVm3Y3hDYrws9ZeLUfVGqO17AkHtt?= =?us-ascii?Q?g6iWMOWsgMG+nrF742nicJPsv0lXGTccr8D920KiWcfERzsQj1NTXdfsmPVk?= =?us-ascii?Q?6UDXU3orzk0sRd9HMVyAJ/V2EGw56Yqjra3zm2cP7dmA6jK7tcZU+Zh/PU7d?= =?us-ascii?Q?qGULWJSUrO+oO8GeCqwaiqyPrGk1MeOOYc2pjnpaDdTr2tfTiNTxrA=3D=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: f29c36a8-7db9-46be-fb7c-08da088b3797 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Mar 2022 02:58:45.5186 (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: UwEFPICR1c5dm2dBdeamP2s/nJVAVg3XcuS58857hP2bnXP4UtXZUct6lCp4IIpLA5LedxApiPAdqtOtUMRd+A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8321 Content-Type: text/plain; charset="utf-8" This patch added a new struct member sched in struct mptcp_sock. Set it in mptcp_set_sched() with the scheduler sysctl. Signed-off-by: Geliang Tang --- net/mptcp/protocol.c | 3 +++ net/mptcp/protocol.h | 2 ++ net/mptcp/sched.c | 16 ++++++++++++++++ 3 files changed, 21 insertions(+) diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index 11e19ac9d5af..b6b8f41a3ccb 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -2609,6 +2609,7 @@ static int mptcp_init_sock(struct sock *sk) * propagate the correct value */ mptcp_ca_reset(sk); + mptcp_set_sched(sk); =20 sk_sockets_allocated_inc(sk); sk->sk_rcvbuf =3D sock_net(sk)->ipv4.sysctl_tcp_rmem[1]; @@ -2760,6 +2761,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; + msk->sched =3D NULL; =20 /* clears msk->subflow, allowing the following loop to close * even the initial subflow @@ -2933,6 +2935,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; + msk->sched =3D 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 f0bd2e17f2d6..d18c54e2f28c 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 */ @@ -609,6 +610,7 @@ void mptcp_info2sockaddr(const struct mptcp_addr_info *= info, struct mptcp_sched_ops *mptcp_sched_find(const char *name); int mptcp_register_scheduler(struct mptcp_sched_ops *sched); void mptcp_unregister_scheduler(struct mptcp_sched_ops *sched); +void mptcp_set_sched(struct sock *sk); struct sock *mptcp_subflow_get_send(struct mptcp_sock *msk); void mptcp_sched_init(void); =20 diff --git a/net/mptcp/sched.c b/net/mptcp/sched.c index 9612e182b7b7..727d185af86e 100644 --- a/net/mptcp/sched.c +++ b/net/mptcp/sched.c @@ -55,6 +55,22 @@ void mptcp_unregister_scheduler(struct mptcp_sched_ops *= sched) synchronize_rcu(); } =20 +void mptcp_set_sched(struct sock *sk) +{ + struct mptcp_sock *msk =3D mptcp_sk(sk); + struct net *net =3D sock_net(sk); + + msk->sched =3D mptcp_sched_find(mptcp_get_scheduler(net)); + if (!msk->sched) { + pr_debug("sched %s not found", mptcp_get_scheduler(net)); + return; + } + + pr_debug("sched=3D%s", msk->sched->name); + if (msk->sched->init) + msk->sched->init(msk); +} + static struct mptcp_sched_ops mptcp_sched_default =3D { .get_subflow =3D mptcp_subflow_get_send, .name =3D "default", --=20 2.34.1 From nobody Thu May 9 00:46:46 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:aa7:c50d:0:0:0:0:0 with SMTP id o13csp102221edq; Thu, 17 Mar 2022 19:59:00 -0700 (PDT) X-Google-Smtp-Source: ABdhPJx0rMbScsZRloWx+TDQw9nw7Y6zijT7IL+kkWilugL/ha4XAeHlF0UV5RzjIDlkB3PG40w/ X-Received: by 2002:a05:6512:32c2:b0:448:942a:3362 with SMTP id f2-20020a05651232c200b00448942a3362mr4744554lfg.356.1647572340447; Thu, 17 Mar 2022 19:59:00 -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 p8-20020a2eb7c8000000b0024952f7bcf7si737535ljo.594.2022.03.17.19.59.00 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 17 Mar 2022 19:59:00 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4307-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=dBbyZgZ3; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4307-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.197.195 as permitted sender) smtp.mailfrom="mptcp+bounces-4307-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 077EB1C0E36 for ; Fri, 18 Mar 2022 02:58:58 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id CDCFB15CE; Fri, 18 Mar 2022 02:58:56 +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 E2C9215AB for ; Fri, 18 Mar 2022 02:58:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1647572333; 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=QOgqTKeadq6l6O/it/72C21k4Gpyh+3sAou9+rrZqe8=; b=dBbyZgZ3SOFkxr++LxoW74crYqcxAU/yUUsJFgbih/8U/QlTlCNUQ08p4LrQKiJBReoO5p Z8vaOdlDqyMR2WtUTBOblVgsYRy6t9ueDGCAXtAgo/7mdtvhhZdqA2cJgA5AZNOKsybyt6 K3NYULYGuen1uIOb6X+sEF1NqRy0qzc= Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-vi1eur04lp2059.outbound.protection.outlook.com [104.47.14.59]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-41-4fFfORFxOLGMuNW_RdKeuw-1; Fri, 18 Mar 2022 03:58:52 +0100 X-MC-Unique: 4fFfORFxOLGMuNW_RdKeuw-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=AMmAnp0r8jT+PFEMOEYlm0ImLCiQhpJ5szuB2ERbbRLIg9OYHQNV2jADTolaNZxDcBYBi0sHItQZXDh0zqu2/9kgHerQGDc+U+KsAzrNZtgTq2E2bmXUKFLTzNwhxDlMANncggHmQkoTnrcAJffkv0yet7XS1543uttHYoWKxdDYZ9MnCKJiCpapWsjxkXr9Ltv1GdYgHn1gg12C+eMoGh8ChOGRzrGNEyizO2mklEpqp6ubh4Du8VLNmR2uSbBoDBPI04oIs+OGd5+Lr7Z8AEJ9U8sSzeS5ZaeXwzizthqBL2wQkPRAuLuCmJjKiNcBTYKNUHsEJtqVINH43xIPSw== 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=bG5+r57FIcal6PLgx5YLcfBQ2tyUPHaC9pZOniTysEs=; b=G1ez4g5NlzkSpba/U5r5iZGJDAey/tSt+wBQLWp95msMWNdRBzgD3so/lCdF/HDk6uNcAImkdX3r09XOQwiLrP3YHeCp7WvkzgViX6BkmgvA5+G8I61jwbrrir9yFX/c2FIzcuwk+3at+9R/0213lGTSjlSBMQBPaXHHiSC54OGYZ/PVF1hMN6kGmeK8tdxn9LSSPmZXexW6vzD3Iac2VH4lFmmXfEa8v4Ouw56A8fniq6v94frctIlfFXJP2j/wP9o2IRT0zLzldLn3HdUYMdF5I4ouOGRWIVfLNFKPq3LHGQFmoZCYVVpdt3bMGqLtWCTYA8jNg/jPR/5LY0ifzQ== 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 AM9PR04MB8321.eurprd04.prod.outlook.com (2603:10a6:20b:3ed::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5081.18; Fri, 18 Mar 2022 02:58:51 +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.5081.017; Fri, 18 Mar 2022 02:58:51 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v2 5/8] mptcp: add mptcp_get_subflow wrapper Date: Fri, 18 Mar 2022 10:58:07 +0800 Message-ID: <287b994479ea2c5b6ac96b4c751e0dbd26bda7fd.1647571510.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2PR06CA0214.apcprd06.prod.outlook.com (2603:1096:4:68::22) 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: 00083ba6-aa53-4a35-34b1-08da088b3b30 X-MS-TrafficTypeDiagnostic: AM9PR04MB8321: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: 8mLukVtFtTcD3qNFgnh3XPdOghIazWKdDiEVfmUTls0Oz332fVfO5PwqXMQ7vPn45Vd1l+M6S13MtfPFAuE9SRUHfAqs9G3eMungHjBR0s9GYY727ImCvN7klKLnE/JBAUDxM+XpXh5UssT6FFuhe+q+4gAlmsKq2kQzeER4yjgCN7u4xHf1orGXmvtWLjmIz2kfqyFUt74oaSrCEMjV5aAOGFob0xNvJFodV2ER8IuP2SRVr6rpiBBSQrQy7piwrFfKb5I0hElL5ZKvI7e2d5t0J7RgH6bgmkXPumz7Y6KZBPbHDAMrPwVdVKjm7fHQNB+y2fkk4YLiozoQBQu1qT+RLBWdUmRNRmvL3oS4quspr6Y4qhny1LG2Q8AnGeu8Jg/ofaPGc61vz/VC3mFJhm907V1G8bqa90QXgLW5wAmdOCeoxiw7SMwGSLeVD++zbiU+YGh5LWF0qGsU4GqmvlkWyPIj7OVXXLj5Ro5TGcFXxDtNg626cZbIP5lVHOqGFZ1CBGsURw7OGk9VBndOAX0rW5psOISw21uvlessqfweb6eaZJGtKFD/fN9KnN3R63Vff+3ID9gRYtiviADRWRudOyYeHJ3IpwLF2GdGmqm0Rn+gsZ/eW+eH3WZTsGlqtUxzt/Y2AfAcoaAf+I9t7KR7QUdk3fqwFLUhvKrTflKZvBWGTpRgDngQS5fIBcpy 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)(83380400001)(38100700002)(86362001)(44832011)(6666004)(5660300002)(6512007)(6916009)(36756003)(316002)(2906002)(6506007)(66946007)(6486002)(4326008)(508600001)(8676002)(8936002)(66556008)(66476007)(186003)(26005)(2616005)(107886003)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?94iIJhSC2vmH1WgwT/fbakuO2VK3fXqzBLWIC4TP+No5AhqR7vL3Lgv6/2uc?= =?us-ascii?Q?sK6G6W8/3s0WnFNQzmgiMt/3oKmLMtRzM0OFx4UaM3sKlXeNvnnimoCULIZF?= =?us-ascii?Q?hhykCEJ9Inx473AU3UjxpUWBxE8DGuEGIig4grL4LpJH8kdRiKkpgYX3tccV?= =?us-ascii?Q?N8gL+Q1ekMHRi+fXLThiQabxTVu4e199QKysa2RfaTE+c2g0dqeE1LdkupwU?= =?us-ascii?Q?A1QnXoYcHu9YPPh9xiI4PK1vTKJ6AJqgTcQa3+rMFNFvgEEmZaj6VQJaRTqc?= =?us-ascii?Q?kH+/MOBLzKXLEg1CrlbM00L/YnkD2y2v5WDSEENmEtTbtQBh+89MIbVJlr1+?= =?us-ascii?Q?jABNsaCYQwQRxfLKKqWEFenEVx311b+fhqOFe1vxVGT4FOsogstR/cjTHplq?= =?us-ascii?Q?LJ59V2pAKApqP01C5UH6OmXc6ssFw2tMzZqeJWi4Gviy2zk08wBO4CZVaRCB?= =?us-ascii?Q?HLUR19pAS5Mi5Q/uYuRSdql+xt+Rpr0dVZJJuUe1rkb6sGl9qpKukfsVgHN5?= =?us-ascii?Q?Ww4b8uhtkVOCHElfSBnUQi93knFuw0wLls+2F6DqUEsRaAzwsjIuYHTLeNid?= =?us-ascii?Q?0Ea9dtwhEw/jl5Y0e4+oEcJzmpdUW59tuz/N/Yscxw8ezYIPMcSpc/Hy4UIG?= =?us-ascii?Q?WFDYz6jP69gt910kGV+7UI+rjOZYOF8ntkk5twrZUOvH/mQn4Ca9lo3s2Rye?= =?us-ascii?Q?X6JgC2zYOXNiOMVxV+CwXoTr5AV2ZnguHUg1eOaxyZA+TjXup4JSASP3lKJa?= =?us-ascii?Q?ZMwxdOcJCarYITyFiNb5eFKhx8OTRtCyFg6FoarwNSQeNx6x0IC7x3H7SwW4?= =?us-ascii?Q?/P0ieabKD+vFpI9oFzuzqu4mqM9VXQF0GdIsdZ9q7A8374SCnAn9MDd2Vlnd?= =?us-ascii?Q?E+zNk3AKinamWWvbNLyhvO6drJhMoVtNAcHpojx3+1wd7dMohCx2Z1TAAD++?= =?us-ascii?Q?anz3+U9G/UjQunZq7Cac4hCf4SyTfvAbZKsJdDwtPhp4LMC2BVr6F7WNbMob?= =?us-ascii?Q?V+OqS7I0CW87o3u3eO8ma4d1Bfs28RY3c9DoYucAIx2iH2A6uahJK7+qtO9V?= =?us-ascii?Q?usYK8Ka6mpUkDjzHBEOqFZegYPVo1GrHFHLcPQspHn6mHEklfV3cBn5UENhu?= =?us-ascii?Q?9opeHsIDxN0BDaRLl1G/b+MLY96T5mUXrvjRrHgE4XNvSQhWHhBIgyimj7i1?= =?us-ascii?Q?a1mQf0VVEG2fV3kcVNLyiDF7n6OUYHZhlMQXHqPzwhvL3LMSsfgOVsbdqSyZ?= =?us-ascii?Q?10XSZD0czQBzwkyqIzgMAz2ePRM3EnwwXOQGySvxWVLmCC6uX8i0GXYxp30c?= =?us-ascii?Q?XCZjxCydt64avanQKzXXdmGGdOaIvuA8j5TphCd+cy+wzapxWOKpZP5BADx1?= =?us-ascii?Q?4VHU/Z5qiZfAnHJlP7Zw4QOSExLYiVtEjmFzXF06LhMbCOO4qL4eSUzH0K+Y?= =?us-ascii?Q?roXNPhWQiSBJO8M/nwgaZLsSpyIYeH2PjDv1yw5DRIMfvQb4WE/eAg=3D=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 00083ba6-aa53-4a35-34b1-08da088b3b30 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Mar 2022 02:58:51.3775 (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: /jOPUlNaXG4AFLPdTOMpXy0R+E8lgmZxs5sPc4rprXuorsXM5Uf7DMD7/emWzgsCPqyN1Tglhqz7YmY/2D+mww== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8321 Content-Type: text/plain; charset="utf-8" This patch defined a new wrapper mptcp_get_subflow(), used it 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 | 6 ++++++ 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index b6b8f41a3ccb..5222849eacb1 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) { @@ -3073,7 +3073,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 d18c54e2f28c..8871a17f8b82 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -613,6 +613,7 @@ void mptcp_unregister_scheduler(struct mptcp_sched_ops = *sched); void mptcp_set_sched(struct sock *sk); struct sock *mptcp_subflow_get_send(struct mptcp_sock *msk); void mptcp_sched_init(void); +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 727d185af86e..61cbb0237beb 100644 --- a/net/mptcp/sched.c +++ b/net/mptcp/sched.c @@ -81,3 +81,9 @@ void mptcp_sched_init(void) { mptcp_register_scheduler(&mptcp_sched_default); } + +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 Thu May 9 00:46:46 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:aa7:c50d:0:0:0:0:0 with SMTP id o13csp102267edq; Thu, 17 Mar 2022 19:59:10 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwwvUkezc6IBaEcycOsEvqN3WI2rMA3JE/KAofLjmZPuXns/O1/EHqb4MvMZBFo1PY//5GX X-Received: by 2002:a17:90a:4bc2:b0:1b8:cdd3:53e2 with SMTP id u2-20020a17090a4bc200b001b8cdd353e2mr19187602pjl.219.1647572350268; Thu, 17 Mar 2022 19:59:10 -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 g6-20020a631106000000b0038182143a78si3714178pgl.390.2022.03.17.19.59.10 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 17 Mar 2022 19:59:10 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4308-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="Q15UQ//g"; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4308-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.69.165 as permitted sender) smtp.mailfrom="mptcp+bounces-4308-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 846A63E1030 for ; Fri, 18 Mar 2022 02:59:09 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 934DF15CE; Fri, 18 Mar 2022 02:59:08 +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 EC25F15AB for ; Fri, 18 Mar 2022 02:59:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1647572345; 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=grcdMS2N7Pp41aFBDIXXHigkqVAfXMeFh1AWipxkJaw=; b=Q15UQ//gr4T61RcTGNQXksdMx7cNH3G9utOYvLh3m11dh9dwWju8S9bxbSY6+hK3upNG+I qK71gCgFr3Tvl9yZolXDG2W9NsWtPQsYsXfg4FPYwcVEq+5Y/Nri6XgoxaX0DxnRA5IkRe NPsIPo+V4nyVlxDlDUd7rJVu8EzleE0= Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-vi1eur04lp2053.outbound.protection.outlook.com [104.47.14.53]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-13-xnvrtFVZOoWev8cje0soJA-1; Fri, 18 Mar 2022 03:59:04 +0100 X-MC-Unique: xnvrtFVZOoWev8cje0soJA-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=U6ODO38NTL12K/tZuPOZVeLxTJzueiwNrlf0VJ6aNtGmSpHlEvQySB5plCKcL7dt+odbvptqEzYXL5iDqBiS3WjmA/SqcMR8qadsd/MEm+enqUvuixNWVEZvM4YS48ISsPWn25BzZeUH7N1lrWuAkglP8F9TUc1lbbSwj8OqBG/LWIHxGyEL8s4C3GEqAh8TirUwrkFjuUF2s4GdfUsMg9ESpOJhc5an8mDSsKJx5ieZDOlhbIXFKesU+AkSWDuh9PblFXw6pZC1xnCRTHF88HUvTSb7umAjWyZXMeCmT3p47rx4pd03BhRw8x6nz1bsuKXJkYpnozaTTPsj1IGuJA== 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=+/G/QSFKdupfUOdH3RmTK+MYz4usRE5bHtUGSTosJdQ=; b=oXZsXNlcUY56R8EFkUiKCpGLtHASS4sxhEKZG6n3htay6EqfgxSGqjz1q/IyZ81jCl9XMxsHDx2raHpRsDMWrTJQGCxfWqR3l0HzjGSfbIP7SSXx+Jomm2XIgEYo3lKb/7wqutp1E62P0i1K3KNllQeMFNOzZJ9hyQxCpeM4FwsuHCt9D+mol1Vs4yJOTifXiHIT7DDUUV5WK2zytZyY/x2PRX/dqXBPlJjf3nDnz+SG9nBGaO0MY+uP3SsX3CgPHQTHFXnotpyqWY6sl0rSBfOvTr6Eoe9e3CmPhWg4dwd+iR13MZCBZS1EemYrLzMhdFmC5kY48Detk6hQQSDwzg== 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 AM9PR04MB8321.eurprd04.prod.outlook.com (2603:10a6:20b:3ed::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5081.18; Fri, 18 Mar 2022 02:59:03 +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.5081.017; Fri, 18 Mar 2022 02:59:03 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v2 6/8] mptcp: add bpf_mptcp_sched_ops Date: Fri, 18 Mar 2022 10:58:08 +0800 Message-ID: <857cc219d855b207a0061f24ee8623a5bfe1628d.1647571510.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2PR06CA0220.apcprd06.prod.outlook.com (2603:1096:4:68::28) 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: e4e6e252-7a4f-41bb-6ff1-08da088b4227 X-MS-TrafficTypeDiagnostic: AM9PR04MB8321: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: ffpSk0KmMhbxEDueT15gbmHdVE9hJX12/oyACrW2o5lN30vXtZFwg0BK4e+HPsyP0qanc6ZR8LhOiF9jVzsWCevuNMvwcLhNwHwFKrj8yB3xhXN2yc+IXbgdAle8qHgwBJvRODvr63Ebv2Zi3PKCBj+pn+8psTMZG+F5Zhf8KTAev1Zos0fmHH9ttth3bkBD9qyL8i1s9kRff//W/YOLlniEEtC0QbXlgZoFoD4dlPdQN90J6I71sG/nqfomWIUG+4xgL8kVmpDx8uLQOsHpxbMAzk/pg0x/92nhEl9J9SnhmQ3Svf/eZlD1GiidPJlpBmFjjl5AwKBQ64N/EOcj4Mql9gMFWwRfjo9DbJgHOlkJylEJhfO3QAIwqbsx97m65AfjMW775Eu2Bw0MFt3JlLbEncRtRT9AfLdJr4l8ip2APO8GAeHAR23JqtZOclItL7Wt4AgIw6Notvmle5tXyxK2HZIYLgfx544PNa22izzcCIgBJBVP9d+CbJjf3NlIr8DwmpWgh0PZbwC7AW2A1NSS33RwqEoDzYGSUsVGjeLU/zNfwIR/x0ZLweBALKLvfL6QJsl6Uk4cLd0Ckz7/YpG1HZPZUjGr4xCHWqBPU//7yJzoGv0gE5KWA8glU6prgOf3ERgFeJ0bR5eNN9hnjtY2LUbgHRomS5Q3OfFpMGt4lwqLn5VYNyZ+mUbQZe4Y81UM9u7dqo42XlsDBTAeQA== 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)(83380400001)(38100700002)(86362001)(44832011)(5660300002)(6512007)(6916009)(36756003)(316002)(2906002)(6506007)(66946007)(6486002)(4326008)(508600001)(8676002)(8936002)(66556008)(66476007)(186003)(26005)(2616005)(107886003)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?3sBVvm8MJ9DkYV51YNy9lH5ZrJTjVXcg/WM5LVYcNoRfpgZTreMUxsC/JFUl?= =?us-ascii?Q?8eL55Iice3x1OQk36UQRD+vW4JrLeyDu5wsUvOzOFJcG8dzKJkCYacpTgC/C?= =?us-ascii?Q?MLgPV6rutiIr7ATDd2eyxy8s1fniGxiIS7+3DC80n7t9u8g7f4K2rVZdht3P?= =?us-ascii?Q?NQ5bKIpGf4+5wyeWG5CtSD3Lm4Kkx0HeqUxeQpfQ3OnDNwm+/UmMbDDf+bVz?= =?us-ascii?Q?7J2Mz9yRC0YB4nd2v7oxZ3/6Iw5dnXICH1bFJhuoV33DmAl6is1eTQZdltWn?= =?us-ascii?Q?Ws3HFoCAZo2CVLNOs7Pgf/UZoUXTe1Rk86j3/7wE1/yDsSioNU6xwcY7Phjx?= =?us-ascii?Q?a4AhTB3aZPJv+vZnT1Rxt9X+/E4XNTFxVG5EFYOWEs1IA/LuAn+gYL72onKT?= =?us-ascii?Q?Mnymh1Xi+CIc7MpSZt7jYK0Tu83Pzd/5e1eqBs0FN1uTRAJ6KRj5dnGme7Mg?= =?us-ascii?Q?Y9F1cCyp3768mLuf7jsVylXlxHXN5uNhhq5PBpaNlfHuM55wHqf5kwSvdGs0?= =?us-ascii?Q?5iU3eO2dVMusrfVELOOXad1QULSpQ/HdtKd6LCPANT7aZvhj7TVWFBjoINJW?= =?us-ascii?Q?RfFpAP/sesKX5bYJ4aOsg5PrWWtt8YYcJyVbnzlYBuxm5u0nKwEytkLO395e?= =?us-ascii?Q?CxmYDM2/CdljiNC3wFCOnuXWJyR+bY3rWinJZ7NylQesAekNosc7EgTYE8OQ?= =?us-ascii?Q?WpX4Le3ue5n4ER08b/EU6TV1BoX4W8kZrejyio1Ec2EknMuakuL78qjIb2Ev?= =?us-ascii?Q?G6l1qYtXQFSgtClwOjf5TwMbtJzOIj0Gn/qZyzYDmM/TJekTvmJ058BQlnEk?= =?us-ascii?Q?GuAlZJHdOqE8bFFjDorgJJbsjnJpfffjpJb003cTBNLfgkv6UEXyMMCus0QX?= =?us-ascii?Q?Ernsfoh5xxXnQ4Nn8UshWk23+2dVQQGO5oDD/TZZM3bfWRX+1mxJxbJ2WNiH?= =?us-ascii?Q?15e4CHjNEW2WA0w/KR9RA9H5RfMdIiAmKpYK/q1jHIL0qGe5bu4g+QVf3qGU?= =?us-ascii?Q?9rye9OB28CfWvGj93H5s+MWlWFmexaPdlIh+Hb97bzW8d/qvn/PPf04RgrRd?= =?us-ascii?Q?/kDXSgSiUX8nXX658AB4fS59ehwCPSGdbAHi6ikfvg4Ur5BPxDJKY4M4HyP6?= =?us-ascii?Q?G9ve9hGkOg95x6ukF+CxF4+B/+jmAK0ZoqjGwEkItTPaMagTLJ5lC6zLAmtn?= =?us-ascii?Q?QSqN46X9+R/lG6y5XLTxK2LxV7pwXNy8haTldZfMnB/mlUPo1Sy/SkSUh7Ge?= =?us-ascii?Q?swyB8xJbrQGldV3Fw/9QENEjKvnQV4voehpgGU20fVButFD3RXFSgd2RTcTY?= =?us-ascii?Q?Xh6w+yvW3dTqF5qhBXOHqtSxlOQYROzE2VH8gtteelidYJgU7TrZEcMneMjy?= =?us-ascii?Q?k3X62Ahwq5shJsWL+ImHaePYt/NiXKXHDYH8v5uSPsihawWWIbjIZPBNQfyA?= =?us-ascii?Q?rdocxXsW1Tr2owtJ3ZReevhOpMRlGSyJvGhnFkodnJVsLNUPJbGcqA=3D=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: e4e6e252-7a4f-41bb-6ff1-08da088b4227 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Mar 2022 02:59:03.2047 (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: qt/dzpKbj/5Mla6f5oH1NHO2OUn9/TU9WYn7Mr6gUqAC5ih9+RkP3y+QFDtYlmsnh2MDJR0QGcZMBghuw0LO8Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8321 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 da79dae559b2..5f7f9d30ecd4 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(kdata); +} + +static void bpf_mptcp_sched_unreg(void *kdata) +{ + mptcp_unregister_scheduler(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(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 Thu May 9 00:46:46 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:aa7:c50d:0:0:0:0:0 with SMTP id o13csp102298edq; Thu, 17 Mar 2022 19:59:17 -0700 (PDT) X-Google-Smtp-Source: ABdhPJz/IbLxtUdFEOmxRPN10g+UDYEbxKSc/0IaOdTSNZE2WsQfEEautk4KjQCaQoZ4xPg7a4bh X-Received: by 2002:a63:2003:0:b0:381:2dd3:ab4b with SMTP id g3-20020a632003000000b003812dd3ab4bmr6294065pgg.517.1647572357359; Thu, 17 Mar 2022 19:59:17 -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 p17-20020a170902ead100b00151f8f6cce5si848778pld.3.2022.03.17.19.59.17 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 17 Mar 2022 19:59:17 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4309-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=UcEROJeA; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4309-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1000:8100::1 as permitted sender) smtp.mailfrom="mptcp+bounces-4309-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 9F5B13E1032 for ; Fri, 18 Mar 2022 02:59:16 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id B89CF15CE; Fri, 18 Mar 2022 02:59:15 +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 344D015AB for ; Fri, 18 Mar 2022 02:59:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1647572352; 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=cVb3lDAosTJk9u2z+aEWPP3nnC70b2NntB1dS8zv6tw=; b=UcEROJeAF3vnJsrMmSBh65lFHTwAFlgnIJTzw52sqRUJ5HcbO+1w+VYD5U3khquplK06xs hGEj4bZk5J1DIee5Zep1b0bnPOKiqMJ8OunC/tI4WFW+oxEb0EggxLK33J6MqIT88otXR3 RPThSv9PA8sOnVnfOI4Xk4QdwY0mVyc= Received: from EUR03-AM5-obe.outbound.protection.outlook.com (mail-am5eur03lp2057.outbound.protection.outlook.com [104.47.8.57]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-15-hd6lO945NGy4aBGgUyrLbA-1; Fri, 18 Mar 2022 03:59:11 +0100 X-MC-Unique: hd6lO945NGy4aBGgUyrLbA-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=CjQRoVwbUFJbXmetkNYH4CPkjmg3ESSXQEfZ2tLEFS4oCvA0ZrkwYshmQgVLVJC4xz6VuphWq3GXZbihM4BNQgy/hGZVruG6rUNjeq1wBEvde6isC4e8KRg46bwSKTOvGO1s35nSN3sBr7xTjjgiX+k63GcF87xl0tubrmIdEKU8L9wN5st9izmo2ktZatfFwgvlirTkPhHzIbQPqn9AWV+ozzh4tDoADx6P86YjKPbTLjmMo8CNRDLXQ4jnrkTGI1XtDVIHtbm67a7DsFuOj7DSkUob2rWQHBk4ke4sCHOSslnrATU996gAnu0B0UoWcO1OrUfc1J8+q7gg5lFYjw== 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=CYeTynXd83tEuFkDwFtbapTC1eObe3XpGn+iAMCsnb0=; b=MKlRrCKFQemO/uHWhGn7Uh7M+I/O15vsQ6r6jU7KI5d3K4iuXN/CxZuoJJ2GT/6i94UqwJMSIBwHjxfwR69OuR0DBGJrsTDwCyXdy5G9KlL6zDnBVvGElGS3hW1P2++ykxPgp8kf/1S8XiPwlGJQf6JI5Ci1JjPcAmpXxO+V4aurc+bo/OMOJiaaOlDmbvKJVdN8ySnX6B1W+qNt1Wew8RfUy+st+60DUIUqt0Q4/vX2Xykr5ICUDcUjbjh4mLHcgzEsVq3bMmZckLIGRsMDId/u0BeeQrM0YB8kcyDaOfP5TP9frezK8+VyBF6ENIrwU3G39oePCfPqvrrY8fDNRA== 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 AM0PR04MB5652.eurprd04.prod.outlook.com (2603:10a6:208:12b::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5081.18; Fri, 18 Mar 2022 02:59:10 +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.5081.017; Fri, 18 Mar 2022 02:59:10 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v2 7/8] selftests: bpf: add bpf_first scheduler Date: Fri, 18 Mar 2022 10:58:09 +0800 Message-ID: <49747d1d690e8b915e5101f285b12d7b9eb236f7.1647571510.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2PR06CA0217.apcprd06.prod.outlook.com (2603:1096:4:68::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: 780daca2-a7e2-42ee-eee1-08da088b4649 X-MS-TrafficTypeDiagnostic: AM0PR04MB5652: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: vPkyUp71XN0zuUl6y4jLBYlF87wXEocyiiLeUUDYAslrQTTMAlXDZxQzCMNhHbHXyCqyhzEyT2/WFb7PM50mTQtpirSEc8Age59u6x/fUMt1umRIX4KaCru1mVUXJ3yXgVFhn6JYXEbs/ZcoB/RMTwg43RZVxuQEl/A1qLeVtThNWcxMcGkWIXwFH9rp3kjIIIz1eYnDwluyun8hBaUimWgrk+/yUfKUs9We/InsOXVB4ePS7+ZAz7oGynxvau11vnxKwmxSKFVusQFVkR9YBk6maQ9Dtqma/Tb08/9vpd6HA1AV8CrOoqnlUkziKy5qfnAzJZ4MD5f+HWNHnZbUcKtBy8fYuGBmWsOvBDxIS0Uc087CPcbgDyZQmwxXTq4fHomx6oBYUg6msIvVYmMXPGWdVjbpmH+bSthSCj6am1tVWpoovG6g7v4SJip9fc04cbUySiybDGtlJWVEePp4nNgufC8nlFyp7jH18avg6PVZFos7f7fGs7B5hyLLNWAEcVYfuLQ3i18np8B75xGE2hzADavH2SXs34h1FkcnY+Ky/T5git+HbsSYu3nDvEZNzKsbfzQaMsCOAU354K5ZFJwVdi7ITXoo5TO6fHy/p4rohBwy8nezbA9qureAtwTQFN7v7OT8jfEMaH3wdEh9qJxVIb7rrwXIj7+9Qb715bUbqaSJVNt/haKfT1vzPhdH 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)(38100700002)(2906002)(86362001)(66946007)(316002)(8676002)(6916009)(6486002)(508600001)(6506007)(44832011)(2616005)(26005)(186003)(107886003)(6512007)(5660300002)(36756003)(8936002)(4326008)(66476007)(66556008)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?eXbNJB4DtQunQUAX30kgIS4Unzq750KL+wawkqxg3PEE+hpzClSYp6hQCKuM?= =?us-ascii?Q?a5iM5pgDzH2pV/sps6tw+E4+YP2X6q4rz8r2+rT4OaY7BSBSvw/cQM7j4qy4?= =?us-ascii?Q?9XXKe+L4G3K8UUbI2pvLO/54TWb738ScIZJUz6dxgtY+QGMxD4MA3qs72qkB?= =?us-ascii?Q?/XnNgHJM4mlKH+/KLjHGyNkHwmuLsTVPo0j+G/LDf1DxyTBe5PrSk1V6nQXk?= =?us-ascii?Q?cdPNoRQ2HnhrmrjSPTD7ZFHGeh81jZ/DgpD7YEwO1F5tO/nGRoZouTd4WImW?= =?us-ascii?Q?fmvJJ9n6BVLp3TJ9lBCPaJIS9N+mKhaUT7AvmQaRY+tf5WWHTgYqE6IPrqw7?= =?us-ascii?Q?4rTwFOmPnf0hphO0dMeVyLEHSefppSMB4Z8jKsqAfdy8EnpeFKzwQcwBGHQ1?= =?us-ascii?Q?0CSrb2b2WoUO7veJMKKCnFDwYPZRHtrPTfF7F5s+/TuTcVka/E28UBIpiQ8B?= =?us-ascii?Q?bQh9IiSPRZyg44Tf/Gmnjf1TdYcy/SqGEKGQpSAEofH4VsjAdk7JP/moZVon?= =?us-ascii?Q?UbGqvmokYMmPDUijosQmAf8dlnbjeuA2V9RGz+S3T5KpsMjNEL2+1GgrqhOz?= =?us-ascii?Q?/BL87ujKzcpmMK5URoRKd8WGEwGuiHEgzJGh6WIjPKVNFJlStb4wxvi5Clai?= =?us-ascii?Q?ZM+qopOOoP/Jh9Fdc3jsIMAlTnNGVec1GuJSZSnbJStbFtzk4R2iKYgiLGvQ?= =?us-ascii?Q?d1wT6Rk4/Y4UiOjRCUAzl0P+m4XPHcPYgvKLPx4PIcmdlthwLl/jaNRf8jM6?= =?us-ascii?Q?ujJVqm9EIEHUs+4nmplrFZzJfVUtufWRYcPe20USyuvr62Wn46ZBjCShBUOb?= =?us-ascii?Q?sc5tXJS8fjsY0iJmgWvoZwQrNl3P7PY9iqFoSpj4Ba66BjUJGUq283+DIttB?= =?us-ascii?Q?8piG+wgFOi7PjLWfJFzgk0VgNwXsdlSxOOraq2VFN+EHPBaqCT8Yj5gkuaYQ?= =?us-ascii?Q?gtXenln6Bup8VKKw7WBXM9tCesRMWgEMfveK1XzHKsUpFnUJ+O2uy4BOYnQC?= =?us-ascii?Q?zUC2Ff2rQblD9Qdd3ZrrA3QxxoPIIg1kjjQ5AGySbIcpJ0cz/CieGcaYSA+3?= =?us-ascii?Q?1aAaTpQ4BLoYWMvpTtriRDV0QzVQHMQgMbhnwm/uesGHWfM+X2jFXu6Zo40E?= =?us-ascii?Q?TiAWSWYDniIADEPFllmcYwMbKkVVBee34jr12MkMXqRSkCUIRNv1MTi8GIJc?= =?us-ascii?Q?3eVr0i6aGSfTny3/2RybY5PnZ+RMNnGMHmQn7JLPCQsjY1XBv2h/Dj0JrsDS?= =?us-ascii?Q?H3/Q1qkJefgVlygTksbH6njmn1rhrGGEKbigEmz9KYBZnxT1FaThWXWzPnvh?= =?us-ascii?Q?BUshWeTAbQB3j5ZV309y8wrqmzlJaeA6ocdLk8cdHgtFLHIGFbdHp1pf3msX?= =?us-ascii?Q?UE9DelYJQX43O847LDkcaXh//F1VBIfFxFAyLtV3HdD0f0RWh9kz2B7VtqJR?= =?us-ascii?Q?XVkPK/2kkqI7m9/2B2T/DKjXR9DAhK79XbkYzHr1Yh8dReKap7/AIQ=3D=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 780daca2-a7e2-42ee-eee1-08da088b4649 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Mar 2022 02:59:10.0323 (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: HZ1YzVKbDs0nz95dEPPRIbA0iR26PPSh6XESB7MreQfXDbHorFJaoqxJ+188bybI1uDLGAum4aOaOGDDIvWgBw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR04MB5652 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 | 24 +++++++++++++++++++ 2 files changed, 36 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..ad6822d61741 --- /dev/null +++ b/tools/testing/selftests/bpf/progs/bpf_first.c @@ -0,0 +1,24 @@ +// 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) +{ +} + +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, + .get_subflow =3D (void *)bpf_first_get_subflow, + .name =3D "bpf_first", +}; --=20 2.34.1 From nobody Thu May 9 00:46:46 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:aa7:c50d:0:0:0:0:0 with SMTP id o13csp102331edq; Thu, 17 Mar 2022 19:59:27 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxXFOH4gGJTzZKjxeUPiq3gSvj4lkCZxEWcm8OpS8FG7no5g/jHvnSRNn3EjiD8ML7IgxWd X-Received: by 2002:a05:6512:3c90:b0:448:b606:b32b with SMTP id h16-20020a0565123c9000b00448b606b32bmr4712095lfv.141.1647572367360; Thu, 17 Mar 2022 19:59:27 -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 w11-20020a2e300b000000b0024952f7bb07si772961ljw.98.2022.03.17.19.59.27 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 17 Mar 2022 19:59:27 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4310-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=dqiiOLHL; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4310-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1:3600::1 as permitted sender) smtp.mailfrom="mptcp+bounces-4310-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 15F991C0E36 for ; Fri, 18 Mar 2022 02:59:25 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 0497015CE; Fri, 18 Mar 2022 02:59:24 +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 3C35615AB for ; Fri, 18 Mar 2022 02:59:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1647572360; 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=LKXiBix1nrMVVuNHiRjqmG4LLhxztPa9ak36EJbSdvk=; b=dqiiOLHL0i6QL7NnwDvzsS0f32mPAuodu0Fn0xdy/2I4CRvDt/9Vp8KL1i9MNYgZLHTA6B R/Wv/JJCKSHIxIW4UjNnRA4iJduSXi1ntTfQsR+TwgikyA7euCzXKhtsu/ipKPJs9XVJw7 DhklergEns+1jAw4brH5jBCp3duvvE0= Received: from EUR03-AM5-obe.outbound.protection.outlook.com (mail-am5eur03lp2058.outbound.protection.outlook.com [104.47.8.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-fsgbwkAEO0K2KY2HKJv6dQ-1; Fri, 18 Mar 2022 03:59:19 +0100 X-MC-Unique: fsgbwkAEO0K2KY2HKJv6dQ-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=J5K+uj3f6vwXlzd3loTJNGree+wF6o2ej22NpVyv3mqH5bRvG7dbDgkp2sn+3A/WHS+LHb3x9D01nxj3m529CRoztCz+9Ito/+aR4K0VXtadcsuj4TcgWYQjbYLL4Soz8qxSaWAhuv7hEskubba9CtxulZ/TE5eXxw2QVTzVmqaVE3OCnu4dV1WZX7MDgJC6BfAuc+8n/4e9GsuARH2pQ/q2tFbpv/dZwZ4qNCmi0bza3mS6iBnXK7CYImZg4mmVjIIX17g/8B5JKq0iYc0AiqCgi3E0FsSdxYvRFzHEcBW/NV5c1a2Y83fRT9RbPjY9N+7CBFGB6rk387/Y7J9viw== 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=MUKoondKw6BCZiC4PRISP37TrGA5gO43q4DMIok3z2k=; b=bUB8Dq/Rtup2KbSUkrTGKemszt5CdOxxD3mSFwmYM9T4mnKYoqC+uIr1IL9zOeiEcmiZSeBG84L9MVSGGGGFfXpu362LeJH8JFasng8lqy1tdsey5EWP16Y48NAJkTffDf84y2jsm2oCWRNHyA1DcHdQUOfyjq3sriD2DHLcPff2PLS1XhVWydLN4kfY7VSkluBFGKxJgXHGBLMpLoD4riKInmlxVEEi0Hq8zhEOQDX0qU2DrvHO0rfHkqiXYaPPmStUGlZJr57vyZEEgkA/YqpyuEUcoTNqPcXHCF4CiFDpaM1E9DWy9mTZHoJeLnNrIo9/XdN2NJcSAJww/GxGCQ== 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 AM0PR04MB5652.eurprd04.prod.outlook.com (2603:10a6:208:12b::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5081.18; Fri, 18 Mar 2022 02:59:18 +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.5081.017; Fri, 18 Mar 2022 02:59:18 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v2 8/8] selftests: bpf: add bpf_first test Date: Fri, 18 Mar 2022 10:58:10 +0800 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2PR06CA0225.apcprd06.prod.outlook.com (2603:1096:4:68::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: add986f2-8a48-4351-281f-08da088b4b0c X-MS-TrafficTypeDiagnostic: AM0PR04MB5652: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: tAHsYLqVswEVoqFqeihibwbSKK+FY8G/zGLeQqWAxMs210vb8LzYgffwzXfd2S9dTgQjuEBAWJTXZrQykdNgGdbt9IUTYLyPhrT+A7wnYxjJmtyjrSWVBMReENZNtYvySVSpXVBh4o9KIy6HZZ8/NQGqNyBzVx3DUk4nOOGRfXyeFK/74tuy/oySLYufN8GGc5cc5E/AY+bf3UeneUcVQc4dTo2ieapj/5nGR1kyB4GOZFCvSjQ+WD2WWsqV5x7Q7QpNca6my6bbQTT//kfy4jV1uXf0mwIOgqlIzzAc4/FjsfGPERxkAGFX5NZaFYeBLvJKJEyEPFOaG0eMJqSe8m1kGRZG5g1S9mW4gnOBrpdZc8dbPxI6f4SAhfA/x7gyNo+e+J39RAFmkm5EkpeTj89RWyCjjiWhpVy+5GKjcVNJppkK5aQ8oCD9hli6j3CGkjbIYskS4LPw7wn1cEu/rrky+fS/HCZ5wLlVhCvuo1Qu05At4sYJ45FE/dzgXZQWLmaINWQrlFkmohvrEUAob8KJuTZ+u6xEXehbkJapurPvg64MJMkUVN2sHy099n9TlHJxdxcVfEjo5nWQDzkCDCZ7iy3Kwnb6ixeS4q4y2tJ7Tbt9KSMd/pVjGhnobPfk8KW+EOJWyfQXlXcDnq6Cq1LFTzFZqKLOcjUqv33O2w/xWqmARjazUvfGR8Bu++fzPheT2ROmsVlZBqK2vroEeQ== 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)(38100700002)(2906002)(86362001)(66946007)(316002)(8676002)(6916009)(6486002)(508600001)(6666004)(6506007)(44832011)(83380400001)(2616005)(26005)(186003)(107886003)(6512007)(5660300002)(36756003)(8936002)(4326008)(66476007)(66556008)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?z4HqGPb/xsK1MBe/hDZ43BlzNfR+m4N2ykNAUnwMcmuemReBBJQj1C9eCALG?= =?us-ascii?Q?1X27bs8fE+vBxDBkD4A5FsJ+qGnUJJ0tYPDsnk+eAkeCJAbBSs+5yOll6T2c?= =?us-ascii?Q?sgV56hIOBU+y6rcbw2uohW4z90zgAklcWFeiHS0d77gFyf0aIUU/NWwR6dQ/?= =?us-ascii?Q?HSd0wlWRpcoL2DGwROaP7gEJrHb9uquA+EUdzRRG56yi2SHbYpcI+XOiitHe?= =?us-ascii?Q?BumENpWSeMpQPvRcqsnqqPb1hBEV/WoBCa+TJTHGzCsX1aBCKkMQg4giunRl?= =?us-ascii?Q?GrHWBELD+I4toR+V4YP4gGhHYp/0eVHEDJc8/ZEUjHCX+XS173RgCbNoKjyA?= =?us-ascii?Q?HK2FENnDZv8sRU6cA8gwlNCZb6bnatOLPiHiLot6MaXym7qeUPcgMfV52u63?= =?us-ascii?Q?8mgGhJvOuUa/Jyfl8jS00F3shLBLsRRunlxZwjDU03B4hZ4VYvRRNNBDuKdk?= =?us-ascii?Q?jDJtgqxskQkaE4uaUckIj447KBs8v5g9ifLK1By0Qtd7tZV62bn/+96rXMon?= =?us-ascii?Q?ZRKT8FMZj/V/bqlHAU8JY0Z/8V9wjeOsltGfhoeVY/0jkpfStIC5VQ0EvyD4?= =?us-ascii?Q?35gmBf3rywJ5Xe8LWVPtU+dZf5KGC/xWKZjHtaxiAkyfXNh57Jf5np0NbUyn?= =?us-ascii?Q?IpCLl/qb71BXzkyNjlTgTEhs4O8WYIOQK0Eb9UCWVWF/oiSB3/7dRKQzi0pZ?= =?us-ascii?Q?/zuUuCMRcSVdQdjtjJyTILNz1MoXX+dUZaHKiDKMKaUP4h5owdPOuAZJ6i9c?= =?us-ascii?Q?ZmLnskChz4mj4Aip3a815It6bz7pk5qF+Ixxb62ciMb7dGDS597p4OJ07oqO?= =?us-ascii?Q?Yuj551vdJEagePSNjgXYGYvKVPJ1BZycLJXTkwLt13yIKFAA2AoPbMA/ObAi?= =?us-ascii?Q?xQ5H1OACxae7gsCUwwiXf+OHK0n8ZfWNCb2hOcTshAcAlWk76EqomL7ixw6s?= =?us-ascii?Q?B25jtnuArTztk+cWdYpHZ7Wn/fwkIQxCCjE6yK+mhyPMGFJOEJf4MyVcGSgp?= =?us-ascii?Q?1y5VjBsPBGmuuVbKtiNUpjhz9XF8eQESkWFG/JCEuNx7UWGaibD1CY00BL27?= =?us-ascii?Q?xsFQbAdGEIZ6u4dDTYUZBz5Y5oD+Z5cqQbJR9ghDGs4Q2+Dubp//BIKq8a0y?= =?us-ascii?Q?yoTCh77BTXHC/Vzv8WuoU96Q7kTR57WBvXfCtMde8Yo5omLPiRlqIUeBKGvw?= =?us-ascii?Q?jPfnTrSQkO3h4xHMjOuAM0CyqAYg0OBnj1zKch2wqoR0Yuwek/KvGugJ10W/?= =?us-ascii?Q?vtN/VWQEmVlAoA+z3p65Zo6Y3jQxgAdwULVEzc7GcsMxVGlfo+Vty7OUuTJE?= =?us-ascii?Q?Bop56RNey5XPtbATEAdrHg4WynDinlx0g9Edm9IVOnej1YCOojbJvLSQ5FNs?= =?us-ascii?Q?XAEXxKaCUP+dMYWV8XbioPTy/JrO3q8DJzS2BFL0uijkydOOoTIf3lQo1TSQ?= =?us-ascii?Q?JrRf0DrHvG5JMN6fqHj1O/E77FsxncYWgP5K6kCzo06P5UUCNcrsnA=3D=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: add986f2-8a48-4351-281f-08da088b4b0c X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Mar 2022 02:59:18.0785 (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: o6XrJEhwzexQCCEyfkAQsgiAIRq/KyL7ZIXfkAegw0JH8hKopAjKFoTDncpi80xu0IEAfhN1Y4gFBtrQH0vExw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR04MB5652 Content-Type: text/plain; charset="utf-8" This patch added the MPTCP sched testcases. Use sysctl to set net.mptcp.scheduler in the tests. Signed-off-by: Geliang Tang --- .../selftests/bpf/prog_tests/bpf_tcp_ca.c | 42 +++++++++++++++++-- 1 file changed, 38 insertions(+), 4 deletions(-) diff --git a/tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c b/tools/te= sting/selftests/bpf/prog_tests/bpf_tcp_ca.c index 8f7a1cef7d87..979b6e90b372 100644 --- a/tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c +++ b/tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c @@ -9,6 +9,7 @@ #include "bpf_cubic.skel.h" #include "bpf_tcp_nogpl.skel.h" #include "bpf_dctcp_release.skel.h" +#include "bpf_first.skel.h" =20 #define min(a, b) ((a) < (b) ? (a) : (b)) =20 @@ -16,6 +17,10 @@ #define ENOTSUPP 524 #endif =20 +#ifndef IPPROTO_MPTCP +#define IPPROTO_MPTCP 262 +#endif + static const unsigned int total_bytes =3D 10 * 1024 * 1024; static int expected_stg =3D 0xeB9F; static int stop, duration; @@ -85,21 +90,26 @@ static void do_test(const char *tcp_ca, const struct bp= f_map *sk_stg_map) socklen_t addrlen =3D sizeof(sa6); void *thread_ret; char batch[1500]; + int proto =3D 0; int err; =20 WRITE_ONCE(stop, 0); =20 - lfd =3D socket(AF_INET6, SOCK_STREAM, 0); + if (!strcmp(tcp_ca, "bpf_first")) + proto =3D IPPROTO_MPTCP; + + lfd =3D socket(AF_INET6, SOCK_STREAM, proto); if (CHECK(lfd =3D=3D -1, "socket", "errno:%d\n", errno)) return; - fd =3D socket(AF_INET6, SOCK_STREAM, 0); + fd =3D socket(AF_INET6, SOCK_STREAM, proto); if (CHECK(fd =3D=3D -1, "socket", "errno:%d\n", errno)) { close(lfd); return; } =20 - if (settcpca(lfd, tcp_ca) || settcpca(fd, tcp_ca) || - settimeo(lfd, 0) || settimeo(fd, 0)) + if (!proto && + (settcpca(lfd, tcp_ca) || settcpca(fd, tcp_ca) || + settimeo(lfd, 0) || settimeo(fd, 0))) goto done; =20 /* bind, listen and start server thread to accept */ @@ -324,6 +334,28 @@ static void test_rel_setsockopt(void) bpf_dctcp_release__destroy(rel_skel); } =20 +static void test_first(void) +{ + struct bpf_first *first_skel; + 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"); + do_test("bpf_first", NULL); + + bpf_link__destroy(link); + bpf_first__destroy(first_skel); +} + void test_bpf_tcp_ca(void) { if (test__start_subtest("dctcp")) @@ -336,4 +368,6 @@ void test_bpf_tcp_ca(void) test_dctcp_fallback(); if (test__start_subtest("rel_setsockopt")) test_rel_setsockopt(); + if (test__start_subtest("first")) + test_first(); } --=20 2.34.1