From nobody Sat May 4 09:43:58 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a17:907:7811:b0:6d8:2910:9a8 with SMTP id la17csp554599ejc; Sun, 20 Mar 2022 07:09:36 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxr/LTvYkwVt6fIOLOW2+CEbWLg3ycxx7Q10T7dR01fsaIK7cGlMihetqq4eVnfs0LHEKqA X-Received: by 2002:a17:90b:3d03:b0:1c6:74bf:418a with SMTP id pt3-20020a17090b3d0300b001c674bf418amr21722166pjb.33.1647785376674; Sun, 20 Mar 2022 07:09:36 -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 n187-20020a6327c4000000b003816043f06asi10418520pgn.607.2022.03.20.07.09.36 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sun, 20 Mar 2022 07:09:36 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4324-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=EWJZ99QI; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4324-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.197.195 as permitted sender) smtp.mailfrom="mptcp+bounces-4324-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 90F701C09A7 for ; Sun, 20 Mar 2022 14:09:31 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 7849133E5; Sun, 20 Mar 2022 14:09:30 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.111.102]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CB23833D3 for ; Sun, 20 Mar 2022 14:09:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1647785367; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=2MAy+91Kg23sBeyeawmxSOzlRvi2e+ZQO7FLfz1bE1Y=; b=EWJZ99QI9axRODuGC5J274RAAzfMlLu6jMOVzZdhgbmrdbHgplHxUAl8D/lZ4BZ4EKcydN UKSG+zeZHrfr6T8M4i0XJZBoPH7Kn1A7hsM0qWfnjbZxI69nU/W+NsK6VhtONn0nZ9dP0i V6UAxZH7ZAAWA3XuYVDiMCyVI2n6HUA= Received: from EUR02-VE1-obe.outbound.protection.outlook.com (mail-ve1eur02lp2056.outbound.protection.outlook.com [104.47.6.56]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-22-jvm23xKoMAq30dtTzaIlbg-1; Sun, 20 Mar 2022 15:09:26 +0100 X-MC-Unique: jvm23xKoMAq30dtTzaIlbg-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=SLmV20NgN/AiBff7VvNjKTpTUa4r0biRP/iKxW87zmLasr0qaTo4n7HPeepw/IMG/TfQ2iwU8xnja3sz8tLnwOfTxrtQF7JPg0TA95a9YscL8U4CC3YYAK0x2lS0WF0LdOrbfBkKkeynk2nOq9a7HdMwUGYAsjo9Xw3RRZz6gcBWnXTWOjgnWsqlIXlKNaXQ864Mw1k5FtNmJ0qQb/d6X8su+z6evXtrkv5PhWo91CRlEMDzRjbttvoGphXyNyaeVdh9J7wN+YhtnEkZqQKA4FmtAIe+DHrntNMC06yoFQaLsTAbh4xirfsCuV3YljvX28mGlPDUX7eH2UqlCUO6Cg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Ar2sgt6n1vDt42NO9hrl4dj76DBnZY6SLqbb8A7M4yY=; b=NyzrVsbR6Tzx72Iiqr3U0hg0iY+uFNfkBdy0gcIjD2bbzSOWANjdCw3R1Q6qw7I6pUCZ91qhWgcDefyhTtIAF76OLy/3ItqR9ylzQZ5ulbd2ViVUBLxHoJg9tGufu+T77vCHAYsA+tQmSNQKRfix9dKBbY7lT5339jmBYY629H32gFRm1d/RQNPfwfWwfYSuCFoCf00JmLnynCk9gAoiqYZizMUdG4NeiMBlrOL8sJR8bKlliQ2UpODOhpytW4VfpHCR1ux3/WYKnWykS7r8FTDqOee3l3LIYIDMZn8TTklslBsdwBViwmxgBOaWRF09sNmcs7u23LIUjEvsvdyn3w== 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 DB8PR04MB7035.eurprd04.prod.outlook.com (2603:10a6:10:127::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5081.22; Sun, 20 Mar 2022 14:09:24 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05%6]) with mapi id 15.20.5081.022; Sun, 20 Mar 2022 14:09:24 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v3 1/8] mptcp: add struct mptcp_sched_ops Date: Sun, 20 Mar 2022 22:09:05 +0800 Message-ID: <02c1d2d2eee134713737fe5c5f73127e8c741589.1647784679.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HKAPR04CA0017.apcprd04.prod.outlook.com (2603:1096:203:d0::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: 0255005c-44f6-4824-b647-08da0a7b3ce3 X-MS-TrafficTypeDiagnostic: DB8PR04MB7035: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: KfYgpDI2Lqwc81tUR6JomuVAuZ5vwiZiySKOPcxt44Xpul3e/q/5KxsZcE0NL/7diUOquBnI9/SDj+rkREpsmoUneFCV/K1KZOOGwJiI0fOO1LuTBJnkTB/ugUmmXDftngy/YLgnbpGbS64jHSy+jmVYXM55ieSFE+BIAfOrGa6yyFFXRMclZYzTnmZM0CAh8P86651pArMfJAOc8R2S3pUSAWjFTBDfX4XmGzfL8lujSsV1eM+m4rAmc/tkJOEYhiVL4mUb2/qx/KXMXbEevI489kHpGfI52iQSQRMn1QEPwg0tKcb8R6lOjzlA6Ul88f5JvaRdw6X9Z1Bc9CuwpX4stR+Mr+iLoB7j6YCzrowk5gOeVsMYb7MOPjBbwdgQ5mUcw+Mp4dDAj04yi3PC945Z9XANgPdORK4Hf4WriL/M4dRXlygVieLdjIwSHFLbJb8Kd/pIO2Ub9Wy4CZa5AvTLrXIZbj4JQpgrA66KXukZvDoaAoE8dRC7Ks9Rt1P8SLiNoVyU71FAowiTTqkXN1H+qtlQbMce6AazATMKDCE07A/MiD/AilfRTwlQVLVPasrOJpQpvVgBk7gpqUUBQoJRiBg/iqE3yDFMVjv39nPSXgkHFz6r+LfQYqayhXeVkjbqZYSLmMv4b8BxfktbsrA1ArMEzJrzx9FkQvQal+DWE40mJRmea4rjgZd3sFVe 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)(6512007)(83380400001)(44832011)(66946007)(66476007)(8676002)(66556008)(4326008)(6486002)(6506007)(508600001)(6666004)(2906002)(36756003)(86362001)(2616005)(107886003)(186003)(26005)(8936002)(6916009)(5660300002)(316002)(38100700002)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?NZ7xviVquCVYrCb2VHiafdcxenKFyhc9efstdZvYEMC7Owh8H6EY847E0Omu?= =?us-ascii?Q?HKEdSN6H3IhpYDJselhkjD3hbP2ES0ob/e5kepI57TgPqotY49G/DhPZIcXb?= =?us-ascii?Q?np6QUIQ4E1TMyKd0EfLY5gIjljhJC8K8FvAd7GP3Ay1DzYd3mj04YRoZ5LhX?= =?us-ascii?Q?W2QOSJgOvHyZ/fMHNu73ZjNwsJUIsaPZ/QisPLDZeSxhF5jvi2yMntqdpvVJ?= =?us-ascii?Q?ZBssC1/oWkfeg/MKGt8Z9HZmi9O1d7/EpZJAsQYtlWBUuug0+RjD0sjKh3mf?= =?us-ascii?Q?U3KWDV8W6YNOKIL3hsW1aGJZWmGIv0JeUK8LZfmAkUEd32rkLqffHniMSzJr?= =?us-ascii?Q?RdEOYLT7qUdahxYpkcuIqN68XZBlWOGa+6/b2pHSAAP7Kj1snK1ebE2cVDUZ?= =?us-ascii?Q?/e6Vs+ltQVCXH5O2k1yo56qsLVpo1Jx0E1x/ux+3fLsLWcsUi/tYkEFA71xS?= =?us-ascii?Q?t7G9NgYR3YNxbNGsOZ33UuEkonAPDSKl+Nz3KHbIWJpzTKOHOnsYx0eQS6iZ?= =?us-ascii?Q?TS7hcx6bgpi6Iw/qE+bknk5yYr7Bcoo0f1dM88tzclA7WrTo8kNxctMy2fnI?= =?us-ascii?Q?LSbIrFipDoxAZCjvNOInsmWjvALbjh40GgF5nCWfG7FJlmr8GJiUrExhD8UY?= =?us-ascii?Q?xDxx5vndi5ceVujO+rqCz5aYKarXENIMo9mBBvaJ4wzkLFun5SHb1HCR7e1b?= =?us-ascii?Q?aNH37BLnJOvQbnDRqr5EIofBoElZvI6KyaZG0SfpJXPJLRLHv5+WOgr+iTKd?= =?us-ascii?Q?Z+gAIr31Dh+Ua6QuOPBSYxW8hchIyX+7rEwwdcDwnByGaIBrOmrf9mhD/zes?= =?us-ascii?Q?22y/Rg1l/7IRLsYDhd1cVfW6a52UXRH8mQL7RIuWG+TncepPgue5jHNoe2V8?= =?us-ascii?Q?JYqaa4Bk0ejUnW5Pg49QHXMEzZTcWo4iDjmUjWHOFnFiB+VeSZkdt+L6iEgU?= =?us-ascii?Q?iQnjeqKxQEPg3nyFBqlibV5UvQief8gvlJi3i0xpswOXT4T3VCPqSE8fPzBI?= =?us-ascii?Q?icX27eVBfs99VL5tyFp6wd20xg8tr+hLlxqfawWshcX+JBLnN3lPNP+ubzcM?= =?us-ascii?Q?pVmHR8KczYhIpf9bUP4alMF8Mmscd9lCmyJfTI8bldpPsfjn00xbSMIhsm9D?= =?us-ascii?Q?RVyQz9OTWmNNKMTMnuAzWMfaNdz78r/CmyqcRIRBlTLcCR4uQqLGS0lyiopn?= =?us-ascii?Q?lTWkejX+JJUHJZDH6jQ+7005EOuWcC6WBeR5t9g7LPERJkTqzfB6N9iki4Pc?= =?us-ascii?Q?5+y1u1LEQCf0zwVMxaXNbYhY7fG0ir30+95qwukG0HgAb6thjkiMpVMhQKcQ?= =?us-ascii?Q?GbWSYs4PTlyexbvxCUA66k+oVfOdq3Vc5jfxEE/U3cy3OnKZCrZkOHBglZxQ?= =?us-ascii?Q?m3AHcQV7FXu1Wp8AOca0bUofOFZgCbhMlaCaB/62h4EchiKmADYTuCrgtHg9?= =?us-ascii?Q?4c+KVCrmNQkYZeOjewKgB1J88kf861sfx7u7f8N/F37zecZKXu2mFQ=3D=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0255005c-44f6-4824-b647-08da0a7b3ce3 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Mar 2022 14:09:24.7345 (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: Oh5C+aS0+3EI87yUQhtWkDX8nBtcdVkYyapWugN2FHHN5rJifnE+ZqPEMvXrl8mo5HXNhK2mgN+MX31OnEzl3g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB8PR04MB7035 Content-Type: text/plain; charset="utf-8" This patch added struct mptcp_sched_ops. And define the scheduler register, unregister and find functions. Signed-off-by: Geliang Tang --- include/net/mptcp.h | 13 +++++++++++ net/mptcp/Makefile | 2 +- net/mptcp/protocol.h | 3 +++ net/mptcp/sched.c | 55 ++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 72 insertions(+), 1 deletion(-) create mode 100644 net/mptcp/sched.c diff --git a/include/net/mptcp.h b/include/net/mptcp.h index 8b1afd6f5cc4..e3a0baa8dbd7 100644 --- a/include/net/mptcp.h +++ b/include/net/mptcp.h @@ -95,6 +95,19 @@ struct mptcp_out_options { #endif }; =20 +#define MPTCP_SCHED_NAME_MAX 16 + +struct mptcp_sched_ops { + struct sock * (*get_subflow)(struct mptcp_sock *msk); + + char name[MPTCP_SCHED_NAME_MAX]; + struct module *owner; + struct list_head list; + + void (*init)(struct mptcp_sock *msk); + void (*release)(struct mptcp_sock *msk); +} ____cacheline_aligned_in_smp; + #ifdef CONFIG_MPTCP extern struct request_sock_ops mptcp_subflow_request_sock_ops; =20 diff --git a/net/mptcp/Makefile b/net/mptcp/Makefile index 0a0608b6b4b4..aa5c10d1b80a 100644 --- a/net/mptcp/Makefile +++ b/net/mptcp/Makefile @@ -3,7 +3,7 @@ obj-$(CONFIG_MPTCP) +=3D mptcp.o ccflags-y +=3D -DDEBUG =20 mptcp-y :=3D protocol.o subflow.o options.o token.o crypto.o ctrl.o pm.o d= iag.o \ - mib.o pm_netlink.o sockopt.o + mib.o pm_netlink.o sockopt.o sched.o =20 obj-$(CONFIG_SYN_COOKIES) +=3D syncookies.o obj-$(CONFIG_INET_MPTCP_DIAG) +=3D mptcp_diag.o diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h index c8bada4537e2..500dc7b3fde8 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -605,6 +605,9 @@ int mptcp_subflow_create_socket(struct sock *sk, struct= socket **new_sock); void mptcp_info2sockaddr(const struct mptcp_addr_info *info, struct sockaddr_storage *addr, unsigned short family); +struct mptcp_sched_ops *mptcp_sched_find(const char *name); +int mptcp_register_scheduler(struct mptcp_sched_ops *sched); +void mptcp_unregister_scheduler(struct mptcp_sched_ops *sched); =20 static inline bool __mptcp_subflow_active(struct mptcp_subflow_context *su= bflow) { diff --git a/net/mptcp/sched.c b/net/mptcp/sched.c new file mode 100644 index 000000000000..53a1bdaae2f1 --- /dev/null +++ b/net/mptcp/sched.c @@ -0,0 +1,55 @@ +// SPDX-License-Identifier: GPL-2.0 +/* Multipath TCP + * + * Copyright (c) 2022, SUSE. + */ + +#define pr_fmt(fmt) "MPTCP: " fmt + +#include +#include +#include +#include +#include +#include "protocol.h" + +static DEFINE_SPINLOCK(mptcp_sched_list_lock); +static LIST_HEAD(mptcp_sched_list); + +struct mptcp_sched_ops *mptcp_sched_find(const char *name) +{ + struct mptcp_sched_ops *ops; + + list_for_each_entry_rcu(ops, &mptcp_sched_list, list) { + if (!strcmp(ops->name, name)) + return ops; + } + + return NULL; +} + +int mptcp_register_scheduler(struct mptcp_sched_ops *sched) +{ + if (!sched->get_subflow) + return -EINVAL; + + spin_lock(&mptcp_sched_list_lock); + if (mptcp_sched_find(sched->name)) { + spin_unlock(&mptcp_sched_list_lock); + return -EEXIST; + } + list_add_tail_rcu(&sched->list, &mptcp_sched_list); + spin_unlock(&mptcp_sched_list_lock); + + pr_debug("%s registered", sched->name); + return 0; +} + +void mptcp_unregister_scheduler(struct mptcp_sched_ops *sched) +{ + spin_lock(&mptcp_sched_list_lock); + list_del_rcu(&sched->list); + spin_unlock(&mptcp_sched_list_lock); + + synchronize_rcu(); +} --=20 2.34.1 From nobody Sat May 4 09:43:58 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a17:907:7811:b0:6d8:2910:9a8 with SMTP id la17csp554614ejc; Sun, 20 Mar 2022 07:09:39 -0700 (PDT) X-Google-Smtp-Source: ABdhPJw8MmaouEf6KH16UIbNOyfKP1yEsLAxf9BoWv6IY9qLM4Y/u5DzQWcfjB3bmayvBDxwvtO0 X-Received: by 2002:a17:90b:3b42:b0:1bf:b72:30e9 with SMTP id ot2-20020a17090b3b4200b001bf0b7230e9mr31695341pjb.135.1647785378862; Sun, 20 Mar 2022 07:09:38 -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 f26-20020a63755a000000b003821f0d1b72si5581725pgn.701.2022.03.20.07.09.38 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sun, 20 Mar 2022 07:09:38 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4325-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=QQop89qc; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4325-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.69.165 as permitted sender) smtp.mailfrom="mptcp+bounces-4325-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 3EF033E0A1A for ; Sun, 20 Mar 2022 14:09:38 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 297F933E5; Sun, 20 Mar 2022 14:09:37 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.111.102]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B26BF33D3 for ; Sun, 20 Mar 2022 14:09:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1647785374; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=4iw7s5zvEERrVINVLyzL/lgSDArs/eQmsP63FkC7pec=; b=QQop89qcY+SyQ8Sp3586TwhUVmi9vdXl+1dIRIIiTueCwvkg+Rj3nhnaBDV4CykonF51U0 Wmhvj6Q0JurJA+MlCSuMIMd1jVeH8hVKPxBLZjSCsfxxuzFNSzSGPfOwIUKBJZ0U/qwgBe 5Dbwldcl8bhXp2h8KutfGhqlgBD9Xkw= Received: from EUR02-VE1-obe.outbound.protection.outlook.com (mail-ve1eur02lp2059.outbound.protection.outlook.com [104.47.6.59]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-20-ziBz8CzOMiuRK_sb8bbBIw-1; Sun, 20 Mar 2022 15:09:32 +0100 X-MC-Unique: ziBz8CzOMiuRK_sb8bbBIw-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RkhaaCPCgHNgAKg/GTd9v2mYfL6kTk59YcLjgfw7MHRYDyuaIAEg69ZrX8Q0/q36ZPm3zpaZdxWc6qpx9QDcYzK8xVpT0RRxasqKTyxg0MdQyGHhiFFSccc4v42tioDbd3J1dQ3qHsqZ5i14FHCExqe4t7blYMfGzR1+P+ylLhgxKAZvnX5BdlzMEOzO7Gm39GnQCQ1iG3fq162oLJqqrDv0Cabt0j90gxtqVwqvfr7DbuudprS1Rr7EiziVZQRaTvEAwToa8sVYbAIZx39BiPxlK58DKgZmnHwu0dIegaeavb6ry0gvnylYecljz2eqDNXIFZIfSnhRvqNFpbR1Gw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=ePBzszVn2fho5okFj9sFkOOiJcmiqWhaLyfHNvwVum8=; b=HU8YT8iItD0x1YlTAtdrkKTBjcxnIkI0m0bzSVcSeoOjmyzeHkCO83DMEDFsP9VOYGrbn13WmI4azfIer1IZVMyByrOnto2ADXUEzeiOHfRI2uciL7L6gcxkJajrEXNvXCVkfDyYe+Q3GhiaJ4Wlgd51dSntv4jQgXCIgpyKyD26mNzS15eVHEFjfgSOf7/QCWc+Lqyp2V2Zt3fICaBkpKaW0ei13pJHLm2PdX51FT7U1wfgfqyyrr66tHG1sjMmRHQ9EBkFV+dO8c05aSPZd06qRCb1jgaIPEns3RYW16SsM6ux4CfP94m0E5fN86e5rbv+35CNwTi+i2zGY4dMWg== 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 DB8PR04MB7035.eurprd04.prod.outlook.com (2603:10a6:10:127::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5081.22; Sun, 20 Mar 2022 14:09:32 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05%6]) with mapi id 15.20.5081.022; Sun, 20 Mar 2022 14:09:31 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v3 2/8] mptcp: register default scheduler Date: Sun, 20 Mar 2022 22:09:06 +0800 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HKAPR04CA0002.apcprd04.prod.outlook.com (2603:1096:203:d0::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: bdefa165-7160-4f9e-46fc-08da0a7b4119 X-MS-TrafficTypeDiagnostic: DB8PR04MB7035: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: DvIUHkKH4s9vhHG2MFXEFyxd88eXLal0Hn6U4UyfXYWMqoaO4QeAwE0VPJTShIewvGwkUZsQYqnA0LBj8sE+fMzxknN7CQGQVx6usYwA5z4LvlBSJh5OhXk59FDYTAGbdrh7RS29CYWy7um7+ves76sbWAKHVJcCoE0CF9MPw3SmPap4qY52kYPyoFvA5S0qQoPl1++fXtXXLom7nrJxRCrr+H0yY6r7hXdE1OoW3R+eZL7ScBb71blAFUT9jcAWw8w5XmzoHevqvwq+kYYRYX7+f4kb98/ZmXYyRRNTpPX071fSLVIJp6lzLq6N4rK1Go/UoG65Hasqc/kwaPKxHFz9/R8hfE+md3g27h3OnZg3WBdyR7pUbWmYunLxXaPKBrCyPk35aDNo0EeAthiEwA0BvGlAT3q2AF0+aZXeB4r15bTK95U7nvMQqbg1O3a6B2yGrPI9m+LhVaMhjI7LC2KEQg2ZA1EDGhka2gMZwWlrwN8DcVvG8QlG47fA9+01CIOGdSLA0yMxK9LidlRZSb3nI91f2e20cjnw025PD2u3fuf4hS0+KLRy4X18/Vn7KPS2bFGaaH5oCPAQGZBrLuiolXFxOwtV8e/7cPGERAQBc2CjqIx9ZlxFi3lUYLKaMQ2C1Nb62phHBXyESKzfjRoOcRS8aQQhciotk3S46fDf17FfeTWXX4j6V30Ze3WB 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)(6512007)(83380400001)(44832011)(66946007)(66476007)(8676002)(66556008)(4326008)(6486002)(6506007)(508600001)(6666004)(2906002)(36756003)(86362001)(2616005)(107886003)(186003)(26005)(8936002)(6916009)(5660300002)(316002)(38100700002)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?gbNxHhT5dmRTzK6Bt48Qwo9+VIJj8bYT61zW3qJErdYeW4xti1zG3bJVNjJ6?= =?us-ascii?Q?50+gqcbdyh+yVgNPxB3D/ggdgCLdm4jvIjWgXKU6NAGOA0/TGa8e2v2azQO/?= =?us-ascii?Q?LrzbbbCsAGXuMPCOY2tEQqRNAupS5UQ8ukIapTxCE3v6K8Zbhp/qyIA4PW0t?= =?us-ascii?Q?bOCKXv1MIxASsNBKHv2Wo40W3/8MOMm+rHfhKDz4GqrDCDvOW0Z3LZp2XKkm?= =?us-ascii?Q?308C1M31O/4dzQsa2AGLVEBKmiaCk760FEjl/Zxv5U/M123KMtRNLC/piHhJ?= =?us-ascii?Q?CFXdcXqoBoo4tbNUSXA+5X2oHt07TpxABEmW01QGb9LcnDdLpzU6rS7evHkN?= =?us-ascii?Q?WPlKMsDZ1kDpKZMGvCaLjALtRWJcJlgsLo+IxgPnF2maE/hg7iIjEEAellRt?= =?us-ascii?Q?s94KTjFYQOKeZpZloxXwNyrrZ3IrNGuj6WBBqLuRd6dDgHUqu/yXQpgFsUrs?= =?us-ascii?Q?2RWHt7XLWNEnSA0qCpI5cF0Eh4EexitNUTJ2LEIqVUltI/+PwcZT9w5wEJxs?= =?us-ascii?Q?Pi1nh5O2B4zxEZCSSyi5u1/tPI7rZXJkaNRXVInblhy0Em5WdhMJb2WX0GSD?= =?us-ascii?Q?KbLyOc7jud+ynz/DTV2PkDEaCsRdnhf6nkNtsiv+1rnfeEkhRKgtDhgY+DzY?= =?us-ascii?Q?Tx8w/HsZgH+oBhjsXX5nxn0cF8furhh3Pqu0TEIfawwVszinATAdrPKeFlJ1?= =?us-ascii?Q?Oth+cTRKLzeTGYoUSSk/Yk1TfemIouNgu+dLQeKfdBFlHnc+vzAmWTeyIRHt?= =?us-ascii?Q?6PNS54evELSvyEKVnqcq22R1mBhluFvb937nW07TEzxVTLkA9RiYPzHd99TA?= =?us-ascii?Q?18gcaP6jwKVAoC/oA17wqqMq5jaRCvCnr6I7MFDCsTWucyVbDoa4PEg4tftg?= =?us-ascii?Q?Ph26J4kU9NfPdnHBUMA1x/cyYSOv3nbdgETZ2Y/+zdGTaVmyKJCmwxVzzehe?= =?us-ascii?Q?P5b33AJLJ7jSl+0/UQEggl2PhE2BgCYxff59Y5b3O42Ew85OSHNVyVm832/C?= =?us-ascii?Q?7lT6JK77CvQad9+1Ggq/YXr+2fqkWT5DIHR9xmTq5iS2tXkBX4BD5kN2NnKj?= =?us-ascii?Q?MYhaUhkRTEDy97XS+xLz7IlgDQ9gDPC1Qjmm65YcWQOliLkQku6vQDqi47WS?= =?us-ascii?Q?fadYzLx0Bg1u8/DN3Ws2E8GX2e2OhfpJapDD8k9GdVbujr2TiwOSB0hZ+upl?= =?us-ascii?Q?N+U/wKSJhFOAWd2RwqHubE8Jj2ehZdH4jwDhXIyW5tCAb2b6vHclZV0xCok5?= =?us-ascii?Q?4BRFdBvUSUhetq7iQ5qSPA9zbWBZt/SnTtpVSZNo/RJ+bIelh4+xJlmFugvJ?= =?us-ascii?Q?xecbrVppKIcFp5I1cRDnEy3CTqpGbD2WVl0MRJoffYCiQabkB4FRQMRj3E3S?= =?us-ascii?Q?yi4X2J6/Vsa+7z88NKxFDOY2PG68Ug5jAzn0AfUgUb9WP/4ILz8DiNiJMPwI?= =?us-ascii?Q?jd1VkhZoy+BLGy3ZoOPlzXnKuJMDq6mHEVJOqV7849WqPLYpVtV8Iw=3D=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: bdefa165-7160-4f9e-46fc-08da0a7b4119 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Mar 2022 14:09:31.8902 (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: 5gYUsz0HnQuJRLqI8LzlvLoPGTEZu4Kzc9xzr5Yk97GlQiojsP0v+HppNU7P+JIKCEk2Gw0MbieGAODQwkc9sw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB8PR04MB7035 Content-Type: text/plain; charset="utf-8" This patch defined the default packet scheduler mptcp_sched_default, registered it in mptcp_sched_init(). Signed-off-by: Geliang Tang --- net/mptcp/protocol.c | 3 ++- net/mptcp/protocol.h | 2 ++ net/mptcp/sched.c | 11 +++++++++++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index fbb14dfe62b3..11e19ac9d5af 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -1424,7 +1424,7 @@ bool mptcp_subflow_active(struct mptcp_subflow_contex= t *subflow) * returns the subflow that will transmit the next DSS * additionally updates the rtx timeout */ -static struct sock *mptcp_subflow_get_send(struct mptcp_sock *msk) +struct sock *mptcp_subflow_get_send(struct mptcp_sock *msk) { struct subflow_send_info send_info[SSK_MODE_MAX]; struct mptcp_subflow_context *subflow; @@ -3743,6 +3743,7 @@ void __init mptcp_proto_init(void) =20 mptcp_subflow_init(); mptcp_pm_init(); + mptcp_sched_init(); mptcp_token_init(); =20 if (proto_register(&mptcp_prot, MPTCP_USE_SLAB) !=3D 0) diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h index 500dc7b3fde8..c186d199cf5b 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -608,6 +608,8 @@ void mptcp_info2sockaddr(const struct mptcp_addr_info *= info, struct mptcp_sched_ops *mptcp_sched_find(const char *name); int mptcp_register_scheduler(struct mptcp_sched_ops *sched); void mptcp_unregister_scheduler(struct mptcp_sched_ops *sched); +struct sock *mptcp_subflow_get_send(struct mptcp_sock *msk); +void mptcp_sched_init(void); =20 static inline bool __mptcp_subflow_active(struct mptcp_subflow_context *su= bflow) { diff --git a/net/mptcp/sched.c b/net/mptcp/sched.c index 53a1bdaae2f1..331e6517622a 100644 --- a/net/mptcp/sched.c +++ b/net/mptcp/sched.c @@ -53,3 +53,14 @@ void mptcp_unregister_scheduler(struct mptcp_sched_ops *= sched) =20 synchronize_rcu(); } + +static struct mptcp_sched_ops mptcp_sched_default =3D { + .get_subflow =3D mptcp_subflow_get_send, + .name =3D "default", + .owner =3D THIS_MODULE, +}; + +void mptcp_sched_init(void) +{ + mptcp_register_scheduler(&mptcp_sched_default); +} --=20 2.34.1 From nobody Sat May 4 09:43:58 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a17:907:7811:b0:6d8:2910:9a8 with SMTP id la17csp554654ejc; Sun, 20 Mar 2022 07:09:47 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwRK+WQnRpEmeUeI84tKBpJzi2x0LxmXPfTI+MNcvuTHhvq1TnqO/y3HgZzZh/8ijpY5/He X-Received: by 2002:a17:90a:dd45:b0:1bc:9466:9b64 with SMTP id u5-20020a17090add4500b001bc94669b64mr31918933pjv.23.1647785387285; Sun, 20 Mar 2022 07:09:47 -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 io2-20020a17090312c200b00153b2d1653dsi7694990plb.325.2022.03.20.07.09.46 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sun, 20 Mar 2022 07:09:47 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4326-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=JmjeaxWq; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4326-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.197.195 as permitted sender) smtp.mailfrom="mptcp+bounces-4326-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 2A16F1C09F1 for ; Sun, 20 Mar 2022 14:09:45 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id DD86C33E5; Sun, 20 Mar 2022 14:09:43 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.111.102]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6158E33D3 for ; Sun, 20 Mar 2022 14:09:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1647785380; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=NUfMKSLA5Bp0kliy1ANdGDuSrdGkb2DjLPMLmhk4Z0g=; b=JmjeaxWqa7s6Qhc1bTwkw+jexaEQy3z3qA0NmCkqLJbzlulBQYudHWleTTCFSAkk52Hb9u ay4l3UujwhzXNw53mlQ8VqfDA7fmfY1ne/dTq19mc2SVZWKs3gRELGbULbeXTdjHtD3Jpd XyNox/2FKv+FrL+UhwI/rSGvaIM1r6E= Received: from EUR02-VE1-obe.outbound.protection.outlook.com (mail-ve1eur02lp2053.outbound.protection.outlook.com [104.47.6.53]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-16-ytGK1wjjNq2LoAqb17A1FA-1; Sun, 20 Mar 2022 15:09:39 +0100 X-MC-Unique: ytGK1wjjNq2LoAqb17A1FA-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=SWjp2Ivp1tr8jMwogBdHiuWfnJSo5GjPu0GQhltHvmW/tbPQpAj83fnNkWUKPINWliiUDFuLuteJ1KaPlSyULoj75g//qDhn0Bj+gDZgbP77SQhaXJExOslAD783MeGvMEyauqP81hATmCigtLooAvJVxN4FEuSZ5ft0MmaR0FaUqbRAbXoTxVqmdXNhv5ZVnp6l6pNBim7w24YWGqENkl7WhUCxm4WReqV7WFtT2vvbnFbPz4ktg57mcS9LMGUle1z8a7lnJ7YbYrprPAiGU3FxYOzKKRHGJmS9YndS4WqqHEAXJld+BVipS9N+szTXCSSx+L7gSjdpAUCSuOpd6Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=j+LeuUiTsVgMDiquyysnuN32qrFMkLGwGx+kyi1viLY=; b=fB5eLzZ1ao3un2XQjImeHAJb51PPsSs+1qsin+YDvyZ/IgVs3l1RgwwQky9KAauwpyW/gtpYPLSZTU0khnuoIAn7pbvR1ol9OQceirgylgpenn4rGy8jKlNC9X+y9WYVYy5s470DY2A967jAFvneyMAJC1qBVMotTth7GlhHFctlDBKS1HYuswbaUsBTTZ1M/Ver2qE2gEquZPK4ebhx+/dobdpeQrQgWGd36F8tm29kl0wG3rqHfs2HFGZZp6oY11O4aB0hER3pmwW8gdhWQnZj7YTOpQ4DphK0EnnMmy16CS8b4G31y74vFGuALx8VC+LhjrnSv5e6pkae9y5NUQ== 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 DB8PR04MB7035.eurprd04.prod.outlook.com (2603:10a6:10:127::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5081.22; Sun, 20 Mar 2022 14:09:38 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05%6]) with mapi id 15.20.5081.022; Sun, 20 Mar 2022 14:09:38 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v3 3/8] mptcp: add a new sysctl scheduler Date: Sun, 20 Mar 2022 22:09:07 +0800 Message-ID: <0e1e6ebf2c8098e9bd1a86d4390eef5265bd55ca.1647784679.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HKAPR04CA0004.apcprd04.prod.outlook.com (2603:1096:203:d0::14) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 21fd9c82-2703-464c-dbdc-08da0a7b4510 X-MS-TrafficTypeDiagnostic: DB8PR04MB7035: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: RRNo3SJHckV/cTXBFQHg8EsIri9mG9bVLDLI2SGONrpxlgNw7xDv15vuXffiLR0PuNe+lwOnps80CDqZsW6KdmO9AfYGkuCkdlQa1SbdL6rZ4FdCEfg/jV0EgG5lXxapLcJSInGBsh96WLtNMQk9Gaaivu/55QtANLKiixoDcsyPeZtf8bjVxsozp7bS/B+f7YGshElcYNiBsrJ1Cs7tSRoE+lkBnmidsswir/H7bLaNQ3EhZMhvhGeDBGYAAYWGs+n4vO2Rf1/T4gDl9/pam6hK7OzsNSpsFBz4F4fa2J3pWFIYkA+NtZjqpRKMKpZWmmo9sg02RZk2fG1IDCm8U88qrdHbg8Pnz38mDg4A5StP352SPwvwX382qSTCTiX2fKA4t9wfe4Melhqikc9R5mLvhBD2wXYj8ivfU53VY7VrhK0d20ygct7ynnKNhFoQrRCsq9aysrGoJck0hKywxNSb2c8+JB3G1S7n76tylVdo4lK7xh2lVuIh3rPgcZIlv+KsdD4nnvDdV3MUW/lNnfkXeZF2bKBvK/lGqTnFNEaPekQE9nqYw3lbX7fKdpqUS5LQWUWEU24FLZ+SlkuGp86SZisJvhv1+d9hDDmwrBxFxXrLucdWQcSAfR40lup4WupLg17UOWQrZBu4Hc+tb+8hrnDYTf+4vq+6zb2/y4+kC9dx/Ni8/34O97Q2lktEx6YwTSdBnnQUNopddD8MTQ== 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)(6512007)(44832011)(66946007)(66476007)(8676002)(66556008)(4326008)(6486002)(6506007)(508600001)(6666004)(2906002)(36756003)(86362001)(2616005)(107886003)(186003)(26005)(8936002)(6916009)(5660300002)(316002)(38100700002)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?HMIVgGkgVClqOOTQGLtGYa5VkF0UtXrhevMmUnmrObdYCF43WzxNigYpij0H?= =?us-ascii?Q?XyTYGrQiDGThJ9013Qh2wPwnwG7Bec+QtO7LwTRbJMayrJRlLKdEnF7JTQ1G?= =?us-ascii?Q?2mHsYik8BKVYG/EdhdzdfrCvyqM+gPmJfak/+MTdK8uwcfCIHyshJv8xHB1h?= =?us-ascii?Q?hON2pmsu+l+h51+jaRhGq8beERz/Cm1hwVIUeUZiG8k+yOVXAjHmPzjIoKTl?= =?us-ascii?Q?pO1PLFNtKxds9cdN6G6U1nnVwbgvPVwzekWLcNJJNOY9aRRaH48M6jXH4c37?= =?us-ascii?Q?0/Lwqdgj2qcK7mkVj3lB3VLl7n2r46DD/omuMdHQf2hsnauWfWjNt9mYWnuE?= =?us-ascii?Q?bCvpxjLP63RU0Rcbi1YysmclNJAfUuJ7226q605ttgDdHVBC5WxiVfKCLezD?= =?us-ascii?Q?Hb3bVS/yPFF+BOa2Tep7sYgwzLU0KPvQYwwvuTXWFF+O6ljRZRKq5jvOMqv8?= =?us-ascii?Q?EZjoSTGeaVf4kbb4Q1NaDSUSkJLQgKM7mC5R1HgFY5frRGRFFrjASiqAbAg3?= =?us-ascii?Q?/6t8IRf9/PGcyxBDSM/4iP/CuSUEiDqIwYjfNK5BsaWEEzbERecs04EzHYYs?= =?us-ascii?Q?YCI8Ak+UgpSyIYLiAXVeIrPa2fCRs6YCtE7H6+bXybgTUvsGuROMBj2MF3Bm?= =?us-ascii?Q?wlalVsUxYE5R7U3fPjwZjv7AEtiD//suLc4HrEQz375wAJ2BhvcYC4Nmflpr?= =?us-ascii?Q?AYaytv+qM5dISkzndVTybb47BSD6/d4D/eQejt2S36nhKloPDnc9m57a2ZBw?= =?us-ascii?Q?dAvagka7mypY3G6DHCMYuYHsTfAvC4u+hUxSP2TEzAgaYwU/I3gZMeQx4Z/W?= =?us-ascii?Q?2Jv+oDzaCMKIbHsDcBZ/s7RQJCaBrUlZoK1yeGoo6NG9CQ8H1IoyaMw9jt0V?= =?us-ascii?Q?leJDSNuVKSGiPasib2D6DqLKViw7SVJhfJ63nVS7nGwUDpXRpgdE/GevsL8d?= =?us-ascii?Q?xDepvuk0dSBSreoP/nUT/2RgC7qoVROyi45iXdoD0UOEQeWcaqcAG06uoibe?= =?us-ascii?Q?C8KRWW7/Em4W+AdYMKrnx/Z6sDBBMyya+1D4XwHNlajXZccg6/V01RxHrFUa?= =?us-ascii?Q?LNRVH8wZkPTLLeIo9XPRD9QnvshTydFhDHiq6vXhX4Xkj1OPSTzSACXBJwXN?= =?us-ascii?Q?Z7jsXyN9Ur3UHKTiH/G9Ew1QfJOWfUu51JRc5QP/Cx2Y/R/eAlLGfH1qNzZm?= =?us-ascii?Q?F0crPMySvI0QMR/ZcM9WgdNoDW36+inQlYjKA5Icnl086TpyVxQA4mGgugkf?= =?us-ascii?Q?S8wiwiPF+f43JRmcXaxH8Mul1MyJrsVGcB6OmJiGNersKXHr3xVQ4CWRFjAs?= =?us-ascii?Q?+DKWyfEuQrG6A/rLF5GIy8MjLBgVm7iTqysaC1vxnjoy1ehdfK8/y8eY0M8o?= =?us-ascii?Q?JPK33+enGK1nKiRhr8c2e2cJ1PQ6BeJc1ZnKhJon7dzlZVqCBK59zLyPRGZo?= =?us-ascii?Q?EoYBUsZ3DkobtsAJN91BvIfKrhZr2vyZE2oPmj1WkdBSC/vvAftkPg=3D=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 21fd9c82-2703-464c-dbdc-08da0a7b4510 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Mar 2022 14:09:38.5615 (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: F20rklfXxl1cSPgl+pPE0yM2EG6HnqqjYdaKcYal35YNHWvPxmhjOvsoGR1Vaj5UfuZ/I21YNFckeMyuZ5g2Tg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB8PR04MB7035 Content-Type: text/plain; charset="utf-8" This patch added a new sysctl, named scheduler, to support for selection of different schedulers. Signed-off-by: Geliang Tang --- Documentation/networking/mptcp-sysctl.rst | 8 ++++++++ net/mptcp/ctrl.c | 14 ++++++++++++++ net/mptcp/protocol.h | 1 + 3 files changed, 23 insertions(+) diff --git a/Documentation/networking/mptcp-sysctl.rst b/Documentation/netw= orking/mptcp-sysctl.rst index e263dfcc4b40..d9e69fdc7ea3 100644 --- a/Documentation/networking/mptcp-sysctl.rst +++ b/Documentation/networking/mptcp-sysctl.rst @@ -75,3 +75,11 @@ stale_loss_cnt - INTEGER This is a per-namespace sysctl. =20 Default: 4 + +scheduler - STRING + Select the scheduler of your choice. + + Support for selection of different schedulers. This is a per-namespace + sysctl. + + Default: "default" diff --git a/net/mptcp/ctrl.c b/net/mptcp/ctrl.c index ae20b7d92e28..c46c22a84d23 100644 --- a/net/mptcp/ctrl.c +++ b/net/mptcp/ctrl.c @@ -32,6 +32,7 @@ struct mptcp_pernet { u8 checksum_enabled; u8 allow_join_initial_addr_port; u8 pm_type; + char scheduler[MPTCP_SCHED_NAME_MAX]; }; =20 static struct mptcp_pernet *mptcp_get_pernet(const struct net *net) @@ -69,6 +70,11 @@ int mptcp_get_pm_type(const struct net *net) return mptcp_get_pernet(net)->pm_type; } =20 +const char *mptcp_get_scheduler(const struct net *net) +{ + return mptcp_get_pernet(net)->scheduler; +} + static void mptcp_pernet_set_defaults(struct mptcp_pernet *pernet) { pernet->mptcp_enabled =3D 1; @@ -77,6 +83,7 @@ static void mptcp_pernet_set_defaults(struct mptcp_pernet= *pernet) pernet->allow_join_initial_addr_port =3D 1; pernet->stale_loss_cnt =3D 4; pernet->pm_type =3D MPTCP_PM_TYPE_KERNEL; + strcpy(pernet->scheduler, "default"); } =20 #ifdef CONFIG_SYSCTL @@ -128,6 +135,12 @@ static struct ctl_table mptcp_sysctl_table[] =3D { .extra1 =3D SYSCTL_ZERO, .extra2 =3D &mptcp_pm_type_max }, + { + .procname =3D "scheduler", + .maxlen =3D MPTCP_SCHED_NAME_MAX, + .mode =3D 0644, + .proc_handler =3D proc_dostring, + }, {} }; =20 @@ -149,6 +162,7 @@ static int mptcp_pernet_new_table(struct net *net, stru= ct mptcp_pernet *pernet) table[3].data =3D &pernet->allow_join_initial_addr_port; table[4].data =3D &pernet->stale_loss_cnt; table[5].data =3D &pernet->pm_type; + table[6].data =3D &pernet->scheduler; =20 hdr =3D register_net_sysctl(net, MPTCP_SYSCTL_PATH, table); if (!hdr) diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h index c186d199cf5b..f0bd2e17f2d6 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -583,6 +583,7 @@ int mptcp_is_checksum_enabled(const struct net *net); int mptcp_allow_join_id0(const struct net *net); unsigned int mptcp_stale_loss_cnt(const struct net *net); int mptcp_get_pm_type(const struct net *net); +const char *mptcp_get_scheduler(const struct net *net); void mptcp_subflow_fully_established(struct mptcp_subflow_context *subflow, struct mptcp_options_received *mp_opt); bool __mptcp_retransmit_pending_data(struct sock *sk); --=20 2.34.1 From nobody Sat May 4 09:43:58 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a17:907:7811:b0:6d8:2910:9a8 with SMTP id la17csp554668ejc; Sun, 20 Mar 2022 07:09:52 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxHhur5Eof3/l+kYeNZ5BY1wF8kByZW6TpXnDXCTgm0kfCnz0mTExQABk8AnfTcskriBboW X-Received: by 2002:a62:1ad3:0:b0:4fa:686f:9938 with SMTP id a202-20020a621ad3000000b004fa686f9938mr14774336pfa.6.1647785392265; Sun, 20 Mar 2022 07:09:52 -0700 (PDT) Return-Path: Received: from sjc.edge.kernel.org (sjc.edge.kernel.org. [2604:1380:1000:8100::1]) by mx.google.com with ESMTPS id b12-20020a17090aa58c00b001bd14e01fc2si16473820pjq.176.2022.03.20.07.09.52 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sun, 20 Mar 2022 07:09:52 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4327-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1000:8100::1 as permitted sender) client-ip=2604:1380:1000:8100::1; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.com header.s=mimecast20200619 header.b=TCfIsYZb; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4327-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1000:8100::1 as permitted sender) smtp.mailfrom="mptcp+bounces-4327-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 83E9D3E0A35 for ; Sun, 20 Mar 2022 14:09:51 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 9720033E5; Sun, 20 Mar 2022 14:09: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.111.102]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0752033D3 for ; Sun, 20 Mar 2022 14:09:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1647785387; 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=MfH3hdWyqlKw9522kDkQmEBVXH2ibBELkC33ciaBLFo=; b=TCfIsYZbA839zYomPbfM2xlwRIlJ0WWbHdLJ8PgKAf+OECYtN6/bLlHdOhnIQ3FiEBPUgH Wn6KUdj4tUZ+tKDHthBnfFCmqfYmrfDMl7YF7ghtFs3LOrwd9b2eI2CSV3zCPaZ76z29xA H+pjtZ1queKi/JITWZP/hL8FgHENdCg= Received: from EUR02-VE1-obe.outbound.protection.outlook.com (mail-ve1eur02lp2058.outbound.protection.outlook.com [104.47.6.58]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-26-uqVvC4UBPEKVfHAg4IcuEg-1; Sun, 20 Mar 2022 15:09:46 +0100 X-MC-Unique: uqVvC4UBPEKVfHAg4IcuEg-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=CiEdsVrIIs4PuaOOheRdaMVHn05wgzbPRJe4BQ9eEprBOth29AO1xw+vczqqIgOB3c+ivmzww0k8BOJezRrYR1FtUDPgIpoUG7Qg2A5FqEn4YtyaDZ2sF8WXveEmwYk92BSzO1+l6u1l13Gk3SJ9MKuIi43ryZ9k5f9PcI02eW02eT/7IqVGgL9cj9VoD/OVDOI45liHk79B9lT5O4YXVpI5J4m6jfldWa1C5yeqrcbT1hIanVOkywHYO+Yx8/+KWhUnJs6RF5PIEUgK7uleUYqanjhzzMCb9znYvKLlXizRU2IX31rYhChFHmMM+7dHywjQqJT/PpuUO4d4l/QgbA== 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=l9XOGTNLGsZdMAVOwUKoh+cSbUrneDbY235pei5/U44=; b=VsL92dqSBOEfsPqFtSajAutwBwHYQvf+zoKQkrGAmBL6MIhDLGNoYbQKvdhrfx2o6pr7FcS3yYk8bmenklwXguNiXrnkFlhqereTQLFkeSHR2IkUSOFSpOEoVllsWZ9lncfUePK7W7xK6a7xqb/dJky6phUldZgFCnCnOMorKX1fK+hd/sHig7BSHD83LnyP6Q7QOhcsjCqF0boUMMcf/Kb6dXfiFJ3pjW4Oo1yR9Z0rvLKkofF9kkl268kUmlUB4Zf3kRvAx1UeFdE5aSxyPk+3RSC36ujRz8mhyosCl+kk6sS95zEATy1xx3olzJzQ2vQiONjWr/aTsIN6TbdGlQ== 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 DB8PR04MB7035.eurprd04.prod.outlook.com (2603:10a6:10:127::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5081.22; Sun, 20 Mar 2022 14:09:45 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05%6]) with mapi id 15.20.5081.022; Sun, 20 Mar 2022 14:09:45 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v3 4/8] mptcp: add sched in mptcp_sock Date: Sun, 20 Mar 2022 22:09:08 +0800 Message-ID: <3da994e7f2bcc1a3bc03bebfb7215d55cd56bef4.1647784679.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HKAPR04CA0002.apcprd04.prod.outlook.com (2603:1096:203:d0::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: 4e2bce33-d743-4d60-5c31-08da0a7b4914 X-MS-TrafficTypeDiagnostic: DB8PR04MB7035: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: qUEDgE7RVePtqnbgK5v8SEuuHxfAaSWtnsAnThD8acLs6hFNgXHC8ea4GwCmpHCGNfE8+gCPoI/ugkiJF7+8S4uBuW587zDKBJgEU48O/OIOfVqa4mdnEqHrbCzDATwU7hI/XbZecySzFrGIFG5IUbqf82QtlNQF8T1Hvm5tz9FckLLHgX/9eiKqFdDOGJp1TZiCM73v+L9jY2o6jnleskoXpQKEc0PdaDYNRjjdnqpQYF0d8jVv6VjIU2Rn0Zvpey2mHx6x3QeP3Efsms6anAaATrjj5VMUHmgeDpFF5SGdelZ9tOIMFbIm9vL3WoMqMvW4PZmcGsVyq4h+GufgM1gGqoXTjsU+V7umEIUA773ZpqIx6Qp776enTuHih+gCGADZGAt43kLzwRrpmEmnOlykIESaSLhJssgoHfIQR6VQAs6svx34W8eNBsq9CeQTIQpQ4hZhC46QUs6gkW61lQa2ltvJkjzXkH5LtSGII1xB1JVHAF7pXGHLxb8mZeG9sPXyTiovRAcH/nbMbqG7R8xooZL6sCZmPjxvKtVDApLFz84ihVLaTDBHZ3i4tV2fLL/59WCL3wT0WTCvUWiW2IaFiDurrb0hNE1s1plTr+2TssyZMqCzaWgsFSUiyJztPnfMVzDA4Zt3YPkrxhn0QVsyFWmuzwcodYSejeRG2MWF0mV2/FglnUAggPUQW41TTfClL7/terTmazu+d4CQXQ== 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)(6512007)(83380400001)(44832011)(66946007)(66476007)(8676002)(66556008)(4326008)(6486002)(6506007)(508600001)(6666004)(2906002)(36756003)(86362001)(2616005)(107886003)(186003)(26005)(8936002)(6916009)(5660300002)(316002)(38100700002)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?3ihSOgglkIu9nfBqDZ8yczV0wgWOPfnZ1N6qJP2+/PEJo80CNCPyuQimutHZ?= =?us-ascii?Q?ZbrorFiv8Tv9ADcPWquVoY1g5+zDgFG/ViXLDLC91Esj2DfoOnKAkytV/kRN?= =?us-ascii?Q?6oJae6abfu5rRPmXkU3hTLV3u80zsagnvuYaEcitP4S7tzOBSH58Hk+1n3bl?= =?us-ascii?Q?4D+NBKeQroEOIk4myiIabjVHxehvFRuCb3z3k+2RcdLn4Rfh7OzDCNF9Gd/L?= =?us-ascii?Q?ihtl0073ga0SFmRImcsE/6zYY4cqsPYAUoBBYFCNVjWe8kFKaoaA56Vh+s+F?= =?us-ascii?Q?6FPNBJOXjXdPeUEZL0/a6iR6atgUl8fgV/La9rJ/rjHCx7jZvywgHrquuL/r?= =?us-ascii?Q?u0e/y5tv+hFtVndB5TIm5St/Giz+S+ejyWYBWiNuoQyLw+t1K4TZEvD3VGPm?= =?us-ascii?Q?GSnGLimzMat/Ct8Pu85NdomVOLrw7XfyACQz+mfvtEQceqsEzaY9cqHnVJMI?= =?us-ascii?Q?SFLkW5riBZxbKuIrezcFoWc15+vUNBs7Bkr+ICTx3loWTohU1PQpUwB+Lach?= =?us-ascii?Q?qv4QL/xPwiWHpr3/+1kDtILfUShkdSLXQaZvZkvXyx0sztnLVM9dzW3AnUP9?= =?us-ascii?Q?SJ/FoU2M/xAoK5wIm+PF0l3Nhx0lAHojgUdGQEgAcrPsOH5/3iC7pi/OVsN8?= =?us-ascii?Q?mcIaYeSjYjNewCvSlOsw4r/6XAT4YBOHWMPCBuoV9WU3fGAex7+if1SKwlBR?= =?us-ascii?Q?HoZjM05vC3hALqjnHWZDH8eKBoPr9ohv/KtinLu9hc/U9sQ6jJKnzkUn2Hsy?= =?us-ascii?Q?XoYwEbp5DUzq9r0Ll2rM8YvLEa4yUJ8vWDIfAAjL+4ouBnEvuqEJBxT2un79?= =?us-ascii?Q?saYeLjjreGmNvJqAeF5SwNSpyU+xX8IzXOD0OAkeVOpGbTNHzYIePLFqkUrO?= =?us-ascii?Q?28ZVbGQXSUL++zwx1RKf2NrUpF9GVEk2ftXFQG6U4z2zVRQOkPohguoI1NkR?= =?us-ascii?Q?MJUJ7GL6a9Rs+cfkD4tTj2QrHFEtftp3K5Ewg9/rFYoRxhYB5YatFo9uqzbr?= =?us-ascii?Q?6mwInxkQONvGvuKEnm6jZU/NL/tIB7JHPCOaJ8SktN/zmHuAWbzfdxJpSFsK?= =?us-ascii?Q?mAzyb7NyyeYCvR/XyAYKM6k8W4eVeo3DeRY+649dQGE1DxhzAUPj0YQyU2w/?= =?us-ascii?Q?zYZf3FPOspyu5VkLbrhUmHaBfUeLaDTyhe431YKGhKe+9mEsUxMYqBbqmLdd?= =?us-ascii?Q?Sb8EyGu2k95yMic+qMDiMU9oMK7ofvthRYmgSdcssPXNVf1iF5tFaAzILEDk?= =?us-ascii?Q?Av2lT9HA5/geeEQN4Wcl69WHDfgZB1MvyDC+Vj/L0i3hKSawzGqtRaJysSrC?= =?us-ascii?Q?jHZ7CbqwLZ/Lnav6QHLnG/wqR4qfJXjtGIZ+I9hxbZV5+XjR/xICs3rwIaB0?= =?us-ascii?Q?bqETG5U1X3Tb37XW7CpXhgd3phoazcID+Va91DI/klKE2YYZBVfowwEiZahn?= =?us-ascii?Q?uJU1m9TsrwNUcC79XbpaaTovo/IxYUO0/5XXWV84zJ85KzC2zlrQ6A=3D=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4e2bce33-d743-4d60-5c31-08da0a7b4914 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Mar 2022 14:09:45.2797 (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: n+3bc3pLR3iGIkDD22bYFUwaSFKZ1jGe2BPHK0YXzf5S4wXt0fzD3hMMNNDtdOJHfHplawtu2sBhiC48t9F7Uw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB8PR04MB7035 Content-Type: text/plain; charset="utf-8" This patch added a new struct member sched in struct mptcp_sock. And two helpers mptcp_init_sched() and mptcp_release_sched() to init and release it. Init it with the sysctl scheduler in mptcp_init_sock(), copy the scheduler from the parent in mptcp_sk_clone(), and release it in __mptcp_destroy_sock(). Signed-off-by: Geliang Tang --- net/mptcp/protocol.c | 4 ++++ net/mptcp/protocol.h | 4 ++++ net/mptcp/sched.c | 20 ++++++++++++++++++++ 3 files changed, 28 insertions(+) diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index 11e19ac9d5af..c892e3b6b65c 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -2609,6 +2609,8 @@ static int mptcp_init_sock(struct sock *sk) * propagate the correct value */ mptcp_ca_reset(sk); + mptcp_init_sched(mptcp_sk(sk), + mptcp_sched_find(mptcp_get_scheduler(net))); =20 sk_sockets_allocated_inc(sk); sk->sk_rcvbuf =3D sock_net(sk)->ipv4.sysctl_tcp_rmem[1]; @@ -2760,6 +2762,7 @@ static void __mptcp_destroy_sock(struct sock *sk) sk_stop_timer(sk, &msk->sk.icsk_retransmit_timer); sk_stop_timer(sk, &sk->sk_timer); msk->pm.status =3D 0; + mptcp_release_sched(msk); =20 /* clears msk->subflow, allowing the following loop to close * even the initial subflow @@ -2933,6 +2936,7 @@ struct sock *mptcp_sk_clone(const struct sock *sk, msk->snd_una =3D msk->write_seq; msk->wnd_end =3D msk->snd_nxt + req->rsk_rcv_wnd; msk->setsockopt_seq =3D mptcp_sk(sk)->setsockopt_seq; + mptcp_init_sched(msk, mptcp_sk(sk)->sched); =20 if (mp_opt->suboptions & OPTIONS_MPTCP_MPC) { msk->can_ack =3D true; diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h index f0bd2e17f2d6..21bb248a2c82 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -286,6 +286,7 @@ struct mptcp_sock { struct socket *subflow; /* outgoing connect/listener/!mp_capable */ struct sock *first; struct mptcp_pm_data pm; + struct mptcp_sched_ops *sched; struct { u32 space; /* bytes copied in last measurement window */ u32 copied; /* bytes copied in this measurement window */ @@ -609,6 +610,9 @@ void mptcp_info2sockaddr(const struct mptcp_addr_info *= info, struct mptcp_sched_ops *mptcp_sched_find(const char *name); int mptcp_register_scheduler(struct mptcp_sched_ops *sched); void mptcp_unregister_scheduler(struct mptcp_sched_ops *sched); +void mptcp_init_sched(struct mptcp_sock *msk, + struct mptcp_sched_ops *sched); +void mptcp_release_sched(struct mptcp_sock *msk); struct sock *mptcp_subflow_get_send(struct mptcp_sock *msk); void mptcp_sched_init(void); =20 diff --git a/net/mptcp/sched.c b/net/mptcp/sched.c index 331e6517622a..c1a4c5170b8d 100644 --- a/net/mptcp/sched.c +++ b/net/mptcp/sched.c @@ -54,6 +54,26 @@ void mptcp_unregister_scheduler(struct mptcp_sched_ops *= sched) synchronize_rcu(); } =20 +void mptcp_init_sched(struct mptcp_sock *msk, + struct mptcp_sched_ops *sched) +{ + if (!sched) + return; + + msk->sched =3D sched; + if (msk->sched->init) + msk->sched->init(msk); + + pr_debug("sched=3D%s", msk->sched->name); +} + +void mptcp_release_sched(struct mptcp_sock *msk) +{ + if (msk->sched->release) + msk->sched->release(msk); + msk->sched =3D NULL; +} + static struct mptcp_sched_ops mptcp_sched_default =3D { .get_subflow =3D mptcp_subflow_get_send, .name =3D "default", --=20 2.34.1 From nobody Sat May 4 09:43:58 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a17:907:7811:b0:6d8:2910:9a8 with SMTP id la17csp554713ejc; Sun, 20 Mar 2022 07:09:59 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxJjKNPN79Zh0/DKZy2UvWsc1gAAsjpqVGxcR4JceyzTRFg9K3jQl7il0jVtpHvrR8OfFR3 X-Received: by 2002:a17:90a:9294:b0:1b9:48e9:a030 with SMTP id n20-20020a17090a929400b001b948e9a030mr31560936pjo.200.1647785398938; Sun, 20 Mar 2022 07:09:58 -0700 (PDT) Return-Path: Received: from sjc.edge.kernel.org (sjc.edge.kernel.org. [2604:1380:1000:8100::1]) by mx.google.com with ESMTPS id 65-20020a620644000000b004fa3a8dff8esi4603717pfg.69.2022.03.20.07.09.58 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sun, 20 Mar 2022 07:09:58 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4328-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1000:8100::1 as permitted sender) client-ip=2604:1380:1000:8100::1; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.com header.s=mimecast20200619 header.b=dEEkAkl2; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4328-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1000:8100::1 as permitted sender) smtp.mailfrom="mptcp+bounces-4328-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 234B13E05CC for ; Sun, 20 Mar 2022 14:09:58 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 3C33D33E5; Sun, 20 Mar 2022 14:09:57 +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 9CEC233D3 for ; Sun, 20 Mar 2022 14:09:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1647785393; 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=xH2MJTdonteAMs6DbBr3qI2YjrAVbj+bmtMdmQvGKH4=; b=dEEkAkl2ffz+wrAQKrs7Vf6FzDwrej4CnfgxY2myCj8xMVxZ+hCpgjToqAmZxgJK4pIdmp pf/XU32pKOMq7lgGLCwsD/oro5HH3p6E1VP7Foras8ENOjfadjag3jxvkBW+ZknVpvVC4g mhMrsmowU0Eox//HONG/RntsDUKGtXg= Received: from EUR02-VE1-obe.outbound.protection.outlook.com (mail-ve1eur02lp2050.outbound.protection.outlook.com [104.47.6.50]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-15--caTxT8xO0KsZryzWILrbQ-1; Sun, 20 Mar 2022 15:09:52 +0100 X-MC-Unique: -caTxT8xO0KsZryzWILrbQ-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=CvDfI0WYyUgwK8HWptoVn9OdBL6jieeYzJSICgCN8N1gUjs9UrDG9Za54L4j7Rr7U7SZbKbIlQd47Qp7fQHMZcvWVYm/UXGMUqZp4ckGYgHMa7V8PXf59PKpiIHVY6DVl840p7qB40uoLDHejnmwoxM/+cUbaRmudsuZ0xTI3qbSVeGwYlIuhL6AnRXsaL9sOjqhqjfuXYZq8anIIPqmk/qX0uXGvHjUehIIl2wpDc6rFb4kXU8wWC1xUydEvd2iG8GH39pblZ0BEO07gqE+VCE8EUOkAxQOv0CpmVBgkJFuSIdpp2wBNwWTI5/6mcyA9qKi0ebrv5PcM+n6LUjSVg== 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=ZM4KsaSNBw1M9IQ2CPtc9UuE3cUmxbZRD4JrEpqeuO0=; b=k9QlViXSW195RyqsJY07uBjOTAbVVaBZ8SZPi2jlUA/Cck1Z47LV+ZQtv+HGZ9zlsYqAZKfeiFLLeQh7aQtuWTVGlC+Z5pfrxTT5Nm63PAEHktoFBVCCU1JG0c0irGK0hgf1TBqldH4tsaNBqhdYQ595LTWRZESVpseStgtM6UV9ZOC4tv+HY5jREWLF5aEPKIySjqzG1kHJafNLwfjEJTW7uJhndPAsaqEY9u/A1jNU32puF0EuSwiQZXVP77jHbUxmjgu6MLJDQot3v5usJfrQdG6tqolfl6wHK5JKoklcs2DMNJrzYVb7Egr4HRQ3zYOafELiFccY9g7yB5sM+g== 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 DB8PR04MB7035.eurprd04.prod.outlook.com (2603:10a6:10:127::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5081.22; Sun, 20 Mar 2022 14:09:51 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05%6]) with mapi id 15.20.5081.022; Sun, 20 Mar 2022 14:09:51 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v3 5/8] mptcp: add mptcp_get_subflow wrapper Date: Sun, 20 Mar 2022 22:09:09 +0800 Message-ID: <0e23d9845733b9ceccfd4ef37a993746b340f0d5.1647784679.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HKAPR04CA0013.apcprd04.prod.outlook.com (2603:1096:203:d0::23) 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: 730703d5-5b71-4c9c-2e82-08da0a7b4ce8 X-MS-TrafficTypeDiagnostic: DB8PR04MB7035: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: Nq+Xeb0I2CGNCKs1hrddRCQfdrN/EElktjnZwlxiDT25SufG68U5sZkiHrU/L8l8GpVQFj7Gpn1cS0Q7C7+s4KxnMbdNgBZWJEEY5GWhAOTTitEkE7XOySKsCLnWdmmzRNOMK1l/7sKQGx/vIyUckZBSfqBhTi7trDeWxyh+iz/9qv9/2NI5Ftux4GuF2uq9baEwkBpTVpHjnVDA9vlHB53jHoe9PcZJvixzvItiyMXQQ+DaF3uz7JqJTBXWSgpiX+nc/+E6CXLBNKqnJNWJ2CfKB21ovuMxsy8kb59rEeuxkc67+wElaM2wajcylxtKQsDetIHgphhyjh2JvoVLbQLfm5APzGcEvYY3tR1TBJzYxpgGQjM6jCE5drA0Y4dzssbxpU6aZ/CaXZFaVnnmERd/sRjHlhoynrQuCNN6wTu9DIUOGYRHpta3K5GS7byEY/mbZc3+rkR2I5+185wbWYlJdCl4zDLSXkZNpqim6WocP+xvLz7CdG8apqVCI2cH10jPxh6Y+7aKEv2VI4pOU9rb6+Geo6oCKRyeKpyT2a/gLXDD78LWjDDvsOFbSppjObeGWx4W0HlTA50xQme3qpn7FasyNkOav2Gf0YWf989tdC2rBiNkw1qiO/kOMUY+Ang9MI4nCg8NLHf68XF70SYKTpaOebtSLjJwusOv81/ae35PjtY5B7qQsHXrRbqS 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)(6512007)(83380400001)(44832011)(66946007)(66476007)(8676002)(66556008)(4326008)(6486002)(6506007)(508600001)(6666004)(2906002)(36756003)(86362001)(2616005)(107886003)(186003)(26005)(8936002)(6916009)(5660300002)(316002)(38100700002)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?QeWMIeksDkZaNQd+K1M9khXZcRuvdZpOfv8wDvpCzmU/ETslMy5yjzcIjg1j?= =?us-ascii?Q?YnGYRrQKzjfYnrnco2hYBT4noPuGjKxW5jvfQ4FC5ug0EBZh5Nv0dQpI0IJU?= =?us-ascii?Q?RJGsD/U9TkfIL2YNJ8l5/akpFUi1c+TTfcW53ejoJjJG1DstvQ+3eDAbWzHX?= =?us-ascii?Q?Vuh8VNQu3UxsYIcV+enwAgLVYZTohNP3cHhpxov72X1dyTSvzdmT8kO1QFG7?= =?us-ascii?Q?GKT+ZkqeRqZ0p6xYROvMytb5VqCbh5MZ5a+LsifLXcitFIK96TLPehJwYjYk?= =?us-ascii?Q?Moav/D+1Gzz7yDjGpCw33/63D7Cmj5rfGg4Io3vMRh8XTm0VfoFwsmYcRfF2?= =?us-ascii?Q?JiB5+Ok5luzDIVmkEOYNmiUQuxBkITZXxIeRv+rux+jS1UASFeJNdGbEYUJb?= =?us-ascii?Q?L/Q8PdPE3Xiws5ikxrDJiFurCe++SavQc9VheRVyZqlBoK7JDkWLLSuQJTCq?= =?us-ascii?Q?PCZLkdkbqH2FzA5Vk8wMCbT6y+iNRpc2zEaV53JTkHLvXMh/QyPQtWJ6WkbY?= =?us-ascii?Q?BMpwS1qxmVWuoDLWh/AA+sNi2cuXTRcrhn6uVFYbAEo35gBV3kaq2czXWHlt?= =?us-ascii?Q?MEbByiWPZMiEP1WVABiRDac1Iip+WeQWL9lqT/NZ9NA6L6q4vmbVYio+LS3P?= =?us-ascii?Q?FkFl/Q52t9/qBkOfkekKcx68de/SEKjw1cmXUblPwCHZI1ZU1rzkrG4H/Y/X?= =?us-ascii?Q?ESNragzPqTMiyub8UW2UnaQ+b0+dRx7txz7KVjw9FvWA2p0FdQfF6gUa5GnT?= =?us-ascii?Q?yvSwx+QD0LfnCI35sbRtagZCDFgMkh4LL/TkksWsjE9XZVgej5lVAexAGFWG?= =?us-ascii?Q?yjWhbkeuPAKeEZRp/2C1yvLFPrlKSyUzlMt53ZZMwXh7I/4zT4Jf3P0BIwKu?= =?us-ascii?Q?+FoxKgwkIF6TOBL6dLCbEGiki0lx5jF8Y+ZcmfTBTj6caUMPkWsCVS4w0SEg?= =?us-ascii?Q?YaN2m8DybhY+o/sJbGyDTuh1LjeOj985oqBhHhwvLud+MwuKrsk0YkJkaHyU?= =?us-ascii?Q?LKOt7Df7seof/gCoA7o6P31v3G3+U+l1Qxpsxszy4qF18GWJ71cdJPx+Q7vH?= =?us-ascii?Q?cljm4KTMJ4yvdE5Q+1PKrtEU2raNOASrNwSOflNHkA7GT7PXJN5EkOyuxUKe?= =?us-ascii?Q?Mnx0A7KMeicR3EjosVzvVz/+m0dFpFM91Y2bpRHx7xNbwe4DjSD05VIwQjNg?= =?us-ascii?Q?pKDkqQ8Hg7lkkaSwEn4t7wTH5hXWyhlSys6YJvRWcOIWX5skDcubw0xuabLG?= =?us-ascii?Q?GLrMIR2Gihx0vuqCixH4gEOKyPZ0HSO3gQNgbyMzziheeRCYN73bA41hBK4Q?= =?us-ascii?Q?r66OUYA5lvBL8sJyC1qePY0tXnWL3hZ2rv3mRs5ptXJokkMi3vbPptO44bkC?= =?us-ascii?Q?C9UlISRHRfSFjyVriERXesTUg1wG0x7mtUiVA43OiUPWRXlMZYr/YogLEfKA?= =?us-ascii?Q?DPocrJREUUWdpjKuXUfB5WYuQ/V5jWjtlVGp3M3odezq/Ogw0XpNaw=3D=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 730703d5-5b71-4c9c-2e82-08da0a7b4ce8 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Mar 2022 14:09:51.7479 (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: 1L6DIsvidbQgWXq/CJ4XXlWr3Ib+0lB7+S0DmoOy95zc+f75m5w+BRxt9LJRd+T2nUpu6SnK/hEvYm35MTafEw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB8PR04MB7035 Content-Type: text/plain; charset="utf-8" This patch defined a new wrapper mptcp_get_subflow(), invoke get_subflow of msk->sched in it. Use the wrapper instead of mptcp_subflow_get_send(). Signed-off-by: Geliang Tang --- net/mptcp/protocol.c | 6 +++--- net/mptcp/protocol.h | 1 + net/mptcp/sched.c | 7 +++++++ 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index c892e3b6b65c..22be279c8391 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -1567,7 +1567,7 @@ void __mptcp_push_pending(struct sock *sk, unsigned i= nt flags) int ret =3D 0; =20 prev_ssk =3D ssk; - ssk =3D mptcp_subflow_get_send(msk); + ssk =3D mptcp_get_subflow(msk); =20 /* First check. If the ssk has changed since * the last round, release prev_ssk @@ -1634,7 +1634,7 @@ static void __mptcp_subflow_push_pending(struct sock = *sk, struct sock *ssk) * check for a different subflow usage only after * spooling the first chunk of data */ - xmit_ssk =3D first ? ssk : mptcp_subflow_get_send(mptcp_sk(sk)); + xmit_ssk =3D first ? ssk : mptcp_get_subflow(mptcp_sk(sk)); if (!xmit_ssk) goto out; if (xmit_ssk !=3D ssk) { @@ -3074,7 +3074,7 @@ void __mptcp_check_push(struct sock *sk, struct sock = *ssk) return; =20 if (!sock_owned_by_user(sk)) { - struct sock *xmit_ssk =3D mptcp_subflow_get_send(mptcp_sk(sk)); + struct sock *xmit_ssk =3D mptcp_get_subflow(mptcp_sk(sk)); =20 if (xmit_ssk =3D=3D ssk) __mptcp_subflow_push_pending(sk, ssk); diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h index 21bb248a2c82..91500269b175 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -615,6 +615,7 @@ void mptcp_init_sched(struct mptcp_sock *msk, void mptcp_release_sched(struct mptcp_sock *msk); struct sock *mptcp_subflow_get_send(struct mptcp_sock *msk); void mptcp_sched_init(void); +struct sock *mptcp_get_subflow(struct mptcp_sock *msk); =20 static inline bool __mptcp_subflow_active(struct mptcp_subflow_context *su= bflow) { diff --git a/net/mptcp/sched.c b/net/mptcp/sched.c index c1a4c5170b8d..bd096bf52f4e 100644 --- a/net/mptcp/sched.c +++ b/net/mptcp/sched.c @@ -11,6 +11,7 @@ #include #include #include +#include #include "protocol.h" =20 static DEFINE_SPINLOCK(mptcp_sched_list_lock); @@ -84,3 +85,9 @@ void mptcp_sched_init(void) { mptcp_register_scheduler(&mptcp_sched_default); } + +struct sock *mptcp_get_subflow(struct mptcp_sock *msk) +{ + return INDIRECT_CALL_INET_1(msk->sched->get_subflow, + mptcp_subflow_get_send, msk); +} --=20 2.34.1 From nobody Sat May 4 09:43:58 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a17:907:7811:b0:6d8:2910:9a8 with SMTP id la17csp554792ejc; Sun, 20 Mar 2022 07:10:10 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyzNT0xKPdIHDDmEe9uhASB0nPkPLTWGwDD86cINKJULG6ldfNmEmIIKYUIWRd7Gh0Kz2Ot X-Received: by 2002:a17:90b:2092:b0:1be:e373:2ed9 with SMTP id hb18-20020a17090b209200b001bee3732ed9mr21390086pjb.128.1647785410643; Sun, 20 Mar 2022 07:10:10 -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 f10-20020a170902ff0a00b00153b2d16407si7552257plj.15.2022.03.20.07.10.10 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sun, 20 Mar 2022 07:10:10 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4329-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=imUkwDs0; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4329-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1:3600::1 as permitted sender) smtp.mailfrom="mptcp+bounces-4329-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 8E1F11C0B2B for ; Sun, 20 Mar 2022 14:10:05 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 1ED0F33E5; Sun, 20 Mar 2022 14:10:04 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.109.102]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 037C033D3 for ; Sun, 20 Mar 2022 14:10:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1647785400; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=grcdMS2N7Pp41aFBDIXXHigkqVAfXMeFh1AWipxkJaw=; b=imUkwDs0EC0rpn9pJTg3+DUM5YWb5LqT/Jjg6E8djoOgQ1ISo0pwXf4d3tcO70QvuqmKOn ycgIO0x85PLNBzODz9yDjfF1ZerqmP7eokV93LDwF/0IZ/PlC3V0DVBz0vPz1GwHOSgS+w QfZhznfuqTvkR0YKGLPQLrW6IjwXRaI= Received: from EUR02-VE1-obe.outbound.protection.outlook.com (mail-ve1eur02lp2053.outbound.protection.outlook.com [104.47.6.53]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-27-p5EvJH7_M9G7bWmnDRO9rw-1; Sun, 20 Mar 2022 15:09:59 +0100 X-MC-Unique: p5EvJH7_M9G7bWmnDRO9rw-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=W8HnrOLipRfLO2Wf40sGazqNbCmvVK877Dq6G8qgEHoemdeBn6MHijEVJfyYTmFbTQLz5oWgfJVFk6EOIni037YoeVwEkUfM0ydiZ01cYzRO40vJ/EaFQ2tr1p/F53rHFR5PkGaeac3eYdZ8gVMmlScGZa8dRFlvbMfW3WNDUsR37rFbCZziEpKDSKQDDfWxS9sVCYE8/bwm9oP+QaDGk7u0xa4M3BuRmkj7hsi3+YSI++8ZzJm3SCRpxJnvZmJjNwqT22rb1x/cEDESaZshakifySqxZ7csM24WdZiaF/lfzkq7SDqd4blRchS5d+jhu/3VdtD+0+Fw7vTozcL48w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=+/G/QSFKdupfUOdH3RmTK+MYz4usRE5bHtUGSTosJdQ=; b=H5F5H1Q37lTDXKyhwTZGu41FyJcMx3mw8V6B7NLZtUlAkj0QkpeUxMbWAqHkw/seHWW/siTvG5Dg18fd77nuFU0cTAbhuLD4Y6kSo5oujdIiV9VIa4xMExnF6MhVyX6FqGrOzsXHfDs9QjODCcQ/4+8hD4dzVqGqpl6zjzccqnJDPDGtOxDipP7mCmqkf0uFnvzmEi/+6IsYljZtFb3tWrySXhGPpQtvpKfjpwKTA5JC96TeVz8MvsMG1mgDy6djP8wy/Jf8kq3CR781asLk+Rq7i3zQlf6g9XlAwDVcG/xwJEUs2kDq4vbi2D6lrKi+actf8XfMA0VFPIvXyofRpg== 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 DB8PR04MB7035.eurprd04.prod.outlook.com (2603:10a6:10:127::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5081.22; Sun, 20 Mar 2022 14:09:58 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05%6]) with mapi id 15.20.5081.022; Sun, 20 Mar 2022 14:09:58 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v3 6/8] mptcp: add bpf_mptcp_sched_ops Date: Sun, 20 Mar 2022 22:09:10 +0800 Message-ID: <7a35fbeeddd750033128ebf8ca41d68505cf60fb.1647784679.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HKAPR04CA0010.apcprd04.prod.outlook.com (2603:1096:203:d0::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: 8331e84c-2bb8-43a4-8c22-08da0a7b50a6 X-MS-TrafficTypeDiagnostic: DB8PR04MB7035: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: azQHcI04Ubps1xGEoLT0vxjAr1SNgG2VK3Q4OGRhMcK1nUoiQDF/d2pvySPZAyAu0IN6bp3nEY0GSH8Qd8jFV9eCR8kCdTIiVtn8KeG15M6KPHM5ygD+PBYRykIYNMLc4Th/0SLGMZXX2/Fu6d2qOlcb24AMAl8wXzNtVWuNBTP5uodVQqhox4ZgJNaE+DoiHOghUc+0n7GWwyZmNxzWmaQqCqdgDxMuqiJ1/icJpc5EWiaUO8N9mI8IqNIv0EXZSzr9RqE+ie6Dn37nIQBpNZAG2uLPb7WocvkWgvBRlxlTTUskv/0aS/Kl/9xaJtEIVQGIlA/SdTUqoB6ntlAL1wSLZyC5r/qqnSpNjMuT7c6WUKtIPp+O61VydcisrIyagUWydFaiosLNeyB7UvH31oTKt4YQ0L/FVc7PXXSkfb3WJ0xatmg5SK+pr5ZGufw6xLsdKMTG+Vy65lG4a10QrwiSQCLv68jnBVKfO8kyeuUrX/9lWLJB1rMoYtgb6vg8WkP/0t8+kzFaN17v/u4oOsRZLaZzBMAPkJfPGXVImZlKOqKn7mZ79gmGA+7lO1ITjpEJGbbxbl/Kz0R8THCIAP8OaVWhiemSkjm98HCmpEEMGxPiEaInIFRmTDjZaDEJ03UaoL0wGTSEIIQtJqHTtmrs7VyJH3UJQVpAJrWMDt8ZDFB/1/Iml+eQyDkXxnWiRNPU5nTd/Tvx1mTRPlXOOw== 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)(6512007)(83380400001)(44832011)(66946007)(66476007)(8676002)(66556008)(4326008)(6486002)(6506007)(508600001)(6666004)(2906002)(36756003)(86362001)(2616005)(107886003)(186003)(26005)(8936002)(6916009)(5660300002)(316002)(38100700002)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Gh2W82FaMThm8FBggcIlg1pPiZ7TKVWIvubq+ENjIDlOKsR8BDd2YT3L63+7?= =?us-ascii?Q?qzMmRDLOdTcPacMyQOhpzIjU54uWahyb12fjtIgiAYV5c3KWPhifuwuTCaBw?= =?us-ascii?Q?pQX5HqlYItva4BbR53A61y3GIhLH8+taJNU59AebMt/ooKGvUDhp0P4gKsgP?= =?us-ascii?Q?6NJoyqq/gE/xq8VbDy2d4c7hmOUkwtGr93gG24zlkLH3lcYgzQjEUXT5bfe+?= =?us-ascii?Q?ZsnuDNxn5GK6YiuGI/jdx/4MfkXE4MvQHYC6G7rUEEPJ6baaS6IjI6qaRjXs?= =?us-ascii?Q?eugGRAfq8os1xJKF9Fus+l0EwrCo7I0tru39KsqKOWzs8U8mwUB4SWTrUYEc?= =?us-ascii?Q?5Fo1wjN/nnsXtjXwyzo6FwHXpjw7Wm5xmpxk/hDf0BWFuURQxuGCXWaqCZLQ?= =?us-ascii?Q?TVf83zM0kF1r7iThYislpnhuu4OGmRyezzaGJtmilxE0CKGvmMbfrrvtw34o?= =?us-ascii?Q?+CJ42+lLYN3K0Z5n6jxw23u4q/l2NZhke80QU+QVbUMOwKImhbUunoHZvbR8?= =?us-ascii?Q?Qtczu5GuKnoxDTpKrZPE9lnCtk6DixeLHNofNEzc2XtC8/82DiDZQfeX/Dtg?= =?us-ascii?Q?zEngDI4n+eQ12S6w+ZW9+K+cbhJWI2N8+43KQxDOhKYkqtPpIvgetAtFrYgB?= =?us-ascii?Q?9fZDG/jqMlNktT0oZZLP4wDtBb3LJxQswmmXJxV09qlz86uvzArPY7dmbf3P?= =?us-ascii?Q?hyk2aVwKHKtplkyZDrP7SnRkFY0htkOcxXwxsS7RxeB388KhYweM7MJQb5s8?= =?us-ascii?Q?nGWpKo3ov3bgvwPJkxi8nW4NJ1gkmuBy9bLwfIlKj5e0LzA0TMjIDSxrtFcD?= =?us-ascii?Q?IZ9AHOIi+kTYVRCe5GRFWESjugeGeq9y0KohI5wWTfbxaNdL9Q1SgIuMBZRE?= =?us-ascii?Q?raX1PRztcSnNNa+aKAlixSC0AVSH98EkGInlUKEBsdmNHznNVcrTIdVlPvVG?= =?us-ascii?Q?viLTvpX/4MhrE5gejRytileET3r6zkMh0WcXZnBzfanMGPKBXjzRyrHRCdKw?= =?us-ascii?Q?7rexGS/DusJKnO9DZoyDRrrtIKmF0/uJa2BrrnT1SDrpHjq9kFKy+s9Z6mt2?= =?us-ascii?Q?uqTHDK+Vd1lDP7+WBBOSGBisTwQGv4lVXJUQ1vV//LIBZUjrpHMmDLx433do?= =?us-ascii?Q?jRacKXyL0BmpKy113F1YxdsPmvyVaQA/6DJen06A2yodzkymx09io7QEEfR6?= =?us-ascii?Q?vocmFoVKrfDcpM5QQBucPgKfHmN5bWJAwqgrbZ+AoY7yfUPMUN9d1W8sw0yI?= =?us-ascii?Q?sl0dLXWObXq8xWGDltNouY40k9WevFGBvMgYWV4H1vodoJYRkzyVaJxZOJpa?= =?us-ascii?Q?GAiTAuvYnFH/YWd7fX4VL5KeuHu3APyyr4B+a40cC8Cb+gpxq4EUkTL/E+w2?= =?us-ascii?Q?HUihJ5zoB1tbP9Oe+DP40hbHdcQv8hnNmVx706FzV/0K7cYvIcgebTQOjY1D?= =?us-ascii?Q?YX3KribLpZ/4Jn8lIM1072yujHTmTkAbVR9KWlV+aM30DtF3xGyUCA=3D=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8331e84c-2bb8-43a4-8c22-08da0a7b50a6 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Mar 2022 14:09:58.0287 (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: dhItH8xNoEpdBkRubNkX11GRkk19nBlcZKhEfbZXxGNTUSxrrOfQl62ZaoXp9l25qIKSOINh93ZBVM1alPhZiA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB8PR04MB7035 Content-Type: text/plain; charset="utf-8" This patch implemented a new struct bpf_struct_ops, bpf_mptcp_sched_ops. Register and unregister the mptcp scheduler in .reg and .unreg. Signed-off-by: Geliang Tang --- kernel/bpf/bpf_struct_ops_types.h | 4 ++ net/mptcp/bpf.c | 102 ++++++++++++++++++++++++++++++ 2 files changed, 106 insertions(+) diff --git a/kernel/bpf/bpf_struct_ops_types.h b/kernel/bpf/bpf_struct_ops_= types.h index 5678a9ddf817..5a6b0c0d8d3d 100644 --- a/kernel/bpf/bpf_struct_ops_types.h +++ b/kernel/bpf/bpf_struct_ops_types.h @@ -8,5 +8,9 @@ BPF_STRUCT_OPS_TYPE(bpf_dummy_ops) #ifdef CONFIG_INET #include BPF_STRUCT_OPS_TYPE(tcp_congestion_ops) +#ifdef CONFIG_MPTCP +#include +BPF_STRUCT_OPS_TYPE(mptcp_sched_ops) +#endif #endif #endif diff --git a/net/mptcp/bpf.c b/net/mptcp/bpf.c index da79dae559b2..5f7f9d30ecd4 100644 --- a/net/mptcp/bpf.c +++ b/net/mptcp/bpf.c @@ -8,8 +8,110 @@ */ =20 #include +#include +#include +#include #include "protocol.h" =20 +extern struct bpf_struct_ops bpf_mptcp_sched_ops; +extern struct btf *btf_vmlinux; + +static u32 optional_ops[] =3D { + offsetof(struct mptcp_sched_ops, init), + offsetof(struct mptcp_sched_ops, release), + offsetof(struct mptcp_sched_ops, get_subflow), +}; + +static const struct bpf_func_proto * +bpf_mptcp_sched_get_func_proto(enum bpf_func_id func_id, + const struct bpf_prog *prog) +{ + return bpf_base_func_proto(func_id); +} + +static const struct bpf_verifier_ops bpf_mptcp_sched_verifier_ops =3D { + .get_func_proto =3D bpf_mptcp_sched_get_func_proto, + .is_valid_access =3D btf_ctx_access, + .btf_struct_access =3D btf_struct_access, +}; + +static int bpf_mptcp_sched_reg(void *kdata) +{ + return mptcp_register_scheduler(kdata); +} + +static void bpf_mptcp_sched_unreg(void *kdata) +{ + mptcp_unregister_scheduler(kdata); +} + +static int bpf_mptcp_sched_check_member(const struct btf_type *t, + const struct btf_member *member) +{ + return 0; +} + +static bool is_optional(u32 member_offset) +{ + unsigned int i; + + for (i =3D 0; i < ARRAY_SIZE(optional_ops); i++) { + if (member_offset =3D=3D optional_ops[i]) + return true; + } + + return false; +} + +static int bpf_mptcp_sched_init_member(const struct btf_type *t, + const struct btf_member *member, + void *kdata, const void *udata) +{ + const struct mptcp_sched_ops *usched; + struct mptcp_sched_ops *sched; + int prog_fd; + u32 moff; + + usched =3D (const struct mptcp_sched_ops *)udata; + sched =3D (struct mptcp_sched_ops *)kdata; + + moff =3D __btf_member_bit_offset(t, member) / 8; + switch (moff) { + case offsetof(struct mptcp_sched_ops, name): + if (bpf_obj_name_cpy(sched->name, usched->name, + sizeof(sched->name)) <=3D 0) + return -EINVAL; + if (mptcp_sched_find(usched->name)) + return -EEXIST; + return 1; + } + + if (!btf_type_resolve_func_ptr(btf_vmlinux, member->type, NULL)) + return 0; + + /* Ensure bpf_prog is provided for compulsory func ptr */ + prog_fd =3D (int)(*(unsigned long *)(udata + moff)); + if (!prog_fd && !is_optional(moff)) + return -EINVAL; + + return 0; +} + +static int bpf_mptcp_sched_init(struct btf *btf) +{ + return 0; +} + +struct bpf_struct_ops bpf_mptcp_sched_ops =3D { + .verifier_ops =3D &bpf_mptcp_sched_verifier_ops, + .reg =3D bpf_mptcp_sched_reg, + .unreg =3D bpf_mptcp_sched_unreg, + .check_member =3D bpf_mptcp_sched_check_member, + .init_member =3D bpf_mptcp_sched_init_member, + .init =3D bpf_mptcp_sched_init, + .name =3D "mptcp_sched_ops", +}; + struct mptcp_sock *bpf_mptcp_sock_from_subflow(struct sock *sk) { if (sk && sk_fullsock(sk) && sk->sk_protocol =3D=3D IPPROTO_TCP && sk_is_= mptcp(sk)) --=20 2.34.1 From nobody Sat May 4 09:43:58 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a17:907:7811:b0:6d8:2910:9a8 with SMTP id la17csp554830ejc; Sun, 20 Mar 2022 07:10:16 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzxVxQj9Izwyniz+mgP/d+Gg2Ca4R34uJDKTQaA+RmibuLi8QD9QG/iKpqvoeo2S7aMQHd+ X-Received: by 2002:a65:5803:0:b0:382:5f9c:79b9 with SMTP id g3-20020a655803000000b003825f9c79b9mr3840271pgr.51.1647785416333; Sun, 20 Mar 2022 07:10:16 -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 pb10-20020a17090b3c0a00b001c6bb4c1febsi6271286pjb.126.2022.03.20.07.10.15 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sun, 20 Mar 2022 07:10:16 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4330-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="JzRk/E/k"; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4330-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1:3600::1 as permitted sender) smtp.mailfrom="mptcp+bounces-4330-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 4ACF31C0B4A for ; Sun, 20 Mar 2022 14:10:11 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id C649533E5; Sun, 20 Mar 2022 14:10:09 +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 4364633D3 for ; Sun, 20 Mar 2022 14:10:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1647785406; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=el14mbDNzMQKfIz7X8FmdkOL32gSiWivSI0Gycj16jY=; b=JzRk/E/kOKN7cN2Fz/htKS+TYDuZYlePsH4s37PVvMpxfr8F5OAlGjBEGeayfbNz/XvNc5 HFFeNug9DOgWcp07l8TEbZVf2S6CLzriiEhU+MSYhiHIDGK0xRtip0/+dDgqGvPpaP+/bI pMlchFJqqIqrswhivmnVyOhXgfX5iMo= Received: from EUR02-VE1-obe.outbound.protection.outlook.com (mail-ve1eur02lp2056.outbound.protection.outlook.com [104.47.6.56]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-25-MRgSpSBoPtW5vIh1caIyVg-1; Sun, 20 Mar 2022 15:10:05 +0100 X-MC-Unique: MRgSpSBoPtW5vIh1caIyVg-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=LW8c6XTd85QBEMemcfqhiS88XZi9AsbX/YUspe4oK3wrJV8XkiEels8qc6kd6DN6E0lPQCN9FIrx4h0xJ4QnuOTFZYEeK8e+jne00UMzNc59Odm+3T5JPYSiTFyhigi3nyBNN6xANFiE6TwDrs1qodjebxkqqHCKHgO+skYHE/R+n14bYOUjPnh0xM5V7K6e69QRIGk3DDXSEQTIflQYLy/TMuHUFSQE6SWA6J5SZLLIoEqiN1nrhcWie/gKEgc1dr7usPhRLs+C2Sa2mkVwEFusFFyIZSSSBXjeOyzsNRZvanlvl8RbWl60VeUUCPNf4dHjCQtbhBgvKT3MeVJXew== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=k5FH9XtcH7HyTwHY5I1wHeCwYLtUvyGzKzyt2JprDa8=; b=CC/Xlm9X/WrGlTS0BeHB+BEZOKl+O759XpwHa3FTU9wJZf5MzqDhEiPChXo12tNrG6LA1S8yMqK0Q9GVmyU+180aK3FrJC7Uysf3vqVBCYaXW5BpeEpg6kczEvkSgpuCOhzOQXrm748+NhqftAYjxYKIJBkpVVHaKLdOH5t3KFyamEqT3Lqj/yrLA4d0OtSD/Y6I3gZuss1G9OskvFl8z17AqWEvOCu+7PCUf2wp7xbJSiy2PJbnbmESH/btFKqXLxfDz0YSJQnLvQrM1/Gdgky4Tw/Nvd2DKwrJeVldc0n3uoNFSUgDVS4wLEEccm0FNU/SiGY3pl9pUEINEy9TTw== 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 DB8PR04MB7035.eurprd04.prod.outlook.com (2603:10a6:10:127::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5081.22; Sun, 20 Mar 2022 14:10:04 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05%6]) with mapi id 15.20.5081.022; Sun, 20 Mar 2022 14:10:04 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v3 7/8] selftests: bpf: add bpf_first scheduler Date: Sun, 20 Mar 2022 22:09:11 +0800 Message-ID: <596c0daebe83e8a7b36aa10539b17db48e07ca62.1647784679.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HKAPR04CA0014.apcprd04.prod.outlook.com (2603:1096:203:d0::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: 1fa27d37-5efb-4feb-4e13-08da0a7b5448 X-MS-TrafficTypeDiagnostic: DB8PR04MB7035: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: lK7XA4O9ba3rs7Lo2aFUpH4ysDxDtm0jSJk97So3nI539G/fxYt/ro9stsxGz0Z1BSlW8719bxodyuYDFdk2+rlQDbfGZKgl7briOC3Om2wSmIKsuAAfKvjyuyUlTxzQPaEcPvdVHIxbHRQVl/N8H0fVjm/VO0ABaHGpvQq9zIBBpoX3XHKNSUc+K+79Dg6W9gGY+W3wj3Yd+xaF+qeWLBV7pNf6+S5zLk16xGQZ53p10uFRwYuhBfl8Hfq+nUYoQNyT3rc/jaUa8aC+9mIqWS3JUAvco5v4Yyw8+7uj5UAUZH52R5JXd2QANlLSkKuZPhZwhWU09fr7QOPubDvAfDHzvMe5ldBna0lSjR1ax6GvzI1HQmAlmncVuDbaJwm2fz7RpZvsCOjNzRcHA9h9XGX8/81ZQZgZb0GOD1RgJ4WfhXLkTqmXIhS+KqTteERc8jdcoEwO3VDXPM4Knc/YsYnb3U4DkCfUoDDlS7QrI5vqzUUsGGE97QSjfqYEfWRTH3u3tB0fHrn2tge11615BUxIJZAtymDESoOXwopn1ejXmWH8Alls2IHJKXXkngTvGDHMLaOL3Ygm43PyHlTaO2UEvl0a7nVvAgW0eM2c2euH6cqM2SeYtLSWnqtN/Yh0khkdY7jul0iLa9J/qE5qJlDCHdP0zLx608nzf38SZvBrqLRaUBP5+mQv1GUcaVEn 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)(6512007)(44832011)(66946007)(66476007)(8676002)(66556008)(4326008)(6486002)(6506007)(508600001)(6666004)(2906002)(36756003)(86362001)(2616005)(107886003)(186003)(26005)(8936002)(6916009)(5660300002)(316002)(38100700002)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?pkGSTVjVJB0IoIePiUSxFnAbOGG9SxnxwpwTi/K4xPJNTZPhi7O5jA8sNPFh?= =?us-ascii?Q?MpyCHHrmurUwbpAbYPLPHYEusFWaRc5qzUIizwJLOfJ1qi6KwLVPx7DLjsL/?= =?us-ascii?Q?n58Y117DqZHL60dT7mv0VnZW1tHj9YWkxksDcaLfAVUmm3ynhdRW5ownwpwH?= =?us-ascii?Q?tMkuaL1U9E6AysAQfoAt1yK3u8tgMjyoKmxOCAhvWoiKDNzkQ4uOh72cnsyZ?= =?us-ascii?Q?loY85agpSJWB+TFnM20X613QjtaBiGho19QV0Byv9UL3+009zVveWI2XHTkO?= =?us-ascii?Q?Kry+mi7WKuO5FvzL5VIwPW3necIGh+yq8+2ASxp4aNawF+n9bZm4Z5L2MqWb?= =?us-ascii?Q?gQppumWzrtQurW67bZfC4rY73GJ5FycJ5dkslJR8kPdTX1YOIDz9sl5R7T8i?= =?us-ascii?Q?0hYkPT+9UzedTp5GNLcX0TX20ZKRaS4QWLmhEUYwNqXuA0J3ZTwnALNHBSYw?= =?us-ascii?Q?kj3fnb6Cq9YdZdw2ay87yZjcXVN8sESa1aSk2FmsBHWOfVH2wnq3UIf1T0JQ?= =?us-ascii?Q?LZaUDxZhEF/cbeU7r4hzqo/fwk2YYafEQ0dTFYLdS6UecL81+2GiX/Q72/V+?= =?us-ascii?Q?7Cvs/GzPIOk/lldgpCd+mDozQVUsNS9110k3AE3aTiOSZKVD/r2z1cCMoGlj?= =?us-ascii?Q?5W86bsQZqLn4+Nt1eUen+DJBiBgs9uC+kWOPHQPqAvmOjf7BoyHiXSkKNm8c?= =?us-ascii?Q?+TIEwoaIoCvj+zIHzM1WKPQVP9K4b+R1OMhoRjNr7iliREw0kMud1oRSW0GV?= =?us-ascii?Q?SKLwInEST5Yqe5d7GgeRg72PC1INFm0AWafIz+Ehh/GZA8Nb2P3NW77gWUsy?= =?us-ascii?Q?E6cPThUK5ETv6UVDx1YdKv8DGnpgDxgGwt7tDxL7JzgXnatcgjdwhnq7QQ40?= =?us-ascii?Q?MOH1EXeSagaGG0eWZHYSKUjQpBKCfiPnWn9i12eaWRjikmtxdjPwmeH7pRON?= =?us-ascii?Q?MFkVJ/oB2ra7k1xyDMSloboOBt497WN//aZlPZA7+djUfO7qTXPFN7O2TQ91?= =?us-ascii?Q?rmGIZmzaBgWf95Cb5fO81qwWWvMJicl33L/s9Timps9lZz7vNw1DQ8/smD/5?= =?us-ascii?Q?pU1VnUcwCVlqopF3GG1N4+pFWC/gEdd0uwULmheJQcYMD7oTH23aVbWTPna1?= =?us-ascii?Q?qzbIeRjJF8vyxMydplTo+aWzK84JQsQ+FLT0O/ESY1LOYYjbz1ZwM3ZOSlKw?= =?us-ascii?Q?deCJWyw/Bzq9M8YPhMgs7AAeG1KjDOcJ7KdEiXNYEjotMYuYEnsk8ZCkSl+K?= =?us-ascii?Q?FLVDZMaJZTDnu/H8syXVyp+rczJ9tB/vNgfbVkBwRREpD3FHlhbqETHWGOVM?= =?us-ascii?Q?ytMBKH+JtewAk9D/uurWxnxFzmyR/tgOHWCqqjC/THo0UdPz8YzrfOHm/a8O?= =?us-ascii?Q?1IIP9rK/eWBv6HSWBu/rbEZ5gwgL825HWTvjTK5NJSdtb30L0oserM1SaMok?= =?us-ascii?Q?vPj/3Q6jeTT0ZxF+EBGNHxZ1Dl7oLJMp2qSsL/3ZfNA2RBJbRA4Ucw=3D=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1fa27d37-5efb-4feb-4e13-08da0a7b5448 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Mar 2022 14:10:04.0751 (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: kaefG2fJZvAxInGnghb4WfbSl/WBvBC6935deLG/9O8XBToRRyLkW/4/2OaZ64XfmWXrJyIfBzv7r86b9bDwTQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB8PR04MB7035 Content-Type: text/plain; charset="utf-8" This patch implemented the simplest MPTCP scheduler, named bpf_first, which always picks the first subflow to send data. Signed-off-by: Geliang Tang --- tools/testing/selftests/bpf/bpf_tcp_helpers.h | 12 ++++++++ tools/testing/selftests/bpf/progs/bpf_first.c | 30 +++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 tools/testing/selftests/bpf/progs/bpf_first.c diff --git a/tools/testing/selftests/bpf/bpf_tcp_helpers.h b/tools/testing/= selftests/bpf/bpf_tcp_helpers.h index f92357597e63..5bb21b24231f 100644 --- a/tools/testing/selftests/bpf/bpf_tcp_helpers.h +++ b/tools/testing/selftests/bpf/bpf_tcp_helpers.h @@ -197,6 +197,18 @@ struct tcp_congestion_ops { void *owner; }; =20 +#define MPTCP_SCHED_NAME_MAX 16 + +struct mptcp_sched_ops { + char name[MPTCP_SCHED_NAME_MAX]; + + void (*init)(struct mptcp_sock *msk); + void (*release)(struct mptcp_sock *msk); + + struct sock * (*get_subflow)(struct mptcp_sock *msk); + void *owner; +}; + #define min(a, b) ((a) < (b) ? (a) : (b)) #define max(a, b) ((a) > (b) ? (a) : (b)) #define min_not_zero(x, y) ({ \ diff --git a/tools/testing/selftests/bpf/progs/bpf_first.c b/tools/testing/= selftests/bpf/progs/bpf_first.c new file mode 100644 index 000000000000..3ae5c1eab5f5 --- /dev/null +++ b/tools/testing/selftests/bpf/progs/bpf_first.c @@ -0,0 +1,30 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* Copyright (c) 2022, SUSE. */ + +#include +#include "bpf_tcp_helpers.h" + +char _license[] SEC("license") =3D "GPL"; + +SEC("struct_ops/mptcp_sched_first_init") +void BPF_PROG(mptcp_sched_first_init, struct mptcp_sock *msk) +{ +} + +SEC("struct_ops/mptcp_sched_first_release") +void BPF_PROG(mptcp_sched_first_release, struct mptcp_sock *msk) +{ +} + +struct sock *BPF_STRUCT_OPS(bpf_first_get_subflow, struct mptcp_sock *msk) +{ + return msk->first; +} + +SEC(".struct_ops") +struct mptcp_sched_ops first =3D { + .init =3D (void *)mptcp_sched_first_init, + .release =3D (void *)mptcp_sched_first_release, + .get_subflow =3D (void *)bpf_first_get_subflow, + .name =3D "bpf_first", +}; --=20 2.34.1 From nobody Sat May 4 09:43:58 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a17:907:7811:b0:6d8:2910:9a8 with SMTP id la17csp554856ejc; Sun, 20 Mar 2022 07:10:19 -0700 (PDT) X-Google-Smtp-Source: ABdhPJz41QkgICj+TxygglNd1Rkuu/QQaxt5UVW3Ve0a+HrSuqKMCTb9OMtOYW96XdtM+dcufwoj X-Received: by 2002:a05:6a00:21c6:b0:4fa:914c:2c2b with SMTP id t6-20020a056a0021c600b004fa914c2c2bmr3622502pfj.56.1647785419514; Sun, 20 Mar 2022 07:10:19 -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 ce24-20020a17090aff1800b001bd14e030e3si11231570pjb.187.2022.03.20.07.10.18 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sun, 20 Mar 2022 07:10:19 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4331-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=NGqSMqed; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4331-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.197.195 as permitted sender) smtp.mailfrom="mptcp+bounces-4331-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 E604D1C0B4A for ; Sun, 20 Mar 2022 14:10:16 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id A15C033E5; Sun, 20 Mar 2022 14:10:15 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.109.102]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 20BE233D3 for ; Sun, 20 Mar 2022 14:10:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1647785412; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=E875lApRqP3Nc3/AkZT1/6mDu5Z2Q+KWrd5hdc+1Ci4=; b=NGqSMqed/Pd4F0wgkU9S5YCj0PNbkiTfwTeyNaYxtLX0AD9qzEx65zhcwxq3RkRQ/sms5n lhC51dXo+Xdok4rhMPATM3jI1t1O8qgr8N36mtDpm6tndVwIw27vxUSPSObHAzq8y5kuGy PNU21PNQqGyaOF2L1HTfLe45sCSdE1s= Received: from EUR02-VE1-obe.outbound.protection.outlook.com (mail-ve1eur02lp2056.outbound.protection.outlook.com [104.47.6.56]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-29-RjxlTdpWMSWc3WUx3YiK6w-1; Sun, 20 Mar 2022 15:10:11 +0100 X-MC-Unique: RjxlTdpWMSWc3WUx3YiK6w-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QQvO3yown8gGB9GzGm+Eq1F1ckIZQmQOfTwfMggPVOc+PalM8tDe0TwFkPVLQWTaE/8cOEPGBtDyvli12GPqohQiTtK9wLr7YxmSnz/MkrYzyeqVUd8Bn1by+NewysWekfjt1uxvVeRd0ZeREP4GM+CqOrutAfMVSV3l63BOxsoLhZ26YSevie+dtf+c1KcdFD51vlY7IHG/Wxu3A0Y3HzCvB9X+u+rH4/OQkXh8dv+0qtVBL+FxCerd1c+xPIzAOsBlcMNDnx78P3GgqIRDrdUD3culHGrxA94GYJ+FBq2Map3Twt1wqDrMwhshhF65Vqx0MCJWyK6nazU9QVKd1A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=wB7fkOhFXhOBZIrH/S+dFMwu3Q3xu4/lQQu+SVCa7y4=; b=EqMlPc27oJAyCUzMf8cEU4vRFAmh6X5eWuzbOABkpobTHQxjFD0gDrsKmYIZFb3Q4IQmVdqb3rALa0j9enaiYQ9dJfdE+zNhiM23tGluboJhnpuz7lMJt0VlkfwHlFbFTgeXjSp0Ia4jr9+yPD060UYtcMsHbubwI7/8Pk91nnNcjkdKBbVBixBKTDtQa93YpVcBSwfWGIA/WDHb27Tt441RzN+8m1JJrv5rejEJNcfJTaxEESKjccZzZeJb4zv7BDytPHJw93ZJRf+SUrDdtbPOyJc9oaFkQ3xdearc+j/oiFzgdXbuPnjUhZE/DXNKiap/WCw980hXZrEpKJ383g== 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 DB8PR04MB7035.eurprd04.prod.outlook.com (2603:10a6:10:127::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5081.22; Sun, 20 Mar 2022 14:10:10 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05%6]) with mapi id 15.20.5081.022; Sun, 20 Mar 2022 14:10:10 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v3 8/8] selftests: bpf: add bpf_first test Date: Sun, 20 Mar 2022 22:09:12 +0800 Message-ID: <009a3975bc708a82c331e9ad7073342490a8a121.1647784679.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HKAPR04CA0007.apcprd04.prod.outlook.com (2603:1096:203:d0::17) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: e56e39cc-cf9f-41b2-fb8d-08da0a7b57f5 X-MS-TrafficTypeDiagnostic: DB8PR04MB7035: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: tDsIzso7/rI3FboEFh2pD3nqbwnDRmUMJyTmnesTcMmUNl/a8dno0D0bGqKKQndFQU99CWULV46/0ieuM9jWQo4FkVKAyX58ejDgFwfSt2ObdnI5lHSyhvsHeUgyueiGiGj54Cf+L8YELCigMafWCwlPxkPnvbJazea0bwK8HHWJ0+SLeBMJCP7th+WwOeCFFtM+lKHaR1KBp9ef6XFNo3wxnT6rY7ZAP3cyybmorUvH+ej+/FKcTH6jzhrqvBXsBJ8wvuAq4ZfhT0MkZLMeLUxGLvcJDTnRyFG1Go8Ok2cvPNIyd1a9kRdz7OsgJR+t//8/ws8dGWktPe92VImaJq6ZcSmovRvhQkY0U/T/CuyNtrALAXCIlXRnNdEuOfHf3Ycd4XvZ8FDATRCUa1Id2R1gZJKR3G+JlRCUAmQb6OzhDu24NriCv2rUXbCreEt+ZndftJ6TbDqG3k4Eg/ljGlbGBPLd5nE8jIyP+XM1I+VexsUsCdAJxwl18KkYyX+lQrWGv/uTgXJ+OaLowHl8YT5ACAKnT+9zrVc7z/xd14Lk89VkJP42WHCl2Yss1lL+yKygHqncjck7cPBY6xF5wLJa65qdt+XhPyQsg6dXem336ozPS5xYlSkggHTyZ8BJ1coP53EUi+POzvxT45zLUBBMB5VMza2D07TWzGrgxVz7d9qeBT6RlVPSwk53emlWhXTjAopbK6rDFWkbjXEvbg== 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)(6512007)(83380400001)(44832011)(66946007)(66476007)(8676002)(66556008)(4326008)(6486002)(6506007)(508600001)(2906002)(36756003)(86362001)(2616005)(107886003)(186003)(26005)(8936002)(6916009)(5660300002)(316002)(38100700002)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?KjFlWsnAjufsz3Sb4nLTGXBIwFJ3WR7I0yKxKEPiH4Gasblmj1QiKjM8QhTk?= =?us-ascii?Q?yuQQc2S46YGrR56lW6FWXMv1jAts+uMZtV/8oG64lcMhU3mX5MoFEh80rDsr?= =?us-ascii?Q?zANn3xQfdvX82yCSbdp7T0V81unYyye2m8ZSFZVec/wNSHX8cCf1EvCJ8xsN?= =?us-ascii?Q?expbW+BlH7qVcqWAkiqmaflgklFxG+Dm8+W+HimSQQ8oaRhSPUEdG/+kjSoj?= =?us-ascii?Q?8q0LlPJMWxgw1FrYKYqA4c0oqIqLu82XyFgyfpfQXVI9JamDotbJBBAh68hB?= =?us-ascii?Q?O0d65yWZqMCHBWE2ZNP3Am2ps4QXUbweMeQkLNXIT2n5yy+R9ibWfX7gX+sD?= =?us-ascii?Q?x+tZjfwt9Jp0e6EmaO8jMLPXw4zt9rjN4axLbXZPuL/xSEgBmkSDNLRdd0Rl?= =?us-ascii?Q?kWy+s3/9f8ID4wJBxJu9HwrOInlB5kVSrFgntQK3lCjIHSxLVO2gXA4vz+FX?= =?us-ascii?Q?HzEnkyM0aMn9o71T1C1K9rtEKNVGTouLE3ewbj6PvvVbpM+BwmmfRXKMr/EI?= =?us-ascii?Q?UybWeZASENobRRqoe5afjALQdO73Tt7ntaAZi7//a+RUodDwE2YPJMJXjMuL?= =?us-ascii?Q?sJunusm1D8ep0Y1viH4XmCyBmJmaoButI49v03YEj9NRzTv5jwXn4cL+/4UY?= =?us-ascii?Q?eyI0fu6slNVCL6HIeUk9xTKP/+o6KbUge546HtC0rAWLZzPuppDwPfGc4Ots?= =?us-ascii?Q?ZV0F91UQtTpISIj79EFURk/3KnsTN1ebLyl0nZZzlfZGgBcLrcJnN3sncBIE?= =?us-ascii?Q?QSUC55MmgyUy3p277kQur/Nw+DxsJb61KcKuR1qjK7vitvHF0ssebeTWpkux?= =?us-ascii?Q?eGwjgNFd608DrcniH9GXGg3Pbtp8w7KvHBVldIF7ZjqJdlKlkVlD/H7pBV1c?= =?us-ascii?Q?nRvY63tzvt3A5c1BeoC6v4Kn/+t855u+vlCYzyjW0dnqnklcjbK01RN/1mx7?= =?us-ascii?Q?Yctv5vw5whppgM3oxSmAtIXY+tD4T8sfJ1s1SNi68sYlcitTGr+F5iZVQHHw?= =?us-ascii?Q?Hslv5bJV3oq3hdd7659j5Seg9MSCc+xYkXrlXOE90WR9HYJd+KV+wXWvXxNH?= =?us-ascii?Q?3fyv5yEdkUmFbrNMgIZvLNCk/J5isLmcDIsuCOKjhIpPn8EHnGCa4DZQobqv?= =?us-ascii?Q?cs8pY0w2qf4S7T8L3J+7J4lmyfjglCTc206O0+wdrx782Gn7J7oc+wKhYgeY?= =?us-ascii?Q?N21VPmiWiwSnAyr+KBJZRVs6F3XLzXz4/onW6E+i+9h6ZuUM7nMqNKB5G6yQ?= =?us-ascii?Q?D1bpnbnOjJ/Ou48hRhjqP+5/qHikW3c7osl1o2s4bHREQAIxI/YEQL2tt6SH?= =?us-ascii?Q?8MQg9s8bakCq1hHqPGyHryb669eqecAmzZO2pXAEQYqiUJeDJI54nWFEjg2k?= =?us-ascii?Q?BgtwqO+yOewA6bdX2Jo6dM9lB1dl8wShyhGZQpIS7R6WvjU1w36gWi2h6Yn1?= =?us-ascii?Q?hyhug8QSUlS2P1gTJVFU+SRnZkQjMbGCxHbvIY8qtKfBAjNQhBIDrg=3D=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: e56e39cc-cf9f-41b2-fb8d-08da0a7b57f5 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Mar 2022 14:10:10.2464 (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: ndz8N5l/ajymUxmbNkUNR9Vi77Zl8cLdeq6P8DNTTxi0aMzLjjBfsPK8YHc2UEN8u4QHotNijLs1V8406kdHSA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB8PR04MB7035 Content-Type: text/plain; charset="utf-8" This patch expended the BPF TCP congestion control tests to support MPTCP. Add the bpf_first MPTCP sched test in it. Use sysctl to set net.mptcp.scheduler to use this sched. Signed-off-by: Geliang Tang --- .../selftests/bpf/prog_tests/bpf_tcp_ca.c | 42 +++++++++++++++++-- 1 file changed, 38 insertions(+), 4 deletions(-) diff --git a/tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c b/tools/te= sting/selftests/bpf/prog_tests/bpf_tcp_ca.c index 8f7a1cef7d87..979b6e90b372 100644 --- a/tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c +++ b/tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c @@ -9,6 +9,7 @@ #include "bpf_cubic.skel.h" #include "bpf_tcp_nogpl.skel.h" #include "bpf_dctcp_release.skel.h" +#include "bpf_first.skel.h" =20 #define min(a, b) ((a) < (b) ? (a) : (b)) =20 @@ -16,6 +17,10 @@ #define ENOTSUPP 524 #endif =20 +#ifndef IPPROTO_MPTCP +#define IPPROTO_MPTCP 262 +#endif + static const unsigned int total_bytes =3D 10 * 1024 * 1024; static int expected_stg =3D 0xeB9F; static int stop, duration; @@ -85,21 +90,26 @@ static void do_test(const char *tcp_ca, const struct bp= f_map *sk_stg_map) socklen_t addrlen =3D sizeof(sa6); void *thread_ret; char batch[1500]; + int proto =3D 0; int err; =20 WRITE_ONCE(stop, 0); =20 - lfd =3D socket(AF_INET6, SOCK_STREAM, 0); + if (!strcmp(tcp_ca, "bpf_first")) + proto =3D IPPROTO_MPTCP; + + lfd =3D socket(AF_INET6, SOCK_STREAM, proto); if (CHECK(lfd =3D=3D -1, "socket", "errno:%d\n", errno)) return; - fd =3D socket(AF_INET6, SOCK_STREAM, 0); + fd =3D socket(AF_INET6, SOCK_STREAM, proto); if (CHECK(fd =3D=3D -1, "socket", "errno:%d\n", errno)) { close(lfd); return; } =20 - if (settcpca(lfd, tcp_ca) || settcpca(fd, tcp_ca) || - settimeo(lfd, 0) || settimeo(fd, 0)) + if (!proto && + (settcpca(lfd, tcp_ca) || settcpca(fd, tcp_ca) || + settimeo(lfd, 0) || settimeo(fd, 0))) goto done; =20 /* bind, listen and start server thread to accept */ @@ -324,6 +334,28 @@ static void test_rel_setsockopt(void) bpf_dctcp_release__destroy(rel_skel); } =20 +static void test_first(void) +{ + struct bpf_first *first_skel; + struct bpf_link *link; + + first_skel =3D bpf_first__open_and_load(); + if (CHECK(!first_skel, "bpf_first__open_and_load", "failed\n")) + return; + + link =3D bpf_map__attach_struct_ops(first_skel->maps.first); + if (!ASSERT_OK_PTR(link, "bpf_map__attach_struct_ops")) { + bpf_first__destroy(first_skel); + return; + } + + system("sysctl -q net.mptcp.scheduler=3Dbpf_first"); + do_test("bpf_first", NULL); + + bpf_link__destroy(link); + bpf_first__destroy(first_skel); +} + void test_bpf_tcp_ca(void) { if (test__start_subtest("dctcp")) @@ -336,4 +368,6 @@ void test_bpf_tcp_ca(void) test_dctcp_fallback(); if (test__start_subtest("rel_setsockopt")) test_rel_setsockopt(); + if (test__start_subtest("first")) + test_first(); } --=20 2.34.1