From nobody Thu May 2 09:43:10 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a17:907:7811:b0:6d8:2910:9a8 with SMTP id la17csp2190554ejc; Thu, 24 Mar 2022 07:09:20 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxAKdJ4C8RfaRjeX+qBvaLRuzl/TtHGHXUsAH67oaPE1qJNF/TTbc6NpXp16shLknFrz9ih X-Received: by 2002:a05:6870:2105:b0:dd:b1d0:6a27 with SMTP id f5-20020a056870210500b000ddb1d06a27mr2436356oae.285.1648130959699; Thu, 24 Mar 2022 07:09:19 -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 a2-20020a4aecc2000000b00324ad2c8f2dsi4435741oou.49.2022.03.24.07.09.19 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 24 Mar 2022 07:09:19 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4403-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=l6iLLr2j; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4403-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.69.165 as permitted sender) smtp.mailfrom="mptcp+bounces-4403-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 A72223E0FB0 for ; Thu, 24 Mar 2022 14:09:18 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id F06101FC9; Thu, 24 Mar 2022 14:09:17 +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 262381FC0 for ; Thu, 24 Mar 2022 14:09:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1648130954; 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=OS+xBdcyabfs175FcYvfO34l2fMm+VKqOp3H3BFjNs4=; b=l6iLLr2jL2u8KdZOmoSx9LdEfcYbnbRuIt2MAOfFTTVKqP0WDsHCGmPHZlBB6IwJf3tip4 76XrUUh5pasp+CoekYp6z3yMOqc0onLMjQaS8xlX4khnzvwrQzkj6TBAvYgOH6NpgfqyQJ 2l5ctntrQf5Pm/AYpIAi5mzGZIrs1kY= Received: from EUR02-VE1-obe.outbound.protection.outlook.com (mail-ve1eur02lp2057.outbound.protection.outlook.com [104.47.6.57]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-41-Ah3cEuUrOi-F8VIvvTmqjw-1; Thu, 24 Mar 2022 15:09:13 +0100 X-MC-Unique: Ah3cEuUrOi-F8VIvvTmqjw-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gRo8U0gxGgZYgZtJheOYd0yh/YtE9+hP1wfclSoXDIfBJjwJ/PppcOD2BLa98+pHmtFFeAvn71DFWDTZSh0kMUoXwH+4G/n1y6oXlpqqnLKDOLQ03nUqCNLFeHPv8roaYJflWAzUy/8N0PswWYXjSy1pANf8tv8otelPlB9XWd769gHF2xaFftjtZ+YRfar+wCETB/AZPaJcUdtZnXvuGYO3s/AVLpHdnml39BnGGxd6BQNAkwh3gNDNF7kohwKv6J4cmqZsAb4EN6kjXEMZqLpphejdcwzmUNf/GxiUlJDcavVOCXerz4vPQBX6HNRwcIpO2gQun+8HvUVf9W4+aA== 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=ZpMoOymuu6BW5R20otKBpVSQ983147OlMvaoQkbYoO0=; b=dPzM7n/6m5Ur9hltcBtOdgi5HgI+oaktFxLQKgKWY6NLyDGdbtl6PSzrDrZjVq65gjjC9KPrXcazhsX3n9c4c9dNi5hcc2WCC66s8aFDO0EJ8CydCy9iAd/+Dbp53P5mKLLc4bQ7vruIBLh7ZSsy5E3JFry1pf31BzAa5Ed8KAFrNUSWAo0X6VMLBxx28B94QoSjdhyR0Uxc3RNST2Z83+y8Qyw0gZBFWOAIigv8VQJnAQ1pdmNLLryXhjEw2Y2idyY8Vws2CHfeKXCjzVE4KN+eKg/q4J5mLu0oIDm7sHLrg13UEeX1gcPJQJdEQx9UpVNFM8nZxm4TE2e77P3Oaw== 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 VI1PR0402MB3616.eurprd04.prod.outlook.com (2603:10a6:803:8::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5102.17; Thu, 24 Mar 2022 14:09:12 +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; Thu, 24 Mar 2022 14:09:12 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH RESEND mptcp-next v5 1/8] mptcp: add struct mptcp_sched_ops Date: Thu, 24 Mar 2022 22:09:03 +0800 Message-ID: <4df8257d4783911e933bdf3a3ddcfbac1c9db4f1.1648130637.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HK2PR02CA0216.apcprd02.prod.outlook.com (2603:1096:201:20::28) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: b44da79e-2c17-49eb-287e-08da0d9fdf10 X-MS-TrafficTypeDiagnostic: VI1PR0402MB3616: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: 2Af0ySw2NZC+aYQjqReSfhHO/OXoTZkBvukp0kP0JnKj8LdXBQ6jcRG05RKBgpYLYEs2yYIADr6GyofQGXSi8m8BRfnoW1ZYfJp08Zdg5WbWoU1onuN3/TL+HhgMazHXfGJFWj3CjhwKVx1SjY0jskYkLn7n4SS7ScHzZfrviVeztW/6C7RkYfLxr/+vsKJZS0UIXfgunYwG82ua1epldfwwJYHHTHgBBak3hbgZL1lQVTzTxr7xlJhk1TUXz+ucmbwHnFXVbViL4brxo/Imvv0fP40HBkS1jTFmewMhSetFxn9pBe7C2tcxBWWW/akqPGOXH+NVBmyWO0kyyoQImCYQpaU/juGLx2EycAB9bOLXZJQ1ENVzyGEhdcRfd0RlL3sj7Oju3buQA5MKgXbL368Ldu6AeEclF046BnLXmHGMDoiaglVy0CmRxQ184VXQYT7Zv9l4Wwc6vrnSSMJc24R53Xv9sR2Qjgc1XGRg+LDk6meVY5BSzy4L8QVQahiOxBOf/SpBgrmLmOEQIWFwn2EGzmAem491Rxm+Oy+puwe3KE+T9mOqKpzSGh4CTbF/MUYlilWmlYtTX3b2v1i2K9sw3DHLfxnGlEB4KKqSRoxc2Zbs3TQO1rlXI9zRE26d+YsVmeLBPLd4fAOy0qFfcTjbcMpmvRcOq7NzZCQr+vb64DL/8AmTybG/bzrk3qwt X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:HE1PR0402MB3497.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(508600001)(6506007)(6512007)(2906002)(8936002)(6666004)(5660300002)(38100700002)(44832011)(186003)(107886003)(2616005)(86362001)(26005)(6916009)(66946007)(83380400001)(66556008)(6486002)(36756003)(8676002)(316002)(4326008)(66476007)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?lg0Iz3m/yR+6WMWDnm3IUJ8x6ql57tjwtMQ6x3+Uxt1/1vvSygCb3LlsAYm6?= =?us-ascii?Q?oB8e0hVwQN8IrlXQTqwqn47YwNrzSkslER2rvsWyhS3PlIdHv0EFm4mZp9fl?= =?us-ascii?Q?wgT3g0evDevp6AL7Wd3eu+ITnY9MqbbUgtQkufp20T/0VRcsWQLbhVA2FZ8a?= =?us-ascii?Q?cefeHnJHtSVr87o1X8IPMkjV4J2jMVeJu3jyhZP5ZhOyO6/3zYvF+csFYhDh?= =?us-ascii?Q?Cv8gVcVOmAQtDGWD7jqeEHV6lrrbGAPtbNsaCHExuua+fvBOp+/62ZUGf23P?= =?us-ascii?Q?v3aCat/uIdf+/5FmhWwU/FO8g7KcjoYM1n+uDhz2WiVolhgYXiF7FYFdW0R6?= =?us-ascii?Q?vSQbMSi/Qdnf9/dbQeP6tdWGv9BnhV9s4bLsjVFW8j3m5PpyQ3jIsMts/whx?= =?us-ascii?Q?k6yOTZ+2sIZ/ss9A64PT/KfySoNkYhKO2IGfWJ6MeoPhWIFyx2irLfb4JenM?= =?us-ascii?Q?WP6o1T+1Rg0IM85ol+yYky++sl1IPsloF+Fh+HjdZMpQyMeIjo5fsDIwiDht?= =?us-ascii?Q?3h+X2v9bRQ5SOEALd4QYIcrjgqduDAgA+ivGbsLasV86VFY7TfFsqf+MFfMh?= =?us-ascii?Q?R5HYD+LVM3VaoVw+Bo39yPX9Vsl0UnfLCPdv0a/yGe+MthUYkXcMoP+BztTr?= =?us-ascii?Q?t5Q1vnQBQlACabqgSN09rQC5GDxHkFaFdH0CVv0f15GR6TMVVm30paPxwd0V?= =?us-ascii?Q?MeMdvABwzI9LsAY1mlVQnNM4cC7h4+YzxKfaTYTY6Dhr6luVOwJv7Gcy7aUF?= =?us-ascii?Q?3BK4YZCsO3F30H50/cdvps37qGgHhZZJtZEt7lGhTGEXAlSnz9O9N3TR4KJ2?= =?us-ascii?Q?exOmt/qsYkLfdLALnWSZSAs0dsBxj90gAOWh/u9Om/9BHbtG7ECLWygzr+XX?= =?us-ascii?Q?XLkJkvRmclzocwRg6Wlfr9keiEWthKyRPk9b+N0ylb7LW2KxDnyiTF9gDVSY?= =?us-ascii?Q?xicVoLc7U/mUI9mlNceQJRmC0xZORa6O7VLrqRAssXPO/JUI0xpNJaADX1Db?= =?us-ascii?Q?6PtZyJmKmVsPzWFuX3FU3/gJRJcZ3xkiomff4yjySv6PhZNm8fDVtSE23YQS?= =?us-ascii?Q?TTkiZKkrkizIe6rPooMURA5OIr1ZDSOXZS8qklNC4gyYQuXqN4FRF+a+pOuJ?= =?us-ascii?Q?WPeG7KTWUnhKRw8b2R0Vl8YXZd6hkVglotXQXbe0EKc/sqchk6toGxQQ3M07?= =?us-ascii?Q?+x5OrTc1t+A/zTBjpWbx5Bfv3Kz/40rdBJ6mCpjCVTfNQVQ3nq1Z1Zx7bi3S?= =?us-ascii?Q?jvsbmpj+hOstR4SqQLSiVdiYiWrFqSJfa+O7eLvpbVa9MUE2tH2yV6KDhZcc?= =?us-ascii?Q?WsgeL5fguf3ItRTk20HuZl2DAdeibAW8P5RvnS0xNYPtZQPLK/CMIJd3NA92?= =?us-ascii?Q?Vxy7tEjRxhMaPp5aFTR0oE30hiFKc/9w4VwiykeHu9AgGHEC2yPYQD095VH1?= =?us-ascii?Q?08cOfPztsW/f+OHp87/fhxpUXMFhVxhjmeaRwktN+yg+5v875d/P2w=3D=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: b44da79e-2c17-49eb-287e-08da0d9fdf10 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Mar 2022 14:09:12.2654 (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: MFOyZ44+SNIjVqjGt2Memn3TQmT9Rn6n3mUPCTEpu4w+B/fHqJntnZoXi4YIgeoXQe1Ge2jVfSF8Nd0zEWAiDQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0402MB3616 Content-Type: text/plain; charset="utf-8" This patch added struct mptcp_sched_ops. And define the scheduler register, unregister and find functions. Signed-off-by: Geliang Tang --- include/net/mptcp.h | 13 +++++ net/mptcp/Makefile | 2 +- net/mptcp/protocol.c | 1 + net/mptcp/protocol.h | 7 +++ net/mptcp/sched.c | 114 +++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 136 insertions(+), 1 deletion(-) create mode 100644 net/mptcp/sched.c diff --git a/include/net/mptcp.h b/include/net/mptcp.h index 8b1afd6f5cc4..e3a0baa8dbd7 100644 --- a/include/net/mptcp.h +++ b/include/net/mptcp.h @@ -95,6 +95,19 @@ struct mptcp_out_options { #endif }; =20 +#define MPTCP_SCHED_NAME_MAX 16 + +struct mptcp_sched_ops { + struct sock * (*get_subflow)(struct mptcp_sock *msk); + + char name[MPTCP_SCHED_NAME_MAX]; + struct module *owner; + struct list_head list; + + void (*init)(struct mptcp_sock *msk); + void (*release)(struct mptcp_sock *msk); +} ____cacheline_aligned_in_smp; + #ifdef CONFIG_MPTCP extern struct request_sock_ops mptcp_subflow_request_sock_ops; =20 diff --git a/net/mptcp/Makefile b/net/mptcp/Makefile index 0a0608b6b4b4..aa5c10d1b80a 100644 --- a/net/mptcp/Makefile +++ b/net/mptcp/Makefile @@ -3,7 +3,7 @@ obj-$(CONFIG_MPTCP) +=3D mptcp.o ccflags-y +=3D -DDEBUG =20 mptcp-y :=3D protocol.o subflow.o options.o token.o crypto.o ctrl.o pm.o d= iag.o \ - mib.o pm_netlink.o sockopt.o + mib.o pm_netlink.o sockopt.o sched.o =20 obj-$(CONFIG_SYN_COOKIES) +=3D syncookies.o obj-$(CONFIG_INET_MPTCP_DIAG) +=3D mptcp_diag.o diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index d3887f628b54..b1d7c8b0c112 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -3807,6 +3807,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 fd82fd113113..3258b740c8ee 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -608,6 +608,13 @@ int mptcp_subflow_create_socket(struct sock *sk, struc= t socket **new_sock); void mptcp_info2sockaddr(const struct mptcp_addr_info *info, struct sockaddr_storage *addr, unsigned short family); +struct mptcp_sched_ops *mptcp_sched_find(const struct net *net, + const char *name); +int mptcp_register_scheduler(const struct net *net, + struct mptcp_sched_ops *sched); +void mptcp_unregister_scheduler(const struct net *net, + struct mptcp_sched_ops *sched); +void mptcp_sched_init(void); =20 static inline bool __mptcp_subflow_active(struct mptcp_subflow_context *su= bflow) { diff --git a/net/mptcp/sched.c b/net/mptcp/sched.c new file mode 100644 index 000000000000..3798a5cefeb6 --- /dev/null +++ b/net/mptcp/sched.c @@ -0,0 +1,114 @@ +// SPDX-License-Identifier: GPL-2.0 +/* Multipath TCP + * + * Copyright (c) 2022, SUSE. + */ + +#define pr_fmt(fmt) "MPTCP: " fmt + +#include +#include +#include +#include +#include +#include +#include +#include "protocol.h" + +static int sched_pernet_id; + +struct sched_pernet { + /* protects pernet updates */ + spinlock_t lock; + struct list_head sched_list; +}; + +static struct sched_pernet *sched_get_pernet(const struct net *net) +{ + return net_generic(net, sched_pernet_id); +} + +struct mptcp_sched_ops *mptcp_sched_find(const struct net *net, + const char *name) +{ + struct sched_pernet *pernet =3D sched_get_pernet(net); + struct mptcp_sched_ops *sched, *ret =3D NULL; + + spin_lock(&pernet->lock); + list_for_each_entry_rcu(sched, &pernet->sched_list, list) { + if (!strcmp(sched->name, name)) { + ret =3D sched; + break; + } + } + spin_unlock(&pernet->lock); + + return ret; +} + +int mptcp_register_scheduler(const struct net *net, + struct mptcp_sched_ops *sched) +{ + struct sched_pernet *pernet =3D sched_get_pernet(net); + + if (!sched->get_subflow) + return -EINVAL; + + if (mptcp_sched_find(net, sched->name)) + return -EEXIST; + + spin_lock(&pernet->lock); + list_add_tail_rcu(&sched->list, &pernet->sched_list); + spin_unlock(&pernet->lock); + + pr_debug("%s registered", sched->name); + return 0; +} + +void mptcp_unregister_scheduler(const struct net *net, + struct mptcp_sched_ops *sched) +{ + struct sched_pernet *pernet =3D sched_get_pernet(net); + + spin_lock(&pernet->lock); + list_del_rcu(&sched->list); + spin_unlock(&pernet->lock); + + synchronize_rcu(); +} + +static int __net_init sched_init_net(struct net *net) +{ + struct sched_pernet *pernet =3D sched_get_pernet(net); + + INIT_LIST_HEAD_RCU(&pernet->sched_list); + spin_lock_init(&pernet->lock); + + return 0; +} + +static void __net_exit sched_exit_net(struct net *net) +{ + struct sched_pernet *pernet =3D sched_get_pernet(net); + struct mptcp_sched_ops *sched; + + spin_lock(&pernet->lock); + list_for_each_entry_rcu(sched, &pernet->sched_list, list) + list_del_rcu(&sched->list); + spin_unlock(&pernet->lock); + + synchronize_rcu(); +} + +static struct pernet_operations mptcp_sched_pernet_ops =3D { + .init =3D sched_init_net, + .exit =3D sched_exit_net, + .id =3D &sched_pernet_id, + .size =3D sizeof(struct sched_pernet), +}; + +void mptcp_sched_init(void) +{ + if (register_pernet_subsys(&mptcp_sched_pernet_ops) < 0) + panic("Failed to register MPTCP sched pernet subsystem.\n"); +} --=20 2.34.1 From nobody Thu May 2 09:43:10 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a17:907:7811:b0:6d8:2910:9a8 with SMTP id la17csp2190618ejc; Thu, 24 Mar 2022 07:09:27 -0700 (PDT) X-Google-Smtp-Source: ABdhPJx2Bb3+Kr1/qF93Hy0uGgL8N1gozIzKj75C0ubshD8Uag9HOEioceUEGA2L+vwF7T2w+WY7 X-Received: by 2002:ac8:7f53:0:b0:2e0:77a0:1d35 with SMTP id g19-20020ac87f53000000b002e077a01d35mr4571329qtk.496.1648130967039; Thu, 24 Mar 2022 07:09:27 -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 u10-20020ac858ca000000b002e1fbf3c06bsi6727265qta.604.2022.03.24.07.09.26 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 24 Mar 2022 07:09:27 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4404-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="dgGBg3A/"; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4404-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.197.195 as permitted sender) smtp.mailfrom="mptcp+bounces-4404-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 814031C0D2D for ; Thu, 24 Mar 2022 14:09:26 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 169E71FC9; Thu, 24 Mar 2022 14:09:25 +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 835091FC0 for ; Thu, 24 Mar 2022 14:09:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1648130961; 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=N+cTrNB+Zx38NOKjh2MXJ3XItIATGW7r875t9SRkEbw=; b=dgGBg3A/0ox+VOA6ilKRsD4JKozHYiTdv0RWZdUE9u0ly92nuGisXjQxZqZj/Zsnvsii0h Crw+xVBwXEDxZDNEkRZTFNEWY4q5nTAQQlp6Q9zPCaoAXQnOhSMCBRa3w81pVXOi9eWWFY +ALZZ8M8tKY3iez9vDEi2BASufmDRRY= Received: from EUR02-VE1-obe.outbound.protection.outlook.com (mail-ve1eur02lp2057.outbound.protection.outlook.com [104.47.6.57]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-29-MoiYLgWgOA6DCqNOsyzhsw-1; Thu, 24 Mar 2022 15:09:20 +0100 X-MC-Unique: MoiYLgWgOA6DCqNOsyzhsw-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=TN+ENQFgucy/7ZVRVfN/GpfTrkmQGJ2YtRKUh1Ba1C/NA98eAJQOiYdSks6RpFyLBuPfHPhkVw+RJL8u486IqUGR3BtlgiWzs+R8sbk2ghVE/VnyT5MIbAntyuPYAeVJRa5qvbiXxJlbR5n0xyf7gk6GLnUz8SXK2/a6cmH8wFilXqc+PRNw4XOuBCB41D2t3p4aiuFyBpVykXa17d/UhwLbpSUrfBb/5hPgbMcCji1zHDzREL/CJUgxZEVgWP8TjpouYnyaYyCci7fTjLcA9Zq2kfgOU1YzLhzRcRrD0mMJLf/edEwJiwWdf8b3vYqY54Du+lmA3PXTSZ9Mk1X48g== 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=MgeqUbpmagr2qR1wH2wSt7BunbNHdzc6PhQFUsw/1dE=; b=aK/sFjNA4V8Fs3o/cWAUI4FieKNmYKMMBwFuAp/vabiiiVWVGXX01HgdSBbn1IXmOjsg7d3ojUwB6Lay0+vmzUCrBo0kDL1rd4eXPCmFwfqv/yPDmk4D8SSy/dDOaypcLU3gpB0+FR/27fK3lJGiDG/UYezDJ7SlXUhSNBdLeGmJRKR6mhEwZOr5InscBifdCB4dNRbaqDylkE0F6ia7nfaPubwcHNZSalaZdTyzAqlEyKK40KqjJ1TcEP/LNn5vnnZ5IcdD+I1+iYM0KfRiFJd9K5vN5hOJ9uEJI6nrX2mbokZAbzm7mgYl0isftHuKiorT9q5oSOni8hAy2XAXkg== 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 VI1PR0402MB3616.eurprd04.prod.outlook.com (2603:10a6:803:8::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5102.17; Thu, 24 Mar 2022 14:09:19 +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; Thu, 24 Mar 2022 14:09:19 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH RESEND mptcp-next v5 2/8] mptcp: register default scheduler Date: Thu, 24 Mar 2022 22:09:04 +0800 Message-ID: <70f565e206c415ea7d8a0cbc93fd82e1d2e3dbca.1648130637.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HK2PR02CA0212.apcprd02.prod.outlook.com (2603:1096:201:20::24) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 0ce44a39-1573-4624-a4a2-08da0d9fe332 X-MS-TrafficTypeDiagnostic: VI1PR0402MB3616: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: AqjrapSI8WEId0e28zovdOtv+yfRiByFOqaIzj2TKTPmJtbVse+RTzy+Y0uW6Y21eTLHkCV0cIa+8NeDLNLxmhw9fWphf4lbhEuoimubypF5ucdxesWZmQsRR6/T9xFI5qOhD9An7xj2i5SkKSlBu3HjM+9F2mf4xeOBKmqp280PCwZoI2roYXJDZ4gQVZHF8gLepi7NqQHluXgZBP5yw7a4hnIjBVnimtpu0Ze6KQ3paviGVJZOxYfGdalx48N86kOv3E495izKfjoryHaBZVBcO2yAIP1Q2kJKX7NcM3ZoxLUGidW1lj7s3sHt6yDYM2RDWIMCugKgN67WpdKQLNRjlqdcuKdjPyxNnqMot9FtRl6yZO3p0hptOzpYc+zpZcLZM1L2c7R6qCxh0D6FOKCfEo/NUxUj+oT6RHqExZGntMw3FNvRhOkUtt1HK2s9SVVHB2uTijdjAzSImT8s+ZcoomdHFbE/wZ1l5uNKrFVWHhLiEmowggDOd6zET6noy0pb8DOkHVOHTLFxmW9leWgass40xaBdklPLcVW+ifTxBZEZIahm97HcSdTubnPfgE6HuOAiaS1i0egnA7/1S87If29tqZL+Ek3BCVpBuE6uMQoo84FvIpYZfFWPrV1zakzk8ftMjtkjjhYPxwuqlm5kd0/VXKU8tlYZVjoODSQUObeNecE7z5AsswBJSBoRclZd6FGYpBt4KudCvZnHiw== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:HE1PR0402MB3497.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(508600001)(6506007)(6512007)(2906002)(8936002)(6666004)(5660300002)(38100700002)(44832011)(186003)(107886003)(2616005)(86362001)(26005)(6916009)(66946007)(83380400001)(66556008)(6486002)(36756003)(8676002)(316002)(4326008)(66476007)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?6VeR4vYJrpTA91QYqwpEIpoYT90pQtV0Xt55AxPsAT7W0//HWyGV86PcwL4t?= =?us-ascii?Q?KtNP99JYNZ+z/3anQJtLpyQwIFKJY4Or2MFs797xY2bknEd2cmvKgsAD9B0o?= =?us-ascii?Q?+lcQA/hqvxsR3hiTTiDEi5J93YQx0qbtYztw0XUYhDTQ22RCtVbPzWWmdJ8v?= =?us-ascii?Q?uFSIDYw+YOqrhufrmo5InXigcaicOTcJtfToLYBr2SBcxCwkRodpWW+qL+P0?= =?us-ascii?Q?vq3NYyRhy4aMhQu6VFc/jwl+S3yCqCZIeNLmC2nZGfjh6SNOEA5wz7HHcyaU?= =?us-ascii?Q?aaDRrpnQzomUPSx/N1Fk94GaM6+BpmL6XYSgO64Ou4dZpAQNmt0eFcRC1qdi?= =?us-ascii?Q?7bCtyqahYReHDRUM1WOQHSAjSZ+ALvOST3XOkqdTm9sjPBqvb3QcVVcuaj8B?= =?us-ascii?Q?BnKn8Sds+hr8nRmjiU8xxbuqyNkp4bSUn4KPzEYhdcURl50P2dn+UishPCbe?= =?us-ascii?Q?YMF8sJPENEjC/H7HO2y9MLja209Pv1cd+hHY/Cp+8r+Q6HXyCgERS61Ig4/T?= =?us-ascii?Q?kbaKYRzgiQtM6ZhXzQ5yxR+2WzTV9Go7OEVAdbCzxYZrL5y59SzomR/rAmPz?= =?us-ascii?Q?CIIR8iwQG3h+Q1jfbzYDBvaH15qX1bmfgu3u30qKIYOiIpWlNk+8OAXGkNTY?= =?us-ascii?Q?C9fMdvePCes6ZLfDAZG/hPZfLQ0v3E6w+PNW1S0g64zdwYQsHy9u1gL4gE3k?= =?us-ascii?Q?KaWmfP3ZXY99YkCdRhWJFFVKjJ98n7xK94cNTU+Ga74+mFa6+upQbr6uGQ2b?= =?us-ascii?Q?xM0YJDEMrGh9WQMhNpydDgq+gFpMzuelMOL8N/QkLkSATubW0qn22YLoAXxy?= =?us-ascii?Q?Bi2Sjfm4SXrMbJvuzl82sJu7geVcFtpbU5sycCO68Qe0vkgNdx5oBQsTQvtg?= =?us-ascii?Q?2krYM33dUkGy58FIZB0Ot7TCpN9sIbjS3OCZvJJXO35b5PkqXsxao6SruA14?= =?us-ascii?Q?5CWfsj1njNVMcYH3wIE/bhIiuXc807YTjG8EYG8RCOBCLAIO0hMKM9jWyhtV?= =?us-ascii?Q?4Xw8eIPjI2yx/r7xUUVLcHK34P91iTaSyblvyjeoMY2MiW7e7HZXieBZYOJD?= =?us-ascii?Q?Lpw+4J9/TD0ERt0lMqZ4WC8FYjvgc7RQTLqtjCa7X1HTHaLLocKlOvAf0/LE?= =?us-ascii?Q?XSiFcLvyTJU5Td6t1xJ5UTD64CsCqCRULsHHtmWsAITeWhvruyazLtCSF3pd?= =?us-ascii?Q?My9gRdbWvXYFxGKsYs7lOOCCf+Md96Yx5TMH+lhK4PUGVIFbK2z1zWSXRqws?= =?us-ascii?Q?9nXEpGCvDBFp1/ZxRkY2Xry4NzvnecLjkKtBL2PhqRVWJvGxWGMBB2NZYBQV?= =?us-ascii?Q?FGbk1K3R0GwUeWrdGzueovjen1GJURVA8KXzgMPWQSaIiVPPQSXYbv5Wg7Tr?= =?us-ascii?Q?74Esgsyt3cfIOezY+zF9WLWEtAXOypnruZRXRXofgEEIP3yL4SbrxnEwmorx?= =?us-ascii?Q?7RDvqIOonFOwaKXPWUvjaV4H13bnqbpeHflv7wJmnuVHbaRFIOEIdQ=3D=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0ce44a39-1573-4624-a4a2-08da0d9fe332 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Mar 2022 14:09:18.9992 (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: zjOIj00iCd1AUElFKbt4XX9UI7VgHhnvFoyL8GYZ76XOUhnG880HnMVbpqittAdrKXR9XKgLltN29ef6UUHwXg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0402MB3616 Content-Type: text/plain; charset="utf-8" This patch defined the default packet scheduler mptcp_sched_default, registered it in mptcp_sched_init(). Signed-off-by: Geliang Tang --- net/mptcp/protocol.c | 2 +- net/mptcp/protocol.h | 1 + net/mptcp/sched.c | 10 ++++++++++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index b1d7c8b0c112..81b77ade9511 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -1424,7 +1424,7 @@ bool mptcp_subflow_active(struct mptcp_subflow_contex= t *subflow) * returns the subflow that will transmit the next DSS * additionally updates the rtx timeout */ -static struct sock *mptcp_subflow_get_send(struct mptcp_sock *msk) +struct sock *mptcp_subflow_get_send(struct mptcp_sock *msk) { struct subflow_send_info send_info[SSK_MODE_MAX]; struct mptcp_subflow_context *subflow; diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h index 3258b740c8ee..46ac5b4528d5 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -614,6 +614,7 @@ int mptcp_register_scheduler(const struct net *net, struct mptcp_sched_ops *sched); void mptcp_unregister_scheduler(const struct net *net, struct mptcp_sched_ops *sched); +struct sock *mptcp_subflow_get_send(struct mptcp_sock *msk); void mptcp_sched_init(void); =20 static inline bool __mptcp_subflow_active(struct mptcp_subflow_context *su= bflow) diff --git a/net/mptcp/sched.c b/net/mptcp/sched.c index 3798a5cefeb6..f6ace8cfe865 100644 --- a/net/mptcp/sched.c +++ b/net/mptcp/sched.c @@ -23,6 +23,12 @@ struct sched_pernet { struct list_head sched_list; }; =20 +static struct mptcp_sched_ops mptcp_sched_default =3D { + .get_subflow =3D mptcp_subflow_get_send, + .name =3D "default", + .owner =3D THIS_MODULE, +}; + static struct sched_pernet *sched_get_pernet(const struct net *net) { return net_generic(net, sched_pernet_id); @@ -70,6 +76,9 @@ void mptcp_unregister_scheduler(const struct net *net, { struct sched_pernet *pernet =3D sched_get_pernet(net); =20 + if (sched =3D=3D &mptcp_sched_default) + return; + spin_lock(&pernet->lock); list_del_rcu(&sched->list); spin_unlock(&pernet->lock); @@ -111,4 +120,5 @@ void mptcp_sched_init(void) { if (register_pernet_subsys(&mptcp_sched_pernet_ops) < 0) panic("Failed to register MPTCP sched pernet subsystem.\n"); + mptcp_register_scheduler(&init_net, &mptcp_sched_default); } --=20 2.34.1 From nobody Thu May 2 09:43:10 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a17:907:7811:b0:6d8:2910:9a8 with SMTP id la17csp2190669ejc; Thu, 24 Mar 2022 07:09:34 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzETnK0wko5qd0KFMlt1a9F2fqdDwICEM/2V6rxRZi9OlepY6tAdziICbeh7MBf0smmZ8R+ X-Received: by 2002:a17:90b:1e01:b0:1c6:e306:e736 with SMTP id pg1-20020a17090b1e0100b001c6e306e736mr18560236pjb.188.1648130974314; Thu, 24 Mar 2022 07:09:34 -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 w7-20020a631607000000b003816043ee30si21768797pgl.37.2022.03.24.07.09.34 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 24 Mar 2022 07:09:34 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4405-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=cjml0ArI; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4405-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1000:8100::1 as permitted sender) smtp.mailfrom="mptcp+bounces-4405-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 8D8733E0F7B for ; Thu, 24 Mar 2022 14:09:33 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 5BE931FC9; Thu, 24 Mar 2022 14:09:32 +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 8D06C1FC0 for ; Thu, 24 Mar 2022 14:09:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1648130968; 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=fCoV0d/uRHww6crhG09bqvST49mrP6A/tZlk6axI9Y4=; b=cjml0ArIvUn5AbKM8lK/oK/woDicuyHcCaQb9ob4ipisq+6hP4iNJ1qpZ26fyJ+2BbQufx VH6e6RecYk6BCXJ3zHYpeaTxQN0iKz0fOqhNz8C19x58nIDOb0CLiLkSpZiDjXc5pYkR3F GqVD4TLltPfzWNLN9+IJRqpjp617HV0= Received: from EUR02-VE1-obe.outbound.protection.outlook.com (mail-ve1eur02lp2056.outbound.protection.outlook.com [104.47.6.56]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-19-dKOO2KLHOoW2OhAmCEACrA-1; Thu, 24 Mar 2022 15:09:27 +0100 X-MC-Unique: dKOO2KLHOoW2OhAmCEACrA-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=k14aaEmmPKvG88kcVXK0xScQsko0ksjm0bFiEXnw44uS2W1dUr4hcvZzK06aS6YaPDciaA9PGWztfFZ5qPTYDrIxmkxUDLP+lbcdDcvOy5/K2iUdJ+On1sSNNmPuxb6Yg4d70tI6HO5LLyw+wQiM97n+OtjUKKtvZMK9xd4KcOnDl/QGHPEFFsLdgWx8XECoDxJzMzltm8wnOxyBUk6LLZXATieUAtUkd/N8BnukQZrAhSGLXF/8GLxm6HwK/s+bvcwnEH8CgvlUkICNTmVxUGbpq2MCwprjyyAWgV7ZAsxU6BoleTdudJCWXnlPSjFT8MBdtydeUrQ+jy6QaxVe+A== 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=yFXUxJY7bMLbS4I9DPdfMKmzwZVVyVW9iKmKqjjSxdo=; b=Qyw4lcnZzlNkqZSiKhSxZTM8oLqIgB0D4UjkRYJS7Q1h4XDZTvkR4D3c70Bu1DC5vfMZOeJiFg4VeYMVYkAVCJDjpp1ioUSh2zfHGLECkH3En2I9u3q+VSP63D4+vDnTJyYLclQOHYyxcj2YO/c3qAhmbpfxVOIQVCmpY+OHWlo6egmkvxxbL1Gui84cfVXazPb9+bF3GDc8CfvejA/nMb4jciklUDwD4Csl5x4l0iH6b0OpuKafoOMZj6OP4Bd4kNAtC00i8lSJ5CH5TlFB7o0dF1iDRMeToqzEIHjNm+d1fMH0hly/FR3U/lHfEtzS3VWRO7OPTKKKPOi9R3yuiw== 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 VI1PR0402MB3616.eurprd04.prod.outlook.com (2603:10a6:803:8::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5102.17; Thu, 24 Mar 2022 14:09:26 +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; Thu, 24 Mar 2022 14:09:26 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH RESEND mptcp-next v5 3/8] mptcp: add a new sysctl scheduler Date: Thu, 24 Mar 2022 22:09:05 +0800 Message-ID: <652eaee7a675ab667b945a3ea0813085f1921b48.1648130637.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HK2PR02CA0213.apcprd02.prod.outlook.com (2603:1096:201:20::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: 4f7413dd-c9c7-487c-fc46-08da0d9fe72e X-MS-TrafficTypeDiagnostic: VI1PR0402MB3616: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: EqYArvUsQCqM8lEARHL+vzuWhe6d8P9Lf2lvLJ7X7pOE5Xx+gtFsCOvGSGC/R9ceFhMIrlJRVTpYK52YaQ8yMCjVYiPyyfsLGP4sD4S3c8xhyNsA6ZyjkavGtHpkWF5nOs6QVV4etaYf9FBDosGprjWgb8U2qYsw5bCNKqRImPu5sgqH+mPDzD5l9LztGSMWRIKZxt9k89TiAZB2VLyiUcfngJi4N07rzrSg89haiZfHM3lhiUZHU45OTxYpS6SH8SF8sdDRrK2IJslxfoidhkSawWHqXeIzQjboY7qb+62RMybmgWm+S9bXF1gwPEFW9FFOQOdZ9Sz1fN6BSoojKFsb+EtBIyPXmLD45Z2x+oU5aeVxVLR42zD5/tO3U21dDxm7o5TyxBtDVSebLjPRD10UyeV+nZKny0D4Fz0KEpmcREfGXtLfPr5osSi2+NihOaaRegAotSK0oRVlP8/ZsC4GdiKN1Z5xwwRPcRV7l4U7FplV0z10+z0shy2jnjuY8PLARgBp5FmaOqbromDfN0MJ0xuz2M4XxflyqiaJB/+TLk7nH2fz8pD3pwcYGGFZFtJr4sz0JUvn4LKoUL0FFxkIpAtB7Y/C5FUIiOns7RhmwR60gdzcYxht2UAu7gPnZjEqKSR0u/bjqr566vJneHU1cwiyWT5gr1ecpqlmeFJwfBQYhcbOyuPG7kCMbO8FXF7tR08yPT74sROnOFxRXw== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:HE1PR0402MB3497.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(508600001)(6506007)(6512007)(2906002)(8936002)(6666004)(5660300002)(38100700002)(44832011)(186003)(107886003)(2616005)(86362001)(26005)(6916009)(66946007)(66556008)(6486002)(36756003)(8676002)(316002)(4326008)(66476007)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?PHgD8mT/Qb/tkMsTgKsAHFWyI6fZYl5D+hDAg2PuxBbBUAfHGpp6wyy7FGtJ?= =?us-ascii?Q?NatwvVQjLGcSSoUKOY8l1ZTCG3vI6vSR6Lm06UApmZk8nq8MXbS1Qp2cz2G2?= =?us-ascii?Q?g2h96QOIw2reuISvXGnVyPIKv9RUc00DZpfdQMHl2QEd/Rurlt1ICFHn3lFE?= =?us-ascii?Q?Jv+sFHibuKy4GVVSrP3siKgXGY1tqxP7OJjUbfawJPSJ+viDH1ZFPBJFOHsF?= =?us-ascii?Q?pRM7zpkfYWX9jZbZuy/0MDGsjYaZohQnFx15I2v0iiZh1kAEyVcP15LJGGGc?= =?us-ascii?Q?WAefIwAOOSsl1Md0Y6KqsWFZ63Jg939y0q9A29/yjJRlozq5MipyjO6s6y6E?= =?us-ascii?Q?bn0QR1gvwg+VIyHH4rF/EH2kBQGDqGV2af6Yi6dCcOFp4M98aDUue+aOaNvP?= =?us-ascii?Q?PJYORUkNeQFl4kd3fGyFMd/kctCqhP+Blwbf63FH8L+m4au83rhlFEWWz1hm?= =?us-ascii?Q?NiWTn0RGqNbF7aYSKIOfP28VMM+pVmVEho3KIoFjf7KHdOLICkXMWD7jSIyY?= =?us-ascii?Q?9hgzilkHnD1X2qaHiP1zv5/jQktaA3P+9yWK/8j1pS7F+73rbn4HFULW/JQ/?= =?us-ascii?Q?GDfSiItt//YcLp2J1BML2K9699R90NfVdryB3p4VFRus3SoKlmQVdM9zIJF1?= =?us-ascii?Q?X55mHJBvIXLkewtyuS6AUmWUtmVVyPS/YmOpkafaJjjPH03Q5XTg7bAsulZI?= =?us-ascii?Q?6KTD1SsUDH6DIFgHRWbqa+6O239Z4H4bzi78Pu79x6X60NRsUeptQd1D2kfl?= =?us-ascii?Q?s1Qc/C0v/J8+B/6Xmlkn5jqWUtA9QlUxYulb3ozOMXSblnY5YIZFI/laLGKo?= =?us-ascii?Q?jcLMSGSa0Q89NMfGeaz0Le60w9z+DUDhvapTrlEx6r3hL/xcwTaMHpZrFUTo?= =?us-ascii?Q?69n8/rwD4Er+ZpT9uw/gG677POZahyROJ5KRfeT8huYzsbjqLCf1lzqB4GWo?= =?us-ascii?Q?Kt5X1wASaZO0k0xnkVb3XxG6JjjKN4EbxjjoeUBqnDRBmZOTfSTyueregO3x?= =?us-ascii?Q?pfrDZU2tt13Xq5o+2Pv8/mRLyZjrP84mDaXTUawMEODakG+Xb9Y5YTB9H8ac?= =?us-ascii?Q?FWx11HcTFmLrP8Am+90pj1UL9+gNW5HdNxSiREczGW+Oj0M62gxdR+RHvexT?= =?us-ascii?Q?GdmmoN9LpEUbtAnWV8Xw0wjXKl8mxiAXp642xc9UD4Ukr+sy0X3f6X9q1c1J?= =?us-ascii?Q?x4VnBkaZZ5ej9e9KDXHFTfdZ/IRvLuvnuE5OpWDfDD01M3O2C5Z7EhiOr1oa?= =?us-ascii?Q?7QB8ZgpUfUWK3DWE9PrBU3nFUGlMffaUTpmV3QeLX7+QCrsQSoJCUIdCuBx1?= =?us-ascii?Q?nm+Ue+qbbC4n3cWMeqFvb5cfkeWupfQmnZVbTFT0KXey61E0v5RgtFLw+fRG?= =?us-ascii?Q?pPC4YgjVPakORN1v8cu1a9wv5jQuOSLvrFjTLPMHm0p98FNjgfNC/Wk9XrPq?= =?us-ascii?Q?uzcdkriuWEiWD4XaDOnl112vzTxiq9Ut9rTqV/QcfPZJ1XKc5zgJ0Q=3D=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4f7413dd-c9c7-487c-fc46-08da0d9fe72e X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Mar 2022 14:09:25.9360 (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: mygtYsccp/mPeHivcCf6E+7CPJyR+bdh/AUJ37tHoL5GYqZJwB6gQKc119GY2lkVCi63fTBPC9J4S/rmLNkmXA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0402MB3616 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 46ac5b4528d5..3e69c1e5600a 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -586,6 +586,7 @@ int mptcp_is_checksum_enabled(const struct net *net); int mptcp_allow_join_id0(const struct net *net); unsigned int mptcp_stale_loss_cnt(const struct net *net); int mptcp_get_pm_type(const struct net *net); +const char *mptcp_get_scheduler(const struct net *net); void mptcp_subflow_fully_established(struct mptcp_subflow_context *subflow, struct mptcp_options_received *mp_opt); bool __mptcp_retransmit_pending_data(struct sock *sk); --=20 2.34.1 From nobody Thu May 2 09:43:10 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a17:907:7811:b0:6d8:2910:9a8 with SMTP id la17csp2190711ejc; Thu, 24 Mar 2022 07:09:40 -0700 (PDT) X-Google-Smtp-Source: ABdhPJy9D5Bz+NZXQyFwtjuw68eBdTZ3TqMlf4hl/NYmHE+lsfjV8PZ1owTny6Jwy8iYhPS3Nbfa X-Received: by 2002:a05:620a:271d:b0:67d:bb5f:8a7d with SMTP id b29-20020a05620a271d00b0067dbb5f8a7dmr3493407qkp.154.1648130980723; Thu, 24 Mar 2022 07:09:40 -0700 (PDT) Return-Path: Received: from ewr.edge.kernel.org (ewr.edge.kernel.org. [147.75.197.195]) by mx.google.com with ESMTPS id z30-20020ac8431e000000b002e1fbf3c08asi5313768qtm.635.2022.03.24.07.09.40 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 24 Mar 2022 07:09:40 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4406-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="VAN1f/vl"; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4406-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.197.195 as permitted sender) smtp.mailfrom="mptcp+bounces-4406-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 367E71C0E9E for ; Thu, 24 Mar 2022 14:09:40 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id B899A1FC9; Thu, 24 Mar 2022 14:09:38 +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 0B5081FC0 for ; Thu, 24 Mar 2022 14:09:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1648130975; 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=iajKMqQDN3TH6/CeMKw7x0ywnJN1RT/h8Grw4IbBnSg=; b=VAN1f/vlH6Lnqt5nkepv7NjjtLhoGfmBPvFPSZgldT+pT7varBdqTuF3sZAaHYzALXxYu7 w53xwmXba3VvgxIcGFGZC+iWxz1blvnYLTwujeld4pO00lrq2gCFsPYpui/az4k6RqpjuH Mv5IN62QGztewJaDLaOLtOFIeeCJH4I= Received: from EUR02-VE1-obe.outbound.protection.outlook.com (mail-ve1eur02lp2058.outbound.protection.outlook.com [104.47.6.58]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-41-qeFCSJBFNzKG0ZDLZlHXRg-1; Thu, 24 Mar 2022 15:09:33 +0100 X-MC-Unique: qeFCSJBFNzKG0ZDLZlHXRg-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=f3IMkab1nMdhy5zsL0kFRmJzH9g/rMCQeD+0+A4fmqTqhiGuHlfnGiUnTGCTjQFLlXHc8gfLyzLSkiPRiNhQarilVMQIzk8Bv0LhZ/uFibigw9uegfqeDaa3iVmAnLwJ+eMFeW68mgAN8o4SuBovdYKqjrvre7DOYB3tewBSI97bOM3xhdK0BUGvF1Rq3yB46yaZA/2f4wApUJjAXhrPDH6t7wZq/FtB/DifH1GynW38qqz72JLi35aVDUIj9WhZ4gxMiLPDWn6UUiWZXfPU6osdCRuj7F45G/ywm70Zx9KjpW6ZgaYF70J18kq7EtDpy/toCQZnWlABGT04JxLHPw== 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=l4ceDldLOsLGRJt2Gd4ZJnHlP/HXBgJBPsO061R+R3o=; b=jLLmfxSm7i8z03rVbzOXVZeUCs9F9EktngvFcfzee+KGlbknnxOs4GU3JLTRtnb8T6ATA8TI6A0Gs9NyaKNVlsl+mK7iZnrOjVIohc88+Xn7XonDisamJs2/NQOW2s7sy5N5FwiRt1JRR+cF9rwEmFqsJfPY2U+vvg6YyVEejR5BUMJeVwTWwIePWhhxZXOMKKV8wO1BFjozQm/5W+6UEQI77fkT2n9s5Dv7pYorIFa7NF9RqOJ8CFFanQpyTttaWlcljVf4l3Pof5/1YkqUecIY7zD2rePhq9PP6F8+RBunyjhazWpS2i2JMbvlcJ6DD8ajyKyg2ZKnG76ouKpyZQ== 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 VI1PR0402MB3616.eurprd04.prod.outlook.com (2603:10a6:803:8::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5102.17; Thu, 24 Mar 2022 14:09:33 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05%6]) with mapi id 15.20.5102.016; Thu, 24 Mar 2022 14:09:32 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH RESEND mptcp-next v5 4/8] mptcp: add sched in mptcp_sock Date: Thu, 24 Mar 2022 22:09:06 +0800 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HK2PR02CA0207.apcprd02.prod.outlook.com (2603:1096:201:20::19) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: e5de9fe5-f847-4e3a-01bc-08da0d9feb5b X-MS-TrafficTypeDiagnostic: VI1PR0402MB3616: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: GCWohJ4hKqQ24IezmwTyW00N0kAilIlXLGmTXpx46ahpfpjoGBobjsEPh+o7K2x9tJa+GU3LPfwq0Twj8Qya30Hdj2fbZgJRJxexdMdyIKwyXvSkipSC1DdGkjIx3UyRLI6yJwepBAX0xwPcVvF7QWOW9MH3OJa1SOvueSOki2zGmHxDXs72vAZlzddGnoge62dg4aGt8YV7nxvKMKLd9dTGSUiqEODdOK3VxWVf8i1CbpxqvAJ49+L3JGwDC7/LYXJznhmcLH+DN0rgljwea+hjiTLtDfhoEwkZtIKMJHZ/tdTFUzCr26p1ByyESAaf6jmrT6whePjfDJwO3xuuSiGKLz1o9rZ/9riBxenuOIiE2hHVDEPuW1ZbVc6zeOSl9FhTLroKXxjE8ajFcBFl5rJx7wzYKCuq7X+Arf03ZcWj5Aq7pIpwPGWOkbCyJYV5OvoTYDMpoi9SPqfWzIEiFZeLdRVfFMeBEgtioBCNCsxVIs3LrUIx1KRRz1fxx1cnc4Jv5Eb/kArokT21ALLfvvQ76Pg4T3PKaZ+f7LyHrl6+OcsMk6qIn68UrrGNuvCAfPlpwlyTPm3RGsfmgkqdPnCyFMXGSnae3wQW3dkjnODrrPybx5Xdb1EPVMQFUUhBySRHoPeZp5HJNsLHaTLIOTSibnrzHalw9jj/Mfnl88HnOZWFpJqOvHiEq5WhEaljcp4Nh/hk3dGstYl0LOcA3w== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:HE1PR0402MB3497.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(508600001)(6506007)(6512007)(2906002)(8936002)(6666004)(5660300002)(38100700002)(44832011)(186003)(107886003)(2616005)(86362001)(26005)(6916009)(66946007)(83380400001)(66556008)(6486002)(36756003)(8676002)(316002)(4326008)(66476007)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?xYotIJgpXDyxCcw7Erq1pNjpBGVxZdsB+QkGpX6ytHFcMNgVrJYH053zXznK?= =?us-ascii?Q?NHfdE+Gb6l1O+7+xFmvsXihW1NSJyOu9NNWEIPvzmauvK7hGCmD16f94jRXX?= =?us-ascii?Q?5lwYOarC0O0TusLmBpn5LTe3ctK4pqEGQXb12r7aTKrLUBWBO6pYWTGcCMjo?= =?us-ascii?Q?muhoA9p+6EkjPSp7CfIFXwX0PdW1TOlXrRkgDfA9TNDuoFXCwg+Vi6T9zj6p?= =?us-ascii?Q?Hmo4mibrw98GvW0wYYh/gLFcvDBo8bySnUkSiXWcrAr5OtVUAifC0a4A/ygM?= =?us-ascii?Q?I68wG3Z/g5HJzLiwgv3I7sf+fry3QPj8OxlCFuYkGD9AGx2bbKLSdNUPg3eZ?= =?us-ascii?Q?au9GaXRwPMtcAYYcVVoHtAObpLpQ6o82KQDGc/YMqrN/vGMxR51wG28RKzU/?= =?us-ascii?Q?kZnci8TheFoxoPNjB+KFv4t7b/28Nwp3A1oMB5CaQ7qskaSdCttHUQZYhJXG?= =?us-ascii?Q?bpKXj2twQuW09iqwAQ4qHF9r8k7ruN1FqduYzmRhhmbrwzpgaJ1Cra1DC1fY?= =?us-ascii?Q?IiAt0R9b5Ea8sdr1bmgjWjyGKdDsY72/SxUOz8vwuuVOC8S1K/4JoImvK0r9?= =?us-ascii?Q?mu1sjsf8bv8eHdlFO5CRAECoq8LHMbRr/+re2QZ12Y50d8OR6KKRDeyc5VCD?= =?us-ascii?Q?oFGO4VtOOgyhRUQz/QhJvnZa8imtEsnpE9kIIr/RoUs61Vx80BUMZ+D2CUmc?= =?us-ascii?Q?gVAdqTnQc8DyGsMDOQ7opyvJToW5hp+OVDeB41RdRr+xIq7ueFQWyVx7woLj?= =?us-ascii?Q?pTEBH+hHLzWU8RfdpJBRgFSpnWidRnN4leoLADDXlWt7g4QyVnwW7EB3EUgB?= =?us-ascii?Q?tjk6dGIhPx2ZjoXHymq/GxqIHt8PAJU0SmS9IIuw9wDSMm7CtXRQTlDsG7Ei?= =?us-ascii?Q?gpEDfCSVk1Mg+qMnqGrgsF3Eir/Tv/jyLXt/jl6aFdTC5x7mGL/egVqjBn+W?= =?us-ascii?Q?E6LPgm+maUAT8XofbQB4cCpGZ4/TeGkTlFyJItEg+e5woJgc9f8H9Icea9s9?= =?us-ascii?Q?e3j7+h38YUucGkixPLSjX/4uFtsLRJBW8Tcaf8S+Jn20BMtHeDZXnnqScNn1?= =?us-ascii?Q?6Hozwb1lFusfrQdXWrqbpYZMzpS+O2+n0v8o0dih1UMrISiDuY8L14vr2wgu?= =?us-ascii?Q?FPm4YNjBMjaFemRayJ9srsS3uPmksIqgI2EuTXlb5r6UToggtuBm7Oib2FX+?= =?us-ascii?Q?2+0cuS4GgvJ2FNe+QucZ166rjmi0eFxqEAAb4/PyZfLK4RsBEG+DJNzlGWWz?= =?us-ascii?Q?YWaCWoG19s3CjWq007KRMN9xON9levGF2mcMgR5qhJAP8ZoR1gfaHvczuoz2?= =?us-ascii?Q?LIzlrEWSGwRLoMUTxPwDgh4RtZI/UBz1KIcAPw3zPheF+mmwivHW+TeJMU2V?= =?us-ascii?Q?9LOoJFOcrjq32ZB3DF6tmpJSiGICE1/B7S0PUcoInSW5fcUGhGRdagb3+xlu?= =?us-ascii?Q?XofGQPef5JHT+MW4bOiJWMJtsf6nN0M1nvRJlVFOlVOrUYvFy//74Q=3D=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: e5de9fe5-f847-4e3a-01bc-08da0d9feb5b X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Mar 2022 14:09:32.9042 (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: AbCKbaMd97Lw8EFvgKaeshVRTj+RGtPa1poFu43PEWqbgMNp08A8yASgd7yzkqeoi9oZAkwCKGbpaIOXDkDQmA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0402MB3616 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 81b77ade9511..c7969b9b567e 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -2661,6 +2661,8 @@ static int mptcp_init_sock(struct sock *sk) * propagate the correct value */ mptcp_ca_reset(sk); + mptcp_init_sched(mptcp_sk(sk), + mptcp_sched_find(net, mptcp_get_scheduler(net))); =20 sk_sockets_allocated_inc(sk); sk->sk_rcvbuf =3D sock_net(sk)->ipv4.sysctl_tcp_rmem[1]; @@ -2816,6 +2818,7 @@ static void __mptcp_destroy_sock(struct sock *sk) sk_stop_timer(sk, &sk->sk_timer); mptcp_data_unlock(sk); msk->pm.status =3D 0; + mptcp_release_sched(msk); =20 /* clears msk->subflow, allowing the following loop to close * even the initial subflow @@ -2993,6 +2996,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 3e69c1e5600a..ad45281e8562 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -288,6 +288,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 */ @@ -617,6 +618,9 @@ void mptcp_unregister_scheduler(const struct net *net, struct mptcp_sched_ops *sched); struct sock *mptcp_subflow_get_send(struct mptcp_sock *msk); void mptcp_sched_init(void); +void mptcp_init_sched(struct mptcp_sock *msk, + struct mptcp_sched_ops *sched); +void mptcp_release_sched(struct mptcp_sock *msk); =20 static inline bool __mptcp_subflow_active(struct mptcp_subflow_context *su= bflow) { diff --git a/net/mptcp/sched.c b/net/mptcp/sched.c index f6ace8cfe865..e431b1eec5e1 100644 --- a/net/mptcp/sched.c +++ b/net/mptcp/sched.c @@ -122,3 +122,24 @@ void mptcp_sched_init(void) panic("Failed to register MPTCP sched pernet subsystem.\n"); mptcp_register_scheduler(&init_net, &mptcp_sched_default); } + +void mptcp_init_sched(struct mptcp_sock *msk, + struct mptcp_sched_ops *sched) +{ + if (!sched) + msk->sched =3D &mptcp_sched_default; + else + msk->sched =3D sched; + + if (msk->sched->init) + msk->sched->init(msk); + + pr_debug("sched=3D%s", msk->sched->name); +} + +void mptcp_release_sched(struct mptcp_sock *msk) +{ + if (msk->sched && msk->sched->release) + msk->sched->release(msk); + msk->sched =3D NULL; +} --=20 2.34.1 From nobody Thu May 2 09:43:10 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a17:907:7811:b0:6d8:2910:9a8 with SMTP id la17csp2190771ejc; Thu, 24 Mar 2022 07:09:49 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxP3Otv+7sBFn7QmCEUTaPoKQk+0qD7gGSYrmx//naPqFydEI0Q6iuGGraIiU9mnwhJiGn9 X-Received: by 2002:a05:620a:a8f:b0:67b:31ce:6473 with SMTP id v15-20020a05620a0a8f00b0067b31ce6473mr3498519qkg.728.1648130989453; Thu, 24 Mar 2022 07:09:49 -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 x15-20020a05620a448f00b0067e4be23886si6718188qkp.203.2022.03.24.07.09.49 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 24 Mar 2022 07:09:49 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4407-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=hWaMSG39; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4407-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.197.195 as permitted sender) smtp.mailfrom="mptcp+bounces-4407-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 BF33D1C0EE1 for ; Thu, 24 Mar 2022 14:09:46 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 731E61FC9; Thu, 24 Mar 2022 14:09:45 +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 D15561FC0 for ; Thu, 24 Mar 2022 14:09:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1648130982; 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=S8yex8u3vodzhx/QOdpWjG2Vl2eRp0NvhtPa3eP0QkI=; b=hWaMSG390IL6YjNZsulLPebAKSRAFa70S1qIMV2C/0tMpJXJL28BFcfj6C/k4Kn/kQC/Y6 B3g61E1yL8ekUqvpVy7p6q840M0Rnnpw5X+m3QW16IYPJRaCnnjB5hqb+exHtFW/9ITK5Y zgnNtgCHmuA4JZ331Nme8LfC17hlTXY= Received: from EUR02-VE1-obe.outbound.protection.outlook.com (mail-ve1eur02lp2057.outbound.protection.outlook.com [104.47.6.57]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-23-doI__19GM02YrJzAy2MXcQ-1; Thu, 24 Mar 2022 15:09:40 +0100 X-MC-Unique: doI__19GM02YrJzAy2MXcQ-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gGLU2ivykaXlkP0CYhKjllc7hBKUbT9RaB/kzC7aODd4i/ccgSEnItBy23SxS0ev370ALZFenPLfJ9oBAYKkZhmjcvBG+u1MDEzNsU/owMEBsP02Uu6VYjl1jJN1UJJfbJLXhgujC6gbuP4esgKJxpjXOuTcK9NZ8rFEcZR7DXlACnzpyO2s67L/xEXRsMC2LuBNP/rx4z9jEi7HraCH9osMHleCc4B+W8W5ql02v80tujkQCUnXJLkIG6zjhOXo6vr4jjGv37phPHSaRefwQU1Jxl/7sKJW+lT6dMlysJoMHsuNks4y4Wrqgau09V1uD3a4HW0t6ms/gTAYBAVO7w== 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=EUmaJiP9qdsB96fKyu2uMH6otJZFqqHJLWMJn7WWdKU=; b=RJrrpRnq8F8jqryQWiMSNaEpnPsRijwebphw2wV9C18RNKOB6qMEVgduLG2aI+fXMn0r3qfYZa0jRIntKCLUDcInEzA31lLjD4JM5PIhowvIMxt4rROUdml3rHSLpVof3c+/4difP+V0iPL4/Gi2GyS1Y1j4TAsfLAhMvro/EGXPDK2e7ypRvoDeL8g3JdYGfGLo+3bYcNEXwSFU7tYhu+Gd7VF8R8Iim1sJ68NP8xeshOr7WZj2UHwCUsH1SevfozbfU4kRjv8JmBoiIkBWar7i7RouHw0nnJ6rF+H8tOXP1ife2yzuS83/02dhsZrNAISjjfixmukuBml5EXsKQQ== 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 VI1PR0402MB3616.eurprd04.prod.outlook.com (2603:10a6:803:8::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5102.17; Thu, 24 Mar 2022 14:09:40 +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; Thu, 24 Mar 2022 14:09:40 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH RESEND mptcp-next v5 5/8] mptcp: add get_subflow wrapper Date: Thu, 24 Mar 2022 22:09:07 +0800 Message-ID: <0c0a5ee87793b0292eb80a57248c6ae4fcdeda93.1648130637.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HK2PR02CA0201.apcprd02.prod.outlook.com (2603:1096:201:20::13) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 4fc93fc2-6b77-465d-cbf7-08da0d9fef8b X-MS-TrafficTypeDiagnostic: VI1PR0402MB3616: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: szi4Crft7lBAsTspO93tGVNCjG+6NfZRkDCljrRduS+IdpCN+a+6OIC3YdiB5MpeUrx0zD6ButwuYWc4TN1OVuheSDebZ0FeJsrRXHC/oZObGtInV3UGO3D1u4R1Xz0VTKDKxO6xsOvEA4NpiWVrRTxu/iP0G75ebVz4eD9VJRSNhyfjQfy0IMaGK3xrWm/COJPTmezDQ5pFv3C/AyXtnoHnW2DFjoU6LHhOyTUZp5H8sX6L8B9AyBeNl93ZQGLA73RRe5exuevPe4oGIanjDdeUCG+3rr3I8tdXaLNXkzIqPSHeYvhdEH3U8hqsPVipRHNMYq00WlZgY4xSNYUS+CZk7rx/QxNDHr4Nn4Q+64VvUlcfu9sa0Xfakkx5DW+LEph4pvXoVpZ0TflMwfF0Wwf/lkrv/7Gt6xaNzyUiHfzIKhd6WnD0TghvSe/HdBtQMLZuHTiNVeYCYLTPLz9QBocGcQb8eWePCJxW5G/hoM7bdfYVPLERGLLLRFVRpauEe7leY7ImTFJeEi8N4QY8cVZ3OK9wadXQCa1huFnpakuE7p/lKBHDDSGf42OzbnHCQmK148ux45zP6j5PcakJanefRB1ENLYePQ3NJsWVPq+1sZE/fS4z7QYdZV7w7ilxbF/ehWANKwwpS7U2cjk4SvQbz69CPz20vEAIH34RTeAMmP0XdD9Deug3x92YoPoL X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:HE1PR0402MB3497.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(508600001)(6506007)(6512007)(2906002)(8936002)(6666004)(5660300002)(38100700002)(44832011)(186003)(107886003)(2616005)(86362001)(26005)(6916009)(66946007)(83380400001)(66556008)(6486002)(36756003)(8676002)(316002)(4326008)(66476007)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?kdCOH4x0NMN+BYBsT07P6cKIfRDB4ZJt/F0Y8T5hxYyPgXlWS481HecfyDAi?= =?us-ascii?Q?l0FFeH28eR9O/zZFZz/2+0nEbnz3H2CLMd7FxvkYTYQS7LQT4I1q7u+lp9br?= =?us-ascii?Q?vghlxAQ48GhD+RR09DlNII+yYEWX9784YwwdoVMUaVuJyJYt4RHFGFVclyWO?= =?us-ascii?Q?3r0bIeSzuTpCyJ800WsU7yzklV/oQCRMo7hXYan94lRLp/HAabQTMN9OP/vd?= =?us-ascii?Q?G5ng4BFp9t9mp3emC3yOADtEzSKnuR35pWGBjRCZx06vpJVJvl2HZ++zB8vy?= =?us-ascii?Q?uJlR1k7yd69V8JTCubyIX9O7dExiG99LBf82DSsdFGO56ycKgpUeM41UyVK/?= =?us-ascii?Q?8eh9/H3iItJsyjYcwrIWwm+2TgPbTCqFA6oAAftSMdkJgIAd0Q6kJz5SNMtw?= =?us-ascii?Q?z0V/IEjTnnX4NQlWihFCUWpKRZwY3uoS4Qb/5kI+9YeZWsbsBZJTGwiw3Slb?= =?us-ascii?Q?Y4pno1xvR3nw6Ksuxx7G1znBNquzsx7hpV/2c/RuQE1J1PitBE/NHnx0k5lN?= =?us-ascii?Q?rLTk2eHya6ObveZL5/jtueJj/dbPVK7qm2ws0MFaxeMu8sAscs5pLMzJYI9n?= =?us-ascii?Q?Q49derVhF32aPkvts9zyaXFkcwEkfDqqjThGyFxzRpdRav4e9NykqRK4NsTN?= =?us-ascii?Q?pej2BCgu9WpxVkSUcLMMK6Odu0s3Enpg6WJ4qBHhL5PWtzbQoeAUZAjPlMbx?= =?us-ascii?Q?xQj75HTXn9E+RGX3VUnn2Ln9ke8QtJjTSzFs9oSehyrr37EWgUNNnfSpnSAq?= =?us-ascii?Q?t3MxcDcYpvbMdavFFY9nIFX6mmH6EJcVwzMWQnz4xNFQUGbEo2Q/0tACcMe0?= =?us-ascii?Q?eCCQqGVOZGx0ZaNc7+4PeYH4HrFVT7g8YbS5O+og3p2NUv3v+K71r2rcDk7k?= =?us-ascii?Q?lmfYowgPWbFMAdXyq3CYCQOfJo2P42ugifp+Rql5F0xY/cvFGVWvzZhsmurS?= =?us-ascii?Q?ZHIUw3qy2xuGo0h99n6dTxQ6zPHc9yjAg4O4+ZQd/EJT6gWcamNqzgx1OBdq?= =?us-ascii?Q?FJayRx9Sshcmn5mpo4nOepFkW9r4WkaBjTDmQzfv5DyCaUZbXzCot6wz1QZ+?= =?us-ascii?Q?hKqZ4Nv2pMJAUqnyzimbzAjtwLuXwcV8qMAQVoLMgzmZRqLT/nfgDy69g19T?= =?us-ascii?Q?zumePqqNcckRd0mtBM/eg8aAnvRvK/UCuT7jn9vxrLzpz8eGkkrjD40a2ao6?= =?us-ascii?Q?DWrm/zyCul+UNjXWecRbCNqKDgcObgh1BhPd/TSmc37o5b4+SnqJJXx8+Oh4?= =?us-ascii?Q?eBCSrNeEeem7qkWVsVnDQ+kswRv053qfSCxOFZBtRvEYG0Cd4Q/5D5lEx+FE?= =?us-ascii?Q?2LIFrZFvgWaJYVrJ1NMhhgh0CxdY7nU4jOCEOj767i0YiwiEEESiXFedKlAN?= =?us-ascii?Q?VhkvfUcr3KjfhuuFZ4MndqPCYug0UrPqeH4Q0YVwHzIhPr70DXpqyvQWDPIF?= =?us-ascii?Q?S3Z8OP39TxJHosWgfvx47b3bX05Qx9679SfAVpjjW8PvgK5kxeyhQQ=3D=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4fc93fc2-6b77-465d-cbf7-08da0d9fef8b X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Mar 2022 14:09:39.9504 (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: HqsYlxfQ8oYPTpPFNVPSC5tRP+QTAaK5xl8zS5aOUEt4XI7gZWq4CPh76waIxmAgIRSL3HyIzoLqYE+d99RoAQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0402MB3616 Content-Type: text/plain; charset="utf-8" This patch defined a new wrapper mptcp_sched_get_subflow(), invoke get_subflow of msk->sched in it. Use the wrapper instead of using mptcp_subflow_get_send() directly. 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 c7969b9b567e..241cfda822c0 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_sched_get_subflow(msk); =20 /* First check. If the ssk has changed since * the last round, release prev_ssk @@ -1636,7 +1636,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_sched_get_subflow(mptcp_sk(sk)); if (!xmit_ssk) goto out; if (xmit_ssk !=3D ssk) { @@ -3134,7 +3134,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_sched_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 ad45281e8562..7781eb527b9a 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -621,6 +621,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_sched_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 e431b1eec5e1..2fd2a034ba49 100644 --- a/net/mptcp/sched.c +++ b/net/mptcp/sched.c @@ -11,6 +11,7 @@ #include #include #include +#include #include #include #include "protocol.h" @@ -143,3 +144,9 @@ void mptcp_release_sched(struct mptcp_sock *msk) msk->sched->release(msk); msk->sched =3D NULL; } + +struct sock *mptcp_sched_get_subflow(struct mptcp_sock *msk) +{ + return INDIRECT_CALL_INET_1(msk->sched->get_subflow, + mptcp_subflow_get_send, msk); +} --=20 2.34.1 From nobody Thu May 2 09:43:10 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a17:907:7811:b0:6d8:2910:9a8 with SMTP id la17csp2190851ejc; Thu, 24 Mar 2022 07:09:59 -0700 (PDT) X-Google-Smtp-Source: ABdhPJztj3/xQbc40Yij1s4hT9ZD5twJCZLFabgUzxqQ6DYEbTPjxJQbsTBye8RKhSlbrlrty2wR X-Received: by 2002:a17:902:e5cc:b0:154:57cf:e393 with SMTP id u12-20020a170902e5cc00b0015457cfe393mr6246099plf.24.1648130999579; Thu, 24 Mar 2022 07:09:59 -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 z17-20020a63e551000000b003816043f07dsi22254254pgj.626.2022.03.24.07.09.58 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 24 Mar 2022 07:09:59 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4408-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=cxneJJ8r; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4408-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1:3600::1 as permitted sender) smtp.mailfrom="mptcp+bounces-4408-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 CC7001C0CC3 for ; Thu, 24 Mar 2022 14:09:56 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 4A1561FC9; Thu, 24 Mar 2022 14:09:55 +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 8993C1FC0 for ; Thu, 24 Mar 2022 14:09:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1648130991; 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=4lss24/uaSM/pJrFpN8QFbALC8emQ710Pj0bvaAbCCs=; b=cxneJJ8rg7U6FsxCFiZWNvJbuuvCAud2xadJYwNduwvF3VCXz4ywMIqy51x0ZUdq48/Zny ZzZRZGLXFVyvsDGc1iEiJzmPsVhMWTJXfFMlVOgvL+g4/eXVycmsoWiA7hWnD/YOoPHKfZ JGJ18lM8KGnsFPVCp8eKOhE3i+2F1fk= Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05lp2108.outbound.protection.outlook.com [104.47.18.108]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-10-crIObiU4M9OJnu9iq5DhWw-1; Thu, 24 Mar 2022 15:09:48 +0100 X-MC-Unique: crIObiU4M9OJnu9iq5DhWw-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=TIe0gugqmutTf8EIUCpOAr60h3YyGN5c0E0ZPlxfrA1hoQeYfDKQaGfnnodrnhvUWlUrqgaPotci8MGmurd+T9wGT9VOLbikNuOUAdCFjcTOYggOHjcu31M7GvdyCEcwpQYFYoR9jAHgYwAHR1URkZrnTFpCa2nLeKzfhcByW9EyfSCzsgMGzxo5/swW1GCgdRbqJmxP1s/fPWSkQzWa1VnVZaV6cPrZOJb0+CXdmyVtvJHEb25YbQNlbvzCydx929weKyWxFW/ffWRVJ2Dnew6kEVv6ac36sCV+SVyRf+PAUH/JyP+M4znFVFxrh7D9EtR0P9sA6G/asZVuUaa2Pg== 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=u2aNYpVRGLdIirLPL28/Eh/lr8u02Y0aOYDryi07r9A=; b=gzxmKrPkfaCESoRg8RDG/K6QaSRGpFIgChjD6P95Syxg5tIVKWfmFJ+w95I49oAyI2KgQgic0DfDvEzg+hzTtg8tOjx3ObSzst7qKTO3zHMxZ8vgu+a+n1xeZ8icZ/Pjh4RXw9GaBHDbJa+22ploblZEQi+y3tJ2KaPo5Jn66tRmAk4ATatN+y0ut5f9uU7xNWwVIzrt0+pPLm5RF5CSlRk2nDhpIcS8h9cQvXb96VtZ8QJw1M2SJ3Ci1SWjANu5wfO8L4xcDaOl46R2bfK7GxYd19kOmiW6A/wphVCMnS0b29KeKcvptpMyUxVsu9k1glhtH9YyUSZ/4qcawlCcNQ== 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 DB7PR04MB5275.eurprd04.prod.outlook.com (2603:10a6:10:24::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5102.16; Thu, 24 Mar 2022 14:09:47 +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; Thu, 24 Mar 2022 14:09:46 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH RESEND mptcp-next v5 6/8] mptcp: add bpf_mptcp_sched_ops Date: Thu, 24 Mar 2022 22:09:08 +0800 Message-ID: <5eba709492c40eb2e27aa2647f9b7e0f12ac882d.1648130637.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HK2PR02CA0204.apcprd02.prod.outlook.com (2603:1096:201:20::16) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: f9ae278f-2630-4ac2-5ac9-08da0d9ff3c1 X-MS-TrafficTypeDiagnostic: DB7PR04MB5275: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: HcaQ+Y6UWStGI7Ob+/FmyRqS47zZ9/p0sdE7v2CvdC17WKQD+FEfDglcm2xy9L3foIvPgzp2pusz0E23Kv1VQZbIxq6Tb8TparDHNHXlbz3hOfhBxFx96W7ZXHIuhUkMJVcTU9ybnDIBlSDxRpFQISyiOZSAHLIBpusuie0X4YhFhHPuIrVgYQPCcJ7Y6MCpVJH5h/FOnEDO3VMx8quJ/j/f/pZ9zATH7EKji97REst2dhlwZ2I32+AxAtUwY0nq1P5Eg1ZvL02IxYl5KN9CLK+4FV8xW9qiflaqbnd3vTxvCbvxfuYTYgHDjL7/ItLHt80sp0PeMvUFW69FurV0sMf+gcj3DXXXHBXsbRLczobp9mHcmSBx2FAMQtOezKQeeaJWn4WG2G1WKTu7T6zHUJdoMQH6opYRaCMq9UHbTI2cVbBuyL7EA/+hSs3RwSz7ogwLz4SIOiFzE/tZB9JUJ4TB0MF11mzyuM4FyUx767XKLKk+xcrMIeksFCLmDcdrl+AXll3Medid8bqrwAKhLdf03gdE43GUk9+uiFg3SUEng5n/ocGQxbhnEwgZNsYcZ/Y0UNjPrsezuq3t5ePtOY+cooy6o4qVY0mAsraRHbwH/lmAsakpZGQfOFoKYhVPAnOhhMKY/Jet4tAtcfnLb3ul0REb59b10aXj01/La7QB5k/cQ/a+EUVWCjqxV0WU8zDHCq6vI06NjpofNItyGA== 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)(6916009)(4326008)(66946007)(66476007)(66556008)(8676002)(38100700002)(8936002)(5660300002)(316002)(86362001)(2616005)(107886003)(36756003)(508600001)(6512007)(6486002)(83380400001)(6666004)(26005)(2906002)(186003)(44832011)(6506007)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?3IsrUIAvPMRV7uvqMI5WjVKow6/h6PjI+w2OVTfMf1X06NB4ghhHqPB53K6y?= =?us-ascii?Q?9Y2pMTQebk+hD6q2uExQUoAnrmb2ideFelvSKsAVwIzdbEn2DB5tVxuFKFmx?= =?us-ascii?Q?yxVvxZZbWQA0ewpbUJUT+WA0i4yozaNep+6eh0pVdXhM50oVe//gbtf812el?= =?us-ascii?Q?uGI/IM8gGV7TtrOZh3gVj+NxxeBPLxVhmMIQZvZceEnlkEo0a8OfEZ2p7kcg?= =?us-ascii?Q?/FeznspTCRvtfGqfO1/Xepbacm3IVwU/EFXBUCMBvgqXsOxjywKeuK1Ga8tD?= =?us-ascii?Q?V6JvJAv57ZRAwmWfBBkD8MlEn4FmuKjwn4gCMuV+43GIbIPj++IsM26L7AeO?= =?us-ascii?Q?nnTfkv8x3ovPz9S5pkest2SJQkUrIGsjiNyJ+WVppjpJ9nDx8p98mcSsOWvj?= =?us-ascii?Q?fbeOm1OWfeA/YY+S8Rk2JIdGRnPSjXp43OgLYFMFYOk4DHIsFnf7+6H28eFK?= =?us-ascii?Q?3MS/0TfJuLJ/e4ix7Y72KmHPAvv24qiwVwBkmtX9bKx64RwEcVgPhM0w9xiG?= =?us-ascii?Q?7niTahBvHjJt9PJ3EMRgyEZq5FQYZpkFoHSxFJ9lPnT91XVxRH0Qh4iSEX5g?= =?us-ascii?Q?tRP6+fFORoH5NfHix9dUEIwRSxEv2Ab5Bsua1eF1jxjP7OgIrsNrE/z/r4zq?= =?us-ascii?Q?VPvANzb+UqPvqSbzg1LfrAmOTsV+TgKeAF7OV/1gzeUy640aqx43wsEymiz0?= =?us-ascii?Q?Oae2X41j2p76fiE+vawxlXcrl5hVJAWYFO4e/q0X9GqRoxl96TH0L2V2rqnD?= =?us-ascii?Q?A/lcQyDGFZjvJAgq6CiEYUfv7OEXBcRw0lbmCOCFyzlkzNveGsFidA4ogZrt?= =?us-ascii?Q?J87bd3iIvPClAxLlIutRQ7AXYBDF/IxqdL4mlhq+m6f2uzwuCAaE2BMDNjWw?= =?us-ascii?Q?fjJxouQlmAgTrpfVJDLKd05s98V3pgnKkFRuGP02Ws7qqh17bU7YsVWYzl+5?= =?us-ascii?Q?Ccx+129L8XiQHI0bEamGnnZTPGYuC6fSSuP8P9W02Y5wzPbJ4G2M3P4r6qDw?= =?us-ascii?Q?oBmTjh1Cr3suhBKT+s8ZnfGUkUufJ/iYahZ8vcHoOVtVXyMWYrVrpVJmfdKu?= =?us-ascii?Q?feOz7roeSIE/QgH+r4rDnhcy9utIAGYn0QwN63A8m8T5VH7RRkbtbmigx3US?= =?us-ascii?Q?nCP+GR+CRFcmTS6k9aZyY2lfSu3oNSItZws/ccCGf/BL+bUk3skelCY9dp8O?= =?us-ascii?Q?KsRs33cwb/g4QAk0+xJ6pESOonQHv3ny0UcbKiSD4StJiIKWRm4DPLSnBoXn?= =?us-ascii?Q?sACcNZuD0IkBLDHrWLSv4toJ+EhflgqYOw0q7c+5iTOT+wwhiCNHnssxMaq4?= =?us-ascii?Q?1rEMdc4eA1A95Xk6pOMt2Vt2t0iUdORl9ciewlEtYDaMAcAX0sQ4eg8O+JP6?= =?us-ascii?Q?oyfz3spbjyzUTPAk+GsuBV2aWhTd/JqfKE3pG0AhnKOglREtY/sF8JZW4UyN?= =?us-ascii?Q?NxZzFexuv2xFNlafdNAsqM0JkEyHrKs9I58WLz7tjM652bkz/DI1sA=3D=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: f9ae278f-2630-4ac2-5ac9-08da0d9ff3c1 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Mar 2022 14:09:46.8717 (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: JSr2GCeg3RdCLaJUnIQgaVduqIPtjtYa4zWQkMatIMdVONLHnZHZVVuXaE1S85e7U8Xm4j6ix9/pkQxDLZJWIQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB7PR04MB5275 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 535602ba2582..14a42cae89cb 100644 --- a/net/mptcp/bpf.c +++ b/net/mptcp/bpf.c @@ -10,8 +10,110 @@ #define pr_fmt(fmt) "MPTCP: " fmt =20 #include +#include +#include +#include #include "protocol.h" =20 +extern struct bpf_struct_ops bpf_mptcp_sched_ops; +extern struct btf *btf_vmlinux; + +static u32 optional_ops[] =3D { + offsetof(struct mptcp_sched_ops, init), + offsetof(struct mptcp_sched_ops, release), + offsetof(struct mptcp_sched_ops, get_subflow), +}; + +static const struct bpf_func_proto * +bpf_mptcp_sched_get_func_proto(enum bpf_func_id func_id, + const struct bpf_prog *prog) +{ + return bpf_base_func_proto(func_id); +} + +static const struct bpf_verifier_ops bpf_mptcp_sched_verifier_ops =3D { + .get_func_proto =3D bpf_mptcp_sched_get_func_proto, + .is_valid_access =3D btf_ctx_access, + .btf_struct_access =3D btf_struct_access, +}; + +static int bpf_mptcp_sched_reg(void *kdata) +{ + return mptcp_register_scheduler(&init_net, kdata); +} + +static void bpf_mptcp_sched_unreg(void *kdata) +{ + mptcp_unregister_scheduler(&init_net, kdata); +} + +static int bpf_mptcp_sched_check_member(const struct btf_type *t, + const struct btf_member *member) +{ + return 0; +} + +static bool is_optional(u32 member_offset) +{ + unsigned int i; + + for (i =3D 0; i < ARRAY_SIZE(optional_ops); i++) { + if (member_offset =3D=3D optional_ops[i]) + return true; + } + + return false; +} + +static int bpf_mptcp_sched_init_member(const struct btf_type *t, + const struct btf_member *member, + void *kdata, const void *udata) +{ + const struct mptcp_sched_ops *usched; + struct mptcp_sched_ops *sched; + int prog_fd; + u32 moff; + + usched =3D (const struct mptcp_sched_ops *)udata; + sched =3D (struct mptcp_sched_ops *)kdata; + + moff =3D __btf_member_bit_offset(t, member) / 8; + switch (moff) { + case offsetof(struct mptcp_sched_ops, name): + if (bpf_obj_name_cpy(sched->name, usched->name, + sizeof(sched->name)) <=3D 0) + return -EINVAL; + if (mptcp_sched_find(&init_net, usched->name)) + return -EEXIST; + return 1; + } + + if (!btf_type_resolve_func_ptr(btf_vmlinux, member->type, NULL)) + return 0; + + /* Ensure bpf_prog is provided for compulsory func ptr */ + prog_fd =3D (int)(*(unsigned long *)(udata + moff)); + if (!prog_fd && !is_optional(moff)) + return -EINVAL; + + return 0; +} + +static int bpf_mptcp_sched_init(struct btf *btf) +{ + return 0; +} + +struct bpf_struct_ops bpf_mptcp_sched_ops =3D { + .verifier_ops =3D &bpf_mptcp_sched_verifier_ops, + .reg =3D bpf_mptcp_sched_reg, + .unreg =3D bpf_mptcp_sched_unreg, + .check_member =3D bpf_mptcp_sched_check_member, + .init_member =3D bpf_mptcp_sched_init_member, + .init =3D bpf_mptcp_sched_init, + .name =3D "mptcp_sched_ops", +}; + struct mptcp_sock *bpf_mptcp_sock_from_subflow(struct sock *sk) { if (sk && sk_fullsock(sk) && sk->sk_protocol =3D=3D IPPROTO_TCP && sk_is_= mptcp(sk)) --=20 2.34.1 From nobody Thu May 2 09:43:10 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a17:907:7811:b0:6d8:2910:9a8 with SMTP id la17csp2190909ejc; Thu, 24 Mar 2022 07:10:08 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwHXAlZuXokjm+gLfNWD+HFK9rcnWlRqIuvsiNUOpYoraJXomMMYgpe/T9zLDwHfCW8KrhZ X-Received: by 2002:a05:622a:38a:b0:2e2:2fdf:246e with SMTP id j10-20020a05622a038a00b002e22fdf246emr4644740qtx.482.1648131007880; Thu, 24 Mar 2022 07:10:07 -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 u1-20020ac87501000000b002e1fbf3c006si5340354qtq.503.2022.03.24.07.10.07 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 24 Mar 2022 07:10:07 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4409-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=ZhdGfWWk; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4409-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.197.195 as permitted sender) smtp.mailfrom="mptcp+bounces-4409-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 772101C0DAD for ; Thu, 24 Mar 2022 14:10:07 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 018C21FC9; Thu, 24 Mar 2022 14:10:06 +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 2E1AF1FC0 for ; Thu, 24 Mar 2022 14:10:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1648131002; 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=ZhdGfWWkSaK4WxutyZC8ZPkcq52PZjz1QJnXs/MNxmq33KGSVpGVUJmNHOhFld7pium5av +dLD2JOP7VRWb7u3VeHWX8XmP5lo0WvkccLWMAmulrI1x/WQLUgfzIJpVmeJcLE0zAnHwy xb837FWxi7tQVOLhLj4m/OTg9REqC3o= Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05lp2110.outbound.protection.outlook.com [104.47.18.110]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-12-Xt4BkLAuPy-SPLY28t4HbA-2; Thu, 24 Mar 2022 15:09:59 +0100 X-MC-Unique: Xt4BkLAuPy-SPLY28t4HbA-2 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=T+4liYcqB3XF54JYD07Tgy3sjmHfDuy5Pf/IE9tYqtapezEz2r0OWlvGKYI8JkoXtLqWU33cTfv2vQryI14FO+rwQF6SH4NzErJIEDvZ0hrmMVkbBD/5MOzXxbmVQJtfk6adboVgaay2NG6ldDTpi2WH/SQY3YXrw1LExXs+DF9NOh5duYuuXS7rfID7GJ3txkRpsj3Qa2ixsNoZKCpKIsLAfyjNZiLswjNOdzLflkpihTeXXosG60Ssch7x4JGbnX/3fEZhzvIjismgfYsi6DPS2bRvPLiZrOBZbgD1Fv/R6F1B76JdkEuQe35BRVqFZVl1YAv2DTM3B3bBhficwA== 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=kguf4NJX4f8Nvj+Bzekyz1Hw9sf1jc+W77+EOSfjgUMSMZFzM3awhUtVsOGSdJ9arRVOcC84ABRKD/nH0cop6ouxnb5fPEhIafWtrG5prAhIYrFNR9euq1thTnkwOkxJHpGPoH2A1/tMiQDM22OppQfRWywDeHB9JR87mObzJgK51fSvrTJkWSWVwACoWD6XhPm/EdVNCYnjfbhhfiGDeTZzzrtarYPzKMsR5c60qc0XnQfgvFdES59Z9rDeg0Q7UAbxfQni1jfaKlaHmOk3iQ4y4W0yTn0IghBhfWPH3ko/0tUymvJrC6uqn4oA/ML81alN9dd75+0DTAsgHBOFdg== 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 DB7PR04MB5275.eurprd04.prod.outlook.com (2603:10a6:10:24::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5102.16; Thu, 24 Mar 2022 14:09:53 +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; Thu, 24 Mar 2022 14:09:53 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH RESEND mptcp-next v5 7/8] selftests: bpf: add bpf_first scheduler Date: Thu, 24 Mar 2022 22:09:09 +0800 Message-ID: <15d75ff7f10942bfe491631ba2500f5ae9d4592a.1648130637.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HK2PR02CA0201.apcprd02.prod.outlook.com (2603:1096:201:20::13) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: ed3b29d5-fc6d-4194-edea-08da0d9ff7b8 X-MS-TrafficTypeDiagnostic: DB7PR04MB5275: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: bMSST+TlI8zfreoJPGFFJra2tV+GE6afj71sb8Pv9rLVOsgQnudHDyvbnR408+OE9uMzT7wuIQWvH5lFf/jVdZclaz03gl8kMxwpGTJiSr1pMdXKKRLIFCvLJ3WJR1WZiezweo8QvwtOyXT3YX6RbrwleOOzacCVYUncbD4Cpkor5v9HsU6jdeTfG3/tMk8n2h3MPTMsPPIcV2xkYopxArF3/CJ1rc42/uTJoZReXsL7kgNG5ehfnWqj/HPzP5n/tSgKA2i+7QBIDXE5GD/X/7LQ8GJBidxLeS9SKGGIot8WI1zH4VdcMIvTC3VnO7/ZQ3KcA5New0K3GWb7hsTAgpdY33D8fpKDG0yd/kCBOOTtCcwcwE0lPlY3g/45JorBja5mce7oVxoxp0eLdffF0mVpuxN+H0CBA3VcZ7LHw0yrdfR3k/bylf7dZ7JsXFAQuxVjFpurpXA/5Cv9cQf1DuMcWUBB3zvlIKj/8KI8TlpZltOCDHIHEoO0yN49hC3T366TID9SmXS+mGnQb0c+xrfvjJfRzwqoyKiDadCXsgsJ0gdGSY4+JIT57s7bnV8jPZZWXxZLmwULspvugYrvqp5DkV6V3ljaZi7bodkTJczkCsZW1Xb+QKx9ahZIa1zOUgRQcBW2ND4LuEiTvb2mg8n/O8np+z9bVCYSHCGCn/VMh286w8wzZ6QvNGc0vpyD 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)(6916009)(4326008)(66946007)(66476007)(66556008)(8676002)(38100700002)(8936002)(5660300002)(316002)(86362001)(2616005)(107886003)(36756003)(508600001)(6512007)(6486002)(6666004)(26005)(2906002)(186003)(44832011)(6506007)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?kM4jKu788+PYGrEMP7JnsLnSMTg0Amhh+o8eF43vO57Xf8/7SJyOTOgIekhX?= =?us-ascii?Q?T/VbiNmIMv7Uilagx1bE581q6ll6BxsBLZ16iZedHwHbXuusphbAa3uoDcI7?= =?us-ascii?Q?9WPFX8eJkERYTTo1a4PPZcK9yzwR89rJBa8xaSpo3LufMlEt+wR6IIOUgeVd?= =?us-ascii?Q?rZvO771Q0SFWVxoFIn5rrDB36h09BoOhdz/7DwJEgAX2o6DAKprGP121fdky?= =?us-ascii?Q?J8k8qDHB6KmobhxD4P9iD8jzpTtCuAX2TpjOXgYAEXG4Dzc08gxe3nSAWwcN?= =?us-ascii?Q?5AncpjmWJaK7IwpGd1CpgOGoiBDPS5JEsG1scpnjBq5WjzIarIpLvWuOVUcl?= =?us-ascii?Q?qgKEDWEAz+UtHe3wTNzdCkulJLNc57HpDk707KCx6PE4UdmlPdIhc6JUhoGQ?= =?us-ascii?Q?wqGiIrGypgnXA1be0wg6cxZLr4+rmvTNZbjmBhcgOrXgsNP4Iw1ajcAsU1w1?= =?us-ascii?Q?TANbxleZ5B8wLCsaWF043NN/e6mlTiPFGOP7KKUfXK/QUol3s6qi+0E41yBV?= =?us-ascii?Q?97eTJhpSFiL+XCV7rgu7IwmPw4tIbDO7JJUrivx9F7kVYnhqwgV744Zuoe69?= =?us-ascii?Q?Xnqw8IDfYLNisWLYjjl5u7HQPBWumsr4Ak1xGF36hlWAVPUt9vO8dmlqiFNP?= =?us-ascii?Q?zolAg9DEO9SE6EMusTvLBTX+vvbD4nE3RBeZ1tn0LCVN0/PoB5BVXJLhW8Bb?= =?us-ascii?Q?UWFg8nXLNIp5Wbhz8QywaV2Oax9exYEa9GomHK0kFtbSTDQNHDrM3LgpRur6?= =?us-ascii?Q?j+OToFQXAqOTix7v+gjxnRz2GPJJ9Dtcgwg48K+HfQ+QRKSSgbkJSFyYqkQI?= =?us-ascii?Q?DTWM1xSl8dHsEh6ZysMgKvTESQ9KSHTmfQUCPm62BPCweoM5sgQiP914Cz9i?= =?us-ascii?Q?r9uu8Z9HFuoHZYS5uob4C/cbEkktQ8LrpcOxI+tGBfuMXoS+RqO4347aDLCR?= =?us-ascii?Q?7lC0bAnUGKym6ckzgSzJGx1cibUSguRfqtK2h84VtqOJVj1NuL6vrCtaBVi8?= =?us-ascii?Q?WOyE0wAJfB7KPERMieAHIXV9EeEONh8vxK5P++KnGgvDV2jvd+irmMQzdAvR?= =?us-ascii?Q?bIPv/OY+MsNWSNZtde+pr0Qjj4F5mjJ0dcqBd/eDoU7EhK9I7wCDEePgmCqF?= =?us-ascii?Q?eDDZv+KRsT26DI1Fx//NoyZuAUhW9yQdzFlp1pSn/8PBHJ18ELBcNkroLdIX?= =?us-ascii?Q?7vnJEg/CBR9+n8yR4tg9amwAo1wiRxEs5jJ2M8KHvEQAsoOY9fuApamkbCP4?= =?us-ascii?Q?jzkedCqpH61OCQcsjM6EhmopLdSKzgNd/olpAKz8S8YxAVMY31SCFZ7VS8PT?= =?us-ascii?Q?4Wyu2nc/XQxDy2eg6dAal3Ktt3wzzc65+F6A36+NHE0iova2K4mWj+x3mhig?= =?us-ascii?Q?UkGoYXTFezrE9Yh1GzJhcmaBfNrOiDndhUy9lmwpEUl2aV+9U93fdbvb7zLf?= =?us-ascii?Q?ILybJJRjavey2s6udsJ2fhG8hQT0A2KXljiWcTuk2J7jQHVLrRcqJw=3D=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: ed3b29d5-fc6d-4194-edea-08da0d9ff7b8 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Mar 2022 14:09:53.6836 (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: pMUEqcQv6PhrPQBe00isNvSaucmYRjeDHgZ5rDcH1hqlF/E1A4d6Rg79rFGBuSo0ybOez9ZCi7IM9csyWTAFLg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB7PR04MB5275 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 Thu May 2 09:43:10 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a17:907:7811:b0:6d8:2910:9a8 with SMTP id la17csp2190976ejc; Thu, 24 Mar 2022 07:10:17 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzzrDhCQ+SIpQ7Y8ZVm06McLhc/Cf8NXrsMg55FXNFJ5AjoPLJoM3nthhu+0sgSHgkkX4w7 X-Received: by 2002:a05:6a00:1593:b0:4fb:344:2c40 with SMTP id u19-20020a056a00159300b004fb03442c40mr646541pfk.44.1648131017535; Thu, 24 Mar 2022 07:10:17 -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 a20-20020a056a001d1400b004fa3a8e004csi15222844pfx.259.2022.03.24.07.10.16 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 24 Mar 2022 07:10:17 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4410-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=d0s3fZVg; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4410-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1:3600::1 as permitted sender) smtp.mailfrom="mptcp+bounces-4410-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 8111D1C0EE1 for ; Thu, 24 Mar 2022 14:10:14 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 0C82C1FC9; Thu, 24 Mar 2022 14:10: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 D8AB01FC0 for ; Thu, 24 Mar 2022 14:10:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1648131009; 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=kIlkckohIQVaAgcW9wBbEZ+XGTzfe149wUCBN/RfOmM=; b=d0s3fZVgVszjwi9lnF7gOvotaAqB9ctlJdL4b39FJeGlAucdhqmWgIxdb/2IuIZkdv/VU8 OvKpwge2OYrUSXYSwHgc6Tty/IFBEj9PjKkmY1mhCrl0SZEHMEUI6UKtSliX1o6Ge/t+hv RYkZi/DKsPQSrcrLJ+jtP8qAFi9zBgA= Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05lp2108.outbound.protection.outlook.com [104.47.18.108]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-13-Lv4ZFUTbMZmrXNZhDo6zGw-1; Thu, 24 Mar 2022 15:10:07 +0100 X-MC-Unique: Lv4ZFUTbMZmrXNZhDo6zGw-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bWqgQAdAsyS6nGeiAxyL8kW5Wz9rbg8Kff1g4UWDkQCQbC1SPuYY6SxPSOjjzt80ntj1iKp7cvvDqGosVcKGwjk3qCZnPl9KMfwSO3CkTIM9IFO4Gzq62TH0CnePQowAbm2K0S+D/gjJJU2tk6n6wIZlxQgg1jEnLhwUVPXpkB/37JAsqFrPHcENJFUXspHQhc8QiSSuRlWhMqVdCCAInGS8mKxuDa6bQc0RTq3Kq/S/pndekkalvoZubRmKcG1HbMzfn5l5s5AWPPTi9oiPQemcjZP9A9On+K95DBXxLx+aeCtfgXTx59flGpcehEUb8mScFfG3tisQUG9DuZj4VQ== 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=ZomRA7DTzVzrD8uVEMdeP/gn3/Ct6sAiET41uPioC3w=; b=F1DtiXTLDIcRnAboIFiyWTGgts9mxL/3GwwKNSeKT6rXUQixt6eP8RcqlQVb/n/nB5t2mPhPJVBzCfeC3Hm7P65sETGcSMFND6TdmefkrEMCLNia07Y+hy3H/7X+0xeNje5H/5OsjrLJzvR0NZoBkvlkMq8rmEMZwA0Zrbgrr/W+LEcYnKmy+M+QedxPTEiBzdK03mn5KRb0W49nAxqtYiOGokxX3SfvlMCDoyCmfBPIl/VAmVTRNsGNixQ7+vktRg8ok7eR+kDHpfpw0UQWwHF3l9/s9hgpDriG5ITRZoYevWFIWHDGT8+oCxit18SFVHvD910bz4MDd3+/CQn6mw== 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 DB7PR04MB5275.eurprd04.prod.outlook.com (2603:10a6:10:24::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5102.16; Thu, 24 Mar 2022 14:10:06 +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; Thu, 24 Mar 2022 14:10:06 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH RESEND mptcp-next v5 8/8] selftests: bpf: add bpf_first test Date: Thu, 24 Mar 2022 22:09:10 +0800 Message-ID: <9464e044c6dd9ed89b537efe254f3bb96deec658.1648130637.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HK2PR02CA0206.apcprd02.prod.outlook.com (2603:1096:201:20::18) 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: 95c760a5-5e26-44ed-1aba-08da0d9fff4b X-MS-TrafficTypeDiagnostic: DB7PR04MB5275: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: V1ZZjRakC1UKGlaBfm2AdM1sOIBCGksfOBzTEZdWy31jPjtlmSpa8iY8QQYSWeFm6/e1T7Ygh/gEG0tLdOTUMa9CUacZ2PC/r8elPWUT0W26pqtFP2rzJWwGa3pJXDws+rltBWhveIN/3QHAdZbH6V3ACQpe7g1phiLBk7uUytrP8Gs+ZmjJ5aLMSY0SSQJHUSO3xx359cOpH1gBm0O1GkJTpyeCGEPMTxm4HEaHFVdtL4JLYxsNLCF5/gHKDDzdd7KgzIeKPCs8YFGYMZFNMz+lwWy1T9xSj0EcbxgMbW1bYuzAGtdBfXQNlNld8gjHryzbEc8buW9/Z0UMnX5aaivyfOvwDBvqx7i/9OyZWDm6NLni5CWmjp7BQcJVvyUSwkhFndsNBNERbMAxnLCqgAUBzs95hWItZ+ASysFy24V52Rj3ME2+VqLrUe9BHjLPwT+Pf8odI79Ur8voNGTo30BXrRNxu4kNd+D3vsXR7dCpn+8vIutYfHaIwEc1Ct5G0PLh6sY+2zztWWuaMEJuCAKD4RGkjOl/xxlKN1COhTZQglSrYf4DAge8cCMU/q+aMUI/WhlilZPiWu12STBUWJs/DoEsNEzfGxU/aNtiZmxHX8ucR2Dt02aUaRi76AVPCTZ7vtV6g7h4yMcMNuTcB9o3VUT2unZi29vSdS7NrTl9BnzT/WgZrFa7dfxkAUh5 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)(6916009)(4326008)(66946007)(66476007)(66556008)(8676002)(38100700002)(8936002)(5660300002)(316002)(86362001)(2616005)(107886003)(36756003)(508600001)(6512007)(6486002)(83380400001)(6666004)(26005)(2906002)(186003)(44832011)(6506007)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?j3cXqgSBXnPsxW4evmlFrNBl2X9ASc68Ao8p1G7d59hZ+2SaJi6Xpix10YUH?= =?us-ascii?Q?xASkHAZDNE5n1kzWs8Zr/wEw16wz7ujQGXz/6g1Y5JvC49WRzfP6L70wIvH4?= =?us-ascii?Q?mX/TgiWDw8KQ/xL1Fsjp9hLNpkgxfxoPIQQdzqVFxzcb0qeqVciYc4XNm/I4?= =?us-ascii?Q?7sLhDkoD13hrdMCNt160tOSZdA2Zp/n3z57ASHEo+NvwlZjUqUnJ2Akasy30?= =?us-ascii?Q?GAsJmaZozg9LQMnUL2ZfTyk2h9XZCkHYgxoRb8bQJL/go6KfPuKFpNrQaaZ9?= =?us-ascii?Q?Gt6IL67zlegz2TA52FyRICaw2JAVu3qsk3R54QeLigxY7xcQuEVw5nyKlUFK?= =?us-ascii?Q?OGiPx+c77uWQUvPEW+LuO63oIlhJjmlVNiySfu77l5pxb0wZSICOCOZAiANJ?= =?us-ascii?Q?r1rdtYQDaoj0kvS7vsD3AnJQ1jRS36De3WZVgxV8nNd0CJwcqz26n7H49/+5?= =?us-ascii?Q?iyj3czG7CwkUSddrlelTkLI09kxZG9r62hHjAqO8C1yGUKV5LOxuhHuqHCr6?= =?us-ascii?Q?JY7qrt34YT4r+D5YrP6tjdDcpRkMkzEdd/AoJ+gKXrQPyLstVM3Rts3DQnuE?= =?us-ascii?Q?fXxWLL9MusbIMLT/UFlqSPKTGYgS7/fHfgxgP4/5liSOTP+cjZNxyq+YAQiC?= =?us-ascii?Q?bq6JGHICRgNE4hgWiQ0j3Oj2QfFN2O7AywsCGd+FGzsHn3F+eTmprBbGZlXJ?= =?us-ascii?Q?7k0bRxlmfrarMl4xpHGyP6/HTJNJTbe9AvbVt1vjOINO+VmVeT56ViVw/fI8?= =?us-ascii?Q?DvUeOAf9YIyAohkxiSK2Qnye94EDYqvBiOtjMH2HcS6X0QNWML0Icd0L9Ecs?= =?us-ascii?Q?FeiQ3p9XQkmBut/+i8HdfpwjD2duSEbyLaNC1tXi4tmftt8DPHh4bxffDZpO?= =?us-ascii?Q?QBkT5/WwBdf3EJBcLkdujEpJVnUeFRcxxOsLzLt4SDgvmumc0ChijgZ6BM7b?= =?us-ascii?Q?XWad3MbEho03O0vwx41vPRWqY1zkQzvpUjmKkDizv3LHuB1i85YBnIEglStg?= =?us-ascii?Q?pruLW+9iKD6qLsvS/LkKX2BGEsTHZRKVqSiBUJ0i1iC0flALTy+VuqAJjotg?= =?us-ascii?Q?cVyOaZKbjlohuhB7rwX5HGZ/Gja2gju71/AeWOn5DRYlUsMAOvtyEryZ+VGB?= =?us-ascii?Q?3DxDBiu1N4pxfrjhBrbL5P5xefD7kzOK9GixLGHo2W8/gwUe7nte+4oLP8xe?= =?us-ascii?Q?i1VejpEngiUxgv3OpWLpJfRXRbixem2sFXI0Aa3RYn+n/3OyDYxF/SbC+ne9?= =?us-ascii?Q?XTFbPfJyr9zbMTN9mpbGUdoM5cxyvpwNjsFVfaaCkqFhZf3LNeIEdQ3m4mHw?= =?us-ascii?Q?KauI4OPSVS9/2Tet0eBHUf/jP8b3QFgqYa9y2KdeU5lfUit2eEqTI5fjbGRw?= =?us-ascii?Q?WPJHr9WHywUg2wGmWeLtwfaOjWqzRWNgUMW6QT/Yf0ZeQPbvJGDaq6QUD+cu?= =?us-ascii?Q?8EfbjAaKmo5FuYshw1nly92esob728gUcxTC2UsOweZ7P+ubUU6NuA=3D=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 95c760a5-5e26-44ed-1aba-08da0d9fff4b X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Mar 2022 14:10:06.3544 (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: x6yeZ45GaNxzmG4YJq8tRCP/EBRYOklB5s8zi2ONah5YCYFWD84VRRpHjNT/0OyL29V0VunjzO+QO2BQ4VohSg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB7PR04MB5275 Content-Type: text/plain; charset="utf-8" This patch expended the MPTCP test base to support MPTCP packet scheduler tests. Add the bpf_first MPTCP sched test in it. Use sysctl to set net.mptcp.scheduler to use this sched. Signed-off-by: Geliang Tang --- .../testing/selftests/bpf/prog_tests/mptcp.c | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing= /selftests/bpf/prog_tests/mptcp.c index b7c230c4efef..151350202fa6 100644 --- a/tools/testing/selftests/bpf/prog_tests/mptcp.c +++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c @@ -4,6 +4,7 @@ #include #include "cgroup_helpers.h" #include "network_helpers.h" +#include "bpf_first.skel.h" =20 #ifndef TCP_CA_NAME_MAX #define TCP_CA_NAME_MAX 16 @@ -19,6 +20,15 @@ struct mptcp_storage { }; =20 static char monitor_log_path[64]; +static int duration; + +static void send_byte(int fd) +{ + char b =3D 0x55; + + if (CHECK_FAIL(write(fd, &b, sizeof(b)) !=3D 1)) + perror("Failed to send single byte"); +} =20 static int verify_tsk(int map_fd, int client_fd) { @@ -202,6 +212,8 @@ static int run_test(int cgroup_fd, int server_fd, bool = is_mptcp) goto close_client_fd; } =20 + send_byte(client_fd); + err +=3D is_mptcp ? verify_msk(map_fd, client_fd) : verify_tsk(map_fd, client_fd); =20 @@ -254,8 +266,38 @@ void test_base(void) close(cgroup_fd); } =20 +static void test_first(void) +{ + struct bpf_first *first_skel; + int server_fd, client_fd; + struct bpf_link *link; + + first_skel =3D bpf_first__open_and_load(); + if (CHECK(!first_skel, "bpf_first__open_and_load", "failed\n")) + return; + + link =3D bpf_map__attach_struct_ops(first_skel->maps.first); + if (!ASSERT_OK_PTR(link, "bpf_map__attach_struct_ops")) { + bpf_first__destroy(first_skel); + return; + } + + system("sysctl -q net.mptcp.scheduler=3Dbpf_first"); + server_fd =3D start_mptcp_server(AF_INET, NULL, 0, 0); + client_fd =3D connect_to_mptcp_fd(server_fd, 0); + + send_byte(client_fd); + + close(client_fd); + close(server_fd); + bpf_link__destroy(link); + bpf_first__destroy(first_skel); +} + void test_mptcp(void) { if (test__start_subtest("base")) test_base(); + if (test__start_subtest("first")) + test_first(); } --=20 2.34.1