From nobody Thu May 2 21:32:09 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a05:6a06:1788:b0:4ac:5e5b:1ad1 with SMTP id y8csp2021059piq; Sun, 3 Apr 2022 19:10:18 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxj3Jr9k+rBlecuVuNwy6gKiVsFH9j+PS0JenYnR2Fa+CugdgKNRY5M/6hkbpXuoEWLQVQm X-Received: by 2002:a17:90b:1e4e:b0:1c7:3512:c2ac with SMTP id pi14-20020a17090b1e4e00b001c73512c2acmr23778355pjb.61.1649038218437; Sun, 03 Apr 2022 19:10:18 -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 t38-20020a056a0013a600b004fa3a8e0006si9909834pfg.189.2022.04.03.19.10.18 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sun, 03 Apr 2022 19:10:18 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4593-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=awB1ZDxh; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4593-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.69.165 as permitted sender) smtp.mailfrom="mptcp+bounces-4593-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 ADC953E0E79 for ; Mon, 4 Apr 2022 02:10:17 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id C0D1923CE; Mon, 4 Apr 2022 02:10:16 +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 79D4423C8 for ; Mon, 4 Apr 2022 02:10:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1649038212; 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=vw6sy+dxDnhhPoKiLnOOZXtBCtJwAO5Rrv85zrosPXc=; b=awB1ZDxhBKbo5iXsDEZlwxawAACrj+Kc2q0khakokBwLQAZ8JwrSopAGkOHxWVXGZe2EV0 cZ+NXiJz17oJ7Ei4qs6emWxHKKWPKta1K47Sn5JrUK/+JHSsknIA600Ob8kYdhs+wTc++0 8LYPBgmC5EeNvV//EXY1L1oDb2BLuzM= Received: from EUR03-AM5-obe.outbound.protection.outlook.com (mail-am5eur03lp2059.outbound.protection.outlook.com [104.47.8.59]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-17-m6GlD_ShPUKXD_vAjQrHIQ-1; Mon, 04 Apr 2022 04:10:11 +0200 X-MC-Unique: m6GlD_ShPUKXD_vAjQrHIQ-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=TEtnLSxGIJj+xldoict+qePei/8JbcR2uquVBskMkbv7YOcApzHPpdzYOdWcRCeMO0MOZ3nM6YIa8OsOBQ+6Y6MPqXrdqoGuAJue40U30xVb9K0ea77lrvWz2semHW8lqyu5UuxNoUjw7nVqW10kyOpwegSqBt/E1TQDzbRUJSI04sHkxm5iUWi1PLohn7pi3+duQnGYTF4QqAEgGUztG6VV5l78P+i4J7rm0A62g9ELLiE2GacBSo2jRsXf30WdVAaqYZ7L0BCsrH3sNYqD4+rLXw+iV18KahMWd3utODCfXm41J7+ofm+NQtgg1FebX4kiHWBcj5zy0xI87kNgmg== 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=aCX8myZtyLRft9D1sh8gWC08UZmLyQ/e8B/2nON5+ro=; b=Nw853BbebN/vcA7cKLQislOAAl0YBFgrjaikPez7tW5OnUWKGssFH3YphjJUpJOJ73IPYNqAbYQ5UkNv7hAQ9/B00CZDn93z3nQ/PHZUN9N4mryZ9/kFsov2zjItS6O9QRm/66yWe2fweHc8vkUrnegVXLH4JW5I8UErqbet7Xm3Zyij0lWigtKY0G1DVnx/NjYpJ6iDDON3wfSu1/JrzFrQa6kKedeYGIo6GIZ/ETvw9FEqTuHzOAIqHLbwE/bkw998bj1v6ivUhmCDlRyCb3UAW6BT0YqcWeK9ypr2yd5mCrPmzuDQJYtsZe6rsXOU0ecZMpiZ4kQKL2ob5gqV0Q== 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 AM7PR04MB7189.eurprd04.prod.outlook.com (2603:10a6:20b:116::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5123.31; Mon, 4 Apr 2022 02:10:10 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::9974:fd5e:e3c0:14dc]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::9974:fd5e:e3c0:14dc%3]) with mapi id 15.20.5123.031; Mon, 4 Apr 2022 02:10:10 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v9 1/8] mptcp: add struct mptcp_sched_ops Date: Mon, 4 Apr 2022 10:09:53 +0800 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYAPR01CA0075.jpnprd01.prod.outlook.com (2603:1096:404:2c::15) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 89130986-dd21-4cb3-3cbb-08da15e03f2e X-MS-TrafficTypeDiagnostic: AM7PR04MB7189: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: YQiZy2bh7SP9ayIm+Zy7HKwDogvt7aHBn9+6pvs37hkP45Eq89UT3ZfnXh7oLjXD4bQGaBvAVAUGd/iFAOL3HCqsojDuEjMiLBNT6ju9L/kdfwhD5V46Ejfpkz/Hfw1eewxwHSIOeyzGZ6lQEN9rTlP6huR5ODRHpvsSNPrRqQ8wErxscJpcMz+C4WBxyi3T1XPUeq4Z8RLkc0amMWQujzU2MiZ4zlwURJhBG80erBnmsliJoFZTNaVZE03Xtpg2FlAQcXAI2qoJ2McqINsWkVuJnyIj/24nYUewNUdBH+OeXupt2kMZBZcIRP6HLuexbAh+ZchngmIcBsp4VIE0sTTpy0KHdGgbtyknI7U9VBlObXpS1FcQz7SGaA3KEt3pm4yXmJ1Fzy/Z+CkIUUAbtrLJ+xtM4oob63ACVKJC+npNrRzDUDstHgKCdYh5cmWICkATXM4FatYu6llBkPQ0iC/BWQn7hC/Y7Y3cVjOpDRbLwhxR9H09D+cCS3r8OVTSo/3OsZ4c9d8/pw7E15XUj2yydsgK7uclGLcY/Bb4gJLWh3SpzO+zLhXO1+aUbUKfyBpHwt1EF97+5xQP/H8LcwvEP8mvRyLrtFjl4pvkgo5Uy6m5bi6mAl/YyqZ1GZr+glCKEHxzVCMTSYKf8GybdtaysXj8Wxhi6Tc7hEkrEV1yo1EcOXHGRD2fHu/iVx5s 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)(44832011)(107886003)(6486002)(5660300002)(83380400001)(8936002)(36756003)(26005)(2616005)(6666004)(2906002)(508600001)(38100700002)(66476007)(316002)(86362001)(6916009)(66556008)(8676002)(4326008)(6512007)(6506007)(66946007)(186003)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?W503cM4ZPok/YESRPh/CRuKhHsQ5VugWvOYKUH40Cv81bSkQNPL0rKN9hPbe?= =?us-ascii?Q?kk4QvLyiqKdiRrJZzmHjqUUOfKS9kxVbuBuedVzjRflEByLRxb20ZT5rUUQG?= =?us-ascii?Q?RUQV4Hl3BlGi4vHbCPZkc82GP14yNR/8WrxRfzBh+HahJfJ8tmGxpBsaecpv?= =?us-ascii?Q?AxbDpQ16X/qLkgyHTVTwAGE53B8/CYEPLpiSBWLup0pbRTMsP95dqKYPe885?= =?us-ascii?Q?ZJB/gK2rG2AJT2r/tGEm8eYH9HuKW0Nm6Dtl8LYb+BbxvyTxuq13CjWifeGy?= =?us-ascii?Q?G57X7kQeont1j/7lCpz3PqoKMI+xMSNYd0W0tL3IofsTiIPgOTsHhExsZxvk?= =?us-ascii?Q?6/+EvEZ9MpPPM1z07/augSJNdH2sBpqRceEweab35718wNptGFmJgP/+iEuo?= =?us-ascii?Q?mWw1sFdJwTrWNn68tk0SgHIckTNua3BXUGu8v54Vgf0px2TLKvCrrCTswBUE?= =?us-ascii?Q?W9QYLVM3PeFR8JJn/TdqeJ19FA/6g4To1EOnp5ogo81EZhWWoSH2jGt4GBLV?= =?us-ascii?Q?pAyaR02oerbnw0MvVzKhe1qwT4x9qx5XJqirzOWMryV266NYxRxj/JlG5Eb2?= =?us-ascii?Q?uxdi+X/RqQsWV1JSlcvn6DYRSn6q/V7xamdUhb1wbiFjUN+wN20gqrtyL7Ke?= =?us-ascii?Q?7Z7gnmAR+HqvjC3n0DIlWmp/pdRl6m36i7mgQNGNhaEVcG6fYtKkaipDhEwv?= =?us-ascii?Q?FXtXKsK5n1OZJWzYQqxZ/w7DyJNt9xBVH/mKFhepAM6GTv/ka/NEF6Dn+4+p?= =?us-ascii?Q?Bm/SzvrIgvlizxYDqTn492zglSrsgHxyX384yDNjjgj0qYYiivD5gK/1liTf?= =?us-ascii?Q?KjK5qvjt/UB+OXf0mHf/oywriS+i3FYOmWgx0qhDpBX096axuunawMM86MN4?= =?us-ascii?Q?sf528ozLmbn3lPz8LUwesmh5VdfomFVdt1TCzSyBqYn4kyFcdq7eJv9/Tbq+?= =?us-ascii?Q?AxFBgaX/GsrOrmklreLQRWG/fcmeboqNY2OZ+LOBxBU2dc1fhzqN1HHVtQpG?= =?us-ascii?Q?e64K98e0xYIDxb1OvkhOMgAeLG905Cy7mTMlF0kE8ss6h3T2zCl7cTI0d2Dj?= =?us-ascii?Q?VaQ8Ve504tcDtdVS+vtT1bGOsPDG70EzchB2+F9bJ3Ksca0PdVxSHooP8mg5?= =?us-ascii?Q?nCop//uN2EMy5iDuahOVlnaWwPfVz967up/9ihPKQWoBE70sqjLpI3yR1ll9?= =?us-ascii?Q?9OI0hvXiU2nJ8quUUGU5DudvGkOmwrDh3yW6yarVdW2GbJiu5EPpdFUfooud?= =?us-ascii?Q?pAgoViGDnYVEZlCR6kVOfDoZI0S9ehi5It1BqZuQAsj6TXXaDpTvsdcO0uBV?= =?us-ascii?Q?UY5c45kVxZuesmtEP2AgfraE6t6b/4V3VGdRPks4hlcVtGuZftelrx4ZHpsD?= =?us-ascii?Q?jXWB2pp1ha2CDUbU3LmhB41oWuaCst89PSieqDFQiMRtPFj02U0X70m+HbmJ?= =?us-ascii?Q?/CiHvOGkdfdoQLorejAM6wygspfT0OqA73UHnIvkYNoYC9WPTwGmArOxtKBX?= =?us-ascii?Q?e8q+2J1LnYlsyvIcgJ9xmtB0KJ6M7hixZg8Ns7WvTwjqTJR2sdHiO/kfZQaK?= =?us-ascii?Q?6OSjJ9ID8SMy7Kgooy14M6yhfUVQ3GvgN4YMgKFjFc5uxrBB+pClR9GvCPEK?= =?us-ascii?Q?dPD0f/Y9a6xC3F6RISrG4hC6x3x7WCSIk9oxavwUNQlR637mz2/JjihW4NPK?= =?us-ascii?Q?YM5I0Q97c91F4qfNaPSpIVGqyOp6WEOaOdyjySu7N0JVd7NTm4xm8fhW0imB?= =?us-ascii?Q?YSuTk2nj695Z6PAcTMUu2wPjkJcZ1mo=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 89130986-dd21-4cb3-3cbb-08da15e03f2e X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Apr 2022 02:10:10.7261 (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: 6ZLgB2Y/+bdxyO1HlMS8Xcg3Ty/4JlzTbJDeur9cqXiql95b8Oigqv23li/jhkRtzLWmjpaOUms76jXgWkhW5A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR04MB7189 Content-Type: text/plain; charset="utf-8" This patch defines struct mptcp_sched_ops, which has three struct members, name, owner and list, and three function pointers, init, release and get_subflow. Add the scheduler registering, unregistering and finding functions to add or delete or find a packet scheduler on mptcp_sched_list. Signed-off-by: Geliang Tang --- include/net/mptcp.h | 13 ++++++++++ net/mptcp/Makefile | 2 +- net/mptcp/protocol.h | 3 +++ net/mptcp/sched.c | 56 ++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 73 insertions(+), 1 deletion(-) create mode 100644 net/mptcp/sched.c diff --git a/include/net/mptcp.h b/include/net/mptcp.h index 877077b53200..aea7ed9a2250 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 168c55d1c917..a37330760b0c 100644 --- a/net/mptcp/Makefile +++ b/net/mptcp/Makefile @@ -2,7 +2,7 @@ obj-$(CONFIG_MPTCP) +=3D mptcp.o =20 mptcp-y :=3D protocol.o subflow.o options.o token.o crypto.o ctrl.o pm.o d= iag.o \ - mib.o pm_netlink.o sockopt.o + mib.o pm_netlink.o sockopt.o sched.o =20 obj-$(CONFIG_SYN_COOKIES) +=3D syncookies.o obj-$(CONFIG_INET_MPTCP_DIAG) +=3D mptcp_diag.o diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h index 187c932deef0..7cd2c1c3d25c 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -608,6 +608,9 @@ int mptcp_subflow_create_socket(struct sock *sk, struct= socket **new_sock); void mptcp_info2sockaddr(const struct mptcp_addr_info *info, struct sockaddr_storage *addr, unsigned short family); +struct mptcp_sched_ops *mptcp_sched_find(const char *name); +int mptcp_register_scheduler(struct mptcp_sched_ops *sched); +void mptcp_unregister_scheduler(struct mptcp_sched_ops *sched); =20 static inline bool __mptcp_subflow_active(struct mptcp_subflow_context *su= bflow) { diff --git a/net/mptcp/sched.c b/net/mptcp/sched.c new file mode 100644 index 000000000000..c5d3bbafba71 --- /dev/null +++ b/net/mptcp/sched.c @@ -0,0 +1,56 @@ +// SPDX-License-Identifier: GPL-2.0 +/* Multipath TCP + * + * Copyright (c) 2022, SUSE. + */ + +#define pr_fmt(fmt) "MPTCP: " fmt + +#include +#include +#include +#include +#include +#include "protocol.h" + +static DEFINE_SPINLOCK(mptcp_sched_list_lock); +static LIST_HEAD(mptcp_sched_list); + +/* Must be called with rcu read lock held */ +struct mptcp_sched_ops *mptcp_sched_find(const char *name) +{ + struct mptcp_sched_ops *sched, *ret =3D NULL; + + list_for_each_entry_rcu(sched, &mptcp_sched_list, list) { + if (!strcmp(sched->name, name)) { + ret =3D sched; + break; + } + } + + return ret; +} + +int mptcp_register_scheduler(struct mptcp_sched_ops *sched) +{ + if (!sched->get_subflow) + return -EINVAL; + + spin_lock(&mptcp_sched_list_lock); + if (mptcp_sched_find(sched->name)) { + spin_unlock(&mptcp_sched_list_lock); + return -EEXIST; + } + list_add_tail_rcu(&sched->list, &mptcp_sched_list); + spin_unlock(&mptcp_sched_list_lock); + + pr_debug("%s registered", sched->name); + return 0; +} + +void mptcp_unregister_scheduler(struct mptcp_sched_ops *sched) +{ + spin_lock(&mptcp_sched_list_lock); + list_del_rcu(&sched->list); + spin_unlock(&mptcp_sched_list_lock); +} --=20 2.34.1 From nobody Thu May 2 21:32:09 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a05:6a06:1788:b0:4ac:5e5b:1ad1 with SMTP id y8csp2021120piq; Sun, 3 Apr 2022 19:10:30 -0700 (PDT) X-Google-Smtp-Source: ABdhPJy+CEQbgyefUtxnRWQhY+IKKW1NMIgQ6iVL1dSPkhUvI3QiqfqcgerGmyBEK0Yg6Ur4eF3a X-Received: by 2002:aa7:c793:0:b0:408:4a69:90b4 with SMTP id n19-20020aa7c793000000b004084a6990b4mr30406805eds.58.1649038230265; Sun, 03 Apr 2022 19:10:30 -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 gi7-20020a1709070c8700b006df76385f09si4871688ejc.937.2022.04.03.19.10.29 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sun, 03 Apr 2022 19:10:30 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4594-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=eyRKi6sI; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4594-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.197.195 as permitted sender) smtp.mailfrom="mptcp+bounces-4594-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 C86C91C09DA for ; Mon, 4 Apr 2022 02:10:28 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 86B5523CE; Mon, 4 Apr 2022 02:10:27 +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 96DF723C8 for ; Mon, 4 Apr 2022 02:10:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1649038223; 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=z9bKNns0WKPtoPGR1Yav8hetGtaj7+evRF/dqMYzWuA=; b=eyRKi6sIhKQ/Zc9Pg/SER7mqSEn3YssjftM17AZW2kHfYfUfKYqt9ehnL2o26VAP3Tgmp9 F/ZgxzkCX2RGgo4InqCRd+qhBtBfrm7IEwGZDKgRjhB5fiesUkC0y+XZ5C97F/gXiEOls2 Vq2/4eCugmTOdVch3AC/jpm1HF4eEhY= Received: from EUR03-AM5-obe.outbound.protection.outlook.com (mail-am5eur03lp2057.outbound.protection.outlook.com [104.47.8.57]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-23-ZYAkZPotOw6vfIfb0W42wQ-1; Mon, 04 Apr 2022 04:10:22 +0200 X-MC-Unique: ZYAkZPotOw6vfIfb0W42wQ-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KYnY0psqsJ/JXGo2e852kaIWpbLdZEDp+dz3s/ra9hyYwglWGUSWG+o2eSPW0i26tqXcp+l5CEUU/wtkCYb7aXOHlEUME1WmCtx2WTFiIF6p7skbYBFf5evbXeJweXzs3Wm5Q52MclDHBMz5LXErYPmS598IJWNdwduhaqKrNDZXKmROzRphCDhNvVFW6/bhg+OJMs+bTpFX+IYXd/tNAaFYw6P57rizyLztSYFQshZMeBtV0AsQenJmwoQjclPYmKyIF8LEfxnqzHA221pAgEPxes97yoQ/mg7lFQuWprbbpBCK4voZvGT/gwIaJM5gkdowP7F+RPALVZTpht1p7g== 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=zDimTEZvw0pFT5GFgXHly73uwPmnpfTzyITsok+hkpM=; b=JmXWdDCAznwQpxGrW+euF/0Qywyxt7PRvNiSTjclcO8bTMfGOUOnimRIBDVydDxfldykyVELyDdw+7rhuVMPKZkJdAp2NpOKp7EhuiXlDWWbNFNTutD853we+jc5W83zIHX0FSqa+JjPS3cEfka/hiNp92FU0JTRSa298YHjfv2wZ2Gy4i505NhVopDr0Mx9qkBDGYXlGXO+V2ZfzelZQYRjEv6+I8tYArskdrGkAxZ81rx2wXLB1tNpNi7yBMY0ocmdCAoL9o223f+tsyE/+hvVHb2xyCoRm6Jz3hNKrMRWofMvAI8U6w9z36f3BgSQ9fkAday9ldLcXC9hk8dHYQ== 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 AM7PR04MB7189.eurprd04.prod.outlook.com (2603:10a6:20b:116::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5123.31; Mon, 4 Apr 2022 02:10:21 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::9974:fd5e:e3c0:14dc]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::9974:fd5e:e3c0:14dc%3]) with mapi id 15.20.5123.031; Mon, 4 Apr 2022 02:10:21 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v9 2/8] mptcp: register default scheduler Date: Mon, 4 Apr 2022 10:09:54 +0800 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TY2PR0101CA0003.apcprd01.prod.exchangelabs.com (2603:1096:404:92::15) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 1b7ee162-b370-402b-cb1f-08da15e045d6 X-MS-TrafficTypeDiagnostic: AM7PR04MB7189: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: cAqq0Mz70KT27wgqoHEZuV+ujIaT4vqJBI5WDy16qLeCfvYTcV52NgUWRZM7etaGMLYzvhwWermB0yFRgfM0nmp3fSmSxqKNoz6nwRWpDibwo5ymCAs11SsXO35LLqqVsBpIxNGhdO2+JOJBGjfVINZhjsLNQsHJQPXw5mIJQ+CID6gOKT3LH/EMmYAwW/6qGZlwgEWM19Ajn3ELYNgH3Uf7XcQOQ8k9xNQd8lAuwZGg4tc23qV482/xAg2I6NXGjNc34bUguezhMozT5SdyUCom/FHwr50DUMCfhHw16PoI+QPlgNYoEUiMprzIrVIoFtPERVZ7CmzNeyMFlRpw7GU8Zos/q/xYFtuQIB06bZNJQ07xzFMZPj05/hyuyUthXWiLSzrE1Mdn1/wSfF7Lwrfr1Hw+HX4pGVOvolSfuoXpH4/6ukLVINwtU+Xb3J33xAuxfy+0IvX+uTKOql1q2gA/mN7GBN99k62G9WwVpH8QoOS7suVV8hTZshuMobAOsbGL2Y2YiZv1KEbUVkM7fC9bmieoUdz/k332w5vg/71ixV5GI1B8NpRD4XGW5WDVGeKNGcN23aLHFuRNBbiOqzj9Gc1Sc0l+H0LBPO9qoCSmQ3Kzsu9MDSwzhYhyYrc+JcCLbTi6aIlYm4Ra3He35CmUJQfh51MO4bBH3MIuzbexFjtCgZDnX5/+NMJXO6cw 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)(44832011)(107886003)(6486002)(5660300002)(83380400001)(8936002)(36756003)(26005)(2616005)(6666004)(2906002)(508600001)(38100700002)(66476007)(316002)(86362001)(6916009)(66556008)(8676002)(4326008)(6512007)(6506007)(66946007)(186003)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?1pJHfoNF5FNO7c9/94axQYGpNP/6uba77zH8WES+7jE2w52IgzDvrY+9yMUi?= =?us-ascii?Q?As+gEquKykPSoP7GHNV6+RfRtpe37CUODU7m+Q3VjrWragXSINbsSG4HajeG?= =?us-ascii?Q?2XbXQbp1RMgLI2z9G+bkRf4ulXKCApFuEXPPOYiKQwcn1Vy1Q7BUP70gKX05?= =?us-ascii?Q?KeYkgZBEClAU3GNOQv9MxWqhwTC9j7qFcTuEjpzl06vAZOa6rSv0jaVG8nHp?= =?us-ascii?Q?u3p5PfdNLjL344wN0gnTXwyfq1Pfwck9/7fAUqnwDzbrT3IU0OPB9k2jeoFg?= =?us-ascii?Q?SKagBpC2gAgub2I3KtTbseqxVVtNRic+DfJpRV8ysW1gUhjNCBqaaw1dd6J7?= =?us-ascii?Q?9B936UAZdP10XZct2BmFOao92srPIozT/06S32ZqpKGmotUzsUWsl+TJ8cdH?= =?us-ascii?Q?F6/3pCCcJHTEaaLrcv43YQqmm1yE36CJPJ39vJCt5CKTLUPeeEQ/Nrg0xKv5?= =?us-ascii?Q?mj8TCKi8CEFZJuD+Gg68pkau7F74Mo16qGkCA7Z0SPnJtUpFcFCggeGwCvxo?= =?us-ascii?Q?IbA6ulQq6p/DMnMEBVB2/iB5DoJu1FxYLm0HxQhqla+IEi4TqzGNc/k/HqBn?= =?us-ascii?Q?lZIUN9W29JDBjbKYHfPClALqoJRZU5e/0eX91y8sH1+BtOxvz+KaDf359Czb?= =?us-ascii?Q?OugUAn6s9f9cm8DZzllFyIUFFOBFS02oYcwyF2fg97quii2GfUeTEpQB7Nvs?= =?us-ascii?Q?E/LEYdo6SstDb8q0GXtFLHpBxg6+d6q48CC1q6Hrl41k8M3uMu5NE5us6tZv?= =?us-ascii?Q?oBnWh3Jg6giw1B/lmVlTVSqTNCe4fp1pf9ipgI9Ac0oxerGC1yNVySaEIB26?= =?us-ascii?Q?abU0qesI9aUvn2GijEYHK5pqK5MytuJTTFKZRg6EEb+romAts7C3PNqVjXBV?= =?us-ascii?Q?oi6hkNwNO+h+eIXnGv/LA4MBcStirSlEv/X6dSJvj7HMKul1gDQ6pRSWTmDD?= =?us-ascii?Q?20jPJ/82gybUw2MCf/uQiCaQbJkEKAvdkjR+E8/TodK0mwYPVmLBZiVXP6l+?= =?us-ascii?Q?I4a4VP9RL/OZNxvq1dBd3Rx2e7V5F7nYHA5XJiVC0xxaBTorrJetkZM7Nso/?= =?us-ascii?Q?gCFxAFcF/Z5vZ0mG+2p+jUaA9fercQjXBr8EkfJ26pGAvPNNd+TdDVKlgwSJ?= =?us-ascii?Q?i73fCmTziXU/dneUwrw26YFOKvk27CFyPqeDF40eGEgoQlHaQ9zvPHvQkw1P?= =?us-ascii?Q?a+XsdVfILp9Ee8TrK6Wr3vsWCn/rLMS2YgnUhTtYm8++iSkqnF2FJFWjDWky?= =?us-ascii?Q?t+G9tGVWiuNHAaakBcgHnoblXbmgy2ROuEqkOH7EotZJLox6H7Ou/h+yGdNE?= =?us-ascii?Q?DoUvxkyk1IVRrfNgzxhx1rzrE7hm3Ntfi7GMGiMFB4rtDnd488NFQXI4aE8i?= =?us-ascii?Q?qCeNNJ/A+ZANhmZ10kZ/9wu+AorOPuJ0X0gZTKT7m1OxGH09Z6vHwHH0pWc+?= =?us-ascii?Q?m+KnBwlnVPFPlnQbOHxtmc4rj9v4+UGdkPIHxcUpiqYcPFlzieKQkvV5KGFK?= =?us-ascii?Q?Qnh6H8zFH7jmX9ev1k9ThTmWo6noFeorOWT5d1ukYI9cbEpgM2BuqfhmosEP?= =?us-ascii?Q?RSjDO8xCv+GbSASRLmoYomU8uHRtou74xS93jYXUk3XY+S9iLq7EQtBd0ZRP?= =?us-ascii?Q?3vzGPVQkWXLsKQ8xYSqybpBGPTMd8Kidzzb/MHZ7veATAyVBBZiewzerGT6k?= =?us-ascii?Q?DewnGUuvLuFwx6U2NVS9YnYb7UpXrwQ6s85LcaeNcksdCfAfmnXiw2b5XgGw?= =?us-ascii?Q?SinkvVXXNCgYq0sfEDDqT9x4VMKqWVk=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1b7ee162-b370-402b-cb1f-08da15e045d6 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Apr 2022 02:10:21.8189 (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: C5HXPiTDg+qOTd+/SZs1oyk5Cnuzw0tsHdXGWvil/RxrtD2HnKaLAIylMcaUUzibOt8DW2xfAtoDTQpU1QEujg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR04MB7189 Content-Type: text/plain; charset="utf-8" This patch defines the default packet scheduler mptcp_sched_default, register it in mptcp_sched_init(), which is invoked in mptcp_proto_init(). Skip deleting this default scheduler in mptcp_unregister_scheduler(). Signed-off-by: Geliang Tang --- net/mptcp/protocol.c | 3 ++- net/mptcp/protocol.h | 2 ++ net/mptcp/sched.c | 14 ++++++++++++++ 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index b2c654992de0..8f0e71c38336 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; @@ -3804,6 +3804,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 7cd2c1c3d25c..a264964f8d95 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -611,6 +611,8 @@ void mptcp_info2sockaddr(const struct mptcp_addr_info *= info, struct mptcp_sched_ops *mptcp_sched_find(const char *name); int mptcp_register_scheduler(struct mptcp_sched_ops *sched); void mptcp_unregister_scheduler(struct mptcp_sched_ops *sched); +struct sock *mptcp_subflow_get_send(struct mptcp_sock *msk); +void mptcp_sched_init(void); =20 static inline bool __mptcp_subflow_active(struct mptcp_subflow_context *su= bflow) { diff --git a/net/mptcp/sched.c b/net/mptcp/sched.c index c5d3bbafba71..52828eb741c0 100644 --- a/net/mptcp/sched.c +++ b/net/mptcp/sched.c @@ -13,6 +13,12 @@ #include #include "protocol.h" =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 DEFINE_SPINLOCK(mptcp_sched_list_lock); static LIST_HEAD(mptcp_sched_list); =20 @@ -50,7 +56,15 @@ int mptcp_register_scheduler(struct mptcp_sched_ops *sch= ed) =20 void mptcp_unregister_scheduler(struct mptcp_sched_ops *sched) { + if (sched =3D=3D &mptcp_sched_default) + return; + spin_lock(&mptcp_sched_list_lock); list_del_rcu(&sched->list); spin_unlock(&mptcp_sched_list_lock); } + +void mptcp_sched_init(void) +{ + mptcp_register_scheduler(&mptcp_sched_default); +} --=20 2.34.1 From nobody Thu May 2 21:32:09 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a05:6a06:1788:b0:4ac:5e5b:1ad1 with SMTP id y8csp2021201piq; Sun, 3 Apr 2022 19:10:43 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzQOPzHCOU5UjGUg/gehpv1knm+D9kR8eBpCJ4ETnJby+EwcP66wxpz3FQbGg3TgLrdxZDF X-Received: by 2002:a17:906:314b:b0:6d6:da31:e545 with SMTP id e11-20020a170906314b00b006d6da31e545mr9259498eje.125.1649038242929; Sun, 03 Apr 2022 19:10:42 -0700 (PDT) Return-Path: Received: from ewr.edge.kernel.org (ewr.edge.kernel.org. [147.75.197.195]) by mx.google.com with ESMTPS id j21-20020aa7de95000000b00418c2b5bde7si6101088edv.201.2022.04.03.19.10.42 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sun, 03 Apr 2022 19:10:42 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4595-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=RylIw2oh; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4595-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.197.195 as permitted sender) smtp.mailfrom="mptcp+bounces-4595-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 2742D1C0A4D for ; Mon, 4 Apr 2022 02:10:41 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id B283323CE; Mon, 4 Apr 2022 02:10:39 +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 BBBF023C8 for ; Mon, 4 Apr 2022 02:10:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1649038235; 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=XqtNdeTbKx05B16qyCBV/WQRsi3qZu6i02p1PT8BtLY=; b=RylIw2ohuaP5A/D0Wg04khXpAT7GFkhQ00MPQYZTE6VgWgRpNby7qhA5XBzXi7DBCp14DA 1cP16jKAummxh8uc+9bp6RJzCWwXhqBqKr3724SZ6hG8lF8W556HI8yJN+hES2KEzv/Z5I wkYmfhKg8ZnLC/GXjAX2v23pCLhdIuI= Received: from EUR03-AM5-obe.outbound.protection.outlook.com (mail-am5eur03lp2056.outbound.protection.outlook.com [104.47.8.56]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-35-c-1kLoMlOvmbHeXJX7NlRQ-1; Mon, 04 Apr 2022 04:10:34 +0200 X-MC-Unique: c-1kLoMlOvmbHeXJX7NlRQ-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=LkAr8mMvMtucrYwORjwBI5OM4PY6EhmxgBpDycO7Hr6yHLCyrDf5+F74dq/ZCIBOKjwLK76xejSD1gOuPmKJ64JoBmTkfBo10S4b4wseT8K7KjzNpjUIBqDxHYYx0PUwBYcYcxurmYp7G8Q4rV55+i9a18HcZpgcRG+iOjNMzd2rT8qYESaJnzEBQlboyHeAB9U8affmIkO5/pdyA3M0ihuyA1ZCc78IDycHuifuWr/leempSNyUI1WsyuxOmNDBCw+4E07W49r3zt0wiykULhgZlJAH+EB6soUZ50HZVIRjjjO2XJcuhDkRtG3pC2K6PtuvlqupcEOfFJEa8HE9fg== 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=yjrP1fDKs1mwyLd2rW3BcpPVxO/VBYXmWE9yhmeHxcQ=; b=LkbGnl9pn8Mu/7GUEX7bSmJ0CJF0Opt5S4AKtZQeiqUWJkSetFfqX/ZobCHOimAvPBbopnHIjsVk6WcxOuGQSVd4WkkjiRZLKXd55NYLMjB1dUW6wjCXhwhu6plZ2W8RYp7gvOF49c3y23XENvi5xO5mSSxMwCB+dbOAvEmYBBNKaYx+HQuu9oOD1njKMGP0ZIg8U+3mTdGnSROGA+rsvHeLqlfEyZAZNJ89CAf7iGsK0ul31qJoPViAXWlfXSj3gCLm4UZFl+3L0anc/F0kPTnP+2QxbWgijGXTz47LD0zGu5Ao3Hwmqt8rHiVmQP8NGlTPOFiExOUd/ls5ceTXOQ== 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 AM7PR04MB7189.eurprd04.prod.outlook.com (2603:10a6:20b:116::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5123.31; Mon, 4 Apr 2022 02:10:33 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::9974:fd5e:e3c0:14dc]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::9974:fd5e:e3c0:14dc%3]) with mapi id 15.20.5123.031; Mon, 4 Apr 2022 02:10:33 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v9 3/8] mptcp: add a new sysctl scheduler Date: Mon, 4 Apr 2022 10:09:55 +0800 Message-ID: <89ea2aa8f42ef3bcb80c7e29ba2cd9a334319ff2.1649037838.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYAPR01CA0016.jpnprd01.prod.outlook.com (2603:1096:404::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: 7f50be0c-825e-45f8-a749-08da15e04c8d X-MS-TrafficTypeDiagnostic: AM7PR04MB7189: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: Ei78eXbxxoyL8IwohlddVNiTyZIWIOR2FNRxvw0DVn32GSEQ3Y8dAHZWVEICAEyCxsFqOJmR6CIErZ+Awrm7uZ9dnyoKkxje+WZdH8c+WekMiyqR5Q+29xmjOlyMClmVNhItNJx+ZJaslCFXJH087ulz6obavgEMuiRxVYbRrL9ysR66n7rK8BkA7yolVRS3PpsLY0HMv9RpRUZueZu8OiElKvjF7LVtlG8WYW8B4G/kvrmnhBZNWoCuOBUoXU8DxSLLWSkeXfO5p3py7fRohDACJHra/RZBRS+VN0uL5iRtlh12xZQ0HXAWBkDAT6hfAkKqSm/OzZa61s1ApqDyl8Dxl0EelVEI4ybIxum0X8lVBEPhuJwN5ds3CHdjQJbRKhQlTumBZhMuULNg+Y+WpCdjidP3SmyjvVXELCQuuzMaNkyF1E1EKvrO0ECPXlUTyeWfNEwY+Az/o0+70v8IzqLrkLH86y5KuMvWzfhcmXrWHmitvn2uheD10JBpt6Gv2EAuW2ratToBRDDSFUdsUTSSAi22LC1/Jy8oMG4xIuvHu3R1ggIv7BbWeUh5f58C33GEKR9BdTuAkd89vDudhPDrM+U2zwsizzrP35SAv/9+3rxs/Gs2i12RgEJuDebEY3ECOJrho1UzPEHS1eBua69pQNiVEd0/k85h8yn72TgJPa6ONeZgXJpMx2pqBZLZ1lRZwl8GQECP4Fkfm2PbgQ== 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)(44832011)(107886003)(6486002)(5660300002)(8936002)(36756003)(26005)(2616005)(6666004)(2906002)(508600001)(38100700002)(66476007)(316002)(86362001)(6916009)(66556008)(8676002)(4326008)(6512007)(6506007)(66946007)(186003)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?PHHH8rDahJt/WYrOPo0TikMn7XIGNE+yK1i4KNKCIgkTzC4LH2KNGwzx0AMR?= =?us-ascii?Q?kfcHuJTIrTv63fUJ+UkEQwmlAH178GZh3jb5+4J7yDDkLB+1r5XCM9M9XrKf?= =?us-ascii?Q?8FRPfvNFtSc34JiFdE/T0Vpn1FVUosLWjp6Mw8JnOR0DZ880Yf0oxgONLLrc?= =?us-ascii?Q?VOPLxNokzTo85ce6UPzUR6CJWqQnWpAgZRlXYiqrt/ZRLjiQ/fdTX9POAqiK?= =?us-ascii?Q?QitcmzhOWBJEIWXYS4wf9Nc3deXgcKa25IZwKgjNY49oNupOB1cwom7yh6Tj?= =?us-ascii?Q?d0a/ah/Nq5W130aViQDdaVpULdF4u/ANAsWsKvRh5nQ4W7JPEHbABdtJaHa8?= =?us-ascii?Q?R6wxjBRuuk3cBTshFjetZfaIErhohU1yDKb8sv9bLcr7x5OHu/yhyfqjHxVJ?= =?us-ascii?Q?JWH6fYhn4E/iSOgih5WFj05JUfbw/MWz+Nf2Tith2MhJZJDiWP136NQSqkSo?= =?us-ascii?Q?T14mHcb0hdR2Q+D2Q/6+ZKsP6PpXT0eiz9PhKvnVJt2J3ayhiiTlc3KbCl/x?= =?us-ascii?Q?pJwRlTSzAbiBHrPtt/ap42IOgGTABYkh3xhqc95zg8xCmuDWOeoSlq2ulIn9?= =?us-ascii?Q?usJR8bnu2I8BbuMwmFw3BIb/xmTdpRRrDwM15zNHet+vRnyCD3uDMB5fg2aX?= =?us-ascii?Q?u2lFs8IlXjVtREgttaX8ygDti9QOg/TMxZN+8w6Oatm9IJ+xB86Xx9B9cHkM?= =?us-ascii?Q?vTyxlTGeusEP7XOazLNtGIQjVyXcow2hTvOUif9/gthAU8pzWV9dH2TnsE6D?= =?us-ascii?Q?8QqCHzkeeDUN0c9khmoCVr9AYbzwjfSaVvMhd2dEAcGYSkdooue0+ES4oPaX?= =?us-ascii?Q?C/iAODLnuab/n7QG+MTqW1KlxcfxPO58S+n+9ZC8kNdwZ0oXZS6E1RUUMjdD?= =?us-ascii?Q?Pysk4OGoIzrsDXj/NiPpbTHDKJzhr+/4MvkXyGSPYbo7lWT2dtpNouWmGPIH?= =?us-ascii?Q?w6jSlM5jht4DhU5vs8qEHho6c2VKkGz309PIMdmiZdHmBFvNnMXWzxpZ3Pzl?= =?us-ascii?Q?iTkM5C//RkuF+/IdAGsrtxBLEXbG4opuzEf7I/+XEuVMziSWqLbSQ0V9ISlF?= =?us-ascii?Q?cWO3CId1KRJZvX67jOCDHAofruGDOCzkVN9bLbJ2ecvWcuROkeqdy4rC9Nxw?= =?us-ascii?Q?mpB2K6Ot47V53fuwgCegEMfW21EM8foLO8DnEw8vfiZKAxFgLTG2Pdq6ISiv?= =?us-ascii?Q?TF77hgQmbzOlfjZG22bHQk2jc3J8lALpAil/Snbun/QDpkhqmoZrj9wi3nSP?= =?us-ascii?Q?GUMW2K6rwoFhvLW95LigL71iwemK2WCnDPyBJuJhA4Y7j66Hdg5W8SspfZJw?= =?us-ascii?Q?5jYsRxNm7c5pLyIA6g1PHe1oxv2tXStOxLcs8u3YLGWaYfTKofAH1x20DYLu?= =?us-ascii?Q?67LhHcA/XAUN7pkupasgn44yARvtPDrzO7Q7IdqUx9WPBZwrBN+xxjqSju/k?= =?us-ascii?Q?aeVKeNiELx9EMxYV+AGHNU0HD59sPJDHWERS4id3rNGGCrkpAnVQkS/8PNsF?= =?us-ascii?Q?px7bZeHexIyWWfEtJ4QGV3gbh4+mwEoYp/jJG/8ydd8C7y8y7PyU7ZU7wdc8?= =?us-ascii?Q?sOvj4d2Xq0+2tPm4jfJqQdQ9zWX25YZrCw3QmoCEvE4Nj7zk7qXqRHVfjy7E?= =?us-ascii?Q?jny3Pb4KdIu96h9q6V1S9VvxsAenMBVOJ6319NhBQwgX2MlSAmJYD4JhidId?= =?us-ascii?Q?MZMISZaR+DHdFNRYvpJ9mpyjhbfXzLAwZygExZsy3N1G/ZB9IrozBuVqs07f?= =?us-ascii?Q?QjBcICbZrTs++chtXoOtSRktjmS4gbw=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7f50be0c-825e-45f8-a749-08da15e04c8d X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Apr 2022 02:10:33.0680 (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: AxyI4C6PHQS9SLhToRPgrS8fLlnXLw69k9fnGYypjd8VPf/yFuJDFjkPGFZndabpGyzj8bO6kJGYo0bDxp0F3g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR04MB7189 Content-Type: text/plain; charset="utf-8" This patch adds a new sysctl, named scheduler, to support for selection of different schedulers. Export mptcp_get_scheduler helper to get this sysctl. 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 a264964f8d95..65a08110268d 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 21:32:09 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a05:6a06:1788:b0:4ac:5e5b:1ad1 with SMTP id y8csp2021257piq; Sun, 3 Apr 2022 19:10:53 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyl6jNu9eiupD07ar//o2kGIOr5cXkm0wQ139FWAs1RfjlkgzwYyxDExCDRZmQVTTrSP87I X-Received: by 2002:a05:6402:f16:b0:419:d9f3:f8b with SMTP id i22-20020a0564020f1600b00419d9f30f8bmr31183595eda.33.1649038253691; Sun, 03 Apr 2022 19:10:53 -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 q20-20020a50c354000000b00418c2b5bf6bsi2522678edb.589.2022.04.03.19.10.53 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sun, 03 Apr 2022 19:10:53 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4596-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=JtGweRQm; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4596-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1:3600::1 as permitted sender) smtp.mailfrom="mptcp+bounces-4596-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 26D8B1C0A44 for ; Mon, 4 Apr 2022 02:10:52 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id AD6FF23CE; Mon, 4 Apr 2022 02:10:50 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.109.102]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BF82723C8 for ; Mon, 4 Apr 2022 02:10:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1649038246; 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=WxjZ7pdD83y1hS4EYdAGlaPJc1LSgR709t2FR5yS/zU=; b=JtGweRQmEUNjITl7T60ucdJODdbmVeznUdF5mYdwpkqsfTjA7JCwKHjhXaHd74DS7m4LES wMpCSzocz1zFGN600CzGUhojHWiO4Z8Japt9xoGv+UN+/Tkn9kXyDmtutyflYgxbox4RN2 xpGIpYTjAVms/fOdkbcPSE3+d1onGNg= Received: from EUR02-AM5-obe.outbound.protection.outlook.com (mail-am5eur02lp2057.outbound.protection.outlook.com [104.47.4.57]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-39-7YRNGSU5NZKgbx-C9Em4Ig-1; Mon, 04 Apr 2022 04:10:45 +0200 X-MC-Unique: 7YRNGSU5NZKgbx-C9Em4Ig-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KidmdRVgiRX/2gRMT5R4rzItkjgCrLaHcPzTgQXS5q5e6OM+GX7mfPnUTs8wSP8U/JOX9hDUWCSsWyhkw99FJqDnoXtFFNpYL6bjyzriu07+Sv3sPMzdu0vQ3GmYARHJAsXAUoCQ3BNmnQd1TvWDS6fL8R3lzPTCOPjGROO43YhVWtcbI4TOItqq+21c5l8W4QWZMPeWDVLqasBhoGweKQ/8jNDlNQUVR8utdCLRNmilpYhgqc78phtfenRCUI8hs+G0G0kmiAmwrjuSSI1ONguR9sc0yEvFdh7giHsFAgfHhr5vlQVIzg6Dv/N/sP4Ru2QadA2uXyMH11+RbEfLAQ== 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=cIFj6RPpzflxj77/1/bXfH0GhShReIWDWHFRc2L5qRw=; b=AgBDMuzaCi5odJ56vaATdFd0yszaF756UTDWoCiLoByctJRr2aJsDyWCECfDCokydyXwpyoCHb7rNJsyS//XXBLBdoV2L2FCr1SF5HVPxnLDv7KnIXfWnnRssDhGCtOrBzNUSLuaL64D6U+4eILP1cJGrFGQCVbY3z4F/9bDMiE3XOwQilQe/3MjX2jy5NXgrmkJm7kuRnnE8mAR3pXp+HMcuwncQLYL13yvpGiopX366TGyL413r23uQMYfcKN9qrNYtAZd9lTSTmyD/CFi7EK/VcPgik3jwPr1qdnlmIHP24K9IGh5QQ/G0il55H9lo7xV/5gCsovl/q13rjiQyg== 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 AM7PR04MB7189.eurprd04.prod.outlook.com (2603:10a6:20b:116::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5123.31; Mon, 4 Apr 2022 02:10:44 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::9974:fd5e:e3c0:14dc]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::9974:fd5e:e3c0:14dc%3]) with mapi id 15.20.5123.031; Mon, 4 Apr 2022 02:10:44 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v9 4/8] mptcp: add sched in mptcp_sock Date: Mon, 4 Apr 2022 10:09:56 +0800 Message-ID: <64d8a25cc23fe8720f29f303a136e5cd6001bb73.1649037838.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYCPR01CA0012.jpnprd01.prod.outlook.com (2603:1096:405::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: db9ad226-c5ea-4ea8-35a6-08da15e05336 X-MS-TrafficTypeDiagnostic: AM7PR04MB7189: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: 80A/Fq/iNoYVhWsnBHqxCvCwJk36nzL+hx3F6rqdCxeZ6LBHy19aQ4jrN2/nIQBiSVsVCgeHaa23eS27damkrIXneEhsS7JKyuu+kzBU++zpQFTTiUbMZKIaoA0bWnTPrbhhFwCttrSb1sXnPGmtC0ibWuyF1YfnKT6K+hP1zQOpMbLiPxLEWCKvBw2GjmvsKg/q9mt1C1s7ebaekrpemw1Nz1oLQKZTMZ61QuWcW7y7qGJXccXSGVzv3OPW7SQAyVAq9fb2DXjJ3bStODOM/mUnIArz/trAOm4QOo1dgrFJ0f0NKTWAMu5xEP+oVY4Ndvn5lzEZ8jYK3xq13O/jjoSq0BDeQJ+rL41wvlOtK6u2yfAaFw3UfVYY8I+T45VoAZvnK2SFov7da6xst4D9EGNBSQL7jNK+28u9cVDOSoZ7H63ZoP5BpWrCZ1PRSrdFqa0USCYRxsOoBPCpo5NbVw6b5qo/BFpgCukqqeN1prFjmO+S+Lr1fIKKP94bmCKkXyZjtrmSHBQPtwqDB2k/QTUx3/tZazSNkXCiXGz6qdbDJOtxM6gzaVqiSnWsM5kQKUMR0hkuTU+Dtt4uJi7HvcwokzAHp4eE0O7HLfsI+pzhmpaRQyJ0O+HEGih9YlVVto4CxlA3qoFAy0ks+hCep/es2ZKQB3vOVCemWIIK2YukRecqZyouT6iMS83M15Ji 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)(44832011)(107886003)(6486002)(5660300002)(83380400001)(8936002)(36756003)(26005)(2616005)(6666004)(2906002)(508600001)(38100700002)(66476007)(316002)(86362001)(6916009)(66556008)(8676002)(4326008)(6512007)(6506007)(66946007)(186003)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Yu/V4pDYmRDMkf47GPkiKlpRpvXlGFnNQLdrQ+DeDUFqB9fxKhqNBXEK0jd5?= =?us-ascii?Q?8dbQtfjr6lKni/c8vDu6XdkmxYjZISoiGocWzKbCvP8pKJQssYAat9o5frbC?= =?us-ascii?Q?Dx0a5MP9t3Nc5w6ok7i1GbxExZEegoc/4xqjPkzCh2W5vcmA+6xAz5GtvVn5?= =?us-ascii?Q?a6eFPvAmyGcUztc23tkrvlcm3jIA0grQzi59AW0TpeOOHK4bdY0zT9V714tt?= =?us-ascii?Q?OBhW/bI3j8+JAkZTZcKz+HYXhEZr/RP5QDtXmPto1+rlrkgx/tfZd6q0QwTc?= =?us-ascii?Q?yUNDSi5Ahm+kPyN8rhJrg2FCHg3Fx7+bWK12SwsCAmOIKsHtO//tkNzRm/fZ?= =?us-ascii?Q?g7t5C6fdqkCMTkm3mKHRN/clQPcFhGxlN2WbB0SdMxHCwaLFXTQmY6BtYw8E?= =?us-ascii?Q?h9c3d9erxiawPvroBha+BEjl9qDPkp1rKNg7HatLrKKJDIkSeL4PH11biObQ?= =?us-ascii?Q?ZGIPZH/wmzFctZcUWZUzHwZUY9q34AMd+PnO4TezidUWHPC66Cf78Ozzpo9G?= =?us-ascii?Q?/XxX8/OFyxWdHbb3KK25eISQNPDNgXAyY4knXsVvYfJ3CtbCIKWel6Ef1DbV?= =?us-ascii?Q?6kNfOpXhXQNYwLTEYhqIVzvz9y633hVF2HmFuFg6oj/pSCp9HdJWHmaW5s1x?= =?us-ascii?Q?WngGXF3C4G2GMaByU1Vcz2HkY1ydr5pGrcktlDed07bcMcLayPRna4Gkx08C?= =?us-ascii?Q?AFfEJQ38WY4ud98T1HdIG1A5cMjlJ4vk60/qh9cgAhphD6jFmCC+RhWVGwIB?= =?us-ascii?Q?tlqtDEhz2QUlb00Xrpvzx9A2YF1QrT8HSsyRTikyzZCZXIjqp4D0lJ/zXlzP?= =?us-ascii?Q?dt2muGibz0I4EYVRqvydglGVesdtPuQsxro9WmfqTDQvKVtpUtXgDQOzFe9U?= =?us-ascii?Q?P5M9aSifehK3R85nsDV8m5Rfwi+J5nnL/2BAEr8IKJJK7MXl9kC7L1hTcQ2c?= =?us-ascii?Q?WduOgiXoYrZnw47Bkp9cC78tBT+IrGVQpuoPaMJ2yAILwj8Yjq9mRFlgymHZ?= =?us-ascii?Q?C8nN6o2ycY4wub7TAkdIQvVklHVRYY0GxuTwhCgn9fQQ68y56xCMqPrPKM9u?= =?us-ascii?Q?ecg1IGhraw3rutf64b8Purewykb6IrhXTA9EAKnPqMSUAwDXuwYxEfG4Lq/7?= =?us-ascii?Q?+23jqi8JUbZYTGHTVt7iJcMi86UI271TZFB08FE/EpO3P1rZs3bHqCSSEbVf?= =?us-ascii?Q?sTfAz5RbYjDcZEqKZA0BMsFTn9x5uZ80dYB6dpUfaEQwnOYVZgmEaHjyE37S?= =?us-ascii?Q?nlPVib3eX2nG6ftzhPkaJ2jUCLTNj8NMmH71zShHx9RqaASDsLNegy4DINKS?= =?us-ascii?Q?khONqrHgxQh9/mOyi+dUEq9HcGQvNDL58gAuonKnuA2jvpo+YsxLSkTShvyq?= =?us-ascii?Q?pH5B4mg7lXg982bQNO2opdxC5ey9JZheYDEIoV4OSCkHuQtE9ePKm3CQohRw?= =?us-ascii?Q?y56NHNOOW85NxyJaIiZnWg8+cdsBVn8nPrPFrt7w9NZNzVJZ6I38gQ362kT0?= =?us-ascii?Q?sHUltiT3UE1FgrrOXcaoPkjMk4YYkvkCXq9McYVcHQeP6mY1WZGU6HeX+Hj8?= =?us-ascii?Q?Uz2qZc5xQwc/5VZ3UY4m/D5cz3DToSPqR9H/FS2wR6qdNvpGCbb+0tkgppt1?= =?us-ascii?Q?+sHAn8EidHkEbx0qM1kzXfyNy8I/NHhUq+6y5JQdI0wSW/vOI5lVMneyb3ba?= =?us-ascii?Q?rPGbd2ZNfzyr2CXdbdBlcWP6nxwcRGTTReRHw/DKPnwnePcpX05guZtZ5FcA?= =?us-ascii?Q?P2oSn3D30C5VXkv7Obe0l/Z8j3wubpw=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: db9ad226-c5ea-4ea8-35a6-08da15e05336 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Apr 2022 02:10:44.2234 (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: GC3p47Vj4p4UCrKrdZS/ERKKJu3TZGnX4ZZoWDND/7gqK9jWW5n5rjp9zyE5LmvDJy0MknL8CuL8aBAergPEbg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR04MB7189 Content-Type: text/plain; charset="utf-8" This patch adds 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 | 7 +++++++ net/mptcp/protocol.h | 4 ++++ net/mptcp/sched.c | 34 ++++++++++++++++++++++++++++++++++ 3 files changed, 45 insertions(+) diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index 8f0e71c38336..37f4f6f3661d 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -2657,6 +2657,11 @@ static int mptcp_init_sock(struct sock *sk) if (ret) return ret; =20 + ret =3D mptcp_init_sched(mptcp_sk(sk), + mptcp_sched_find(mptcp_get_scheduler(net))); + if (ret) + return ret; + /* fetch the ca name; do it outside __mptcp_init_sock(), so that clone wi= ll * propagate the correct value */ @@ -2816,6 +2821,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 +2999,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 65a08110268d..1016dac065c8 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 */ @@ -614,6 +615,9 @@ int mptcp_register_scheduler(struct mptcp_sched_ops *sc= hed); void mptcp_unregister_scheduler(struct mptcp_sched_ops *sched); struct sock *mptcp_subflow_get_send(struct mptcp_sock *msk); void mptcp_sched_init(void); +int 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 52828eb741c0..5d20d252088f 100644 --- a/net/mptcp/sched.c +++ b/net/mptcp/sched.c @@ -68,3 +68,37 @@ void mptcp_sched_init(void) { mptcp_register_scheduler(&mptcp_sched_default); } + +int mptcp_init_sched(struct mptcp_sock *msk, + struct mptcp_sched_ops *sched) +{ + struct mptcp_sched_ops *sched_init =3D &mptcp_sched_default; + + if (sched) + sched_init =3D sched; + + if (!bpf_try_module_get(sched_init, sched_init->owner)) + return -EBUSY; + + msk->sched =3D sched_init; + if (msk->sched->init) + msk->sched->init(msk); + + pr_debug("sched=3D%s", msk->sched->name); + + return 0; +} + +void mptcp_release_sched(struct mptcp_sock *msk) +{ + struct mptcp_sched_ops *sched =3D msk->sched; + + if (!sched) + return; + + msk->sched =3D NULL; + if (sched->release) + sched->release(msk); + + bpf_module_put(sched, sched->owner); +} --=20 2.34.1 From nobody Thu May 2 21:32:09 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a05:6a06:1788:b0:4ac:5e5b:1ad1 with SMTP id y8csp2021305piq; Sun, 3 Apr 2022 19:11:03 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwkibw7Cmpww3w/LxYmq6kyuQUQnh/bO1qDNIc7v+/vOxoiCGBzQUll8drlD/C4hCK+LN5g X-Received: by 2002:a17:906:3283:b0:6ce:78f9:fafd with SMTP id 3-20020a170906328300b006ce78f9fafdmr9116835ejw.534.1649038262972; Sun, 03 Apr 2022 19:11:02 -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 z17-20020a05640240d100b00418c2b5bd7csi5995073edb.94.2022.04.03.19.11.02 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sun, 03 Apr 2022 19:11:02 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4597-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=iOXhKtTN; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4597-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.197.195 as permitted sender) smtp.mailfrom="mptcp+bounces-4597-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 73CFC1C0A77 for ; Mon, 4 Apr 2022 02:11:01 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 409E123CE; Mon, 4 Apr 2022 02:11:00 +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 BA09A23C8 for ; Mon, 4 Apr 2022 02:10:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1649038257; 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=XCAUJFfZTvD2CW4nAOu7enI6uiPvelc1FWnwTpfq47g=; b=iOXhKtTNboGKSqE++0uV1O/KnjDw7QibRVVmuRNowcaGExWB2YpVImKtiTXfFG1NlOerUY vPaOjUgGBQ8LJa3PekKKrNRon4TwmEsVGmR/g3GVo8jyuQ3LjIbcyzPSi7yggCksN0FCz7 Z+YAOkq7vrWeFnyaNEMIPb+uFayU5tw= Received: from EUR03-AM5-obe.outbound.protection.outlook.com (mail-am5eur03lp2054.outbound.protection.outlook.com [104.47.8.54]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-7-DxilCQYWPe6BkB-yIUAMlQ-1; Mon, 04 Apr 2022 04:10:56 +0200 X-MC-Unique: DxilCQYWPe6BkB-yIUAMlQ-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Je4WHA5K+P831hXn9ygIexJ/q89yjBj88MnZim9aXCdGK4e/fqQpgBiSSpWo1Z1nruVSDLVxaQD/cBq+ohzELjgbKuQ/lDAk3ZAtLsIv8Hd8FyQ6OjOEDjoMwbJeIMpgwG5zbbQNcur5QOr2BGYXZdCLRhcs4VsrOhVM053j1LIoORmSS5OMwAVzi+9n4Qn+1jbm3nRKaKp25X9SOEnhz2VRA2fbTU/I6eeZTueftPlSuZ1fBevCOfZUKQcSmNvI1L6gJ8GTPao8e5b+CFLyfe/sGYAM3rJB+PdIR41ZXyeZi3zoBnaW2HjLEUppcSGo6lGPok/fSCHmp95z/hPdDQ== 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=tLS3s8l7b2dNdNZvl/u6To6L/wlvIU1qXwupFWTACEw=; b=YbggU2QdcmSiWG8T13NsQoQtvu43U87JjtTfiFndzOOlrkVzuSEVpcIm7sruhrJLLzDumrO7hPHwWSAq1mDmlh44oFqnyaEfYcTyQuQvc9jpQv5CCV9bm0uos+lSgndj/IkPEh4/sdRBnJt/upVo765UV0LlpYYJxxfzrPBwrrN9Odak4OXoYCGbAmNVmGVXRsgoV4gmAPqYXe7wCh03f4Ubke93vC6GXrnYJGNi6Sbq1LIpBO/ePQ2CdnCY4dO+mSIKZ+su25CKGaCqKNt0EOtOAacWkoduZDNKRnRpnWSdHsyjXN6TObDt5kxWBjGyXwPsOm0yczRZn4eVEYnxBQ== 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 AM7PR04MB7189.eurprd04.prod.outlook.com (2603:10a6:20b:116::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5123.31; Mon, 4 Apr 2022 02:10:55 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::9974:fd5e:e3c0:14dc]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::9974:fd5e:e3c0:14dc%3]) with mapi id 15.20.5123.031; Mon, 4 Apr 2022 02:10:55 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v9 5/8] mptcp: add get_subflow wrapper Date: Mon, 4 Apr 2022 10:09:57 +0800 Message-ID: <34603ae4ae8d42e145594d02be3625c1c0e0c551.1649037838.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TY1PR01CA0168.jpnprd01.prod.outlook.com (2603:1096:402::20) 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: 02fb83c8-a040-4fbc-b19b-08da15e059cb X-MS-TrafficTypeDiagnostic: AM7PR04MB7189: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: 7/mHWObHdPS/O1bwfCVdiR1YDbMudIr3kCmIykoPtdi1oOXKqE1HTogb+hYLLJtTogcCOV/NIDcsobMsLAwdvFcFh6Jtg2PvQtbKnzqHjhwMHiO9VRxCPI0l7Uylqz/FpemgIsjofqb7xpiuVw/lFmgo6dc6tQBxtvFq01lt8NFowHQAmuf3vbRkzM0KgEF/0tHPzROPeed3NqssoHpUsEgY3wt0B2WQTIdO/gkBjRGRdviUeH2HKc17u29YIxY3PZh0cMn9hrYWHF2sGRYewdo/15OB4KNXB+ycNJzxmgfCGIEPKA2wuoJKdaY5F4vC4ebL5RNuRKZLHpGAsHeq1fjOQFJc6ieHWp/9qlSa2t5WEBP4433dYc6xgbE1elKlJBaF2yjB/h5WQ20PbdA66LZHuRN0b2xpp1XB3qn5U0jJlWd1XZwIVoASaX0ivVvTHaE8WBsDNPa8+blprdpIwrLp+ABlamq125NXonyn5tzUzpPGHVcLcaEKgEsYoehMhGmc6dbjilugAWZz41X8rhRm/rgWktYudVtVBxId9W9HfIBcNBHYrwBOPBnv5qVndhbGc8iiWAtcnfhOE8lD9Djp/D1xhLS/RaiBB1BCJS0X4jK+61AaQ/LsIWtpGAL3T2N7YJidLfiBloYyuOIFWrclafb6EkaqJpgwPVwYSdsaGBwZj1Ed/++TaZhA9gJE 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)(44832011)(107886003)(6486002)(5660300002)(83380400001)(8936002)(36756003)(26005)(2616005)(2906002)(508600001)(38100700002)(66476007)(316002)(86362001)(6916009)(66556008)(8676002)(4326008)(6512007)(6506007)(66946007)(186003)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?59l3Ph/95hPtWr5fN7+CkKFXEUSDPDI/o1Wb/AvXT+d2JlslGtKix1jLTqpz?= =?us-ascii?Q?6fpsW8rukHZ6YcN7ve/SaBPzStO/1Li1xz/bM7OOhoTy7+VZ4mIUfriB3hh0?= =?us-ascii?Q?f7RCQQ+gu6RcinawZRiENOEZR4+O7hZdRbySC+ZP9346+LcgTSloL9t5aTPX?= =?us-ascii?Q?ftdKe9RHnah7q5f+tp2H+NmSLFYjiFi/I7/zQlwFkT8pYTfiXfxtF9pYSh/V?= =?us-ascii?Q?uEWSAumcMw/i228PkssF7N4DqqIGkBqqHKIQrkm76KlfDdQyAO3V5x/xk2A6?= =?us-ascii?Q?mY6d6SV5BOgsZDf4Sk/OOXm3PweKiR5+c/ndtER5I8egD7o0UHNyGZnQItJc?= =?us-ascii?Q?rYFY588QFCzZI4JLczim88ExHOfwIJCBaOxZDpcCFL0XkA3CjZpKUm+atVMg?= =?us-ascii?Q?0pfsCvy9cECvnzAGYY/qfwRiKHNoxh9oDYdXIke6/EFWMz/2mVbNe2dXfYJi?= =?us-ascii?Q?Glq7cAEs82hLCsy3lz6BLTeXD8wOX+45y794MjGos26ehbBkdaBYJHdpM4Kb?= =?us-ascii?Q?yhjp3n9/Pfdk42qERWzuH0fkCc5qrhXSst6gXVryrAgzESzJvYn5ljn2mTer?= =?us-ascii?Q?3NgN9cwHFu7hEnWkZmPg+pmOSAhiUnqsTbk1K2rs82J0EiC2RlyOYwwwXwaf?= =?us-ascii?Q?4X2gO99WTPoQvuvuW5zE/2luXAePcMK8ibHPwt9jYPFpzLIoH3vNmoZ33vAn?= =?us-ascii?Q?P/aqGvJlvwVhwJgJBaHvaGwTenB2vRt83YyGdNjhzpHHegtSczjrVo9uSjpY?= =?us-ascii?Q?73uJDq5v8q1st2Hc4CL6ef1qlmdNNsDzdxGh/TdLV9NK85B8d2A0j24fvehB?= =?us-ascii?Q?TkcY5x+IwdP0xM9erhjx248uFVjHeTLw75aEKxee7lgf5z16tanjdcOKbPp2?= =?us-ascii?Q?PXKl9DFWJGs+avI3siiyitWVM9GuPRlsLhLd7s7Tbq8dCdEMu9n80Bxw7esa?= =?us-ascii?Q?YL06ofV2vno6WOThk86wWqHTnOdDoRM+zVwwg54fKvOTXqlGMM0IuKpf5vOL?= =?us-ascii?Q?gkp+HgH++MnH02g1MMQcg6oZs50IrxlB/pRn0Ro4027qVg0SKsKm0gFrf+sT?= =?us-ascii?Q?mzsHtwpztFm34GC45rNi89rCQrKJ5J5BsAxDRt17YMG2sXvNJIuOuoOgx8vy?= =?us-ascii?Q?ZpRnCoqqNZVpptxYjlz+NwKEYR6UtQgQRabIJ0gyD3tP472EYp4eo8U70Lzs?= =?us-ascii?Q?V6qp2VJ6xkGdDpXv0rdkjskdsl8X3uAAShfRdlvKw8lgKVX88nqwCo4K6w0/?= =?us-ascii?Q?Fqfxg8ZCBEw8WzmUMGrOCc5amBJMCSGkB8u5WjV1D2neHCCtPWfaTDHeZm+8?= =?us-ascii?Q?O6Gey6VBOnLD+SsywaaOLaq5yFQYP3PiBYcpifeZI1jhaGHuS6JSGN1/qaC1?= =?us-ascii?Q?fFwN8GpTXWAlDfYTKy/S1ECtqk4YMI5YRDKP9BjW3SLv+wyaveGJbA84iI0l?= =?us-ascii?Q?XOiTM/nYNCw9dtU0Pqbwd8xUFVxTds4FiII9qJbSsvJIH5A6ec15G+SZq/X8?= =?us-ascii?Q?z18wa9IhFCI0tbx8oxe9bR21S5qS7PYs67kTyEvTQYpB7lini9FYN9vD3mtz?= =?us-ascii?Q?tt5PiOEcIKGiI6ZvBeZ/H+fVD2rlHZ7DZ2TdBigoC8dULd706B4uwadm0xbG?= =?us-ascii?Q?8Lpa0e6UdERjWSqSWd/4ruGSFV/DQtwrF9i4eySECwzDRHpQ58ndy3gMhEvf?= =?us-ascii?Q?QGwxHSDPMBYN6AI9SCF7YG9IEWAkiY0pt4mF7iSfxLeyXNPSAADnyUydZB6d?= =?us-ascii?Q?W6irvEWlJ+wt36Ai1OeCGaB97DSUrRU=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 02fb83c8-a040-4fbc-b19b-08da15e059cb X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Apr 2022 02:10:55.3006 (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: wByCvOxYCKwaGY4LZqF5UTlteMlodmhSoBrCRAgMcAsqo3eTIqdr04KhQhPo5PY5gf17rBlsrKpj7NJ7IdHw8g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR04MB7189 Content-Type: text/plain; charset="utf-8" This patch defines 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. Move the msk->last_snd setting out of get_subflow() of msk->sched, set it after invoking get_subflow() as the return value of it. Signed-off-by: Geliang Tang --- net/mptcp/protocol.c | 7 +++---- net/mptcp/protocol.h | 9 +++++++++ 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index 37f4f6f3661d..c9e49b2561af 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -1507,7 +1507,6 @@ struct sock *mptcp_subflow_get_send(struct mptcp_sock= *msk) subflow->avg_pacing_rate =3D div_u64((u64)subflow->avg_pacing_rate * wmem= + READ_ONCE(ssk->sk_pacing_rate) * burst, burst + wmem); - msk->last_snd =3D ssk; msk->snd_burst =3D burst; return ssk; } @@ -1567,7 +1566,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 +1635,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) { @@ -3137,7 +3136,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 1016dac065c8..3caa1a08b7e8 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -619,6 +619,15 @@ int mptcp_init_sched(struct mptcp_sock *msk, struct mptcp_sched_ops *sched); void mptcp_release_sched(struct mptcp_sock *msk); =20 +static inline struct sock *mptcp_sched_get_subflow(struct mptcp_sock *msk) +{ + struct sock *ssk =3D INDIRECT_CALL_INET_1(msk->sched->get_subflow, + mptcp_subflow_get_send, msk); + + msk->last_snd =3D ssk; + return ssk; +} + static inline bool __mptcp_subflow_active(struct mptcp_subflow_context *su= bflow) { struct sock *ssk =3D mptcp_subflow_tcp_sock(subflow); --=20 2.34.1 From nobody Thu May 2 21:32:09 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a05:6a06:1788:b0:4ac:5e5b:1ad1 with SMTP id y8csp2021372piq; Sun, 3 Apr 2022 19:11:14 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyauwwmqjtszaEyL/qLLUohTGGPNjFnCp4nwVEDwPyqIIxdn1yoYSW7CIh/FMapZsgdiTSe X-Received: by 2002:aa7:dd88:0:b0:41c:c008:d8e2 with SMTP id g8-20020aa7dd88000000b0041cc008d8e2mr5150114edv.309.1649038274832; Sun, 03 Apr 2022 19:11:14 -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 12-20020a170906308c00b006df76385d4csi5516590ejv.492.2022.04.03.19.11.14 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sun, 03 Apr 2022 19:11:14 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4598-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=cQwx9+si; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4598-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.197.195 as permitted sender) smtp.mailfrom="mptcp+bounces-4598-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 1B0631C0A9D for ; Mon, 4 Apr 2022 02:11:13 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id D5E5D23CE; Mon, 4 Apr 2022 02:11:11 +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 EE50B23C8 for ; Mon, 4 Apr 2022 02:11:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1649038268; 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=oo3//fx14XjCUefb+pfNy/oJL8lmMWbhrHvuCa3AHI4=; b=cQwx9+sirm5HeEEtbDu8okEqxhUk9QMMR6DDwmx2ULQLsMqF+KZSvHx6EDK8XyfbLStoKx nR8OluInm2U3pWAjUExhxfbdJYRnnVj4qG20IWQHLlUXXJ7/QdUiWvPV5Ts9oXWXEWblGC 0VN8eBCn3yuSGHc5S5Pv77qmsv8Jfco= Received: from EUR03-AM5-obe.outbound.protection.outlook.com (mail-am5eur03lp2055.outbound.protection.outlook.com [104.47.8.55]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-19-kdLWg43QPsO-xiuc708HkQ-1; Mon, 04 Apr 2022 04:11:07 +0200 X-MC-Unique: kdLWg43QPsO-xiuc708HkQ-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=m3mj7dcQ15KaS69X3BKSlilYgM02Ch8WaJ4vYUSvowB4evcu1nbdWGX6SLRtLj34K95YiklvUhFhtbteHxkaPdolti0iWWldtqNFvVv7d+/JKqUNkZohZCFssJMGE7sLeQSbfg48Opi/F6N2zHezCULceNKtH16Dj4ztnvU6mcRD56oDhkkxzwfQtUW9RBe0C8R1sX3VyzutVcD0HdAGwYb6ajIOV0P+24RteccyY92ffSoVtWe2CxuL98CIVWRE8uEJyQwErasdBS3iWVGxY5GtXTRKs2j4rgV+540oy7bfbJZUCJA9Oeq4jB2o/wC9/7KmtiB5X44vFx350kHj8w== 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=RckPJ3GmfIEin07RhOIHtDwm8KHZir2Jika9vk0kB9M=; b=ZlctrxbNKZ9jIumOvurRR2sKfyeJClrO98pRxXir87yHH0AMncaARe+MxalPrpgw2QQ54yPfEErbK7BfkCrpg/+yWNRhYxwtiNvwmIRzuSvRGKQRSmX0BqwQG6ty9e9Z5aJZUvT+5p14YhrG6k5Gi+g3n160DRvbkd+KH0yPVmdyzD8ymIRQfTUiLzi0/rJPPNsCHM0Eo+hwyiyrHCPftxBaRVNRpotgd4TCrh9le71Zdu9VjgAbZBeHuFt0aQ3skeph2L41CZ/IkedBka+o04mDcRA89BclknK1caGTytTxUQ+wyKKUX7wT5teI1vNqq1zypTYnP0paR3vEzEkUrA== 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 AM7PR04MB7189.eurprd04.prod.outlook.com (2603:10a6:20b:116::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5123.31; Mon, 4 Apr 2022 02:11:06 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::9974:fd5e:e3c0:14dc]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::9974:fd5e:e3c0:14dc%3]) with mapi id 15.20.5123.031; Mon, 4 Apr 2022 02:11:06 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v9 6/8] mptcp: add bpf_mptcp_sched_ops Date: Mon, 4 Apr 2022 10:09:58 +0800 Message-ID: <31b426d5e4d7ccb318ee96f122bc1ac0421d5162.1649037838.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TY1PR01CA0160.jpnprd01.prod.outlook.com (2603:1096:402::12) 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: a05ce71a-95b7-4612-3ffb-08da15e06074 X-MS-TrafficTypeDiagnostic: AM7PR04MB7189: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: vOGH1Piz8sKI2XuDxWoISfMkCi8ZrVwvZOnM6GPxVwKLdIoJj4cLUv5ezmAPm3yKoFay980+PasbdJM4KggjCMZTWNn+0rznrNmN6TAPa4eimjnFczGcWssxCyh3wr2MjVdw+/c0gqWrmoUMPVVhZdNVRA6Q2rKTjjWqMUltEav7xNszWekGRWZIuJoTOS86PW+3wKg5lVHZ3uOFHk5wyc/OZgprP62nOA089gX5uytysA5T9KUa7oJZtWJg5qGyXJhOPLsAT2nBG1RLbjfU9tUuAMdQ4W6h5sqRfOw60v/ONK3wGh9/DIP0TRfFk5II1QVqwzW0pN04PnhAVkfb3JQRrX2iTssWURn8q9MAgf/ke4vOZVfLxksnju70rGsNhhBAf7Gparvrs2lZtH/Y1pD3Jqbgah4zUxXdkRvd8CVF6iE5KA4+WtYrpa52C/IiA6pxriVyFznNotREYeZwSoRefKAI9ILMrpOJPmP12rL3FtiZMBJAQHV9FQ6mY13e4H/SzjcIw0BCg8ut5IeHqj9ch9+SpmmsdBDMzf/Pde+y/pw6JApYHeL6Rp1qWGvWtzI8RQVzlGXnYPKMS1se1lLNnJOapgh/bFLDvabQjyh8GsVJjgUMAMlUltewkKWBu8N7OzqBv35Q9l8OBhOsOLrxTvCQzWQpufNvguAwfm2WH7wHSykgDQOA+3lJ3fqMBzLr7EgjPKIvFJQgXUqHOQ== 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)(44832011)(107886003)(6486002)(5660300002)(83380400001)(8936002)(36756003)(26005)(2616005)(6666004)(2906002)(508600001)(38100700002)(66476007)(316002)(86362001)(6916009)(66556008)(8676002)(4326008)(6512007)(6506007)(66946007)(186003)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?wqkzssPmaNH7CbQeQpo06v4QeBJPvym6UIsVwOP0f4agsf/e/6biTGEBdA33?= =?us-ascii?Q?GVomQFmkdqU+cQf6WKig2V8uicF4SimvY0LOOViZs/TPF1eI1fGso10oKyAi?= =?us-ascii?Q?RfWhW3qkGkc/wiENg0t2J5uiFakv/T+Y6zXP4c5tV8Q5ZzZphUkVViE3IHcz?= =?us-ascii?Q?v+ePsa+9rM25vkMuN8+YFu7Kyw6fSUeAAg/Pa6YKwTnqY9Bsb6fd+qNow52U?= =?us-ascii?Q?WIl7ID3fiZI47ONSsJHrwkrzykkq6Dzv02nL/X7rH6cil/JNRj7S9nR3Qo4i?= =?us-ascii?Q?xmY5rU0oCK4ilGnDkebN82a5CtnuToGJj90Ai0iO0sAJ0Wvqfet4v+hGdSk8?= =?us-ascii?Q?/t/ryjTGUq+ilJ3FOfJPAfhl15W5ekdEPIsIf3OQNAGvYiA0ZPGW5i1pUENz?= =?us-ascii?Q?sN9H4Wc5sEmG+V1EaiJH1TsBUz1Q/lIYTLgB/slO1sd2lfGPelA6qeEjZAGm?= =?us-ascii?Q?BNwV8UM4NS+bwgLL2QbFFgPEaRHXcKMx5WCsKeybJ49Rlo/x+jdBz9tb1xq5?= =?us-ascii?Q?kPnBoMClUn8YzGXafXhx5z8MTJMx9LzGyDFXaecFDBKDv8Hfqzikbdx7ivsA?= =?us-ascii?Q?7FmOYXGevpQkE9hSY7Ec6fO3NMRkSmE+fNIv5xE0JKzUbOcKRF9iTOahGVGP?= =?us-ascii?Q?wc75nhgzbNH1Mip3emtTyx+1gcF2LaDsz4+1nhIAXr+B9jiRK7no+Nm1UM+x?= =?us-ascii?Q?dpuOkYMCkTr2egF/UGW9tMqlIKa7rVxZYOt4TMnSTg3Qp/MOVY4BNEOWBl57?= =?us-ascii?Q?T420bf3GNFDaFFDi0IdsD/MdNBdcu2eVARpmwggG73h00j8yWNZjNtqpsK4V?= =?us-ascii?Q?lOL2IR7UHaI5PMBVI/+x81UAhToJar6KzMn+gr7aeYSjDc6GUSY1ztZBTmRX?= =?us-ascii?Q?vXyHOpVTMOUd3t4fwV3lL+jx5m4XcGEMdXSfz1yJODpG8/dJEOzcGAtoKbBD?= =?us-ascii?Q?INN9tjqLs34ZYuduyfIw/YL1aHxZeZ3mIuPp7DJEZSt9IwR5Z1X5x5jlvUsq?= =?us-ascii?Q?J3zZC3TZt7lqA8uXnwtTPswAvSBEkVNJEmhpdqT3qjKH58ymciJi+MdUFkpg?= =?us-ascii?Q?I/MxvfFiGs6E+nNEhFi2iiPcNqkSH9TtCOzHY1pk9uSezkfTu1+lVItIa/1I?= =?us-ascii?Q?031cbtm2+sATpoBMqAWG/ywRLzVr4652YvVvb0ap6gAYYVfUHpGBNX24sREH?= =?us-ascii?Q?pBa+Jo+atBBmn17abrY4ksxdIpVKRWbrf4pYEHexOgMRoyYgOa7WgypIrZhc?= =?us-ascii?Q?8x43xuMi5zacWROZWpnKDS0CTFGezzMKjhDyTlm+yge+2MtuJbim78R1Lx7n?= =?us-ascii?Q?QFhhTee0/CyqwcNZXl5B2WAKjZqQK6kj65cb5qQWIRHkg0/5qeJ4svbRAKAm?= =?us-ascii?Q?NunlHuL56U9JrSKEexGHrlhL0E8P5anjNRCsMUWB2nvPEyYn2971Cm+bn6YW?= =?us-ascii?Q?aSvTbY49iJ0rMdpMRnWWbrAcGLuzirWlJI0iNRUbS/WfBWcVUvNJA85QGu6t?= =?us-ascii?Q?GqGY3SSoLRNYYWVzuwcj/cdAMVok6m3ONZbqGbqgb+LDXyR2WpLRueHa1Zzk?= =?us-ascii?Q?X+OhCOjLMlvQwm7ljdjr2eDIBfAj1uuGKHlq2shPljEZvZi0pjShrRY7VFn4?= =?us-ascii?Q?Q8r5LBN5IKkmtGg79h+AJN2ROeh2iYXEaZQ64/EDCvOQI5HVMmKbA6VT8HDR?= =?us-ascii?Q?brpgHbOCBkSfGlfIiMjnAwc+NZxzXqvHz/510RnG+ijhVqPqgFgSBzQH1b8F?= =?us-ascii?Q?ziit2RfF1p8uNWvnHB7WWAXOvAElYYY=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: a05ce71a-95b7-4612-3ffb-08da15e06074 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Apr 2022 02:11:06.2997 (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: R6331GcTkN5l39U0eVfBucPnIQ+J/QD3dwoAKjHuzC6VbEgnThNvdpjlzivZhQtzGht/4S6rPCCE5wKh5aRx1Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR04MB7189 Content-Type: text/plain; charset="utf-8" This patch implements a new struct bpf_struct_ops, bpf_mptcp_sched_ops. Register and unregister the bpf scheduler in .reg and .unreg. This implementation is similar to BPF TCP CC. And some code in this patch is from bpf_tcp_ca.c 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..647cb174d917 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(kdata); +} + +static void bpf_mptcp_sched_unreg(void *kdata) +{ + mptcp_unregister_scheduler(kdata); +} + +static int bpf_mptcp_sched_check_member(const struct btf_type *t, + const struct btf_member *member) +{ + return 0; +} + +static bool is_optional(u32 member_offset) +{ + unsigned int i; + + for (i =3D 0; i < ARRAY_SIZE(optional_ops); i++) { + if (member_offset =3D=3D optional_ops[i]) + return true; + } + + return false; +} + +static int bpf_mptcp_sched_init_member(const struct btf_type *t, + const struct btf_member *member, + void *kdata, const void *udata) +{ + const struct mptcp_sched_ops *usched; + struct mptcp_sched_ops *sched; + int prog_fd; + u32 moff; + + usched =3D (const struct mptcp_sched_ops *)udata; + sched =3D (struct mptcp_sched_ops *)kdata; + + moff =3D __btf_member_bit_offset(t, member) / 8; + switch (moff) { + case offsetof(struct mptcp_sched_ops, name): + if (bpf_obj_name_cpy(sched->name, usched->name, + sizeof(sched->name)) <=3D 0) + return -EINVAL; + if (mptcp_sched_find(usched->name)) + return -EEXIST; + return 1; + } + + if (!btf_type_resolve_func_ptr(btf_vmlinux, member->type, NULL)) + return 0; + + /* Ensure bpf_prog is provided for compulsory func ptr */ + prog_fd =3D (int)(*(unsigned long *)(udata + moff)); + if (!prog_fd && !is_optional(moff)) + return -EINVAL; + + return 0; +} + +static int bpf_mptcp_sched_init(struct btf *btf) +{ + return 0; +} + +struct bpf_struct_ops bpf_mptcp_sched_ops =3D { + .verifier_ops =3D &bpf_mptcp_sched_verifier_ops, + .reg =3D bpf_mptcp_sched_reg, + .unreg =3D bpf_mptcp_sched_unreg, + .check_member =3D bpf_mptcp_sched_check_member, + .init_member =3D bpf_mptcp_sched_init_member, + .init =3D bpf_mptcp_sched_init, + .name =3D "mptcp_sched_ops", +}; + struct mptcp_sock *bpf_mptcp_sock_from_subflow(struct sock *sk) { if (sk && sk_fullsock(sk) && sk->sk_protocol =3D=3D IPPROTO_TCP && sk_is_= mptcp(sk)) --=20 2.34.1 From nobody Thu May 2 21:32:09 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a05:6a06:1788:b0:4ac:5e5b:1ad1 with SMTP id y8csp2021442piq; Sun, 3 Apr 2022 19:11:25 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyAE8St4UH1mbRkZnGojVPqDU6szMxPXVYD/4+FUNqQSXvfH9rwj96hRciG+jNe23A59QDm X-Received: by 2002:a17:906:c54:b0:6e4:bbee:f17f with SMTP id t20-20020a1709060c5400b006e4bbeef17fmr8949840ejf.180.1649038285433; Sun, 03 Apr 2022 19:11:25 -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 b7-20020a056402278700b00418ee342277si5782074ede.489.2022.04.03.19.11.25 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sun, 03 Apr 2022 19:11:25 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4599-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="Ah/YvI2z"; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4599-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1:3600::1 as permitted sender) smtp.mailfrom="mptcp+bounces-4599-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 905851C0B49 for ; Mon, 4 Apr 2022 02:11:23 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 5170E23CE; Mon, 4 Apr 2022 02:11:22 +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 C4D7C23C8 for ; Mon, 4 Apr 2022 02:11:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1649038279; 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=jx6IKQC9z34VKBusTZ4CCTPYPLTazbGgC44jGOchtYc=; b=Ah/YvI2ztWrPfDO7oxexF/yyG24BHJoR7hCEFzUCh8HHzKjOaO3zgZpbwQVX0qplmBBLx7 rfCWmaKsxto2QQh8Kz1qUYYgzyeJAuPUzUTmrQgbRVm5HepPbN2FkCDwRfSC4RmoP6EiRY odNqd7Ta39qFEpvMuR32Uf1Nn6l4Hpc= Received: from EUR03-AM5-obe.outbound.protection.outlook.com (mail-am5eur03lp2052.outbound.protection.outlook.com [104.47.8.52]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-25-wQnogzdCORO0QBxRBGEWIw-1; Mon, 04 Apr 2022 04:11:18 +0200 X-MC-Unique: wQnogzdCORO0QBxRBGEWIw-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ISl4beFw0e9BY+T0DJGn1Yn/el5568wliALwzxtKX6MvYs7MsKxjutzNqmYe9L1b6PfmW6cOnizgtp+MGrzvUAAemb64UcavoJmFd/seJcgSvdF0wrmo8VONe0GrNt8J2n5ug+7o4/oA3fznaIF4f+wa6zTf8jQ1S0k5bhQukjNalTx8tS7dcEuwQqp4PX+E7dLt5OF0GpJEUdMN83Q9bFF3X641r2rkthoVKKcN41JHaiNDBHfp3/XdZlrGitFeXP6vULLSMJmcPnaYvUsztu+cO3Kg9q4Adcsn3a4hfWyLQ3zfSL96YJKiDWj7nwZztSHJiDbjQNKtd3mtbSnVDQ== 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=1QpFA5G1Y7b4YzT1l0T7QB3Peyp1+TB2HFuvSWRw3fk=; b=PotBKJf6gXGfdqkzeNZ3c2swb+mSFjNRImCIO07OVwVHoA6gZMKPvf9tGoyjq+875hXAhPpr5I4krbaTvXUgveRaQwkAyne8f2vsL7d5U6FrCyZtlG2FhkSvjZI1u6h99dzPztZFhfaHx1rnBqSDA2eRSQRgMesC2iWxYPUB/B57Aos553Olxmu7KWwnVmvCDxuCjNGI6ZuCW/Aig47hEa8j2Xh9LZLBbdRpZNkFaFYVGY6r00HxZiBx+tdFmOszmHyhVKN+Rz8mrf75vvrMMg208X9/4loMuvKE3KnWqO3jRxW2g9VGc9A4jnV8kV9Fn+D4AWh5kKP1BMmOHgJYpg== 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 AM7PR04MB7189.eurprd04.prod.outlook.com (2603:10a6:20b:116::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5123.31; Mon, 4 Apr 2022 02:11:17 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::9974:fd5e:e3c0:14dc]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::9974:fd5e:e3c0:14dc%3]) with mapi id 15.20.5123.031; Mon, 4 Apr 2022 02:11:17 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v9 7/8] selftests: bpf: add bpf_first scheduler Date: Mon, 4 Apr 2022 10:09:59 +0800 Message-ID: <7a71e3b1c69e92d90ba02a6402f4617f837797d0.1649037838.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TY1PR01CA0163.jpnprd01.prod.outlook.com (2603:1096:402::15) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 20353e2b-4845-4168-1e3d-08da15e0670c X-MS-TrafficTypeDiagnostic: AM7PR04MB7189: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: 7qYDzWHBx94okBIn1Hiap+Mo3Y7zjlV1Q9TCni0A8EFgiCHz3lQLBuO3LpwK21H7DstKJxq7s74I+e5NhW3MgK0nCBrw+NLl/fPj36vTH+waEeog6SSiBVa0SCqk56WAl6eLnPvtV4aY/54UAECVFXyWl7Lo2Va9edzo+cJllOAmLvCmhmVAkd+TwlvmiWuJEAQ9eNFJ6OyxIi/yPfPXOmHy6hGdSpDXV3AmXOFAQFqXPtsMCsCTEDhHqi5D16JLZ6+HbLedxeuVbdTm7E6teGuL8VBaXl5IUPmViWKIUtG2lob5E6x9yV9g8qFIuCugrjq8NSKKq8URc+pdA9iOI/3lpHiC7nUKNEwvcRg08L2qwMsIGV3PNKW42H0kI2Fl64XJriZoRJZ9CM4gWsX0RCU98AZXeVKrFGEK8mT4En8n5EY6mAnexuGGfABh+5keH5+dl01TI3krQZySN1cBa19oXe1H6FMW7qMQZiX4j29I5KOISaBHedcMLdlxtvJ0WUqtuOCuq+KNZSKX0n80xCDdEANsVvq1gCzojIYbo2btzSI4QydargKIAmhkpyNZzpAERzgC57kR1iqHpDqnt6mca7i8obaC3ToVcqT3fcTm0Z7AVDIdGK3YRyZOfRxD/WMgJRZlqT4xFJQMN99sZkzFamBLmCrYlNRFzGf2mXRnIWTbkYa4PiKGybmWLV/1t8RZvLQBtwmjfL5tVhv04A== 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)(44832011)(107886003)(6486002)(5660300002)(83380400001)(8936002)(36756003)(26005)(2616005)(6666004)(2906002)(508600001)(38100700002)(66476007)(316002)(86362001)(6916009)(66556008)(8676002)(4326008)(6512007)(6506007)(66946007)(186003)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?m7OueHPrHMgNwitPvlhKvTQgZr5bUumNMLLDM/qLTwxg6gGwnOFxdkVX7g67?= =?us-ascii?Q?L8yWZp4vCtBT2uhZeW6ED5/Qr+DqPXzi3/Q5lUJKyWWt3xlTd76PUKz0FbMQ?= =?us-ascii?Q?u+hdQofQDmCBIY5hR7sKnhw6ukm17EbOrdXE6ohPqJHu/OMssHopdDqFnSU9?= =?us-ascii?Q?hQ8K60aOe7mB9ETehzgdoxalg8dxsREsfDRj6L1pgNS4s9smuR1702aLmyVO?= =?us-ascii?Q?NxEf8IQ+3zc1/wsuI7g4fZ36QgQbMGOMNLM8qSsJXqBFwzVcihox+0IDdtCv?= =?us-ascii?Q?2dQ+QJUSUMezC2ypqnsDxV6SBLx4GLt5TeC0PTCrVrErjBSJ4NQv32OGN3ES?= =?us-ascii?Q?Hki2bR9L49+KvAr40wY778hRro+rjJlCsN5ZXyZZKux+t1DIGYlNcRM+u1+V?= =?us-ascii?Q?RHiFxdfa225DO4HrdhkjVYNMDTqYkWfDggMVlszL110KNpujP8Yjv5siSgTd?= =?us-ascii?Q?kCf7MqJORJgQ8a2boL4woCcIIR8keaFndJTidUSijajC79DpSi5uZ4u+HNpf?= =?us-ascii?Q?IrSQSBl59I9kIdBxbe/lHcwNf9idC1M5UHkssAXaVz8qerNuMnqVyHP91K/U?= =?us-ascii?Q?vfNzFMTvRxzDIAH1uN5LkJR83ScWKAIAgIfnCqnoLIeSBtAqmXaoMH9/Ngen?= =?us-ascii?Q?8WzYjkUUq335/bEbVQYLHbooCnTRZCIgr7KZlgM8SVlZ4cJ0sy9XpcVtxXxJ?= =?us-ascii?Q?MqqbfsPUWrPI8Lg/pJ/FNH//eXyVMio1hi5IijlFxTh2x76uETJYel4MshOw?= =?us-ascii?Q?kpytboOMtt5uGtjAaDOiCoCP2PsfEineZVRUKpZCwvlVF7IEqqvqNr9bK8MK?= =?us-ascii?Q?9+n/rYP/fvG5iSbwA/9tz1zL/iem5asHvboUtKOSQf9qNckpblyRyd2zs8LG?= =?us-ascii?Q?w7JGFa5FowXYKtMnLPRPApxm9uLBwR86+lNXTrpIYjFDEcQq6o88mvDgJMhP?= =?us-ascii?Q?d06wim02pK7lP6v6wf2Mnl2HUswzjfIo+GdIUYB8sbquX/EaMSOwiv0hbW8B?= =?us-ascii?Q?SdGxH7ZBwk+Y86zK8KojA684qGqFsI4AaWmDBczUk5RysZFykjmMXxB4j8xX?= =?us-ascii?Q?GwbIiQZ8UBO08xdrNpO1NXuDefWxd290d83DwwnwNpyiqzNEa6mhLZ7PTq63?= =?us-ascii?Q?UcXgqrignkzKDV5s3sap5N47khDhJ/gw2A1SHfVL64Gf2eiQz6uMfuSTlGG+?= =?us-ascii?Q?kTPf7rR++OYWTlUp+I5+VjT1G3GcNVwOOBOyC4ld3OKIx+Cb8exA9A30I2/P?= =?us-ascii?Q?fTyl5kqQ3RQH+WEtOQaJ99jVbVIm02WCX3/cM/dKpgxxbLQ2ti+pS9oH7q9l?= =?us-ascii?Q?U60U+mx/NdPyI+gS2M6TWGvezTF8/2FTtMiY5+JkKerzlWhufiZMIG/vbS8I?= =?us-ascii?Q?+M9zRJr6e5cyZSbnZupOom0LQLIJe887HuGc737Pos1gCNLzSsMXAg9IrTie?= =?us-ascii?Q?KP6Odk5p5JftHtqn7pXphmrwu7ldcG5eE87LKtk+0KpFwRjLQWnFu+kbbwuK?= =?us-ascii?Q?3C7bj9ylI7ql4vVCIfKKF1PNrB8HsTlo6IYSiea3xbrYizZTxpeMoIXKh+xp?= =?us-ascii?Q?gceUlOgH0Cn3QheViAiDbTzm14n7hO5B0+0ep7OblVuM6ivAb48OMvm/L1oF?= =?us-ascii?Q?Y+gsZRNpdu+fy9gjnBHil4x/CsCzIGMswaRs+Vq9Xi3KNnkENvMIpG1seY6/?= =?us-ascii?Q?Klu0tTDwqhWEoo8Nt9OTQL4Ob1LTUl6DzxiI3Oa3vK8TQAvWeXCXnDCBSL+Z?= =?us-ascii?Q?nMUQkirmaBOaNTFWskSGmTxqEZOEaCc=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 20353e2b-4845-4168-1e3d-08da15e0670c X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Apr 2022 02:11:17.5020 (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: 3MWY11KBoCn7CvsRxocday3meC0PyzdB0ifJtqKHGDfFnG2DtXHzyHiKnaxk0Wdz+IxBV3AwCcMM7RVfoJAH8g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR04MB7189 Content-Type: text/plain; charset="utf-8" This patch implements the simplest MPTCP scheduler, named bpf_first, which always picks the first subflow to send data. It's a sample of MPTCP BPF scheduler implementations. Signed-off-by: Geliang Tang --- .../testing/selftests/bpf/bpf_mptcp_helpers.h | 12 ++++++++ .../selftests/bpf/progs/mptcp_bpf_first.c | 30 +++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 tools/testing/selftests/bpf/progs/mptcp_bpf_first.c diff --git a/tools/testing/selftests/bpf/bpf_mptcp_helpers.h b/tools/testin= g/selftests/bpf/bpf_mptcp_helpers.h index b5a43b108982..5135eb6710e8 100644 --- a/tools/testing/selftests/bpf/bpf_mptcp_helpers.h +++ b/tools/testing/selftests/bpf/bpf_mptcp_helpers.h @@ -14,4 +14,16 @@ struct mptcp_sock { char ca_name[TCP_CA_NAME_MAX]; } __attribute__((preserve_access_index)); =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; +}; + #endif diff --git a/tools/testing/selftests/bpf/progs/mptcp_bpf_first.c b/tools/te= sting/selftests/bpf/progs/mptcp_bpf_first.c new file mode 100644 index 000000000000..21890a60f9c2 --- /dev/null +++ b/tools/testing/selftests/bpf/progs/mptcp_bpf_first.c @@ -0,0 +1,30 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* Copyright (c) 2022, SUSE. */ + +#include +#include "bpf_mptcp_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 21:32:09 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a05:6a06:1788:b0:4ac:5e5b:1ad1 with SMTP id y8csp2021510piq; Sun, 3 Apr 2022 19:11:37 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwA1HG7trYy/7+sf1CP7qMdB+OMCl8GRhQQctpzHh23puI/EuT7zkTqd5eIGER53NJTykX1 X-Received: by 2002:a17:907:9718:b0:6e0:6faa:3aa with SMTP id jg24-20020a170907971800b006e06faa03aamr8906452ejc.307.1649038297423; Sun, 03 Apr 2022 19:11:37 -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 z15-20020a170906434f00b006dfb1342cedsi5696460ejm.618.2022.04.03.19.11.37 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sun, 03 Apr 2022 19:11:37 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4600-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=KbCKeLOb; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4600-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1:3600::1 as permitted sender) smtp.mailfrom="mptcp+bounces-4600-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 A3F7E1C0B42 for ; Mon, 4 Apr 2022 02:11:35 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 63ED223CE; Mon, 4 Apr 2022 02:11:34 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.109.102]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BBAAA23C8 for ; Mon, 4 Apr 2022 02:11:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1649038291; 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=TEMxBeQyx4/m3+PYPLQS8qlpBtJK3twYXIaBhl9uTVM=; b=KbCKeLObssr+E3SnPdaniKyk5W/TaARggaHdCXTYVkCr269WwdDdI5gOcwvEGON1iw5fRR GqGY0GhvfEvwnetaWGalyJOY1EEEApyO0tzY7tIIGVTlQ+YfxSACOL03k3IXN5drjedETW nye5BQ/pon3Bojy1yJ4t4EqFSUw0Wow= Received: from EUR03-AM5-obe.outbound.protection.outlook.com (mail-am5eur03lp2052.outbound.protection.outlook.com [104.47.8.52]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-31-jKCCur7zOCy5chsu7CJ5ng-1; Mon, 04 Apr 2022 04:11:30 +0200 X-MC-Unique: jKCCur7zOCy5chsu7CJ5ng-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=AAGXP8i9cz3xZ8nTdVLnpP9BxbYgBlPV7QLfZYyLDBslZq1mVZwIMx2F44VKoGMARxmlPq/laQs1m10MKz/97EMiUDl0jduzJLQQMRuIDzC6CL+T8EmUdNVRMiQ46moomAKK5Gkz6PHKXlzvNqimngZNz73vy/rtpYwzcgS6za+tydSqoEcz756R4KloNshU9WiO0IvZxLFFsjLpKBsrucuoAcMDaL6CKANBz0q13Vnp4PQo/Mp0eF56+DFTSgXMdlmGrpTJrIAOUt3hjgY2oh1HV2QUSgjdyRguvnG6KF7xEZEHWECvchuO9CMIQXJOzYCe07OsIBetIfD+5OAzlA== 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=5KFb3y777kAYKAo0/CqZ6N1Pxaw8SXGN06NZKXq0HaU=; b=BmiWYRzKME+xGT7Wj0y8xwuUJrOVhWq90atpg4ot9R59TVzCJ1N0zXESu9lxidSpelyX0a3ftpwePtNh1D2PjUJDoAnz6MfWCY2/njMnHRX+L6HrYRNHgCUOZ5Lp9ic10mREmdTDFO3pFmPq98O/5mROUC1G2rgFirAPc63k61w41GMndasTwGFfydNgkuMyJUbxNvxcaxEZCCSjaspiPwLk4405gRsNTJx5V0ELPkvr/yPiXcfJZMW/P/wEsH0vEGOw8bCG807uo8FZxo4Ijwm1xOi3YV9w71Fh5WHXIKjSUUzl/p56zIMJuwxiyJYAvh2IjS38mqHf7v5Ct4NWEA== 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 AM7PR04MB7189.eurprd04.prod.outlook.com (2603:10a6:20b:116::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5123.31; Mon, 4 Apr 2022 02:11:29 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::9974:fd5e:e3c0:14dc]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::9974:fd5e:e3c0:14dc%3]) with mapi id 15.20.5123.031; Mon, 4 Apr 2022 02:11:29 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v9 8/8] selftests: bpf: add bpf_first test Date: Mon, 4 Apr 2022 10:10:00 +0800 Message-ID: <0d834717492cdba59f67be88f9647c7535aff90f.1649037838.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TY1PR01CA0175.jpnprd01.prod.outlook.com (2603:1096:402::27) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: d30f1632-05a0-46a4-f64c-08da15e06e00 X-MS-TrafficTypeDiagnostic: AM7PR04MB7189: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: vf1UqWLSXmyP609Mn0h3hyR2ydZO+7+iScZh7vFaKzoxxwSsAlv+evqCNBHIxbkGI1qDWu/gEQLosKJNH1jnSqlhOJIuf+GVPmlh9swQs1oxiGe7kWelZ0TVwyHSkxJ9FAvpMCJic28ELa00gXf8paJC3raAvVt054rMj+qwD7SD/lSfEtrI18M7y9T12uy0k0FRxlvZHJ8/nW5J6bjqRHAuRhrDrX3QWhdJdDp0MvlRPj3E3QYw6s94vT7IInYNwFBmvhje/Emdzneno2GVVDKNsnxCed5XEpsXo871EXRnsSdzVwrzARA0kSudm6sSYYcgt8FgOwFHHSqR9Gj+GGZ1KK4VBAJAyntpT9xEfudmtbvTnJcgWEDrL/0sjJTRhjRoGMfFpvSAl1Hcg+t7NMwPPBOEDXewClKavVfQhjgw0s1q0AZ0nw6ay5vQj1pApA6BueyngiqlvIQlz1w/W36tj1m9fISmfODBFyglzHO6vXHYUvXTIvFNy1Pc6TLFEFqxofinlcsxCHc9AdUFs4c8ddLjh6iLfWbszbHW9vLBVCzes+U/EABBfdLgCIP0S/bx7rD76w+AR4e0qO3ZbHnf8i5VuEaH/mNI0Dx2xs++bTvyfJmXaUc6pCTwQ7N3MQMAe0vXVePEoDTwggCALv10Qbw1XgDnP//5kpG4TiyB15KnED6Lqjh+4NFi5iEf 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)(44832011)(107886003)(6486002)(5660300002)(83380400001)(8936002)(36756003)(26005)(2616005)(6666004)(2906002)(508600001)(38100700002)(66476007)(316002)(86362001)(6916009)(66556008)(8676002)(4326008)(6512007)(6506007)(66946007)(186003)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?e4PTZhCK8+UDczsr0dfmrcEwavbuh64gns1ElSSGvQjaBlCbWWYWWUB/21/C?= =?us-ascii?Q?eXCndMCfDTAXVRBTV72UjPIZ1oJFMSUFT5bdDDQI1X9WeTlt/KoNnFG7RBkE?= =?us-ascii?Q?ufF/IAcCH62GR5I7Wwy0riiRirUehpy/8ReQvoVmw9p6vLCTX1o3RIR0uvVs?= =?us-ascii?Q?XuXLJX0T9Vb8JoSG0ErfvyyeqZoclm6ik9aLeYCeWgUfxH3O2zlaYgadU41P?= =?us-ascii?Q?KdTFwAluewPhjWulQ2APUA+UyAQ6OcgidT17j5fWzt5yW4YZPsnz5lQm1rKr?= =?us-ascii?Q?Ss4CCMRdjbiz1nLEUpLK4wA9jndVoncmrSUnwZVsW4wvPEyIrvyPMSe3aVVj?= =?us-ascii?Q?XwtbgI+IxaP3HYRlFtmuDJpJxWlXu7BjfPR0obOjmFslLOdFOO+g8AopPwm7?= =?us-ascii?Q?2VtXkbEKYNVruhfepyx3PHHA1s9VTCs/YtZMg0pBMsKJanrfISt8tLYe5U1o?= =?us-ascii?Q?aN24R1I0lY9R9ECcTlwLnXXUJcsyAabTlflvafCt14gmcsC9z7Cs+Pv9SZj3?= =?us-ascii?Q?TJNA+9kbsCeAg34W3TSdg77d8vtquQI6SxK25RjGC1EkQYgLLiPdCg6/E1YU?= =?us-ascii?Q?ZS8xXfSVqfxHHA+dhs9YbGOaIYUupGYRpNWt6vwMTnbc8lFONG5+7z/c48PS?= =?us-ascii?Q?Z7FVN5BNSsSyMajd/BkCExOlzODid3rFV0RHbRgrRWC7HWyaWl+4fjzT8/Xv?= =?us-ascii?Q?RI6xKsSFwZtyVp4hdheRx5SRQ2zvQrLdMLNG4fUiab35uXY8V34MFWs+wy5O?= =?us-ascii?Q?kpujIlmFQfbqKGNXJ4eov4JRlyGXXgAWFWlIkUXCy2IupcDdfR3jF2O0yzOu?= =?us-ascii?Q?rmeR4SEC/8mvuOtgDw+tjgKMtFI/NqXe0ybPimOr6SThcHbl5fIJ7cWoTVBe?= =?us-ascii?Q?dCeK9UBShqTqhvt6Hivg4sgO0EiwSahSR/IgJFVU6dew110M7LNcxJPCAyM2?= =?us-ascii?Q?fBoMR448IJYZ4XVOPRZmbY3v2Tmo/n3GEoxdpyav/C24nnI3vLuQy20GAXlf?= =?us-ascii?Q?3IgAkSWNTyDIHWHbKL3gesC56PwpwkueswcCf6eUEH0MRx9FS8yiXZg89XkG?= =?us-ascii?Q?r2JhUp8tYi7MEdZMsBoiz6b1onqYygCZmQDbjUG160P5YoflUiCJemngN6Qz?= =?us-ascii?Q?j8IzQRY4a3l8LlyPbf8Z4agNzdwmrWFLsWM31FSfT3mx4AxudLT0mRQMRPwM?= =?us-ascii?Q?tAj2toLUEAUQco8y8tpxUsFUcIS1tvNdNm2NaLBGoTnI5GEpAkbPVfbLwmRa?= =?us-ascii?Q?BmHRns59Gua7i9B4t06o8md4vKyUWMqZaTHCFUCTEHKMVmEeZtyU/vmZr7Nv?= =?us-ascii?Q?bBKUvXEyWDjpKL+ss+Sc6wrOYSiBdpKBSeF8+MNR9KugSEeZQPRSTCCrh4Vh?= =?us-ascii?Q?VdRBm3HoJ9RBsApMidYlbrhj/n8RF8AzuiUWGzKUn6h9mDYDoOBK4K0LXAoa?= =?us-ascii?Q?IfiDLwr/cV0n84F26nxyVRL6oQHquNvZm+MUFV9Yqwnfo0QedlT15xbFsQyE?= =?us-ascii?Q?3Oa9Fh1+blBY+3j0s9bQ9a2x3Ixux4zHJLePeGoNCL8CTJwhKshfiHtQ1y9P?= =?us-ascii?Q?jwQzKXtHSuJVWAWBev4VLDhdkcjKVqgI/6h1Ncs7mphLWvi+I2VILnlk9MvU?= =?us-ascii?Q?SFrvhgJur1R2eiUbl/JnYGJ2bj6XzKeQKgBJlm/hJbxVs4xfywI4D+cvuC0C?= =?us-ascii?Q?+pArg8+vPqbleWqB9GtpO/z2lOyvsvHyqXZqSGgrvkEn7Zy5zAdkzgHGaBsv?= =?us-ascii?Q?bOHRCgwZqvbqVq6nynoN0qxK5aAIHI8=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: d30f1632-05a0-46a4-f64c-08da15e06e00 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Apr 2022 02:11:29.2041 (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: n9TMpHSa190de/Od0ADf2MX0SWb703mujKhJS0oGr0tzjXjD9iAFAECfSvpfXugigNkd0YGw9TL4PgeD6FbkCQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR04MB7189 Content-Type: text/plain; charset="utf-8" This patch expends the MPTCP test base to support MPTCP packet scheduler tests. Add the bpf_first scheduler test in it. Use sysctl to set net.mptcp.scheduler to use this sched. Some code in send_data() is from bpf_tcp_ca.c. Signed-off-by: Geliang Tang --- .../testing/selftests/bpf/prog_tests/mptcp.c | 114 ++++++++++++++++++ 1 file changed, 114 insertions(+) diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing= /selftests/bpf/prog_tests/mptcp.c index 7e704f5aab05..467769e229f5 100644 --- a/tools/testing/selftests/bpf/prog_tests/mptcp.c +++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c @@ -4,6 +4,9 @@ #include #include "cgroup_helpers.h" #include "network_helpers.h" +#include "mptcp_bpf_first.skel.h" + +#define min(a, b) ((a) < (b) ? (a) : (b)) =20 #ifndef TCP_CA_NAME_MAX #define TCP_CA_NAME_MAX 16 @@ -19,6 +22,8 @@ struct mptcp_storage { }; =20 static char monitor_log_path[64]; +static const unsigned int total_bytes =3D 10 * 1024 * 1024; +static int stop, duration; =20 static int verify_tsk(int map_fd, int client_fd) { @@ -251,8 +256,117 @@ void test_base(void) close(cgroup_fd); } =20 +static void *server(void *arg) +{ + int lfd =3D (int)(long)arg, err =3D 0, fd; + ssize_t nr_sent =3D 0, bytes =3D 0; + char batch[1500]; + + fd =3D accept(lfd, NULL, NULL); + while (fd =3D=3D -1) { + if (errno =3D=3D EINTR) + continue; + err =3D -errno; + goto done; + } + + if (settimeo(fd, 0)) { + err =3D -errno; + goto done; + } + + while (bytes < total_bytes && !READ_ONCE(stop)) { + nr_sent =3D send(fd, &batch, + min(total_bytes - bytes, sizeof(batch)), 0); + if (nr_sent =3D=3D -1 && errno =3D=3D EINTR) + continue; + if (nr_sent =3D=3D -1) { + err =3D -errno; + break; + } + bytes +=3D nr_sent; + } + + CHECK(bytes !=3D total_bytes, "send", "%zd !=3D %u nr_sent:%zd errno:%d\n= ", + bytes, total_bytes, nr_sent, errno); + +done: + if (fd >=3D 0) + close(fd); + if (err) { + WRITE_ONCE(stop, 1); + return ERR_PTR(err); + } + return NULL; +} + +static void send_data(int lfd, int fd) +{ + ssize_t nr_recv =3D 0, bytes =3D 0; + pthread_t srv_thread; + void *thread_ret; + char batch[1500]; + int err; + + WRITE_ONCE(stop, 0); + + err =3D pthread_create(&srv_thread, NULL, server, (void *)(long)lfd); + if (CHECK(err !=3D 0, "pthread_create", "err:%d errno:%d\n", err, errno)) + return; + + /* recv total_bytes */ + while (bytes < total_bytes && !READ_ONCE(stop)) { + nr_recv =3D recv(fd, &batch, + min(total_bytes - bytes, sizeof(batch)), 0); + if (nr_recv =3D=3D -1 && errno =3D=3D EINTR) + continue; + if (nr_recv =3D=3D -1) + break; + bytes +=3D nr_recv; + } + + CHECK(bytes !=3D total_bytes, "recv", "%zd !=3D %u nr_recv:%zd errno:%d\n= ", + bytes, total_bytes, nr_recv, errno); + + WRITE_ONCE(stop, 1); + + pthread_join(srv_thread, &thread_ret); + CHECK(IS_ERR(thread_ret), "pthread_join", "thread_ret:%ld", + PTR_ERR(thread_ret)); +} + +static void test_first(void) +{ + struct mptcp_bpf_first *first_skel; + int server_fd, client_fd; + struct bpf_link *link; + + first_skel =3D mptcp_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")) { + mptcp_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_data(server_fd, client_fd); + + close(client_fd); + close(server_fd); + bpf_link__destroy(link); + mptcp_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