From nobody Sun Apr 28 00:41:28 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a17:907:7811:b0:6d8:2910:9a8 with SMTP id la17csp1250380ejc; Tue, 22 Mar 2022 02:53:09 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxLDW+Qe6bn7rtS6r+veht2n4uH03WBJOQd9U6DUamoNShK4eDb2sLUa3Sdjn6GCebxL3MR X-Received: by 2002:a17:90b:4c86:b0:1c2:5a5c:9149 with SMTP id my6-20020a17090b4c8600b001c25a5c9149mr3921752pjb.241.1647942788959; Tue, 22 Mar 2022 02:53:08 -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 u21-20020a656715000000b0038203e0be84si16331161pgf.605.2022.03.22.02.53.08 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 22 Mar 2022 02:53:08 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4342-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=eicV7vTA; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4342-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1000:8100::1 as permitted sender) smtp.mailfrom="mptcp+bounces-4342-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 8BECC3E0E7A for ; Tue, 22 Mar 2022 09:53:08 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id A1DBCA47; Tue, 22 Mar 2022 09:53:07 +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 9D0D1A31 for ; Tue, 22 Mar 2022 09:53:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1647942783; 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=2MAy+91Kg23sBeyeawmxSOzlRvi2e+ZQO7FLfz1bE1Y=; b=eicV7vTAByS13fnM8klw2lvA9J2wvZZYPijULdaFZhXMOQ83CMeoBZ4YwZpW+g0wF0cxe6 aZyocfEwhIkj6br3UyDdYsN+H554Q2gEm+XBjBe2f2IA5+sZA74kH7QWiGvbkqu9NKrE92 Ple2z9ZOvXuAv5NIqDUowjqtr++qd7Y= Received: from EUR03-VE1-obe.outbound.protection.outlook.com (mail-ve1eur03lp2056.outbound.protection.outlook.com [104.47.9.56]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-14-edJxvMuHMrKFRasokACwXA-1; Tue, 22 Mar 2022 10:53:02 +0100 X-MC-Unique: edJxvMuHMrKFRasokACwXA-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fzVTS+S7LpJ9DW2p0XhGqjwI/0QN2rrkIE4Or02WK/RoELvnd6nQZzFd8Vn0PEu+wUp9BZDesXFZRwsagmF+OHPMXSb2+K8a3XRsF/imlCDge2IRwJfPXX7tOTcnHXBix2BtC4cOogFAcKXrIU8+kuPS+IKgmU9Wv6tWmUlrbfqi4w0kLdQcSTW3ojSWUc/LATwTp4qZ3S5GKCDrvmB8CXfihz1NXpx1xMkB1DGwgwCPa8OHXcifRZOLG3Kryo67xqFDE5MBT7u9afPhEe46o2g3hPn01xZ8Ak2iDl+LjxNoCL71LPuEL6DsU6ZhMLO6K4iLLeNwKCOfN9lK3RK+aQ== 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=Ar2sgt6n1vDt42NO9hrl4dj76DBnZY6SLqbb8A7M4yY=; b=l7kzaR+AOhZoWWlg/pJORoFhgh5HUdOirSf2D1O6o5GZZjOtr5izBLpxKrOoqPAkBsbGV/APL6n8G35kQ4AdfljKrc3g5yySbV2EVIhP4T/QvrWDse7u/Svn39533l6EMkqCTpzs+OXji81bG6U6Uk7H9OLKjAEDQxL7dms1J7XnV5mwhfkxinSUKLU44Eig+5XNK7WeYCPebTtxtYPJFaCne8zsgHIw/Hnz9RYHPj2lntsOf1dlqmNevMLOvkCMW+mSTJZBrugfBdawlfwIKjDRKjuHjBlC6uvfYhE4SSvgebhHWhHQzJ2upcvjEyQsSG8hKxK+gtU7Tr6q8NPmLA== 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 HE1PR0401MB2282.eurprd04.prod.outlook.com (2603:10a6:3:24::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5102.16; Tue, 22 Mar 2022 09:53:00 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05%6]) with mapi id 15.20.5102.016; Tue, 22 Mar 2022 09:53:00 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v4 1/8] mptcp: add struct mptcp_sched_ops Date: Tue, 22 Mar 2022 17:52:36 +0800 Message-ID: <02c1d2d2eee134713737fe5c5f73127e8c741589.1647942374.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2PR06CA0218.apcprd06.prod.outlook.com (2603:1096:4:68::26) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: b1c283c3-5352-4962-3c6d-08da0be9bfe2 X-MS-TrafficTypeDiagnostic: HE1PR0401MB2282: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: cWDVyYGeI8brebT/8hgeggKSE2tvHIAlBju/9xkGbCPHVTdf5LuST6seejp0XAXUAdDmp4Twrp/v84ArToulcS093LPASPiipznFSp4MklcxtvKlWJ0kb+25Qmgy7KME+cFVKe6lgK9X2ms86RJXjbSJERWNa2IKET9r65JE+1uXXTBNdEACcVLxuQe0EpAUWrWR4ylYlQ37/SLLLXFcwM8IC4TOXOLXLTA56tnPcAj26eOvnwqndXuDmFaMIuD+5kXal6zTk4eyYWTnh1yjYqJ8GKwva7AKllXV0AgACoiLBFq6TsrBPBK1alk2P5MdG1NZs5SXUM8qmnjpS7vF+vbtAyqoRMgaa3dJC7ZGNwhWXnXPG7JEFnRb/WWCk9y6YaTssyMelpN7eiER09/aMlNM9tOnJ9d+/qcGcXIUWcI640T3pr3Kioh4eyhUNR0yAKM8Abl6FrPeDEHacYHTDpAMAV1VS+Q9dTzavzOdMKflg6Gmj23gU/pHqJlMbJY9dOCZrPQtMwtDnvzgo7fuZrl090A5AQ1RzlouEPZaoxuVooZ0fjdYgEt1qYd/h8Dmj84I3ns9kzYYEpIwnvPARZxfaau5zcCfbqBKelGsI2sLfpb0QuP4JxNpkQVgrc+2qofR6613ZfCitylxPS/rFis4QP4MLoyXozqTSBI4T+RigUWXU8NgitKzT6GjWEn+ 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)(8936002)(316002)(6916009)(4326008)(8676002)(66946007)(66476007)(66556008)(2616005)(38100700002)(86362001)(6506007)(5660300002)(6512007)(186003)(26005)(107886003)(2906002)(36756003)(44832011)(6486002)(508600001)(6666004)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?1X9/SRNwSyv2MMgtbMI5qsSp5llHqombrxke2prXKh9kLCiukzOVSVApX5yg?= =?us-ascii?Q?Fxq9F29PJSMVwnFdaQYCIIinrAnzyt9SSug06l0LAq6laCM07GIBldqg22q6?= =?us-ascii?Q?dVX7cbhtpHfxuxcNBBMpC+i5GXa8cRBDGIFJQ7GZ3xPEj5TD60YKvPhc+ySj?= =?us-ascii?Q?yPOo0EuvL4gzUihj5q+Bjp7KtYImdCqouw1M5syOybN7B3QBoZlPirYEi1FP?= =?us-ascii?Q?bI20YevXo4uG+lxqMWzHDIsY2Za5ixAU3NN/77m5ynMe9q4fVGHLJIKs3R6l?= =?us-ascii?Q?zlMs35m32QIGG2tzD+rpJ2RXzgq0tlD0bjlP+kUxH55QrbpKzUBrcnpTSXav?= =?us-ascii?Q?53Q8Xp3ik/fjUCBLErwfJJVqUJ5CKmU3YEuMVt7DMa/VySTzNTNaNfBfy78X?= =?us-ascii?Q?pf7R6sOHgyiJOJwtsK/aEicZ7b9WBh4sBakObKaYuT4qREuOuOSzbkH3XCrI?= =?us-ascii?Q?WtneMHfzlQPdp9jtnZMgQ8DCTeWQluCMWTdiPs/RkPlrCtamh7is69oDmQuA?= =?us-ascii?Q?37tpaGCJdWSomjXpsjWYVnotTfOgjYOkKF/90IgxDpQpO1P5ri89apnyZRZA?= =?us-ascii?Q?eZyVbgNi0lsLyHJLNKamrIBUMwu/M/cY1Qi7I08vEEyk4qUdEjgC7KHwFOqo?= =?us-ascii?Q?lIPW+dduEd7+y57cDdSX0fFk9GovVfmuX6ekkaEEs1O8Az+n2GVF2Yw4z1NV?= =?us-ascii?Q?O4tYkLf6otjH6ncCOX8jpkpbq0cYgOSzY86iAC9mHfjsIvHwqbOfz2usVEcE?= =?us-ascii?Q?+0ANeE+p+IFEOWQnW0m91NYAlwWrr4z/ROsqCxR/+/bqTgj3VLaejwqrbWaf?= =?us-ascii?Q?d1krf5tTnMgFFKnfCO4XIOvWsyaUMqVnczilLn/oMT50jYdJ0d1pVGqtnwvf?= =?us-ascii?Q?U+/BXir26Bz4K6gI+YzkMgNEmQRIstuTb7NzxxOh5wXe2eBfgi9Z7Xrmd4iq?= =?us-ascii?Q?vQk+JTzU2A1RDCIOzjTiD1DtzJ9jwCYOF17d4LFHdzMProapi8EjhVfHbqGU?= =?us-ascii?Q?OU+DUouCEOHESi3lWzcVk7psqqC5rw9xO2hMiC2qnsUdmt1LFvG1sLnImFw+?= =?us-ascii?Q?qbFf/uoyh9YwleKQu001dqHjEN0ny1vDCuJw+9qCxzJyrfad+eFnQgjjbcZh?= =?us-ascii?Q?bH1V/lcZJ0ZsnPoahl0241JFReZeQ5mb+vL+CILV7aCIubce04qudCM76Q7X?= =?us-ascii?Q?h0w5H3K91cv1131c0zX9EkHS7WAA/sLi8skM6S6ZkIPdAQPRjT7806vGPBYF?= =?us-ascii?Q?0TCLrx7pOFAnmEzpP4XYZmwxAh3jsCRRVTMoEbM7L4WZAdVyDH5Ddu4PPCqZ?= =?us-ascii?Q?u0zhQ3CsR+IaFespDmxRy77o1+VMCytcq0eZnmHlQId+0F+Ofs1ForR7sWSI?= =?us-ascii?Q?YP67O5lxzCvop3yvsxJvjYuGRqafGJk9HF+WfJwmDohmc0xlCVPGiD3Axmij?= =?us-ascii?Q?H7OBC4Nm0avZ0PSPUJjjME0xSsOYr567jNVTowQjvO4UDxEuUNFXRQ=3D=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: b1c283c3-5352-4962-3c6d-08da0be9bfe2 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Mar 2022 09:53:00.3719 (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: n2YNgaC+dWHEJo+vaJ8LQo+f4aeXItSkfM8SIOYF4Hb0yMx07p7QjHg/TmxNBxD/n2LWYVOfV+7GiV4N9CN2EA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0401MB2282 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 | 55 ++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 72 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..53a1bdaae2f1 --- /dev/null +++ b/net/mptcp/sched.c @@ -0,0 +1,55 @@ +// SPDX-License-Identifier: GPL-2.0 +/* Multipath TCP + * + * Copyright (c) 2022, SUSE. + */ + +#define pr_fmt(fmt) "MPTCP: " fmt + +#include +#include +#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) +{ + if (!sched->get_subflow) + return -EINVAL; + + spin_lock(&mptcp_sched_list_lock); + if (mptcp_sched_find(sched->name)) { + spin_unlock(&mptcp_sched_list_lock); + return -EEXIST; + } + list_add_tail_rcu(&sched->list, &mptcp_sched_list); + spin_unlock(&mptcp_sched_list_lock); + + pr_debug("%s registered", sched->name); + return 0; +} + +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 Sun Apr 28 00:41:28 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a17:907:7811:b0:6d8:2910:9a8 with SMTP id la17csp1250449ejc; Tue, 22 Mar 2022 02:53:20 -0700 (PDT) X-Google-Smtp-Source: ABdhPJz0aHGG2liI5w4FCcyXahYOfXtLTE+eB4787eZ5fRe+4pwxSEqCcGldF3edLKkEUrXgwaSE X-Received: by 2002:a17:902:8e82:b0:151:6f68:7088 with SMTP id bg2-20020a1709028e8200b001516f687088mr17832296plb.11.1647942800361; Tue, 22 Mar 2022 02:53:20 -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 g1-20020a17090a7d0100b001bd14e030a1si1893756pjl.121.2022.03.22.02.53.19 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 22 Mar 2022 02:53:20 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4343-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=jqAt8B3M; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4343-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.197.195 as permitted sender) smtp.mailfrom="mptcp+bounces-4343-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 4DDDC1C0A18 for ; Tue, 22 Mar 2022 09:53:15 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id C6D31A47; Tue, 22 Mar 2022 09:53:13 +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 0B220A31 for ; Tue, 22 Mar 2022 09:53:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1647942790; 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=4iw7s5zvEERrVINVLyzL/lgSDArs/eQmsP63FkC7pec=; b=jqAt8B3Md2lI5kJ5yEvpqCdulmwc8xu7eqTa7yZDSEI3TKmsrQpRlKVJE4omHzB67kmTLB 5pDykT1KxIvrnUUKVvzrj3EAKhOOL8lqeR7cPbDGmNawbSv3TbKMceFfyAxH0VGDHCAeCr +o1HjF8A+6wYkYXZc/FnDj8g8ARJVgg= Received: from EUR03-VE1-obe.outbound.protection.outlook.com (mail-ve1eur03lp2058.outbound.protection.outlook.com [104.47.9.58]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-11-ke_OE81uO0-SJQNekuiEtg-1; Tue, 22 Mar 2022 10:53:09 +0100 X-MC-Unique: ke_OE81uO0-SJQNekuiEtg-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=PCgMui42R6QPz91002qbSFcKLwnf7JcaDG45mYXqESMb7Bj4+07y9Sdyfqc7gizgpjcaKQOYeeA1Yq3ZgkqqZMcGzMpAZhWTSxttMwNpdEPdLDauKzo8CrkEPgWxTQ73r6srtrIrgMFdYqPmSsghCxRAwbXh50kN8GUcQ7xWnCIqy7VcrKz+S1BAVPU35vcjyA5G1vQ/dtrLnt7X6caCX/mLc8q1calFtNHFt9AwobaQhV/BR1syD132RQEUL0Qahn+jZObWhXBWTv33DMd6Xao/FKE4CMGoWBCemZukRL8QNLObNlG8FJZgwBTBkkQXNvAceTuoEtlBjuidUkiLzw== 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=ePBzszVn2fho5okFj9sFkOOiJcmiqWhaLyfHNvwVum8=; b=ed2gf0FDgCKcAV8gGZLI5Y0ZiTaVSE8T3RpqhdKh4vVxZ31rNysF08W/i//IJStrHuMU0rV2EORnjRludT/xnyFnKLknKA1f7dDPKnjE9qH3XQ599MdRdeuwf2KVB2auIhqaVspc47R7V37L2/REXtMpRnmAVIsoUMxcjXBC5hx7zDXqLL8/Kifc5kzeQSaparCQZp5sexdGpg7pxou4sQd2bLkb/A3u+Pvqte5Ql1Hn3bm4Rri82qIzfcIZHG3bett90khwuO/PJK59bmx8c4nZTcQUsOOv75v4aQceITKh4ISlacwMugcdfIvm8qjIzDXoq9tD9t2ukDhJeJWH5Q== 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 HE1PR0401MB2282.eurprd04.prod.outlook.com (2603:10a6:3:24::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5102.16; Tue, 22 Mar 2022 09:53:08 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05%6]) with mapi id 15.20.5102.016; Tue, 22 Mar 2022 09:53:08 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v4 2/8] mptcp: register default scheduler Date: Tue, 22 Mar 2022 17:52:37 +0800 Message-ID: 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: b75bc23f-8e66-4c28-5e7d-08da0be9c4cf X-MS-TrafficTypeDiagnostic: HE1PR0401MB2282: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: E0AkizyEw45hUnd3nqI/9LORefPwgH0/NMklX3hwZiwU0U6BVO5KCePAMZNipEzdIk09SNqyMgkRlheMTTWMX4IWgxJp/OWX73Aq5Lqas2PCZ8+xlw7zb4kI+Tz8cfsx0Ea6VwybxiZ7TsfuDSupu2gTo++PmNUC3XwxEv9kzvPELoJ7wNsqln7KP4YIGY5glJf9lVz9vs42QpWLYeENck8T8hyKNmULrGw1CHIESL5CKoi2D1irgdstUDs/o3DhTEyJnv6hXrFydKFYzJU9Upn97osmPGt1PVD5aPDGg+gh1ibJKU11uwPDG6jPmqT8A/NIOt/eze3ZCdkhKf86qeTxEny0r+4cZWDYmUdHSzZDoTJLxA9v2X2GcyivzlJsLhfhT0PfWqpUdJxd5hAOgXPeN3prTnm/sJkTY5oV2VSjwgEReNvlihVa6cU6oeiyN1hDzUh53PNxL+HSWCbnP+WQbBbPm19qfDqG6K8B3nGdp5pknUKUWYzqe+gKoYpWAoMqa8b/PBZCHb2kOMzZ2Ap58NGeqwQiQ9DU4yvm6cynlLXr7pfonu+2KsJfSnJZTc9uyiXTRFULkKUVZhk4caBI0p7JTW9Qb1ieKodACMcDiT0Rsq+8c9A23Z2uoRz9cSc3QOhTvy061cgKzsYAc8ZzoHSRjDTvCdWBm4nd7jiUAuizaZ03fInq+h5zW1dH 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)(8936002)(316002)(6916009)(4326008)(8676002)(66946007)(66476007)(66556008)(2616005)(38100700002)(86362001)(6506007)(5660300002)(6512007)(186003)(26005)(107886003)(2906002)(36756003)(44832011)(6486002)(508600001)(6666004)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?CYKbBX0anOZXtYvnf7ZczHmMfncY8Er0vunyF6B7UlX5YO6x4kIp+o31getf?= =?us-ascii?Q?i6/3SbL7KoN33pmFznDodoluLz9s2KdYHy1AoAmVXGAsKReEfEohaIV2PwCh?= =?us-ascii?Q?SGXsMbPmf6NlOl8Uo8/VwqamvHstxXxBKXS7cY3LAjhrVPqynudcW8tj9BEv?= =?us-ascii?Q?ikrliEvXXTG03dISTk6xYHC0n5TWFzt7aK1BDRCY/D48eukFJ9IpN0nLYZHC?= =?us-ascii?Q?ip0EuKRELAtu1MA6IMEg7LgRxjkNziJa92nQ5gKsBj+uh0SdC3PUAYEMbzGW?= =?us-ascii?Q?/hfpjllJcQdL6q6axhcxlkogkYSPSHxCdS7TLgjLSVyHIS5MT5kQcBrlHkJE?= =?us-ascii?Q?IPBTz9JGWw08YC1sQwjRCKQ5IYU/lR/1e1shO/AyLTd0Cou6Mr279bKDrLG/?= =?us-ascii?Q?sdeOicOP2zOxzNINTM3CHMsWHaCSiellwSj4E6YkFj9KTM9rfUcPTWp1KuwV?= =?us-ascii?Q?W7g3H0tzUj9NpVqCTLH8SHJSjizp9eOgURlyUNNGYa8XqQeaMQvvI2vj7AFN?= =?us-ascii?Q?mcamljCn8sA3sIydEwPrs3le39XnuWOc1j3CJsOKXIkrRrdLs3gREn7v4f5/?= =?us-ascii?Q?9y2gomFsuT2a9CjRAoayj1uCcrCLeJRpSRkB0P1UwziKTyYWLrtkznmk1AzL?= =?us-ascii?Q?HDYUkiPW+JP1Kf1aESLumMPNYeotnjLGx6+mpThFWT3agNsM25NB/qT3pdJW?= =?us-ascii?Q?AhOEWvRc9j/nAoYUK3WjthmElq8cYkdBUvWPZOQQ6TIKb/hkfZgjEAgwbGYz?= =?us-ascii?Q?R4De6XydJxvEdmTT3EsRDggH/iKek9G54nuCLPLfrUCTpn5pTAprO/ZiVxYU?= =?us-ascii?Q?U+TEBbhHvw36OjtOeh2mranmMOSIOMtX+ffLec8rpOisOI8xJ5q19w1TFCuT?= =?us-ascii?Q?5YLKo0mUedWF+kGxwi8Udxti5N30D6Qy5xhux6ZpD2NIZMrv8Ek8PGGvLxS7?= =?us-ascii?Q?X3vSV1LNd1/n9wvx7+AK68xMbiNXE48ApMTvljXWdiGZjIE781rllS7VZvrD?= =?us-ascii?Q?lS6F8TMPQDFwNkJpLEPjj+7NascWKg01SOrJaWJdJkL4AnKddZrdZzMAtX9T?= =?us-ascii?Q?KGAMXBuRlNVLUGJUWFeLzQHmWSH/aOlRjPjIW5JopxmHHhymQzNdYkN0bJVG?= =?us-ascii?Q?cVzbQwbCV/fBUklmHtgXmrUq6pkDFI1gUCnDiVa4AG4L6+zYaHzWGu777cK7?= =?us-ascii?Q?EM4i0QdIOou50cysQHyp9EMGxoCDQOirzTZqRkwK3T5fLAOBvQSUZD/+SHMc?= =?us-ascii?Q?g6DjgsuYNWuPWN4smzZpKPE/0E4Wj1wlHekRWsfgIUGv+h+LgfVhzl3wOKAS?= =?us-ascii?Q?MrmhMoG85UEX5JG2a2oHpC84rnd4YSJLeJ3ZhP6Q8G2M6jf+DrfdB9gDmcIC?= =?us-ascii?Q?znArbDo0CkVvt7F5QjquychwlX6Ni2B7qhYSrprSDZjWBvkfSgzJRBlO0Z7U?= =?us-ascii?Q?zaMTYgxgkL3J9TGA/70OyVlGb6yNx4mSx1CJMxwbLoN0FVHBqQgAwA=3D=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: b75bc23f-8e66-4c28-5e7d-08da0be9c4cf X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Mar 2022 09:53:08.4181 (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: sgrrHz+zEBhLVT5QerpPpD8szZEdoaTyDPIKVxvuJc7+hN3qSbt1XV4AT2MTUcwe3+/76HBpPBoCQwHZcncm2g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0401MB2282 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 53a1bdaae2f1..331e6517622a 100644 --- a/net/mptcp/sched.c +++ b/net/mptcp/sched.c @@ -53,3 +53,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 Sun Apr 28 00:41:28 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a17:907:7811:b0:6d8:2910:9a8 with SMTP id la17csp1250458ejc; Tue, 22 Mar 2022 02:53:22 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwSqNWxohPTNTF/Cab2lZ0GczPZ5CpKeE12plT6JYJawh5rug0IKh3y+S46YBOhP6w02NQs X-Received: by 2002:a17:90a:168f:b0:1b9:453a:fe79 with SMTP id o15-20020a17090a168f00b001b9453afe79mr4012339pja.107.1647942802397; Tue, 22 Mar 2022 02:53:22 -0700 (PDT) Return-Path: Received: from sjc.edge.kernel.org (sjc.edge.kernel.org. [2604:1380:1000:8100::1]) by mx.google.com with ESMTPS id n19-20020a63e053000000b003816043f11bsi14489915pgj.784.2022.03.22.02.53.22 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 22 Mar 2022 02:53:22 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4344-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=VdNLjzAG; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4344-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1000:8100::1 as permitted sender) smtp.mailfrom="mptcp+bounces-4344-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 F3BD63E0E9F for ; Tue, 22 Mar 2022 09:53:21 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 1EC71A47; Tue, 22 Mar 2022 09:53:21 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.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 4723CA31 for ; Tue, 22 Mar 2022 09:53:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1647942797; 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=VdNLjzAGinfpPOFFhmh2M2uDOLmGYDowCKbAFk8WR134zA44Avtcc2Ypl7RuwjZW2wUPJN 1KzGyut7pVZYFvS0VQ2iCxwm8DYUmxLVDhGyNJuTylQHq3zQR2urWPdGCwqe5w9B7/7amz Wi/Y3vZNUhCBbczfdzZSq+ualYbLblk= Received: from EUR03-VE1-obe.outbound.protection.outlook.com (mail-ve1eur03lp2050.outbound.protection.outlook.com [104.47.9.50]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-16-kVVxcKCXPRqSQr8CxtIARg-1; Tue, 22 Mar 2022 10:53:16 +0100 X-MC-Unique: kVVxcKCXPRqSQr8CxtIARg-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=iTBDBF/A0JB9Q6e3hu0OUWJp2OC8AU8gAGdObFDjwBBTQef9BSwYST2b7I0pHRCN+/G4bi3YLZrCo5jghnp4cuxE2INMje6kMEVyMbmNfdy/M1mAVL7wdblCmz8JpoUcD6379zVzqt/FPyK4KD3Vcp7mQVdgV9SzYIoSR9+nrwLH3NKzDdFcz5Jdx4fhR52rSYeeVAWKQ9OLi6FqWHYva3YSueMEScpWQUj7WqOzyPTAXKn5geOTz4z+3D2MBMgmQIxxltCUSJupj36IsTnvmj701zlRg6qv2RH0pDD7WWigpDRkXJYTSCV1TRAc1pJvKRwKjOBQ9JTaewUpB/Yv8A== 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=NkA4FWzzVdkoQntdYZbnVaak3i+2bvZdSEQchZROznUOE40iuAw51EUKOpCLqiyPl3h8PeT4v6Jgd8yG4dDtNKhoF1yZlqTYSjaTWh6Wyj1eBYdKLpIXhPn1RIlMWOxSmVH4yABgBKHV6M6pMYTLseW+bOqmIIqAb1qp1xwpFWciraLKAxB053TtB0NwvW+1047JAfDG4L/wkswfDPMllQ2nIrFLq8zHgTgcMqquGVReMnR2EHh53IsguQq3ZPPh9qzyfgCmd4wLJWrYxANntYVb19Qj9kDN0r1SdSztkHGgVfaryfcthRHLzOaCdWoCYsZ4mUl2HKHGOVJ2xmS/6A== 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 HE1PR0401MB2282.eurprd04.prod.outlook.com (2603:10a6:3:24::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5102.16; Tue, 22 Mar 2022 09:53:15 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05%6]) with mapi id 15.20.5102.016; Tue, 22 Mar 2022 09:53:15 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v4 3/8] mptcp: add a new sysctl scheduler Date: Tue, 22 Mar 2022 17:52:38 +0800 Message-ID: <0e1e6ebf2c8098e9bd1a86d4390eef5265bd55ca.1647942374.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2PR06CA0213.apcprd06.prod.outlook.com (2603:1096:4:68::21) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 29384d96-3ca4-4994-05d6-08da0be9c8da X-MS-TrafficTypeDiagnostic: HE1PR0401MB2282: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: PywnklGvd0YZqTqmXJSOZyroIquPKqvTU7rgfE1WwXLZjFjeDVjmmD+zQPebHbklS5oRz9rzUQfu0CZgM8a6ufeW7JsgCyTVG15syIgmV4UHm3xPZZ9dJg6OmATo/OoYWH8A8ycdDJJxE0zQUKjxPTl6ShMPY3ojzt5akoh1q7nFpy6yoVpZUlncOxwQDJ6h+j9b4HBWfwIpcnR8QHQZ1h4wp+KfdTZKN/Dzc9/42xXtiL1aSDJRUlfEFqMbD1zx+2DGYxTiIlHDxmcbyqJ8uBYLuCNQCrAZwxTvinVwz6Is6itxZjlbgh0sbWW3EYa7V07S4qGtttK2Lt0OSWwPv6zMcvNXaRME+GS1DenKHZxeuH+LCx3b/t+lO4shj4UhmRk1Rc3okpgb+tJhFKN5n07iWsohwYyK7KcB08FORg3p3eScAphzJXcE8D2lNbQApmC2VtGQLwTrIcretP7IFW4cb/Dk3tLXUTwpg5fcwsdhQ4+NYbHbXwBegIw5Z9k56QuEqcGovhqjx+zNsF1bW0K9sMsWr/ZVBVWDcxki8RS4tVvoFQWpmV/YYZfxZflRh+PTFa4l1N+CKBXpQ8h1DuRP+hV5UnxoVyUW3RMpzhUMd0dHSzZFQUPDjZ2+AWP7JaoMNDcwjQ3Bg0BvosbM23InoriFJtPoNu9PC4+WJgqQSvyuFOUpVHLS0p33NpyeaE6dqMeCT1c9jathU0J9Wg== 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)(8936002)(316002)(6916009)(4326008)(8676002)(66946007)(66476007)(66556008)(2616005)(38100700002)(86362001)(6506007)(5660300002)(6512007)(186003)(26005)(107886003)(2906002)(36756003)(44832011)(6486002)(508600001)(6666004)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?ldipcgvE+DR2yZBGRs6Yv6Fe6lU1+YMDtg1LPY44tzDDSjkR2HvQltWWI5zn?= =?us-ascii?Q?M+cgdshtzxLl1X89ekDQAbSLhAhOMvOYGzYfDA2lOYkIjo6DIXeH7HnnGh0I?= =?us-ascii?Q?e06va2TRzxh5zekq492evxb4PPWJ3lnuD6I/3uAZ6Kj7ADFlyDyooiZKWRkP?= =?us-ascii?Q?Y9N+7g5lLCQN1wBRfAxFkLxR3xRr97+TH2cr9zonHM4TF6a3DFLI9mAa6dyq?= =?us-ascii?Q?nLdoGvQvd6FoutabQx+rK+ggKr4WtJN3MD69CIptstgbMmuQSce/FVb++pES?= =?us-ascii?Q?xujzs7Tw5gTzovUoLsnZc6eKzrNy6ND6dP2oumF9VqR8lc7twfMykiHLM9sb?= =?us-ascii?Q?RGD8xlu0moabowKCyfmJR3MxbK4OLPaQy/rqweCk0SKwC8mzv1sTzepJMr6s?= =?us-ascii?Q?8MihRzs2GrHha9CaNiP42Cadi/HPde4442yFPas8BJSlV7cvDjBMFdwr6yHC?= =?us-ascii?Q?YTFfZPPQ66A8QMd1HTXwaxveKcsBFRZeouEwz4uGeNsPYrFEZaussAy5iLyn?= =?us-ascii?Q?j/cZSe0WXpSuetdaImklwQn5xkzF8GzuBiqFgkxx0zD6ADaTE7HsTML5umR4?= =?us-ascii?Q?TXEqh8CRHjp6YjTTIhjm+84ef7XupuWn5GUTLxqj2rTEn116QosOabPvu6cJ?= =?us-ascii?Q?dshpI58sBzpooI+SLULrCB602Wfo6gvb09U5gh+AtopB/q3cjVxCDvlFX6tM?= =?us-ascii?Q?KyGWMX5/tSME4vYP3lji9hI//6gWg4UG/CcO26qbZdicbaOceCbQRpvD7zf+?= =?us-ascii?Q?RuO0oH7gQPjKsepBo89bEL/uC3xNR2j5JinuGg46CIFOtfAdGElfs7ACDvxK?= =?us-ascii?Q?nDif0WPMwvvxLI4F2XeDaMxKoC70Ao0ppz059EO+y4bF0aBhmlwkA1o8ke0u?= =?us-ascii?Q?hH/642OtHZktcA04qMvFyFuBQ04WFfLFjid3zO6wIS3u69CaHVxadA7CCMk6?= =?us-ascii?Q?Us7JnX/Gcls/QvvyIg89M3rOrh+FlOd9JNkQVK7jqqzujZnJltbvMGpqynPH?= =?us-ascii?Q?PIPYUhrXI84aNG2dNhfUSltH5i3sbF0SFEpVfaRUVutQw1XsnZMSVUV+eUA0?= =?us-ascii?Q?oL5mgEpzirB/uk8gkiN42Jx1A+emq3i3MWChLV9Gsf5scpLaSAPf/QBy8yoG?= =?us-ascii?Q?HPy8j/FgJXoKJPlSLCvQbISb3LPPtM5RpfreSzBGl9gfY9J+MnU2W/WWv8s/?= =?us-ascii?Q?D2FXKueM1mI0xPqEK8gz1MIH7Nfx+IiUGF88h/WNGu0/k8QYBIQsT1+1APfB?= =?us-ascii?Q?Gz3P8SW093QLWyhMLRzunvdiA5SC4F71E+4V6FXFppu16E9XM8yXa9F486/h?= =?us-ascii?Q?Dm1vVCd0PjlQFtLUCq9DdtBC+TBi9FaZWtwq30Ant3hWb/xLuXf+eJTRUAVP?= =?us-ascii?Q?G5gfp6C9JJtGyHpQm7cqIi4Q6rztiRK+1Kd8AqM2/+wbeEN6AVSTs9T8M802?= =?us-ascii?Q?S3ZFK1I4X76+xSljwq6B4no1Czcw8W2Jz9nuN7vNwfROG3wcXJbPRQ=3D=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 29384d96-3ca4-4994-05d6-08da0be9c8da X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Mar 2022 09:53:15.4019 (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: 1ppaWe9/wonNu4Pnpkz3ko+xf0v/Iqzzk+NB4FwARwHyfwWG0VQlLPyeG0lA1dqzRvRnrNopzmKmR2QBtJ7BQQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0401MB2282 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 Sun Apr 28 00:41:28 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a17:907:7811:b0:6d8:2910:9a8 with SMTP id la17csp1250522ejc; Tue, 22 Mar 2022 02:53:34 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxbNSq5zYrz8yBcisCpNckle8SDz2iNNGZAwngTB0tba4iCa3dkbFCNAQr6XF71s77UlzTg X-Received: by 2002:a65:6e87:0:b0:380:a1ef:a9be with SMTP id bm7-20020a656e87000000b00380a1efa9bemr21133019pgb.284.1647942814513; Tue, 22 Mar 2022 02:53:34 -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 k70-20020a636f49000000b003816043f161si15630273pgc.854.2022.03.22.02.53.33 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 22 Mar 2022 02:53:34 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4345-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=CHJ7kvmc; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4345-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.197.195 as permitted sender) smtp.mailfrom="mptcp+bounces-4345-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 704E21C0A18 for ; Tue, 22 Mar 2022 09:53:29 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 39F22A47; Tue, 22 Mar 2022 09:53: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 90C4FA31 for ; Tue, 22 Mar 2022 09:53:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1647942804; 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=pC5H6cNVigXdgbdg7bnyfrHWOvSZlSNO3I9U0DSR3mw=; b=CHJ7kvmcHfaIfZgcfmnjYaE3RtofPeEslL+SCETk/uFrRzAp52TrshR8yomkSVGl5wVV7x AHyc8Hm2YYxuqn1PIRUvPh8iPBRGpOLDMFv4M8RhE1JGOlnVFlmE6wMRovp1of+yP1BPf3 xo3NZPv4X7rByuF5tyt+rIx4T/yEM8I= Received: from EUR03-VE1-obe.outbound.protection.outlook.com (mail-ve1eur03lp2052.outbound.protection.outlook.com [104.47.9.52]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-19-5_dVz0jzMmW9ubwlJtERPw-1; Tue, 22 Mar 2022 10:53:23 +0100 X-MC-Unique: 5_dVz0jzMmW9ubwlJtERPw-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Z19fje0cpQ3Xmt+Fafvuara2Be8mqzwFZPLpcE4Vi+/RfW2P1jkrfJl9vhnnYhIbeN92UkxvDPtmGC6/gc/Es57BjlKXAoyfUhNrkZBLsjjwREvetWsb/vcZ1m4+b5znvMY43GE/fUV2dV+8l0UjTK8edpKw19d00nJqU3RFbfeorgW3xx2R2StM+UMNLmX1q82x8GEyjlkzIKMuaGltYhwK259jlWc2naBzZcVyBu7qU4UDkPeZOxsuq7Hd5Tw4aXGoAVJhBR37zPXEaABeHr9swztLtehb4Gdc1949l1kdcTiyF+zrJsoxZrZClkPus96vqbtVsMTX27lY/Vhl4w== 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=sA1vClu2yS/xFkl848JXv7w9G0Bodq6jzxOk2r1sl+o=; b=NQve21V8rRJ8PCDQcxUGzSzdckcV4BDbO549skJ0V24XmhWEBL85cPhbQ4VvcDFWZYY2BDdc7G2cDpAW3n5rCrCQ9lPoZ701U1rmS35vrLucqvSTTpJS87R9nQEnQxaIP9N6HEu6abLRDtzHR4DbuN3iv0owrXoGUyvgjPuWe2toUBgNcV6OwHTEj6tc5oGBDniOcECpon+I/L0Q9Xb901w6zryH0hG21n16Tl8fATfC0akQ13yDQJ0zDmgL3ov6SSQjwrTtMsawSWKGyDgKhEjluQAeUHaL5b9/hM4LuBeiZuCRZ3Ou+8x+EltaokFRjZbUfbivh0uFs0ofY9xHOQ== 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 HE1PR0401MB2282.eurprd04.prod.outlook.com (2603:10a6:3:24::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5102.16; Tue, 22 Mar 2022 09:53: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.5102.016; Tue, 22 Mar 2022 09:53:22 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v4 4/8] mptcp: add sched in mptcp_sock Date: Tue, 22 Mar 2022 17:52:39 +0800 Message-ID: <05808789d3cfaf6df311cb5a30427f2b51a9f2bd.1647942374.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2PR06CA0219.apcprd06.prod.outlook.com (2603:1096:4:68::27) 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: 910d59e6-f5c6-4ff8-f8cd-08da0be9cd11 X-MS-TrafficTypeDiagnostic: HE1PR0401MB2282: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: Pc3pU5ROq39gqbVuQLeGb+5jkXqzvJQmso9WLClytmk6IfWUdmMXBIsOEknyiiF4aRshLS3gP6zqatYf7j46UsXuDw/LSfSPmA2VyZjepnCTHZb4uZQbV9eV3WqOdB+yf7Iahr0+lc4zIKjbfWRaSiGrZhw9+oTKl0LsECPx28koIE+6ni7yfwMilXkYlZSFtK0XdH4rXzN5SdljqUe+D+XO/SCwUK/yYgYppeUDccMlJoW0e029tp1ycGSdd/j23fHrxwu7Y48Z8/9Snr/q8o176J4K3Th0sHJuPLmy1qGdVGZBwrPJS5F12yz1N/C1Q84g3GwV8b6Gas3uCG+T50n7F2aK5FHtF3BRvrV4oWanlhWvp/YNfAGBU6UwYrysw+Sfg/yC9fQgSnXl+V2aXnNd4AVb9hneH7k7jWU7dhDr4yuBx1gzdtp6tIKv/EON/1TpDbbMHvbd58vMZH5c/yeRlLNVBnKaswHH1PtqQOhF7+znzl9tO3tngOHeoTCvNIintkRSwSFNoYm58SDmsoHMVgbzNAj/xi5r4TErrqMm+L7E/MN1OGZhMEKwREwJGSc83AygPNVxRbxN1H+RkC6HVrTHr2NLyqaJWAoLADA/L09rMQJQCXp38NsmnK3vF8S3AGzdq2DJ8J3v/YPHSSL2FtQk8i4yDpU/BjYXV0g1sh45r50bTec4q7kAFaYfavKA27+iacuGqA5WTakOXQ== 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)(8936002)(316002)(6916009)(4326008)(8676002)(66946007)(66476007)(66556008)(2616005)(38100700002)(86362001)(6506007)(5660300002)(6512007)(186003)(26005)(107886003)(2906002)(36756003)(44832011)(6486002)(508600001)(6666004)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?InpCrcRYRC4vp7tZPTvWK67PR+118kpG+OdhSHock+w0gisan6qVTl9yprYn?= =?us-ascii?Q?/7TjFVLRTehrqDN6l86n0+N64eZ6QSkcqziKpTgnJbWAL4pqo2GCShyP9dCq?= =?us-ascii?Q?Wbr0yXI4Jhq6NTicQ4zabdb90/EmlWdS/OX1JF+SWxeqexo4JI4wVdDNi41m?= =?us-ascii?Q?LgiRxSE8lPEr8f8be6NcfpArK7GowlEDxTojOdjwK7U6Hcuxo9uAqtwDDgZE?= =?us-ascii?Q?HVKIQUCJiMHk7jyMVXzGPxe4JmJBZzlsPPS/23MEtjIysFFggNQ8kexwB2MO?= =?us-ascii?Q?SpW+/t4fd2X68tdDXeGqo/9q7APSvF2fMmumsQrJKMODkdRjwm+CmV9B6Cix?= =?us-ascii?Q?zzrommHaycLzQ5KUfcZF8iWrWQQ1MsDhyEJsuI4QsLyIpoQo37Wu6920yWwr?= =?us-ascii?Q?cJxYIdwz6qN693m8bUIzgrx012EuErCXGgmYT4cxXYMPMVeZGbbvTUal2icQ?= =?us-ascii?Q?UFrRLYJjwNyZv6e8ieZvbBLYSxm3tto0iCKQdcseSm7LNnhBE9v6FyJMMb33?= =?us-ascii?Q?1SzpJnWbj+/Lv/wF9y/MWWPjYM9VSL0V4uddwMxvoF1jEO3zBjo+5SWYhcqw?= =?us-ascii?Q?OPurTTsUAo2IfywfnCxL87W1BgvNUaxXk4KS75x8QcqABcPTMEpIRC8J5KI/?= =?us-ascii?Q?2hQhjsb/HGt23pvHPdzEoUu3bLxjmGxsMfciBStDqvu0PPI2B8vp87dzTWtj?= =?us-ascii?Q?wucDhqOjKiXc49OtusOOsvW8nTC4lI8NUvU13VE014x5TbVTc9t3zH+YK8pW?= =?us-ascii?Q?4G34+LCU84nv6Lrwe4xJVzfyM7CR77v+pq9Ife1JJUE12vuCAVsWd1JWzqNp?= =?us-ascii?Q?j3CZHvGmHxz3JlBsilPQp/s3xedm9rG0F3vHrxe4qJk0O+kr9ixqCrhX5TI6?= =?us-ascii?Q?Os3GiFGHlyLKym6eakrxGCil/4XTzPhKxOAhCiLN9fJS6fz/LZruWDqAab9H?= =?us-ascii?Q?uptunGg854pgTwlhi7K49xZRu/U8cB+r6kkJUx+568FqqLPIVxGR06TplqrE?= =?us-ascii?Q?pm7qvxE4cDFsQuAwn0bPhfOMl/dWnPpeprg9kV0wH2iZp7MmqZE5ssq3f0aD?= =?us-ascii?Q?VMVipJHeS/ZedKNaNXhEHhtyzCC6a1005okJh5WVPCLNtrnmB7Jh131eooJR?= =?us-ascii?Q?FaBEaJCYAUXNvWnWBvcU3L4sPF5EAsqxSc3DeAWWJv6nRszDae+ItRdsKWAC?= =?us-ascii?Q?boli7+pyErhyCbqRj+7xf2Fs69bBF4HA2mt6bXIAF9+W3yHFdMY7BkZnbFNF?= =?us-ascii?Q?0tO3aZzj1Or6bx+yVEnHtLcpX7uMMCKRn2xrjAXClMAb/8l7pwkb/ZInAUCn?= =?us-ascii?Q?WzOQcj6h+D8+WEGoPe2DbPom+6e2rOsIS+hrkoZd5EM+UZMm+Pbu+iI8H+CQ?= =?us-ascii?Q?WH0LY7PvyjJGZ0u0ZdIam8OEimomaHJLwUFeSZstnjbJ33tOycCpQBO1uZiZ?= =?us-ascii?Q?7YTw+1eRzRJ2+5O+h76LrpwGuwO0GU2192Ch5aH09JeyjB8/cNwiBg=3D=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 910d59e6-f5c6-4ff8-f8cd-08da0be9cd11 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Mar 2022 09:53:22.5107 (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: OzGOSBqQV6rPe442rosDOKANJcYe776Ym4yK5EqDWTblO9MbNBoYxN4gCJJP7TGPsLCGRXKD7xTK0+OX9siG1g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0401MB2282 Content-Type: text/plain; charset="utf-8" This patch added a new struct member sched in struct mptcp_sock. And two helpers mptcp_init_sched() and mptcp_release_sched() to init and release it. Init it with the sysctl scheduler in mptcp_init_sock(), copy the scheduler from the parent in mptcp_sk_clone(), and release it in __mptcp_destroy_sock(). Signed-off-by: Geliang Tang --- net/mptcp/protocol.c | 4 ++++ net/mptcp/protocol.h | 4 ++++ net/mptcp/sched.c | 21 +++++++++++++++++++++ 3 files changed, 29 insertions(+) diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index 11e19ac9d5af..c892e3b6b65c 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -2609,6 +2609,8 @@ static int mptcp_init_sock(struct sock *sk) * propagate the correct value */ mptcp_ca_reset(sk); + mptcp_init_sched(mptcp_sk(sk), + mptcp_sched_find(mptcp_get_scheduler(net))); =20 sk_sockets_allocated_inc(sk); sk->sk_rcvbuf =3D sock_net(sk)->ipv4.sysctl_tcp_rmem[1]; @@ -2760,6 +2762,7 @@ static void __mptcp_destroy_sock(struct sock *sk) sk_stop_timer(sk, &msk->sk.icsk_retransmit_timer); sk_stop_timer(sk, &sk->sk_timer); msk->pm.status =3D 0; + mptcp_release_sched(msk); =20 /* clears msk->subflow, allowing the following loop to close * even the initial subflow @@ -2933,6 +2936,7 @@ struct sock *mptcp_sk_clone(const struct sock *sk, msk->snd_una =3D msk->write_seq; msk->wnd_end =3D msk->snd_nxt + req->rsk_rcv_wnd; msk->setsockopt_seq =3D mptcp_sk(sk)->setsockopt_seq; + mptcp_init_sched(msk, mptcp_sk(sk)->sched); =20 if (mp_opt->suboptions & OPTIONS_MPTCP_MPC) { msk->can_ack =3D true; diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h index f0bd2e17f2d6..f7acec409607 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -286,6 +286,7 @@ struct mptcp_sock { struct socket *subflow; /* outgoing connect/listener/!mp_capable */ struct sock *first; struct mptcp_pm_data pm; + struct mptcp_sched_ops *sched; struct { u32 space; /* bytes copied in last measurement window */ u32 copied; /* bytes copied in this measurement window */ @@ -611,6 +612,9 @@ int mptcp_register_scheduler(struct mptcp_sched_ops *sc= hed); void mptcp_unregister_scheduler(struct mptcp_sched_ops *sched); struct sock *mptcp_subflow_get_send(struct mptcp_sock *msk); void mptcp_sched_init(void); +void mptcp_init_sched(struct mptcp_sock *msk, + struct mptcp_sched_ops *sched); +void mptcp_release_sched(struct mptcp_sock *msk); =20 static inline bool __mptcp_subflow_active(struct mptcp_subflow_context *su= bflow) { diff --git a/net/mptcp/sched.c b/net/mptcp/sched.c index 331e6517622a..ca8d204e476f 100644 --- a/net/mptcp/sched.c +++ b/net/mptcp/sched.c @@ -64,3 +64,24 @@ void mptcp_sched_init(void) { mptcp_register_scheduler(&mptcp_sched_default); } + +void mptcp_init_sched(struct mptcp_sock *msk, + struct mptcp_sched_ops *sched) +{ + if (!sched) + msk->sched =3D &mptcp_sched_default; + else + msk->sched =3D sched; + + if (msk->sched->init) + msk->sched->init(msk); + + pr_debug("sched=3D%s", msk->sched->name); +} + +void mptcp_release_sched(struct mptcp_sock *msk) +{ + if (msk->sched && msk->sched->release) + msk->sched->release(msk); + msk->sched =3D NULL; +} --=20 2.34.1 From nobody Sun Apr 28 00:41:28 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a17:907:7811:b0:6d8:2910:9a8 with SMTP id la17csp1250573ejc; Tue, 22 Mar 2022 02:53:43 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyb9zAyKYAXigGsUcrsvyb5PdK8cFlt3CfbrVo61+hnzqd9PrjzEUIr9PIPQsxL0qugJ01t X-Received: by 2002:a05:6a00:1489:b0:4fa:ac61:8ad3 with SMTP id v9-20020a056a00148900b004faac618ad3mr6269016pfu.17.1647942822989; Tue, 22 Mar 2022 02:53:42 -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 e27-20020a63501b000000b003816043eff5si14495563pgb.490.2022.03.22.02.53.42 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 22 Mar 2022 02:53:42 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4346-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=W31ianYn; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4346-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.197.195 as permitted sender) smtp.mailfrom="mptcp+bounces-4346-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 D27721C0A79 for ; Tue, 22 Mar 2022 09:53:37 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 649F2A47; Tue, 22 Mar 2022 09:53: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 AFF2CA31 for ; Tue, 22 Mar 2022 09:53:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1647942813; 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=U53kgecBXnpFdh75gzgmSvapcb7jNOcQRUhCY/lrkYU=; b=W31ianYnPYq8PdA7ddMiJh0l+1jzG+9RPxLmwA9XDJPlOe4GJkS1AlQq2oPqha9xxw2RU2 O/J6mu0fdcAw2jQBvKmF0QPjHQaZJOyVkRFjhEO5vnIHCO7EZSikU/XBFvnSFPXTwpmeyo JVOx8YyaAITUMRSdB7fO1rUnqnJBJzo= Received: from EUR03-VE1-obe.outbound.protection.outlook.com (mail-ve1eur03lp2058.outbound.protection.outlook.com [104.47.9.58]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-5-JLINrbQIMBu5YBKNm_vT2w-1; Tue, 22 Mar 2022 10:53:31 +0100 X-MC-Unique: JLINrbQIMBu5YBKNm_vT2w-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=XrYfchVBVAzHXffThe4B+ixN+12IA4Vq+OgmXWgWgxCQDPEFRIHONM7IV9W8c8Qe8djTXdrMNOjgNBqJZ8UP1GlV0TczEkBmzu6FOg3sA2OadHxdYqo3U4ovQ0HRZJ0Wr1cZQZf7AnpRp3o9g1GMDNuvzNkNvH83SLHpZp9G1Wrp1vo0VywCmdA5Hd0sX1kM6R0flBExNe5TIwihh3R1ucCPLy7/VCftV4xO9PQf5wnFyoIau0nMCXe93C6/PZj+uehywyG/UMJOIGbfo+0xLA1EuS8f0VlX2nABl8Z3JfsuoODIElqr1j4B/+NQbUlfAnhDSYqHpcPot96xj77Mlw== 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=IxgTnyWv6ApNaMHU+Xxd638u1IKNmH9t1Du/zUOecoc=; b=ISWy4YTSXwhOHFN9R4aH10t1coWu/9fSom7VeH7hjM9FdoSoopPfwN1CASrX2clV+mFaqQmTc2Ri+hj9qaiUNknz8hPcxgpDiJ7iZAz6lCmy5b2DuQsUcTWBopMrf4H/mgJJ4MdTbZBr9en1IRM6zwpZbEHPFPS3odwag1tAALf1R64LDqqHhwaKyvWoKk1/KwO2/CIHhS86t01ABUf/tJI9WO7qGPsAcFfiuDMOydRMLne6O/Jqo0QRu8ai1BoMUCZhtEczsJkr6hXtQPRvN2jwSPWNLTHBXYadB6WsE/op7cOwtFR0tEsKk/rGPn3FMDrx1fE4sCQJKLtKtICdhQ== 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 HE1PR0401MB2282.eurprd04.prod.outlook.com (2603:10a6:3:24::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5102.16; Tue, 22 Mar 2022 09:53:31 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05%6]) with mapi id 15.20.5102.016; Tue, 22 Mar 2022 09:53:28 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v4 5/8] mptcp: add mptcp_get_subflow wrapper Date: Tue, 22 Mar 2022 17:52:40 +0800 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2PR06CA0223.apcprd06.prod.outlook.com (2603:1096:4:68::31) 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: 227040b2-f7bd-4987-1b09-08da0be9d0d5 X-MS-TrafficTypeDiagnostic: HE1PR0401MB2282: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: jt892EcJKBPsRH6bLaTNqBsS3eXCp/Nwx754ruu0B9W32U6qAf8IwQw3FTgFnCLEJjYxWpphDf6jy2vVC5QD7fjci0GCSeN1/Q88WXT5OM2o7ZJHkTnQ8iVGslGkVZDLnSIP/uIkaWRUN2POba5X9EGwgtgzqwms3qGdD+r7efOq/OqN0eWl+Wk9lpOqLCKa8KRziVg/M397miJza4DGkH6fJTHtDqYadHirxX843opPE80HFB4QhA3YzAg6jiTJiKaktK92sD5v8NilRVZY5+m+gyHBqRhNZvM63oUyQ1quDnrL6Wk/OKypqSGpAifpYZG488tcfXC/GBcM2OAF8l7rvbqwkGg/CKpVvHnUlo0o4nvjMKGH02cL9vgbDCozRMnSovQocD+2LJIw+VULPN64dWZLlXTRTVlw6BaBMpvDuG8Ic8C8CNPbm9A+haV1gPl7Ps+5XqK/fVjzNgttNt4/D9DxJ0dpVrj0asNYathSvNFsKAiAEHa7ONrdy23LazXMcNYZ25qI6pFFUqh9udaUs+FT2AJrVfSImew794gjzI7gT4G+BV+bB8OSILU68xg0u/CbViq8hJNQRrEpAjCtsMaUzehtHGWB9OzICXPSF80KFm0j4PwBnWdLWK2H4rtXMRdiRPPNsu0rKvY+PFhrRXVlCVFwaBNsMhbWqopaedALmuqeK/R3FpEpFghV 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)(8936002)(316002)(6916009)(4326008)(8676002)(66946007)(66476007)(66556008)(2616005)(38100700002)(86362001)(6506007)(5660300002)(6512007)(186003)(26005)(107886003)(2906002)(36756003)(44832011)(6486002)(508600001)(6666004)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?PaqzmKlXWq90ymuUE/0P0FrZmMVpxsT1AuHZ3fZAiTZl4npEwuq9n/k5Zsbo?= =?us-ascii?Q?nyLhQqOq47S8P7CuIxeneHTsL8Fa20HTeEJsi66qtggj72V4DrEjlbLbyey/?= =?us-ascii?Q?hI0WTdNUqrazfwOArdi9pXt28g4072CvniwatEl33jvPQArcu0BIZDAUMQMN?= =?us-ascii?Q?S9w9UAmve0Y5J9UUQ6n5KjbtRw78Bhph8pA5yH6sIjqcppf3YVeBUucEUheL?= =?us-ascii?Q?LxOvbB7iMw1sK6mhL6e4agqDrzW9XWFmHEsXzaJNeKCfEEhojh5lYEPdKCLb?= =?us-ascii?Q?Y02nvcVzizAGF/q7FDxYMt2ioT0W5AvxeHlFwwb7JM0d3biT2a+mHNXd7fS2?= =?us-ascii?Q?WOUyR25DRh6XlSJjnJr86e5ZpeoMqt5N7b83BIhUMN8JfiuhFM1bFQVows9V?= =?us-ascii?Q?P+RrA1uQPgoPImVNLkOKns247PSrobsn56/+0UXbOyy0z3yjmNnBPjf2Esey?= =?us-ascii?Q?zU4yTi528hwUUBqmmXg6QCihyniZoDBstkbFg7nhaz3kPR3UR54PvlGnokyW?= =?us-ascii?Q?rC8TJY37UREv9xpS2660zUHKBhepoMVrrNhI8WLY8BemWOXZjhqy4OG9p6z4?= =?us-ascii?Q?230LFhq4eKPV6ZCRpRbYqzH3UWBrv3qu/N2uVri78PwjLoT4aSORH4Xz2lNa?= =?us-ascii?Q?1ebQ8Rc96qpg16RfjRUBVv2ixIEQEumpJECLwBPg5jJiM8pyWJi3/8eY7+iX?= =?us-ascii?Q?rjFYTKPbmnt1dX7WOrD5zJKwfadGRpPNbkejbPnkDRV4CVf3ZRy1x4dZ/3TQ?= =?us-ascii?Q?t0qcdS2WmVHTZztu1xfhALDg2BpvkIUQjt1WqzsRd1B/T7OYyfOPgI/nrt4u?= =?us-ascii?Q?SMB/6GL4LCG5U/0yAyV0q6WATNY9tX6Yk0bMB1omoLPCUwqCieURTgBOTC8T?= =?us-ascii?Q?0FFh1RdpQkJqZeNX71Xx/E7RUYVq2VQeUbqTQvHVvmatZV5/OuVfMIhIhCNl?= =?us-ascii?Q?Q+zqW0kcGoxWm0iQS3ssOYUVd4yOGdeYz2IdUTBTfgA5uzK9M3gtyN78fVgS?= =?us-ascii?Q?EIhMM3/WizytyXeM3jJXxHPlY+DhlsMMB38V+oYE9UqHW/vvBWL8fDSCXZbJ?= =?us-ascii?Q?QnG6gtZWvqP1oknBodac+FWdTrOm0L5EbtQKdm2biLUdh3VrIhnrlXV66UM1?= =?us-ascii?Q?avx7lR+y0OiHiQ+XgvCAzN2RYsBrHjXxfaE/M5Tg0iTL0xy4MFdXFQ6jtXlK?= =?us-ascii?Q?9I1fo+riVvDRyDINNoD6d5hLT04mEeUw6URxLujl4rpQjsIcCO1Gwxw0KBeM?= =?us-ascii?Q?BhBw5m5ySfio7i1ESUko2HPyOw/ZZwnscXvteqDcZZusFK5/WSg4ee8A+Tfe?= =?us-ascii?Q?ln3KDq9BN5QLhje/1V8qtliWyyLaAQG3T/3vHGTUEO0P4u/BSvHOu3CCC8AI?= =?us-ascii?Q?aSa4mgfE0Akw3BdHwBahnG7QEPl+hPPQfU6bXoEt94sUa3JoeJeclcwkDX8y?= =?us-ascii?Q?48FeT/g5GcT7QZ38Wh7DNEp9lK3pxVTOHCNB8DOaqiHkgCJUi7IoPw=3D=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 227040b2-f7bd-4987-1b09-08da0be9d0d5 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Mar 2022 09:53:28.6196 (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: uDsFoN3iwPHmp5NsUgLmx5mJ30XdfPi2TnzY+O+AUdM1snFF+3QWEzDewDANQDeBzPAa4JgjNZnG3YyfwQ5wEA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0401MB2282 Content-Type: text/plain; charset="utf-8" This patch defined a new wrapper mptcp_get_subflow(), invoke get_subflow of msk->sched in it. Use the wrapper instead of mptcp_subflow_get_send(). Signed-off-by: Geliang Tang --- net/mptcp/protocol.c | 6 +++--- net/mptcp/protocol.h | 1 + net/mptcp/sched.c | 7 +++++++ 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index c892e3b6b65c..22be279c8391 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -1567,7 +1567,7 @@ void __mptcp_push_pending(struct sock *sk, unsigned i= nt flags) int ret =3D 0; =20 prev_ssk =3D ssk; - ssk =3D mptcp_subflow_get_send(msk); + ssk =3D mptcp_get_subflow(msk); =20 /* First check. If the ssk has changed since * the last round, release prev_ssk @@ -1634,7 +1634,7 @@ static void __mptcp_subflow_push_pending(struct sock = *sk, struct sock *ssk) * check for a different subflow usage only after * spooling the first chunk of data */ - xmit_ssk =3D first ? ssk : mptcp_subflow_get_send(mptcp_sk(sk)); + xmit_ssk =3D first ? ssk : mptcp_get_subflow(mptcp_sk(sk)); if (!xmit_ssk) goto out; if (xmit_ssk !=3D ssk) { @@ -3074,7 +3074,7 @@ void __mptcp_check_push(struct sock *sk, struct sock = *ssk) return; =20 if (!sock_owned_by_user(sk)) { - struct sock *xmit_ssk =3D mptcp_subflow_get_send(mptcp_sk(sk)); + struct sock *xmit_ssk =3D mptcp_get_subflow(mptcp_sk(sk)); =20 if (xmit_ssk =3D=3D ssk) __mptcp_subflow_push_pending(sk, ssk); diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h index f7acec409607..16e7b9114b56 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -615,6 +615,7 @@ void mptcp_sched_init(void); void mptcp_init_sched(struct mptcp_sock *msk, struct mptcp_sched_ops *sched); void mptcp_release_sched(struct mptcp_sock *msk); +struct sock *mptcp_get_subflow(struct mptcp_sock *msk); =20 static inline bool __mptcp_subflow_active(struct mptcp_subflow_context *su= bflow) { diff --git a/net/mptcp/sched.c b/net/mptcp/sched.c index ca8d204e476f..ba3e5497f183 100644 --- a/net/mptcp/sched.c +++ b/net/mptcp/sched.c @@ -11,6 +11,7 @@ #include #include #include +#include #include "protocol.h" =20 static DEFINE_SPINLOCK(mptcp_sched_list_lock); @@ -85,3 +86,9 @@ void mptcp_release_sched(struct mptcp_sock *msk) msk->sched->release(msk); msk->sched =3D NULL; } + +struct sock *mptcp_get_subflow(struct mptcp_sock *msk) +{ + return INDIRECT_CALL_INET_1(msk->sched->get_subflow, + mptcp_subflow_get_send, msk); +} --=20 2.34.1 From nobody Sun Apr 28 00:41:28 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a17:907:7811:b0:6d8:2910:9a8 with SMTP id la17csp1250568ejc; Tue, 22 Mar 2022 02:53:42 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwMxJoVq/7FCspdi1UqBwPmbVANUnWXv/qYuaFaGHGlqlYXLyXgybKjJukxedN/QjPoT9uy X-Received: by 2002:a05:6a00:140f:b0:4e0:6995:9c48 with SMTP id l15-20020a056a00140f00b004e069959c48mr28212503pfu.59.1647942822522; Tue, 22 Mar 2022 02:53:42 -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 n11-20020a63a50b000000b003816043f02bsi15216515pgf.544.2022.03.22.02.53.42 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 22 Mar 2022 02:53:42 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4347-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=WrObP3+6; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4347-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.69.165 as permitted sender) smtp.mailfrom="mptcp+bounces-4347-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 EAC4A3E0F29 for ; Tue, 22 Mar 2022 09:53:41 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 15ED0A47; Tue, 22 Mar 2022 09:53:41 +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 7FCD5A31 for ; Tue, 22 Mar 2022 09:53:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1647942817; 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=WrObP3+6LeVSZi4VHP93gI9VwRRQWFwM0A3T20aekE5ppxa3GFZhs22i6etU3Ue/er8bxm YhF4h8FTtuu+IGAAdSJLmYGSwFzjcbbp1H42+ApUYFnqyxLEfrZ9vZRmPvS3yQdw8xZBeM K+TGXnHYeMcqkWx5k/6iKGYpP9tkMT0= Received: from EUR03-VE1-obe.outbound.protection.outlook.com (mail-ve1eur03lp2056.outbound.protection.outlook.com [104.47.9.56]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-10-fj5OvCbgNZq-U_kqvYHS1g-1; Tue, 22 Mar 2022 10:53:36 +0100 X-MC-Unique: fj5OvCbgNZq-U_kqvYHS1g-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dMloC4O+ikEG2BYY4ntKcYY6rS7l04j7WmchLoGyQ0gc9wISBRYwydqkfw/CjK0zkW7h9bzHUoeKThEN3KakNnIaVqp1AnqmZLaCkSkS8z9tXkbQ/g+cig0DCc1Df3IT5GEH1hgqguWK4VEpL6yH7mRS72x70pngNLe7MH5/LDWEeYpycdyVrPbV/mmkphpQx1oNtsdovOfpl7ppbjzfESy1sWNyHqKIRoNUDR0YS4jfwD0h93cWvr79P2GZB34kQFEWlhWPt4A38OAUXLyAX5CLz3N3Y69HzYi9cHfuoZ3oGX3B4DsF/LoWdxC7gfPx1kEWQG7iH9iRPciiHwjieQ== 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=oPueoanzCdIxMpiBSekbUij5BuCwW4bnyAB3RPitgyuSpZBzIeLUC3lHCOtDlzUHJ/uGQVLIF05EHbm0FVnJ74Cxna3zMzoeOXsPU3vZcSgcUhYx8RpWm6nJ8fTDw8vE2jY9e1vQSHEIRPGQUl62RMb75W9fAa1biFDkV1GxokaE4VLZ2STS601DBDsaapDuXQYwLRcMsY74dlU0lBs7/JN6uX1EpsLtSK7087a1hGutVRKKQG2U7fQAIiWsPYIPkvAWLJkcRLpJ6qhBr189dwSBc7JchQvKeixz+A87WvnVr6Kn7NSdk/2LyftL7y2EDF/t1rPnErea8jGpwoCigQ== 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 HE1PR0401MB2282.eurprd04.prod.outlook.com (2603:10a6:3:24::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5102.16; Tue, 22 Mar 2022 09:53:35 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05%6]) with mapi id 15.20.5102.016; Tue, 22 Mar 2022 09:53:35 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v4 6/8] mptcp: add bpf_mptcp_sched_ops Date: Tue, 22 Mar 2022 17:52:41 +0800 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2PR06CA0209.apcprd06.prod.outlook.com (2603:1096:4:68::17) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 41049ccd-7633-4bd0-2291-08da0be9d501 X-MS-TrafficTypeDiagnostic: HE1PR0401MB2282: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: r8vPYz0MmAFgr3EH3zjTUfZStyl9Nrk2bBQfPTCR2PgyBMzzsGjxccdWsuqcxBrICOiW2CUCF1nmg2LcC3gfKmFDvYjm5ruqfslQXlIRGaE0Pt3xsbmPXepWf37ZKONf39YAnHH/+XtXWCuZoSRxOul9xLSukiU1SnAVQmAiCyUTxJIrTuBJo+8c0PDptq7N+6Fa960hCeKiPlBFYrpZaCNMocP+8cChiidm46oXcBoOYCHCbPtoko5dxTbUixYTRuy+YR5A2NDJ06E9Y208PajgSeWN5tsVkcyw6p4Ege5wmRpqvx5JoBi1zxiuzx0qPY2G12VvG+rBd76JhDMRgzK0Uy3orYsaPV6AGzkrrd+koiNXaHsO/SBSkZ+VAsFNYB34bkkCh6RJOTLrbOO0UFflQQh22fJ1CUCTr9wtB968lahc6FcoFXY5MuIXN7i2iM6A+AdogawqrcJPHDRsGixjpsSHbTyGnpr48zZi5C9xPug1pC+YSdGrQH6f5WCbaVx1IV9e7uDJfbefLcEUGDreUWBnN4s3VQTFi6ximG763//nqBOePqOCyN0RIw7ChX00rWk6WadARjBjFi6ZYjiB4bpbslArsrpZqakfbOobPRivD5GQhu5+ayUWANQPutB77LllanYN7ar3483lwSd6PL6+9zaOLp6Q9Cxg1iDEw38CBwxCKPPZfcAPC3K3/mJDMtiFCgPhydgfngUvYw== 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)(8936002)(316002)(6916009)(4326008)(8676002)(66946007)(66476007)(66556008)(2616005)(38100700002)(86362001)(6506007)(5660300002)(6512007)(186003)(26005)(107886003)(2906002)(36756003)(44832011)(6486002)(508600001)(6666004)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?RC4l28XJGMnKi5szm+EL1JqLuvTpsPYhkh8Q1QoVULMFNO2ONB4e2eOkkINb?= =?us-ascii?Q?3dLMagTR33vNe9XonIyw2J+GPepDg9+h661vaP/EC+0cqs+4NouUhoRVIRit?= =?us-ascii?Q?dd2nj6ygjFs5wEC5cN6n49bPMHbEyZ7TegzTQ0QP1JoOUBx2wE+5cf38ml47?= =?us-ascii?Q?AGShgj44jTOIQHaO4pFSjIAmKQOJExXeIBf6kZuBOn9NEAui2jidh0WXQg9G?= =?us-ascii?Q?PiGNtS+VW9bOfqLpWYQXoUVZ/xDvIILJm3luADubP/Kfw1h8R6rK+9eiaTT3?= =?us-ascii?Q?2wzim5SJzBynIdioFMUswII1jybddUW5mNPI2dr4QHIoKW1FnIJIW2WK3+GH?= =?us-ascii?Q?dYWjFAFFFqh7yBBxPQLR3wX5+r42j5CcCf7kWo4JYxy81o2j1X6pgd4CsiUY?= =?us-ascii?Q?3py/XkxUbIdaSB2b2/gO33Jpd1BTx5jvZah2MFoF1tcg8PKyEf1aZ/v0bbzF?= =?us-ascii?Q?uyv8bnUAwNM8LrZ0i0QPGuXXTgS/zWBs2jMjY+/cyPdHuj86MVb7BPZ26gIO?= =?us-ascii?Q?rhMNwtXUfbM+uQWm3T2hW0MnYdDg/Ts14KBbNTdF58SFY/XQC18kOqXXDOY0?= =?us-ascii?Q?g6oLZP90xcKKPL7S4g+bGHEHorWgdpopDDoAbsZpt4Vr0v4qQcbLP7hqiXY1?= =?us-ascii?Q?URH5z4zCm3ueCUa7MaxFOP5w2c0PYZRLJ8JASoL1rlcuVlduNlmVkw4Ug6q0?= =?us-ascii?Q?JTQcYyVWlK0KymND9aHUNCzZHiatW+itWpCR+GtMAlKNH4hlcnm46s76KloZ?= =?us-ascii?Q?dSPXJ0CYp8CuC5gs9DY/Tz9b7ncUGNM7QKa+6Cdt18xd6WSgrlFQOqZrEkPT?= =?us-ascii?Q?srWRa9bYWwmTl8djA79K+l2cui/wuPiP7mDIjGn4ncqv4sBrsl4AHMPeDD6N?= =?us-ascii?Q?tq4AL2H3oSwVSd0dD23qX42nxZOIh5hI/FtLnEwJB+I1EBwL7Dl25VsUd0Ag?= =?us-ascii?Q?0ZsvI8H3JBO2KuDNhFFg2uTw9gAMsAxcSsGxRCz5mZjfXOxX7jOVk8PJd7Xx?= =?us-ascii?Q?voylgQJ3EaoTIOykbAWUxrn9qSWqCSBfHjqCuHnR+nOLpWAtlOo8EYM4+jun?= =?us-ascii?Q?kr2yoft/+lpkQ9VTjl0Qb30cXkP+B5awAfqH8tygnQUj1wvl9u0f1UxI0B2H?= =?us-ascii?Q?nK3nk77AQIlUEY7SaaCsw95E3VbyBj2XbUm6ARAaEIY3d86IjKawee8bWx26?= =?us-ascii?Q?gWQ+x6dysxvMF/cj1HHZdik1dJULrkWvVk9lBRHZlXtrn2UcPNidVrXjVXlr?= =?us-ascii?Q?GI/xPKQimYgpALs6LEa0mTz98FK/XJWW60N8NqrgGQQtxM9lx/EzUIQmfOBR?= =?us-ascii?Q?kDkOLkojrKjXOFZGHKvcM/cIyJeA3jCmhC5d9KLBE/lgWxVdtLOxCr/e+M7A?= =?us-ascii?Q?G5471BvH0N3srF4YoEbJwdouw9y/7YDcHenptVBbctWSQD79oTk6CmK0UW1b?= =?us-ascii?Q?x8sp1RP2cU24fz3HfmR2mNOmG4U1mwu1WOtugkhrkhrkOcFm4yqSWA=3D=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 41049ccd-7633-4bd0-2291-08da0be9d501 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Mar 2022 09:53:35.6972 (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: 1bdLQlc+4XM2veBSX9YzwbWO2PF8ZEo8b6ROAOtsRmjr07ennGP7lqw+tFrZEWdBbjCbaWwyJ+/7yJImTBDeGw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0401MB2282 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 Sun Apr 28 00:41:28 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a17:907:7811:b0:6d8:2910:9a8 with SMTP id la17csp1250621ejc; Tue, 22 Mar 2022 02:53:53 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwGqAciiP8ZfqzBFNZbUObQSb3ExGWm3Gzh7GCylwNecQ0EbDRDkF9GIzeTHiMFvcq25uT8 X-Received: by 2002:a63:f966:0:b0:380:5d50:ba72 with SMTP id q38-20020a63f966000000b003805d50ba72mr6486960pgk.403.1647942832828; Tue, 22 Mar 2022 02:53:52 -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 ca21-20020a056a00419500b004fa3a8e006dsi7561585pfb.292.2022.03.22.02.53.52 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 22 Mar 2022 02:53:52 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4348-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=S+wc2m5F; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4348-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.197.195 as permitted sender) smtp.mailfrom="mptcp+bounces-4348-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 ABA501C0A9D for ; Tue, 22 Mar 2022 09:53:47 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 6AAA4A47; Tue, 22 Mar 2022 09:53:46 +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 C2E87A31 for ; Tue, 22 Mar 2022 09:53:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1647942823; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=el14mbDNzMQKfIz7X8FmdkOL32gSiWivSI0Gycj16jY=; b=S+wc2m5F2qCnAHatxOKJolTezWtjkC37uQ9h4IQifYQVbQCJ8wkXSCmJwCIPdHj/TdF1nC 13JQ9c0/XZnv6hFH0hWXRCxEwWxOBFMYgRm8w7nIQeJB1FM5E0c2lcCtn+jyjpRGKRiiNd X+U/XQ4H8zFZCuFQ6ErrLH2t9uAegXs= Received: from EUR03-VE1-obe.outbound.protection.outlook.com (mail-ve1eur03lp2052.outbound.protection.outlook.com [104.47.9.52]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-34-xHG0oTYJN5KVNEuNIKwZcA-1; Tue, 22 Mar 2022 10:53:42 +0100 X-MC-Unique: xHG0oTYJN5KVNEuNIKwZcA-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=IhD5+XFesurqdpf83iKs4GPd8PNaPpZXlQBk2oC8yjjHd8QpgVImlW70eNJlhcgbvRhO2eueSrWwlk48kxGW/1R5TXOpY6LJu1u9B8oJoUao1ARG179vGO4a2rtenLgbEW28ZtRviCcJGOBJUpAoc8tpOmlFVyYNtlg5zbKioKWCsoRPLKaOrYcMEUoIMoIp6mVXjez9+8NWQG5q8NbT15Uq3EDg7en7iOW4WXJNhRt8Ec2WqqjacZXjhArogePAbuTDaqY6m8Oxco5892ADLgxXb1BGBsKKIzmoLJNGT6i0p2Uid7R6uL4G4nLtOB1xlropxPOWMn1luiKxha3e/w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=k5FH9XtcH7HyTwHY5I1wHeCwYLtUvyGzKzyt2JprDa8=; b=il8N0mmP/Z3I0e0GZh1AJX4Cs8La4lsvXU6JweaNGihI+H6g68jx9BVfWf/4M7U1ELBXsPdF3oS39JTGmeSFAT42a2rGcOfBCC8TssGE6a1tROMX0CG0ygPWjdrKK2aPKBF4/RUr9eeLMuzqVvCqBJXpjcY75y8QHmVr3goiR90aRuCMxkU+G+Ui1dUB2ZH6M0/9gkz136582hmPL1KN1gUcOyqY8S0bflMeK2DUXPbm2bsJQOy03X4pnsYFBbKjmZwvK/dQSzueRmtvr/pvZ829kJYmffiz0YTlnW7SriWTsgujnBD6sGF2eI0s31rDWMj44GLL8EHQDbXnXE3tKA== 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 HE1PR0401MB2282.eurprd04.prod.outlook.com (2603:10a6:3:24::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5102.16; Tue, 22 Mar 2022 09:53:41 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05%6]) with mapi id 15.20.5102.016; Tue, 22 Mar 2022 09:53:41 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v4 7/8] selftests: bpf: add bpf_first scheduler Date: Tue, 22 Mar 2022 17:52:42 +0800 Message-ID: <3b90b45702250a34e2a7942f7a9acc2c487057a6.1647942374.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2PR06CA0209.apcprd06.prod.outlook.com (2603:1096:4:68::17) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: faaaca5f-b13a-4842-4d07-08da0be9d848 X-MS-TrafficTypeDiagnostic: HE1PR0401MB2282: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: JBlpTbVCoJwpv3d7oGsJ5wS7EPaEDWlhy5LuDC3tcYeIVIEEeHqu13QH6YjNDMl8CJ4Ld6L2RPIIm9LqXtPHdcE+W+BozV+P03j2gD2wnJd2UZC0iZWVytgepWfdJ7G/5yMj5sNwKWGQl5LTFvM22tDU52eZO1XEkgsM0JRyJ/WRFx4a5apkbeijrrsztjbcDMYPiq7CBaVZ0NW9dhBr0fYMvmuGftuC4Ln7CXcQdDpbbXyoEfLVlbW/IJDxK1UoHCsyJvgNuO+ThYsdz30HERH0z4ow1QDFCIoB1aDoAEz5bJU3OcvBr+rLuZYxsDQfHMGgTFghHiIuYUnZCwiCwPHlEzeD5IYgdiCcrQVfLswhF2onZ46HoqZ3uKsLbtu68Kx1IKYi7rTbbe81A5Rkjx8MZOBkl89uiF7+ZFUSvy7Hf04zncVlWwBdBjyKIXBFXpj9NHoxrKl/MpCEREy6tN4bXH8z2xy+e4rseaA4UQYubLSDDlApnrdr8gQJ2Ma+Sk0tnMOaW9XVjZrU2goi1CFZ1wj5MA+oVcWLYBJbS7TBQ/Yk8fqf4IWd27yyHGWjkOwJjy4Dx9PPVgOLSD09POJsvPBUW2Uhu/9zrfSQi4JX6/Gx6L4oh/x5HsyoFM+FhDtHGA93MqK5BY9JCQ8sXgM61BhRnOMS03yGB86y3oXjpnnUgx2GHQ+tVSV4uPex 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)(8936002)(316002)(6916009)(4326008)(8676002)(66946007)(66476007)(66556008)(2616005)(38100700002)(86362001)(6506007)(5660300002)(6512007)(186003)(26005)(107886003)(2906002)(36756003)(44832011)(6486002)(508600001)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?cQPLzF40atNglR7HPBWDWCv54451l2321sYoyK4oXIHOgMXpASgdVq75HDuL?= =?us-ascii?Q?3VyK2kZ3yY77j9HZrOoJLZ2Q1+ineJ64j5Ftg1msV7yVXDDvwyy25XOq+Eal?= =?us-ascii?Q?s5RQzC8RlvPlwDOV6pJqQqGG1Fm0R2CqByUeewDRRpk31qL9HIokGjSNSQn5?= =?us-ascii?Q?lQjbcxb9UOuwEfbn+ljR9NdZAiSokOMNlwdWwlGuOI0n7PFP1zL/kRtXttMi?= =?us-ascii?Q?Vz5KV6hgf7ihXonSmxx0w+tDkTg8xbx6qTdLbT04ct983KcNFQAw3XTHZa9S?= =?us-ascii?Q?JSK8W+2QF4/JZRwyTpj1QPoo2OTLvEbUOaU1Fj8Y+mm8+UU6hol0BRkADOCn?= =?us-ascii?Q?WOGUv8U8DqxF3ONr8fxeQH662pWk5j9uv7wfGKW7HDmpMdHdvtTySd5Wq5Lr?= =?us-ascii?Q?xrhS395xap2tafjXOM7G4Sr+VJh+fIfryCz8ToGeKpEafaAWtbAeFXhHHd4J?= =?us-ascii?Q?G5TDRqAONzOfVTms4Cv1pgY8bpeixq6Z1mU83Wh6LcUYd94+feWCXtfOeEGX?= =?us-ascii?Q?PEXIsKyJAIKQFpsEU5Q9NSNb9US9yIEQNKXomE0xEqMPXps5dwgeR2UEoc9D?= =?us-ascii?Q?TRkpWJ7jCRxAv9839yvzWLwEyH4iEO4qhflzOIlbV8PLuU/xmX+cHBu1ByoT?= =?us-ascii?Q?U3kbYOoSI2SdEZE2a6bzvP4QykptFAIBccfQ2heuZhopLHb4KHPWmUVNY9wG?= =?us-ascii?Q?Pi5XgH3+iTyaRDnovIndkZP4gTUsJ0uF2mae8ezHL8upaMuLIAmPv4oRHRBp?= =?us-ascii?Q?DqDL1czyEy0f6O9R5jeW1xkO28Q6UOhy+3MWg1RY2AsS5DHXRFQOeMYts7l9?= =?us-ascii?Q?YJwISBccf0E9CS+DooQTSKPQZu0ZX6mHcw/UK/yfmYvad/61xKMa+bhoQtK/?= =?us-ascii?Q?g06oZO5Ltn4GQN7PAwIls9vEWjo4LS99wA4CnJSY7I10Q3l86sbI6H2HPWHQ?= =?us-ascii?Q?whNginOowNtJYP36b0llbyi7QOlt9GJsbvx3r0LjsuDhZMbVgHKw7KIX7eh7?= =?us-ascii?Q?NVWmXY4biJk1PgJO6omcJT4LZGzN8WAZs4V9XkpzPXKs9+pXw1o5TzDY7BPa?= =?us-ascii?Q?8A3KMdNo+96DqRrc13TywacnNJ7mHBPfcGeHA6cCf81NDHUv4WIXtcYoqYir?= =?us-ascii?Q?jiHeTdvfPdP6vnRA3OCQs5RFgB8hRpJ0kqHXdihYcTKETxr7UjKgWmcnWjNK?= =?us-ascii?Q?wq4+4BaqT6l9a9vtbrfWsJYNU6bNPfT9H1YyQNL4LFK2slrHTB9dfFgg/JzH?= =?us-ascii?Q?+djqqMazfV08XUGQ0fnAVEskvvi7BTx8vnGD05YzfZ+bWZJMr/wR/IPRLESh?= =?us-ascii?Q?s93ogDywWhyAGIdQlsHnmBtTX+hTyPRX22/9eQi8d2oP7Bb+tpGyChn4h+HP?= =?us-ascii?Q?DyDN1fKzyOU3+Js7+bmU8O2dupcY/1uPbz5JxFsh54jbAqB8Wg3bV0T6BoTB?= =?us-ascii?Q?YFWAM0dW7Uq0k4yloIuQaO1KjBJRffnROa3OJyb2HfYHrE9X6TZtfw=3D=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: faaaca5f-b13a-4842-4d07-08da0be9d848 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Mar 2022 09:53:41.0717 (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: MYzALEd1Ay/rdTA+6eyMvJOzciO7kXZ0b+oQDHmP9Ey0kSuAKsJWSoShstt3XaootWL+v1j+S8vhuoRKkPhq3w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0401MB2282 Content-Type: text/plain; charset="utf-8" This patch implemented the simplest MPTCP scheduler, named bpf_first, which always picks the first subflow to send data. Signed-off-by: Geliang Tang --- tools/testing/selftests/bpf/bpf_tcp_helpers.h | 12 ++++++++ tools/testing/selftests/bpf/progs/bpf_first.c | 30 +++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 tools/testing/selftests/bpf/progs/bpf_first.c diff --git a/tools/testing/selftests/bpf/bpf_tcp_helpers.h b/tools/testing/= selftests/bpf/bpf_tcp_helpers.h index f92357597e63..5bb21b24231f 100644 --- a/tools/testing/selftests/bpf/bpf_tcp_helpers.h +++ b/tools/testing/selftests/bpf/bpf_tcp_helpers.h @@ -197,6 +197,18 @@ struct tcp_congestion_ops { void *owner; }; =20 +#define MPTCP_SCHED_NAME_MAX 16 + +struct mptcp_sched_ops { + char name[MPTCP_SCHED_NAME_MAX]; + + void (*init)(struct mptcp_sock *msk); + void (*release)(struct mptcp_sock *msk); + + struct sock * (*get_subflow)(struct mptcp_sock *msk); + void *owner; +}; + #define min(a, b) ((a) < (b) ? (a) : (b)) #define max(a, b) ((a) > (b) ? (a) : (b)) #define min_not_zero(x, y) ({ \ diff --git a/tools/testing/selftests/bpf/progs/bpf_first.c b/tools/testing/= selftests/bpf/progs/bpf_first.c new file mode 100644 index 000000000000..3ae5c1eab5f5 --- /dev/null +++ b/tools/testing/selftests/bpf/progs/bpf_first.c @@ -0,0 +1,30 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* Copyright (c) 2022, SUSE. */ + +#include +#include "bpf_tcp_helpers.h" + +char _license[] SEC("license") =3D "GPL"; + +SEC("struct_ops/mptcp_sched_first_init") +void BPF_PROG(mptcp_sched_first_init, struct mptcp_sock *msk) +{ +} + +SEC("struct_ops/mptcp_sched_first_release") +void BPF_PROG(mptcp_sched_first_release, struct mptcp_sock *msk) +{ +} + +struct sock *BPF_STRUCT_OPS(bpf_first_get_subflow, struct mptcp_sock *msk) +{ + return msk->first; +} + +SEC(".struct_ops") +struct mptcp_sched_ops first =3D { + .init =3D (void *)mptcp_sched_first_init, + .release =3D (void *)mptcp_sched_first_release, + .get_subflow =3D (void *)bpf_first_get_subflow, + .name =3D "bpf_first", +}; --=20 2.34.1 From nobody Sun Apr 28 00:41:28 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a17:907:7811:b0:6d8:2910:9a8 with SMTP id la17csp1250632ejc; Tue, 22 Mar 2022 02:53:56 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyWrqVqkieR7lg4Gh1ZUTB80v/maM3kzyCWq0UJZw2soTH3r/zF2KYSvJPKZFjHH+u7jtLm X-Received: by 2002:a17:90b:3502:b0:1c7:2920:7c5f with SMTP id ls2-20020a17090b350200b001c729207c5fmr4023489pjb.89.1647942835840; Tue, 22 Mar 2022 02:53:55 -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 x204-20020a6331d5000000b003816043ee35si1922236pgx.42.2022.03.22.02.53.55 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 22 Mar 2022 02:53:55 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4349-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=aYJR8MGc; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4349-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1:3600::1 as permitted sender) smtp.mailfrom="mptcp+bounces-4349-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 2942E1C0B19 for ; Tue, 22 Mar 2022 09:53:53 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id A89FAA47; Tue, 22 Mar 2022 09:53:51 +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 49DA3A31 for ; Tue, 22 Mar 2022 09:53:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1647942828; 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=E875lApRqP3Nc3/AkZT1/6mDu5Z2Q+KWrd5hdc+1Ci4=; b=aYJR8MGcIkTWZ2WqDFh5geHj9t7m6BdrCysT3DHh0LknNlrI0hqYzZ2buvr+G1eGZa6mSU t9Eusz6CY5Dp0iVmEnCM4hdfxTv9534TwlChe9FcYuR7IihpLi932RG6gl0Ot+gtZOpq8r QWi8QtnZZQ/dHzva+SkdNuccSnL/rD8= Received: from EUR03-VE1-obe.outbound.protection.outlook.com (mail-ve1eur03lp2059.outbound.protection.outlook.com [104.47.9.59]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-25-8OhqCwKTP8iy9TNRkeOwNg-1; Tue, 22 Mar 2022 10:53:47 +0100 X-MC-Unique: 8OhqCwKTP8iy9TNRkeOwNg-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JTLcs/o08RemQZEon3GDdS0nNtkWGOOcVkJYELzTicLe4REDjBNtZ4LA2wfdPWABNWCr6X9jSP99JliByWCKg9TRlV/BKoZDCbc+h+iL4yDL33W6YyFjw0n4W8Kr4uagTNLvl2v3IPUZ36pwpYsxskbdGHj4F98iMdPexHsN4HUSIlHwBxEk7Gz78M0yaERVimSkBAD1KxkQEnBVJDn/sl/JmNGEig5ebJvMCxVaOi9RLmnRpeEr9k3EFlrYwx69F9sqd7/nLw46Hh1aEx793q+ufjbO/rg8e0jE/4xM8KVmWMEirHPPy56pkacS6iRiUgsQ/TodQaPIaKHXjxrOBg== 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=wB7fkOhFXhOBZIrH/S+dFMwu3Q3xu4/lQQu+SVCa7y4=; b=SH0KyIwzE9qS5uBQQWgzerDJLBGcdpzTmbrIYLDKwNBl2iWmJsBw6wNwdFwNoef401OhpEuW2laUtr6yt1BqghUmGZajKFfzUICDbi+MjzzvyOQNEXbvQdwYUGkxjiwNIRRXbHyF19242Qw/q39kch0cgu21lo3cp0jiQOaiyl/uG8hQV1az3rOA4zYEyIa2yWpjNM4AhAoIkGSUBhFxNtmJzDyLgdw2tQO0Ju1m9ih2z7ZrrOeEZrs+F2/CNGGL8GkjL7NnGw2zjHwe3i/naGkmvcjgYbtE775MmpXYf25fg8xs5Wixa97mJBEoUFVT3f5ktK/qbbWddUfd2/wNtQ== 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 HE1PR0401MB2282.eurprd04.prod.outlook.com (2603:10a6:3:24::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5102.16; Tue, 22 Mar 2022 09:53:46 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05%6]) with mapi id 15.20.5102.016; Tue, 22 Mar 2022 09:53:46 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v4 8/8] selftests: bpf: add bpf_first test Date: Tue, 22 Mar 2022 17:52:43 +0800 Message-ID: <11db7ce5a24b7f38ea835e5d286f7531b3a95929.1647942374.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2PR06CA0209.apcprd06.prod.outlook.com (2603:1096:4:68::17) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: e63e5f23-d67b-4a40-9e7f-08da0be9db96 X-MS-TrafficTypeDiagnostic: HE1PR0401MB2282: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: 7AUFiR3Cv+YjuLPvUrrs4XfD+0KUAl1zW1QDhWxv+vx99uu9czq+BVTmmf9Lj4JhaL4y9/r076ZzZXFsShL4gB17iEYvq2OIp5dbaM3EadxpDBTB3N1+kIVNkt/4ur433rgOBP2UxE/abobCF+lzJfNnbonXN6Pnw0QamIxCAOLDzYmqdVEkHzvmE6GCaWkxbKNF+KIBOPZcETUCno7mPhjXi/eS+yaV8VCfjwzWI2bCKod+fAidWyBLzTqfhJLVUE3hXA+i0agFOrnB+7w1MqpujiG5755P0h655xnyg6A/eJvIMjOjH0seNQkUTXc65mDTR5qD5kCWR6p3yOhUBlhJxG3GX1I4YNhRql6pcko6n6TdRLzuPbRhNVtaYffj0v84tUiziHjI8YbKz5Xnm2vMLZAVaf6vmbPvCPrETEPKBg5Fbw7PlL6Hta9/xWHNcYHZiPhW3cyfskcuitdclzN10C6qhhGcgGoAg+ZuxQSB7rSpRCqOf9k7F+U5ySJDnVz68wVy/Xr27srs4yWpHGETBdiJx8i+pGwmHB4ax5OVUEzX+xkgvwIl39MEcntW05muse9NsFLWndaApVzhjxD1vZSC3BQ8Z8qzdtLIlzYkVclbbpqJaLEytYP6PdUphyOckgHs/FVyIhL79gsS/OBeo95FExxiTc6XRFV1L1GXNSAd9R9oGVcbQguEiWvINAx2wqIgjW1VJjnyWgaPgQ== 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)(8936002)(316002)(6916009)(4326008)(8676002)(66946007)(66476007)(66556008)(2616005)(38100700002)(86362001)(6506007)(5660300002)(6512007)(186003)(26005)(107886003)(2906002)(36756003)(44832011)(6486002)(508600001)(6666004)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Vo1PzYjHoa7Qfu5JaW4nF/lniXMLBSp+axlXcvDEl8tFbZ2FEGnNfPZ3xi4T?= =?us-ascii?Q?yKnlxhU8Fnu17XgwlzeDhuQNDLKvleR5UFxD75fgkNqnYtevUudysCf8TsDF?= =?us-ascii?Q?sPS3vvwxcVzaEhvpSJBMcS8wxwvUT5SDn2CgafPLHsCO0x2XpOpbRj9E6hAK?= =?us-ascii?Q?+HHie6jH1to3F8AePT0aTckIzhu4rKEdMmQVN8MH4EZk3rKgC39RX/40jpDI?= =?us-ascii?Q?FWC/qzj1QYGIlapp78zXIeuGegjDVzeM2LIAwgFtSkUpY7F6/nHBvSi0Z3gf?= =?us-ascii?Q?fUg/0/ZwLIDV6ys0KaVrm/EWLyLJex8czVqfUqBANe59mC24p3RAbStT7NfR?= =?us-ascii?Q?MWOq4QHsagAGenQ7ZJ/QtgE86I7TTlZLan61EIhaEAGhplvOyHa64n2ZeZ5w?= =?us-ascii?Q?iYKKDtceBfVYqTcfHmExvbKKDezECZQG6wGoy9S4uUTuOm4W6wFQ2SrKvGZ3?= =?us-ascii?Q?SeLNz4wT8s1ix6zXJOWgp3LxP7L9L849fTrY2x1wrGG/mOog39IZ4eAcyQP1?= =?us-ascii?Q?/jRkjGLgzvaUD+yIID+dW2acWb01PdXiQgbeEEaXn3JMwa35iD4I3ZZ1ptKN?= =?us-ascii?Q?gDGqmHuD5IMhte4covFnUESNoiWGeD7wDOFmSKLWY++TTDzGcE9nhBz0KSKq?= =?us-ascii?Q?tlBeSPJgzaFWUUD6fxko7oHI9rO5J3uLQotHaBXXSVtisrtj/uZ2KukIypRX?= =?us-ascii?Q?hGkh4cUswerTSupJDJ9nM82tlRGAPchFtn7PE5CEyYN/rOWDVNpvbI3CizV+?= =?us-ascii?Q?v9M+sCqLem2GDdCEzf9H7npD6A/lN7chwsEI3vmIfZJQ/R/hamfIlfvttAzh?= =?us-ascii?Q?JXLL3yMDky3GY/KpOJhsjG+ylN7GYDjeIRGEnSWMzJQiBizrrGPIA/fGp8Hj?= =?us-ascii?Q?3+FVvJeUcCRBUiVc5xVCogu9fxkgr6ReIlpvBejYJdz3XeOvd3vo3mHcTrMZ?= =?us-ascii?Q?gPUAanQAUe/DiHyX0rxaZ9+ucEWzrHT8RXBhOF+AvknOczl2WaYfsOQABTgM?= =?us-ascii?Q?iJD+AHqqVIwci0WQ5KGUTsgSrwAifMsq9uf0M8fjd7vBCwR1ARP71a3iIUsg?= =?us-ascii?Q?NpKBPxcgFhSQRbMBj/AQ60EW7RCLAiwlO0vgK2yi5un/PKhk0sqREqtaQGuU?= =?us-ascii?Q?V53Jdeap+IJ1FBrC/og4sGTaYPUtsttpBy5598Wq0Vfmf9i6nhe3cdmzkYII?= =?us-ascii?Q?Pj6lc4BW3zy5nIp97KecnWqxyxchuuH81ucQ7Xkqwv0A4Y71O7MIEysq4If+?= =?us-ascii?Q?I9d8hAjWPaM2zlm2qlGxPznqQB5inqlzRCHYNB9mKZ9aHfV8mNzPM4M2VLr1?= =?us-ascii?Q?Ihmg1x1FKK35JDztDcFg8qg29IcPFNKYLbJlGdE8piRgUxfno7gW4flVhtwT?= =?us-ascii?Q?XN+2pwZIFNPYlcWbK9B1mXsGzGqdlOtRxUHdbj1zGMeFBI93jkDHOlwhQCgq?= =?us-ascii?Q?JMNRxEq6CKl/OnH/Uxbzjeh7D8chbI/VPAfJy0XzGQLOURYswe7urg=3D=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: e63e5f23-d67b-4a40-9e7f-08da0be9db96 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Mar 2022 09:53:46.8369 (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: odgmN0IOt/abFudB9EQLQh7GxIJFVRMN/vl143THtSvBS/Pd62HjYpGIfNuRIojuZgrimmRVwIxc6Fd7CeCtAA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0401MB2282 Content-Type: text/plain; charset="utf-8" This patch expended the BPF TCP congestion control tests to support MPTCP. Add the bpf_first MPTCP sched test in it. Use sysctl to set net.mptcp.scheduler to use this sched. Signed-off-by: Geliang Tang --- .../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