From nobody Sat Apr 27 07:31:03 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a05:6a06:1f08:b0:4ab:e69e:bfc1 with SMTP id d8csp1592567pit; Fri, 25 Mar 2022 09:12:41 -0700 (PDT) X-Google-Smtp-Source: ABdhPJx+jLYdI/ikpHQCIG/v0umUHwzyymClYsFI/XBL3WHVED5I804jv9h1l6Xf+3/dTVQ/1q+3 X-Received: by 2002:a17:90b:4b0f:b0:1c7:718e:a567 with SMTP id lx15-20020a17090b4b0f00b001c7718ea567mr21992173pjb.83.1648224761099; Fri, 25 Mar 2022 09:12:41 -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 c4-20020a170903234400b00155c6577751si2866458plh.33.2022.03.25.09.12.41 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 25 Mar 2022 09:12:41 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4441-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=VtyGWotA; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4441-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.69.165 as permitted sender) smtp.mailfrom="mptcp+bounces-4441-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 83DBB3E0F69 for ; Fri, 25 Mar 2022 16:12:40 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 88FE128E7; Fri, 25 Mar 2022 16:12:39 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.109.102]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AEF6328E0 for ; Fri, 25 Mar 2022 16:12:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1648224755; 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=4zUXwphF21h5FjIPsYiovueZ1HWHUtLt7x9L28IHjEY=; b=VtyGWotA5telSaviY5T1OyjH2h7SJHMDis8K4mWJl9ZPVHIMa1VDQqR21XXTlltaqn4+Zk UgpQm2VEpKs0YUqV3fwR0CIFDj7wtxaAFZ0bp+vNhr0L0qtNj0rYn8z1GuTp7y4f082OeD Dj2jBciiFQkeHQOQB2d8DYTH/QoOErg= 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-9-wa4AlNKbNsC97rwjPpv6WA-1; Fri, 25 Mar 2022 17:12:34 +0100 X-MC-Unique: wa4AlNKbNsC97rwjPpv6WA-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=W9wRr6K4yJB6Y0rEQxqLIGPg7GgU8MnNoCmCDew9t9v6Z2Ag+yRRL8dWWzaKTiXEI+Yn3v7rCSoBXau7mknCBQ8ozumyRVfqiYKTj7ZEBFw3ANt72oCHHqyNFY3sPdzKfOu4/BbX72Eep7LHlf6Et19s2LzQ+dA7igN6XmkQFu6izpEMwvH0/6ry/7hAgrSAR+3ieOU1yIbHRWtlOFSs8Sm7lYL1bKlj1BxyqB6gXphGmZDvI50FQUJ9iiz8CEc+HeKEGEh1Mq4P/MMSDWpaCaqyC5LZsP1slLpRqMVM2fj/wj5rNuXttn72wIJcVh9U0IaTjEHGa0ouJpBRIwRWQA== 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=EPWg1SHAPGAjHP2dydE9+fh4ezJdAIgiRXX133sxSHA=; b=TCo7y/mxVCxTOsrAbZ4WXQ98lkH1Y5uGmhGkmgncL0//u4zoiJCORsC64lNlvbB3xGsSGe46jqpGvh9eyCfEuVBIKeFaO2xORWd0SPk78pjFIb3S1cM7AK5h9yflaagI7V6XMS5SI+MZaXuhBfDE/GAiybr7ERmK5BvOZvQxkldogPwSWdJ9ca8IS9bbcq6plxKve6E8xRG9ajziDVCzifIRDcOvPewTf8eGeXdTgJBdwH3ug2oTu00eUwSZ/E9Qf8vEUpdsw6IpHdPlbfyPhoLrWKQjD0IEm/e2DkRsOliPP6+jbGKi4ocoxFcQx4rZ6URlAdD34imq9Zy++lCBdA== 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 AM0PR0402MB3938.eurprd04.prod.outlook.com (2603:10a6:208:7::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5102.19; Fri, 25 Mar 2022 16:12:33 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05%6]) with mapi id 15.20.5102.016; Fri, 25 Mar 2022 16:12:33 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v6 1/8] mptcp: add struct mptcp_sched_ops Date: Sat, 26 Mar 2022 00:11:57 +0800 Message-ID: <0269e4ec9fcdfc3c6ae4ad1075065c21ae85377f.1648223504.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HK0PR03CA0102.apcprd03.prod.outlook.com (2603:1096:203:b0::18) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: c659a12c-bc25-4522-ac76-08da0e7a4522 X-MS-TrafficTypeDiagnostic: AM0PR0402MB3938: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: A9dRQbbfD2KfFdjdx12F6Hj8ZAz2g1lKRc4JuQNpYMWVccvQu4v3eh1pTNXHDNn5Zl0UyJ1ILXcW4McL+k8/V4Ymf+0uxFk12MZfQU9EsJxjhY3qhjAfHqzNfflkLc6dK47hHnzR52MeKFdmsH+QKWi92xifYV7aNb+vOFhXSRjD7roekSX3TZfGcj3AN43Qbg6jqem2c4fKOF1NVBRTKNW5KiIUfW1tLSUqnw81vyUv+bJMbIpOvyafgzBt8RAREG0XgUkY01sJRXyuv9P8VGjLeYb97BpeG6nRp7vR5DdcEvYNjmNqgVRSXE/zDFRM0YOtCCYasTh5qhpMK3ik4zT8zrF0buECUnHQydDapTP4LK58jI+DIbCIFgG27HWDv+7VY0ZRy8+FpA3GZZu3GLZin+KzQKWfP8VEwiGUMIDMxZcAFOHekuK7ucyxsXqlPe9Q7zIrc5bU5xUMcpjUNl1Ig6mTcb8xMeMA5FY1mpEb1FgcU0hFGcQuc+QuFI51hkcA2I2SmhQmlGlSgOyA7U8gAN41uXWCgDHuZ8KvHvrkurLseOojsYDXE3Gn1BocsJUJI4lo0X1h3uVIxqdrfRo+D4XHnGK81knZY3EogM3qPL4VwZp1f1IB0dMOzxIVHDUMR8wLFQJdNVl5apv8VMoy7HLDg++Fl7GK7BNe320MOqnM90XsykKYkxK6p8tq 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)(36756003)(4326008)(508600001)(8936002)(186003)(26005)(8676002)(66476007)(66946007)(2906002)(38100700002)(44832011)(5660300002)(66556008)(83380400001)(2616005)(86362001)(6486002)(6512007)(6666004)(6506007)(107886003)(6916009)(316002)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?AK2qyIEFW8yKCXAURmnyKn958WQ0uBxlSMe81ObqRbM/3clqdUVzCpplyVin?= =?us-ascii?Q?j7csYCeLU+9S+B2zcgMOKSuahArEtyc2HHkVLTEyGug1Ew8gFvV0iDxo7Kxt?= =?us-ascii?Q?H5OVQXzmgeH9pgU8ydT5e/Tl6QLw5F6TKuDVfcJOZbFXsOKg5LWY8e1BopDS?= =?us-ascii?Q?uywx0OmeT+GnqL8w547M86bW3eqJ2m4OIUhS41EQ9HZa/5PzYfa5FwiaV18U?= =?us-ascii?Q?RxjoCdxhXmKZ5R5rIciGrUr95ZTS6b/rjBexhhbcmdoKHNdecSrk6dSRVPG7?= =?us-ascii?Q?TkYwz8/SpovDQiWzfYNDZWDG55gprrLleWdxXT4MZDvDsKScjD/SrK1k8sxR?= =?us-ascii?Q?+Zsh3wO94td2EYTqKV15xTbioo39VAotR7EPZsqRDQQEmB9NJTE4Cp5oy7CW?= =?us-ascii?Q?fHdc8CHbYSdEfYDS1aCh7TySy5Q4AlfECWOXDAAd6R+oCr2B3EU1Zab1eS03?= =?us-ascii?Q?2uxDv0wqABW4O7Hrd/D647rqsO2bd/mTqB0rqgKfvAWiHkSXkJD9d4Kb97H7?= =?us-ascii?Q?qeG1sguTe87kBEOvFejxR6+UWd0teellPlgoZ9Vn2YaS7qQagwy85fQTvk2L?= =?us-ascii?Q?Gu/9moAasI+Nu2w9SYv/bwEbiHsI/y3WD+lIeN5rfe6MEej5uNC1guIRt43X?= =?us-ascii?Q?nE5hnKZZsruzQUU+iyRpaeBYRxnyqCL6Y8ohcIEoAq5n4RUlwmwt7ZfV+Gva?= =?us-ascii?Q?cnXeYrDY7/oJHokrNxgZdR3zZjOPzclAyoihFjjbzboBzjVBY5UG39vOvzJj?= =?us-ascii?Q?fQSmH4lOD54wD4CdJJenUnJ8YwB4w72vDKg0ws6l2bxkWHn1fFK8sgg8TSro?= =?us-ascii?Q?qe/dwTpKtXbEhqPlzjKcGRydKLfKW8fA0uTo3aZNeSWCsHyaEPnSZnlNNkCH?= =?us-ascii?Q?8TByVemS4ern7AayWLd/Z4mUZLaXRFFg+1kixAICf7pke5Hx1X0V4st4ksXU?= =?us-ascii?Q?/8f58UnEJtBrMZSKssb0LavN2orwCP+OgWlr+ygybmHP1rumTCZagHx9dktl?= =?us-ascii?Q?ViuPq4JAKvsUa0uu1PMDNTr6Jot5J25BKc/y3uTgwRpbVI/4vImDyJNv/6uI?= =?us-ascii?Q?cZLoXRhpQuppcZ7OPO+anM61hVs+lZ/wGRcXGjKws6tPX+EK7WNbHo8v1bWU?= =?us-ascii?Q?BweY81KY0xO8K/kvOpXQEIV+39bmoRroREyvZDJSzHHHvHSCZHX4f7Zcf5GK?= =?us-ascii?Q?j4Anzbuq3vB9IhaNCrS6ivIbXKPCkv1eVgPdwMhrUfyFJV4/Kd3RjRptypVa?= =?us-ascii?Q?8ihBlQs+H06p1hHRuo/Yeg9n8MDvG7gyRUETFx847DrhyhYl+BlXpc0aTjlr?= =?us-ascii?Q?6KSpfFoLkptjrBggQ5wtXupwoattP2yHD1Z9PWa8OrmfipJXcXPPH+PSZ0Mp?= =?us-ascii?Q?o0265cRYJp1/Yul6AftkLtSCMEC4JM+sSBMTLRM/w/kQjlg8QuQDR0F4mnl6?= =?us-ascii?Q?Y9Va7NKLgifwTgGmV8N/hkDROcZtRaV8LYsLTJbZRs7DqLRmkjZvhCJ8SEMj?= =?us-ascii?Q?gMH9yMbB9W3e7MEnxsuK5QKekycHbBwUcFrD15ANENX6qeWaxCECZOuhHDoS?= =?us-ascii?Q?PXpc7TEuWLBOiGnXaibQYfPNQmXHcn206xqMqNVATHESYC6W/4TrNWZDNTON?= =?us-ascii?Q?1BLlm2jY+aAFJxgvEdUK558YAFnm/96+lBSms1OqnhDZ4CwoJmNVnUcE82eL?= =?us-ascii?Q?IyevDXVYhDcGdKfqT3nTuGq3X/S0PUbYm/EpS2I5L6hexQ8X7ccjRzSmAVTx?= =?us-ascii?Q?qonUuiVc7rT5NRTl/84enx7OizAbre8=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: c659a12c-bc25-4522-ac76-08da0e7a4522 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Mar 2022 16:12:33.8170 (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: jJzjbTJoJU+11UmGGtl0izr7DtTi3DYjLZ1ym4wgrPmz7BI0OG2xiNTeN3ECBtmyWPUDY72Cy08hQ0j7OMiJUA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR0402MB3938 Content-Type: text/plain; charset="utf-8" This patch added struct mptcp_sched_ops. And define the scheduler register, unregister and find functions. Signed-off-by: Geliang Tang --- include/net/mptcp.h | 13 +++++ net/mptcp/Makefile | 2 +- net/mptcp/protocol.c | 1 + net/mptcp/protocol.h | 7 +++ net/mptcp/sched.c | 113 +++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 135 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 99dddf08ca73..9ef6d94efc47 100644 --- a/net/mptcp/Makefile +++ b/net/mptcp/Makefile @@ -2,7 +2,7 @@ obj-$(CONFIG_MPTCP) +=3D mptcp.o =20 mptcp-y :=3D protocol.o subflow.o options.o token.o crypto.o ctrl.o pm.o d= iag.o \ - mib.o pm_netlink.o sockopt.o + mib.o pm_netlink.o sockopt.o sched.o =20 obj-$(CONFIG_SYN_COOKIES) +=3D syncookies.o obj-$(CONFIG_INET_MPTCP_DIAG) +=3D mptcp_diag.o diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index d3887f628b54..b1d7c8b0c112 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -3807,6 +3807,7 @@ void __init mptcp_proto_init(void) =20 mptcp_subflow_init(); mptcp_pm_init(); + mptcp_sched_init(); mptcp_token_init(); =20 if (proto_register(&mptcp_prot, MPTCP_USE_SLAB) !=3D 0) diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h index fd82fd113113..3258b740c8ee 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -608,6 +608,13 @@ int mptcp_subflow_create_socket(struct sock *sk, struc= t socket **new_sock); void mptcp_info2sockaddr(const struct mptcp_addr_info *info, struct sockaddr_storage *addr, unsigned short family); +struct mptcp_sched_ops *mptcp_sched_find(const struct net *net, + const char *name); +int mptcp_register_scheduler(const struct net *net, + struct mptcp_sched_ops *sched); +void mptcp_unregister_scheduler(const struct net *net, + struct mptcp_sched_ops *sched); +void mptcp_sched_init(void); =20 static inline bool __mptcp_subflow_active(struct mptcp_subflow_context *su= bflow) { diff --git a/net/mptcp/sched.c b/net/mptcp/sched.c new file mode 100644 index 000000000000..ae1956b6de92 --- /dev/null +++ b/net/mptcp/sched.c @@ -0,0 +1,113 @@ +// SPDX-License-Identifier: GPL-2.0 +/* Multipath TCP + * + * Copyright (c) 2022, SUSE. + */ + +#define pr_fmt(fmt) "MPTCP: " fmt + +#include +#include +#include +#include +#include +#include +#include +#include "protocol.h" + +static int sched_pernet_id; + +struct sched_pernet { + /* protects pernet updates */ + spinlock_t lock; + struct list_head sched_list; +}; + +static struct sched_pernet *sched_get_pernet(const struct net *net) +{ + return net_generic(net, sched_pernet_id); +} + +struct mptcp_sched_ops *mptcp_sched_find(const struct net *net, + const char *name) +{ + struct sched_pernet *pernet =3D sched_get_pernet(net); + struct mptcp_sched_ops *sched, *ret =3D NULL; + + rcu_read_lock(); + list_for_each_entry_rcu(sched, &pernet->sched_list, list) { + if (!strcmp(sched->name, name)) { + ret =3D sched; + break; + } + } + rcu_read_unlock(); + + return ret; +} + +int mptcp_register_scheduler(const struct net *net, + struct mptcp_sched_ops *sched) +{ + struct sched_pernet *pernet =3D sched_get_pernet(net); + + if (!sched->get_subflow) + return -EINVAL; + + if (mptcp_sched_find(net, sched->name)) + return -EEXIST; + + spin_lock(&pernet->lock); + list_add_tail_rcu(&sched->list, &pernet->sched_list); + spin_unlock(&pernet->lock); + + pr_debug("%s registered", sched->name); + return 0; +} + +void mptcp_unregister_scheduler(const struct net *net, + struct mptcp_sched_ops *sched) +{ + struct sched_pernet *pernet =3D sched_get_pernet(net); + + spin_lock(&pernet->lock); + list_del_rcu(&sched->list); + spin_unlock(&pernet->lock); + + /* avoid workqueue lockup */ + synchronize_rcu(); +} + +static int __net_init sched_init_net(struct net *net) +{ + struct sched_pernet *pernet =3D sched_get_pernet(net); + + INIT_LIST_HEAD_RCU(&pernet->sched_list); + spin_lock_init(&pernet->lock); + + return 0; +} + +static void __net_exit sched_exit_net(struct net *net) +{ + struct sched_pernet *pernet =3D sched_get_pernet(net); + struct mptcp_sched_ops *sched; + + spin_lock(&pernet->lock); + list_for_each_entry_rcu(sched, &pernet->sched_list, list) + list_del_rcu(&sched->list); + spin_unlock(&pernet->lock); +} + +static struct pernet_operations mptcp_sched_pernet_ops =3D { + .init =3D sched_init_net, + .exit =3D sched_exit_net, + .id =3D &sched_pernet_id, + .size =3D sizeof(struct sched_pernet), +}; + +void mptcp_sched_init(void) +{ + if (register_pernet_subsys(&mptcp_sched_pernet_ops) < 0) + panic("Failed to register MPTCP sched pernet subsystem.\n"); +} --=20 2.34.1 From nobody Sat Apr 27 07:31:03 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a05:6a06:1f08:b0:4ab:e69e:bfc1 with SMTP id d8csp1592625pit; Fri, 25 Mar 2022 09:12:48 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwxG1t84KPTupDk4sYuy2VpyXFUfcqucsz+I+HicB58Y7uGC9YDDBy6d9GUC7EjXlTeh3RD X-Received: by 2002:a05:622a:14cc:b0:2e1:e82c:77d3 with SMTP id u12-20020a05622a14cc00b002e1e82c77d3mr10086830qtx.28.1648224767997; Fri, 25 Mar 2022 09:12: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 bk19-20020a05620a1a1300b0067e4be237fesi1951769qkb.67.2022.03.25.09.12.47 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 25 Mar 2022 09:12:47 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4442-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="jx/TCUIp"; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4442-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.197.195 as permitted sender) smtp.mailfrom="mptcp+bounces-4442-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 8D8D21C0C63 for ; Fri, 25 Mar 2022 16:12:47 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 4F16328E7; Fri, 25 Mar 2022 16:12:46 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.111.102]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 95F1D28E0 for ; Fri, 25 Mar 2022 16:12:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1648224762; 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=5v62knDhEK/DGQfCMvQ+4MitGuU0hrsCwBJbqoiVi1Y=; b=jx/TCUIp1jLXmN4nr7AsjouvNPnFpMOcAOBdH9qiyIiLrZewdPXliwkPoH8knSo3FaRLYh KyjxmgPn+ljtqeqPP5oAq+1RYmYaUJjJbUj7E5ENb28XeVuhD9uqh/H0ggAbrALybIp24f 1EJk0UhwHngLTrC+Fcxi96OH9o6bqm0= 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-4-akPH2JjNPcimR08zkgYP-w-1; Fri, 25 Mar 2022 17:12:41 +0100 X-MC-Unique: akPH2JjNPcimR08zkgYP-w-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Q88J167+suLWV6rX7C5RK0sBBWq71HC6MZLXd9pqdjlLP6UAwL0WhMQaxtltFSZYDxrctFZ1p2MCIJL1D7lkb9Jx9GnOMPsZLeuHjCXSwqDAkmaLZgDJugrUg3/VheLaPOHiHF4fhhgMKLMB+ePESiGGxIA1dWqz1/a8nknxLcurzLwMTEZ/VUB8ELVoPZSDEbwojMfpvIzoPoQ0D5F6Qk89UMO5f72Ar84NtNZrnJl3IZHsC4sQ+zGDKCj+5TG6kVkG8ngT60kCvlDCmEephHqpjGKfs/TNfIo3B+05BWhid3APbAmGpgMFMVnXH9cJhY3Aj9Vjgzvnfcd2NAP7uQ== 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=BypE4TaoXPNrVsBUXrFtkOjjjVm9vH+fGsxgmkfESRg=; b=CQGTY7Tw8D1WOjjfVJnWH5GEXGwO6w4aiO93j6WKUn0MdqzIVszK/wGPn77qhToymkGwEAcCFaCBkWyPonoL6vh23WBcpYzqp3/qbG92Ey0FX88948sOXH3xySpyzSFqcqS/VXj51TYjlN5lvhrRdpHiZvh2dpHKzTTQoFTML3o/L76R7wMfSlGie1RjJJx0vOLm/scDPZXUaPF5agpOJkp4FivFVHFjXXO00BjAcqnElo89kAdlvyv6Dn+Fx27y4zVJUA36LIAcliB3jQoKvzh3b8ooMrHRqhr9XVcOLkLn6uEgQF7UK5KqmmtoqqpO6o8Qavh5brbLYoEeP8/E2w== 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 AM0PR0402MB3938.eurprd04.prod.outlook.com (2603:10a6:208:7::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5102.19; Fri, 25 Mar 2022 16:12:40 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05%6]) with mapi id 15.20.5102.016; Fri, 25 Mar 2022 16:12:40 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v6 2/8] mptcp: register default scheduler Date: Sat, 26 Mar 2022 00:11:58 +0800 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HK0PR03CA0120.apcprd03.prod.outlook.com (2603:1096:203:b0::36) 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: 52062ea8-4ce7-4494-8d11-08da0e7a4947 X-MS-TrafficTypeDiagnostic: AM0PR0402MB3938: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: PpNLptfVTeTmtF2AMbwmO2cD+ZAUBFHsv1ahm7WaFvnzuTYWxIvoY0hcatfNqVBmjw5UJ07Tb7uOl8jY6LYOwYOvc3Of3/19LRXyJQSx/KOYMs5AXO1Oe3grBt7BnOJ9Egt9l4AZ43aAdCGOHcaG+slJpJBj17NJBFe5maTy1ZNvnZIQlpuIg01zj5sAon8H0y2aNQOMlh80Qn0oGXQ7ErWe7tWlxEKJxlLJQoNvJtx4dimr+7r1W7jsNp+EpNUdd/xZg6HiKXfjoRlC//e3rPt0ANE6AH6wtmKNzUGlHxZam13n2vIT1jYN3havJGA6tb0XjSSsuXH62QfXfCmw+EZe2uQaKEuOdPEybdJiPUoGWWJalwA5SADvF9009chse2aZCHRNg5YJzjzJoeNbn+3zsq322Pgvd3Q+sWArPzzTmeYLoTBOeFR8Dsh5c4Q5v1UJqEax9Wej9URg5vz64c2Kql33uPz5pM1PvvcwTeK02jbJnoPrF/+9tg2NjyfBxm/Ety6MRSThkpIteSIyJOp8Flbg9UVell/BqcKCtkykzV50Kp40m1G2vZ+yVMbAAAGgeJkIhLUjO9eW6Zk5n787dl1r4dv/E5tiDRO+s+Imi3oDEHSzeK9gaTjsiXbRV3PD1PpfZgwGZrOK73pZXpQKHbc7KzfNKzedH0d7xCv8SXB5/fPCQ4KToAADH78Y 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)(36756003)(4326008)(508600001)(8936002)(186003)(26005)(8676002)(66476007)(66946007)(2906002)(38100700002)(44832011)(5660300002)(66556008)(83380400001)(2616005)(86362001)(6486002)(6512007)(6666004)(6506007)(107886003)(6916009)(316002)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?RnNTJUuXmTmabH+Ac9AtTeBnBV1JjPRI4QNFmg6oXBCifoLn2inDsG5MQPx7?= =?us-ascii?Q?21t8luU2YGcvsgkTVHksudNzvOeVfbycEx71fhvbdTrL3f0dbVif9kDpiTtD?= =?us-ascii?Q?Hj6ImnaNp/qRg1YRohgUOUqh9HSQYWt3E7Lk2HFKD5l8whfynkRS00CleaMX?= =?us-ascii?Q?e4BtsVpZzD3kFz3RjCjaq2Qg8/hPESQedHWiwA8tGZm+XlGGzZ7OY8PE9PAk?= =?us-ascii?Q?p6chUW66siGiz8wmWwQXgvttk5Bvaw9BGtfxBP2Pcp8UsYX2mCkB1zcHfrGp?= =?us-ascii?Q?65d/N3BXWzpyvx5xcFVaoG+xM7vgkfiP9voGBh7TNeTMwCLkiE8Dji79fV/Y?= =?us-ascii?Q?3OC44gzW9kzZYcMlYSSrcK7jV/En2EYN186zsYN3YuCTzWP4yHgamSZBjqZ0?= =?us-ascii?Q?M7p9EeSNeqWfOZsK37f5hLSWdPIrq8OUB3JroQcLWnjg4UcTx9EeEDcFk+13?= =?us-ascii?Q?6Yj/dCftF7mdnzpXA5SROq02dmRFoVKW1scT5dxQJ6ub2ZGIOt8kHGYRg8fj?= =?us-ascii?Q?cSQ7YYr4hui+PXcvkK0ui0Jk7NXqYLTvX6UX4rbKpR14KJ2Gr1vXGKjLj/iO?= =?us-ascii?Q?I3TiGiGvd++FwfrpE+x6xVo2LFqKe07uwrwppfjt7HOxxH/vwUzhZi3fTAHo?= =?us-ascii?Q?RE1RtXsglh0rAAw3YmN74BshCTilS/u/zkrhaicfNr3uoVoBvWO4muPP5g8l?= =?us-ascii?Q?Dl3q2+IJHO6/EjDZqxL4DoYUJSlFwObHKNPvQ5yfl7sULhTd1mADExEtqkUL?= =?us-ascii?Q?saS6Tks7YlnyFF/OfoNglBirkqOv+nQZz1v+G69MNLWnRzf3ZgGvKVALwd61?= =?us-ascii?Q?BjUqQEzc6Nllt9sfdF+A12hco/GKwfuowjRRv7Qj9pgQlbr2jzKz48GxoO0y?= =?us-ascii?Q?NF39MgpALtYkUuegeRigKEWx16Kjaj0PZP/9DtwYhkD6Lxm52VM/qJUFUd7v?= =?us-ascii?Q?OeldcRhSQBLZBI0Q5sRaqBvkJqL//lwrSvQbWM9kIOda/kKWyL9QdtaxAvDD?= =?us-ascii?Q?eU5FcdkqSd59+YeSRa1vrvN1oKtRX3tVYYrjznvleSt7GGigYFkd3ZJ6qN9Q?= =?us-ascii?Q?nDbB6zBCKnJMIsPwrl5xbNNGGbiPXYvyiI0lsiE6H0/wS9ZuoBwWAmXNDXNJ?= =?us-ascii?Q?B9I0F5JqCp8fYR9Lpi5aB64TReTKPhSwR8UiiD4byfjGsykjHYzy4v+kgLSy?= =?us-ascii?Q?m6BgkvA6cOa2XDrh4bAn4QbDe/2nHFeMb28mq6QHN20QWTWtfw16cRRh0Uw8?= =?us-ascii?Q?6A2GHrW7WHwZibySLbDKTlxbYtw9kaYPTsX0EVEI7IzVO9IYlesqUlcWAtZt?= =?us-ascii?Q?12ZL7/HZLXyo9LMwrOi/UQG58D8Y/hfptq4mkOCp8+0WH6gQx4pW6Xm5F397?= =?us-ascii?Q?lAr8A1P7aMmjoSGaQNpAluprZHK0odUhvUgjA7lorMuKqk6IUsDnpT/48n14?= =?us-ascii?Q?NKqMv/0rGq4r3Xevhl3meD55weuZRXQW2t5iTVQm4jPnHjWRTj/3F2ecrwDU?= =?us-ascii?Q?V0QA2LEuAz3gugPPab6lM4Jr8gVXbRysAZskaZxWW7WPjvO67W2tlPKZdGe+?= =?us-ascii?Q?nSBBtLwwZicBWajVm3+DyB3MLmJ4dZa2BL60x9xEq+LrokxaWkYk30DVgkM4?= =?us-ascii?Q?/rWSUSi4jPrCD2HmUjDv8sYrf28Q5YuglIMp7RPgv/8AZgCbDJ5Bn7BMKXIG?= =?us-ascii?Q?i1zilv8ObUE6/Dd6XEK64CpgrecNYcHaWDP5uyX4H/jMEyrUoDpfL0+Z5cAj?= =?us-ascii?Q?RdrP6Jdm+vKoCcOPioVdnmT2layjFaw=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 52062ea8-4ce7-4494-8d11-08da0e7a4947 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Mar 2022 16:12:40.7071 (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: TVzy9JAg6E9M8hfdgEdM2cXLpP/yim/MxuBpuOlrQPPC5hWtQA+QveLlBT95zVc338ipBa7ylNI4aQuwho37Yw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR0402MB3938 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 | 14 ++++++++++++++ 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index b1d7c8b0c112..2c684034fe7a 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; @@ -2614,6 +2614,7 @@ static int __mptcp_init_sock(struct sock *sk) msk->recovery =3D false; =20 mptcp_pm_data_init(msk); + mptcp_sched_data_init(sk); =20 /* re-use the csk retrans timer for MPTCP-level retrans */ timer_setup(&msk->sk.icsk_retransmit_timer, mptcp_retransmit_timer, 0); diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h index 3258b740c8ee..0a409b28e237 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -614,7 +614,9 @@ int mptcp_register_scheduler(const struct net *net, struct mptcp_sched_ops *sched); void mptcp_unregister_scheduler(const struct net *net, struct mptcp_sched_ops *sched); +struct sock *mptcp_subflow_get_send(struct mptcp_sock *msk); void mptcp_sched_init(void); +void mptcp_sched_data_init(struct sock *sk); =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 ae1956b6de92..1fb3dd24d6ff 100644 --- a/net/mptcp/sched.c +++ b/net/mptcp/sched.c @@ -23,6 +23,12 @@ struct sched_pernet { struct list_head sched_list; }; =20 +static struct mptcp_sched_ops mptcp_sched_default =3D { + .get_subflow =3D mptcp_subflow_get_send, + .name =3D "default", + .owner =3D THIS_MODULE, +}; + static struct sched_pernet *sched_get_pernet(const struct net *net) { return net_generic(net, sched_pernet_id); @@ -70,6 +76,9 @@ void mptcp_unregister_scheduler(const struct net *net, { struct sched_pernet *pernet =3D sched_get_pernet(net); =20 + if (sched =3D=3D &mptcp_sched_default) + return; + spin_lock(&pernet->lock); list_del_rcu(&sched->list); spin_unlock(&pernet->lock); @@ -111,3 +120,8 @@ void mptcp_sched_init(void) if (register_pernet_subsys(&mptcp_sched_pernet_ops) < 0) panic("Failed to register MPTCP sched pernet subsystem.\n"); } + +void mptcp_sched_data_init(struct sock *sk) +{ + mptcp_register_scheduler(sock_net(sk), &mptcp_sched_default); +} --=20 2.34.1 From nobody Sat Apr 27 07:31:03 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a05:6a06:1f08:b0:4ab:e69e:bfc1 with SMTP id d8csp1592791pit; Fri, 25 Mar 2022 09:13:07 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwT8uBKxisooaCj7MF3UP/pOGRI080j8kX0Sj1QUdweUj/7tZ9YrwDVhs1eK2hedvSG0tIj X-Received: by 2002:a17:90b:4f4d:b0:1c7:467c:e24e with SMTP id pj13-20020a17090b4f4d00b001c7467ce24emr13546683pjb.102.1648224787836; Fri, 25 Mar 2022 09:13:07 -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 oa14-20020a17090b1bce00b001bd14e01f1asi7067031pjb.8.2022.03.25.09.13.07 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 25 Mar 2022 09:13:07 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4443-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=hFhsOEtH; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4443-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.69.165 as permitted sender) smtp.mailfrom="mptcp+bounces-4443-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 023F03E0FA3 for ; Fri, 25 Mar 2022 16:13:07 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 47FB928E7; Fri, 25 Mar 2022 16:13:06 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.111.102]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7A0DB28E0 for ; Fri, 25 Mar 2022 16:13:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1648224782; 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=T8U0HX64BWkupqaQLzJsNx1hUYdCp2sxqpQqPmXJKrc=; b=hFhsOEtH50YyV8W8kD+5SJFvSETGpoaYvwbFqzL8A+ObhdKOXZdwKRFABPfcq04ejN5W3F IP/kNme70IuIOlpMY3b2nZ/jo3dAri+/TD+PRyxyLaAyAaigcm3shOaB5FUPTJ3YNEf/+B 61hwNHQMUIKbAXYJV5SKeZ6ub3cXVBg= Received: from EUR01-VE1-obe.outbound.protection.outlook.com (mail-ve1eur01lp2055.outbound.protection.outlook.com [104.47.1.55]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-6-RvHA2Ex1MkOuSVMYoums3Q-1; Fri, 25 Mar 2022 17:13:01 +0100 X-MC-Unique: RvHA2Ex1MkOuSVMYoums3Q-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=msDpxZqNYJEp4JXSmg0n8cps4St/9a18Hu05C7Q02zyJW6y5bzWijc/Y2nLU2MnycnwuAZtaUcNgZjV7W7Ounn6D4izq798srmjCgfBUZrgleM4sWbATnrZisb6dHMSJ/hg5+uuZ/OX31aENIgQrgKe/j8JtoZnp20rqTQ7yOY1ntvwRXiRGugkDlr4Bmx2IlCjRNAbDCayPb7vVYf1gfC6BG/F50/bvXpdTkRX/TK7axzdDFK/gakH3kcKVVUnD6xR2mqFQhJqofkxrh/HEGhPmUFm6CBJfqRiyuS2pX9X7Xj0WHv7lY6McoiypzJXfAwNRmTvmOCqJgfnOs7Jhxg== 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=bbRje2DlHQVD/gGd8aoWkn7Gb3gDmA9ITECUAWaxlb4=; b=obeEIyVQebl85+Zi2tldOA7ClwaXUJ8YjdDzlxXjcU4apqnFZXTNgQSLk9aMT4k/woBwYr4NBkkr7k78VXxMWP/d7pQRY/YIlThpIVEIjdWMxRNSNoUKjuikW6lO7KwwXA+D7A6vsL3bz4kXWth8idQQMojr4dTATgAApyS5l+XyrOE+wFbB8qxSE/NDyDKZWOAZVEIGpkH58MdHqnPymQO8oTXzxtjmIxvFJ0q5c9puiM2LuBLGl5t5gf2mRPuU+QzsZfD+CqkCQwpO13BMs7bLyS5MspsOdGESyUJoQD/rU404ojDMgKnmbU+cPu0zhw9W14ky3ubNx0NykloixQ== 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 AM0PR0402MB3938.eurprd04.prod.outlook.com (2603:10a6:208:7::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5102.19; Fri, 25 Mar 2022 16:13:00 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05%6]) with mapi id 15.20.5102.016; Fri, 25 Mar 2022 16:13:00 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v6 3/8] mptcp: add a new sysctl scheduler Date: Sat, 26 Mar 2022 00:11:59 +0800 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HK0PR03CA0115.apcprd03.prod.outlook.com (2603:1096:203:b0::31) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: d7e289ce-3352-488c-76d4-08da0e7a54f7 X-MS-TrafficTypeDiagnostic: AM0PR0402MB3938: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: zI0dIf4aS7j/eVdyPCO3S8VJKIiOuuwlW0PbQGHJBjSR9BOx2/IoxhX0Ayte/LSk1apcSZDn1LdRUztQ2x05aWIaCXJKIvBkCOIS6hGzvYoAxHuQCjygGA2fkFGRxx/ewpW7ZN/g/KKPgPH+DqURzVIlKic7AxMZlXEV17FDRTbIvQY1autX0lgWMtD/5sPJIVc79NnokSy4fRtZ+lAYV2xfZZuJMlhyL+wgyPDvDH9cb1BUVC3XJuOij+bvD4mjxDSauyPSXgv/Fqj0s2NrX+C5QsDZ+Gm8xZCzO3yD+YZ+9ZReF2psoeg5tkyqNuW9REXGloN6NG+6TRpq3XE3x9ruBXFqrCMSEqg+VtcRFPUf5jxYcni/J6FLmlHX0mSsYWkOtNlKQZYpYQyh3Ooaq1JFDcjvYj+nQh+noZN7cLwz4mdZmLsVeHU/xuxgnyhxFtGGbZtif2c+FuOJ14vdi9tqB378YwILqShaOlRQvqHakAgdEkXUyO5QoeB9e6M7ZlsH3ZQHHSlc8eEfwMEz/HLLpowlVnp90cNVGnN9GqTLv5o+xyDwBjHWHg+yKemGdtnchLKsbOH0emmmH/KA8tkSJXnc9Vb6ZOoIhJ4kKIRnFuVZiuTRbMRXR/CsryPKQogVhCD+10mo45mUOYUwO9rR1c3sIDrlN+tWo6igXpdxhZs3QyL0Hxwkj9+v/RHz89J7yLzLC0iQ7tCN/7n8MA== 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)(36756003)(4326008)(508600001)(8936002)(186003)(26005)(8676002)(66476007)(66946007)(2906002)(38100700002)(44832011)(5660300002)(66556008)(2616005)(86362001)(6486002)(6512007)(6506007)(107886003)(6916009)(316002)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?TWSUP1PKw02f8EfipljJyEWQwiVsDMByyenvtyGsOAnPsDXwYI3A79wInv5z?= =?us-ascii?Q?buPGnRzyWmtOcJepiKUC7uBNMDnqKrYhQtgBX58jZtPUH4urkdMEQoK+gsIl?= =?us-ascii?Q?H90tizqRYJs+24DYAWQm8HE2kJC1XoGywt5rmTYml0gNyBpbrZC6bpbG9Ldi?= =?us-ascii?Q?X5p+QpbAzgdtZsbNNo/bz6ul3B2+Yy/a8lzrUB4BNegyYgZ/Ths19CFQRBit?= =?us-ascii?Q?yRLBXq3AZzizjB3h/1wfTmDZXht4/K0lkeFhlJ/umgOvJz7Shd2qGL/w1fkh?= =?us-ascii?Q?IRpS5TPp81KHj30Joc6AW/UrO5tpJQXWt6XoHJWun6JXTEBW3SrJx991tgMs?= =?us-ascii?Q?wLGo5deayJjer+g3dmjHBdL0By2mUWPRNAbN2xsNzatkFxkqoDdZaFNYshYq?= =?us-ascii?Q?ynjDcGymmTF3Ga2vpVuJEDg640kzowx/x6iPydTPjO7a1TzvHgFgrpoLfAJV?= =?us-ascii?Q?IEPTIsgFpTU3ayDWZrNwTKYzMdbXc8LLwmSofbE1wD5dOq3IChIyqu60j0WX?= =?us-ascii?Q?wid6XtqsWVv9qeexC/QgBexHs8Q4raYwyo+AsqKVIG5DYVNnhwJ2dbArpikn?= =?us-ascii?Q?G+R+zqxdkqsG9dnV1jHJi5gTfLCEkb7yJDpB9Fp633byJdqw33jYEcDm9FU+?= =?us-ascii?Q?gA7G7zkA14BOTQTtmC5z8tYLjnyv9g7JSlNYk4QbziDQ8jzteJmc9eW7IyEL?= =?us-ascii?Q?voIFuEhAmW46f3GVxMIuHnq3IYt3n7+AuPMrIMnceXTBYOMj5NxhmLSUPEMy?= =?us-ascii?Q?NE8NLKkRR3aKVfNwY+yt1ViAmDqRhprv9XxSwZmCw98QobIibCQ4PfRpZX8x?= =?us-ascii?Q?fHfaMoyJUFMsx/K52L10VwSqybLniNHxZILOwYcbzkapnrSz+MQmJWBUuW4j?= =?us-ascii?Q?c8S9XeRVz7FROK/Ewy/Ktmi34XX3zXOd+Eod/fHTzE7NvzkAYoWq30sy68gw?= =?us-ascii?Q?Q8knnbkDVUyGCW0emmrRuGAgz2OxKIOTZZzgQpE7v3Br/s42+y79zgui8Nef?= =?us-ascii?Q?MIzMlOCFpgpetRlwbEO8C3AvERjbLhdhORe+dEwICVpCjZJX9e/AvBleswBh?= =?us-ascii?Q?2gaGivunbfQa35LUouHdhFnP1vn+VZD9He2+t4O8DiXIoNYRWtMtT5n5ReE7?= =?us-ascii?Q?/hYlHiymGqjNcsG4qCEoKhG/rFE3bN6OXIUZxGWtlu4+CMhJOQwlkT/rSXky?= =?us-ascii?Q?vQEQszsG/PGnX26d4MW+oIonO+aX8R+ew8pq2MFJnoCsUcs6c8I7OUBmtPij?= =?us-ascii?Q?k/mTvVufdITj14/ADFK3lYZr9jiSX9kkOkGMpgJztrxtN4fvD3upNQ0k6h26?= =?us-ascii?Q?WkxkId5ZLL0EgZuvCTGt+Ou1As7lMfdPL/45XBirSNo7FR/I4a5t8sm3LS+3?= =?us-ascii?Q?PXwuniF8cG2MUdTn1BxRH5fC73M07k+KZWbVkPsueVaZ6n8G2v7Spt66DslW?= =?us-ascii?Q?sfPbZxTHu+vgqMZ3gf+Tln1oyt4yODE4Ts9e6wlPnaA8mH+QYqCZB+wYHACx?= =?us-ascii?Q?GhNtJBUMRxYKJwALOie9ewuJfnep1Bt2poqsTXqPYm/8bj1dxOAPYpKCKQm5?= =?us-ascii?Q?r8+nk8EbEajLf64tz1FrRH7mz9oFVhB8x2uARBDfat8w7/w16tnATTzpUOas?= =?us-ascii?Q?Cm0IJ9A3BtY3Cczj7676Wcd4rA+x4eKP2ma9R0ZGwpD/u2pcTE9cXRmk79Mt?= =?us-ascii?Q?6LlhyoF7sC/M6GIsjX/um+62wY3aW/FLN7Lfb6mMGZ/Dl8D94PyzBeq3fjgP?= =?us-ascii?Q?Yza3cM0vzLQdRAE9L5+5Axe74hn2FEE=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: d7e289ce-3352-488c-76d4-08da0e7a54f7 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Mar 2022 16:13:00.4086 (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: dFL/gnQIDjwu4UtqFEWEAr3/fmKGX7szyCl9B8s6whXeXULCEqT+M0Vv3p3rmpGp+rjr1iRd+Jnm8lk3WUBuxA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR0402MB3938 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 0a409b28e237..9ad7d83767fa 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -586,6 +586,7 @@ int mptcp_is_checksum_enabled(const struct net *net); int mptcp_allow_join_id0(const struct net *net); unsigned int mptcp_stale_loss_cnt(const struct net *net); int mptcp_get_pm_type(const struct net *net); +const char *mptcp_get_scheduler(const struct net *net); void mptcp_subflow_fully_established(struct mptcp_subflow_context *subflow, struct mptcp_options_received *mp_opt); bool __mptcp_retransmit_pending_data(struct sock *sk); --=20 2.34.1 From nobody Sat Apr 27 07:31:03 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a05:6a06:1f08:b0:4ab:e69e:bfc1 with SMTP id d8csp1592851pit; Fri, 25 Mar 2022 09:13:15 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxW/QXfFP0ZBw2DaeR4DKDkagOobPahQxb5JTrM7sKRfZGQ+c2XmqwT85cUYbrCZ+a9QfHq X-Received: by 2002:a65:6941:0:b0:381:fea7:f3d8 with SMTP id w1-20020a656941000000b00381fea7f3d8mr262722pgq.235.1648224795199; Fri, 25 Mar 2022 09:13:15 -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 29-20020a63185d000000b003816043ee55si2796633pgy.74.2022.03.25.09.13.15 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 25 Mar 2022 09:13:15 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4444-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=Opo69PVR; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4444-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1000:8100::1 as permitted sender) smtp.mailfrom="mptcp+bounces-4444-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 718403E0F77 for ; Fri, 25 Mar 2022 16:13:14 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 5799328E7; Fri, 25 Mar 2022 16:13:13 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.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 BD17128E0 for ; Fri, 25 Mar 2022 16:13:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1648224790; 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=HJ9Kn3CqsvO6gHlstfJWiH7JJtDriLRy7bpXWqlc/M8=; b=Opo69PVRcStx1/BOY8xy3hu8QiHVRHVbcSlHvwBjTCgdi/GGPu6p3qjYotDchc6e/o/Eqr 0ng172S+QJ8DsCY22lq/gt6tS4GorjDBcv2S1WOc6STJsfi0U5UAxaeqMoOKNbdR4lBHeJ 1AH6yW5QpNfDIqp3JZ8bM5CGBEX63JM= Received: from EUR02-VE1-obe.outbound.protection.outlook.com (mail-ve1eur02lp2054.outbound.protection.outlook.com [104.47.6.54]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-16-G_aTS_CYN6u-I3Pa6oJP0g-1; Fri, 25 Mar 2022 17:13:08 +0100 X-MC-Unique: G_aTS_CYN6u-I3Pa6oJP0g-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=OqlpPSYJD7HH1LvMO8JzYjTv/JWc7hN5xgpn2Y3pGnTmMQonuLvjc5g0syg5let/V6KImvTvQLmQnLpe5kijFlgHW/waLEC5xMa2+8aN3T0w8wOt6aFUUBK5X5vzdM9680pLU4zPmOwA7VAQgCUYCupFPxyVSUfvB7uHFO26h9tqIbL6kdiS9YgMtqzZ7YbyzInCH09R066zTIgDZ5YiGx/8x9yk0Dq1Z/LUmzl2mIqwjkMc3z2xoiH/oBciHIE7fMhHcn6cCvc8zC50NXaZIlouSK2+UPrbpjyE05poOdhytJh0CJG/KyW1BT7hxospM7iaHOUha30i/OL+o5s4fg== 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=rsJonClW8qFN8z2QDh3k8tKojRZx6OuVo+VqXRfPAqQ=; b=QjW6vzHbTHwCNWgYmUyen1C98pq7bSKzgygxJhNeC4FZk8Ec9h54eOvKPRuHFgaBNXIERQjE1fX+N+nMbiE87ecm5apFJO7o/egsu/vDu3bYKfKY3gtf+mFcVO8bqgnoCYXugK5uW06wB2WyfsgSMYSeDDKODbDJ/YFit2UbOZXJGAxu2yuVYllUUXI6tXT2p0z0n0CW0jNJOi/xwNYRjoIXpZUcHVaydHohJHuM8N2JS4iHxl/AGHI5GBZSlrcnTMU6uWataMw8vru1eEWm78cqrUWvI5c+8ppaCEofEG5RcdaxXKbGfjfjmyHwGbI6EIgWa+cNuINxu788If4n0A== 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 AM0PR0402MB3938.eurprd04.prod.outlook.com (2603:10a6:208:7::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5102.19; Fri, 25 Mar 2022 16:13:07 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05%6]) with mapi id 15.20.5102.016; Fri, 25 Mar 2022 16:13:07 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v6 4/8] mptcp: add sched in mptcp_sock Date: Sat, 26 Mar 2022 00:12:00 +0800 Message-ID: <19e9377ac9a72587f729820fc793ebdca12d7424.1648223504.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HK0PR03CA0108.apcprd03.prod.outlook.com (2603:1096:203:b0::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: a9115d3a-4887-40e1-deab-08da0e7a5944 X-MS-TrafficTypeDiagnostic: AM0PR0402MB3938: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: 5s9NoU2DdBXk86GFhNMt25VXGk4lOL9OEu+/PGGCOtmqWqeqxaKuCcdQmKrFT4VFDsbIep7+TBUDmQ96GvHPdLWEX8Fmv6rV1Pbe+nheFi79iBGm6muhkIq4Z09F/D4z8a/FRx4Er/LzkITJ1mkBfMNAo4e1i910hwg4xqZOPqx1Brq3g2LGn4YmU/R2yTfwEIhuhRLy3sC8mqCOYEGzg90iTBbONk/ZMdUrdn5Bl0nEuYfqPPJlIbqJOeHf7sSfRHQUil0n5L6mRd77ZBpHR0/Ai2XCJ95bxZ3KISLvfLk07Ma21/PaAoTxvfJKw43PXz94dgYFaD2LD1I8JqzOTzNZarypOfHoBk1OhzQc22UbrU+eAnfwG29LkL4VOsjhyUyz3nsRyl7u3+3IT94rgpzWsAHCONsiMR1JBE+6HPT3+FhF8fkuYU0iGfZCUmbdMEWQufWCptSTdwNgUmfOrISOmjEAdnaYTkI9JT3I+ZfjZDek0Xs1aGXzdHgPM28YGzFYg/bfHQaIIKDvyzYB1LwFm9XDwGRqPuKyZtEIX3qsrybBhcYumV/y/jHTF4jydpRXzxaUgah2R4onBcZAOg2aX9N63584fzZcDYQQCCxq8pKJs0VdTvAloB1Y9WDq9MjXIB8KAKvzYyvBt0938kZuJAcMzCIxrQmbjCMhDgJs3lI0EDTgKZesDQVtfJEFyllZL0QMw/YvzL+NQJddSw== 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)(36756003)(4326008)(508600001)(8936002)(186003)(26005)(8676002)(66476007)(66946007)(2906002)(38100700002)(44832011)(5660300002)(66556008)(83380400001)(2616005)(86362001)(6486002)(6512007)(6666004)(6506007)(107886003)(6916009)(316002)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?griyEylwxosGiHOyUMFmbUc44v0A0Fpvrf4qPRN1N33pivBPiBOo/Hff9r9I?= =?us-ascii?Q?M7y5bhAZbIXzzvADNVmzXMaYU74PKTms/iYagDfZMOvAaP86tJ3COs3Z4e1Y?= =?us-ascii?Q?9mapmW/kjKC0KntOTvN9y1ZJOp3nPQpECMgfnpqYLfgfYjTj9MtwqZJYKMyV?= =?us-ascii?Q?A4LJZ+OVJ9W5PgXeWfv/G/xGDPvcuaBbF8euWX0UTuKWcLysXKsTiDUOOF2z?= =?us-ascii?Q?1LBl5LoInYZTUE6FKZro7GjXDiJ8gQocundl6E6blXRwkVP9GASxe93mdJTs?= =?us-ascii?Q?O06qGRmvnmaz5a3FUqJ8jBrxZScG06eTp0BT++ckVWt9g1n47I+GvWztzPFm?= =?us-ascii?Q?xZQw/4sKkZLH91RyW5kGRxVG1cF/nu/5xtIEiakC+vX5j6kgFhHVw4P7pJoM?= =?us-ascii?Q?Q/bQF1VxPGNdlLAHz+V5PIw2cbFKyIHrvRbWW34vLjiyGt/qumqyokHcEhX2?= =?us-ascii?Q?VPHSWu9+1q+ojzfu4JRPCspW6DiJzkXL7IOQ93wEo46DRz0Hzb7ZjeI+q5o2?= =?us-ascii?Q?PHJrNuEAOv3K13zJoB5Gs8jytqfpRnZ2vblu4qBwc1EDiXNTfBzoeBQW3xpE?= =?us-ascii?Q?5Heb1a0pHuJnMemn5XRcEg6Npvzl6oRjIDH4yUVaEmGLKKvBy52m+U/3tZvt?= =?us-ascii?Q?85ZednCkcyajgWlBBuOWmbgZu0FAexOKIPwEmLOCpJ8nbAwhD6GX9VzWYx6A?= =?us-ascii?Q?43kYZgM7v6jyrq8KVOd4k2w7CcYvngtQ2LbCxfbRvUeQrpY1MmSe5RljedSU?= =?us-ascii?Q?vwEb2VkI6TF9nTShFHhZ9ZUQd4+aBVl+8DF3fQ9gIa2PD8K2u/6xmYEFMMY+?= =?us-ascii?Q?EbrJo1LfEyIYUTSTdNaKF2VNqvhACF+cvTKDPYJ0t2vKDj+IjFkwUkdpLcKv?= =?us-ascii?Q?ZR845pXErA234C8gTIP3ZZjfFfYt6d4xLOiaKGFbJ24zEMNlzqn0PKXfbp4+?= =?us-ascii?Q?LzWV9M9gXbxFaMw1xlC3rIs6mm508F1VRwxbcya8bQ4DL1BqECJpQ4jgbqVf?= =?us-ascii?Q?PUXSVDbAW4BTngvaSJ4f2UmLScIUgofHvf57ASls59KDgHoYEJchAgK1+Rbt?= =?us-ascii?Q?1IhtpQL8i7BtgoimR3TwTgnociIe5KNhL7OfxaODTQI1YSZmPKPPQ7B1f4kf?= =?us-ascii?Q?G73sGBceOtaESdjYIPj6ec5WkychtVScR+v6hciZWtP/jMzZmY+2MDD/WQPh?= =?us-ascii?Q?cIgqu+LmeU5Rlhsfj/Zm8/Vl1doAyx5jkz4YHbLKcJs+CLs5ZHtKnycf4g36?= =?us-ascii?Q?aSZs/QF/vnP2BLVpInrXXjSDqssr9E1WEZZ7xa9HBJFGq4JBc49p9+vcBjpQ?= =?us-ascii?Q?jKB0tETbNCUyRA0bsTqzckFieafDJDt2oaKGB0HuQj3yJzpEd0T1ZlCaZKvz?= =?us-ascii?Q?xDEgOR7AX16Ue7F4HsO63a391aIAHwqYAMkPIxBkk6Bk1vrQUdeReK6GpK4C?= =?us-ascii?Q?Ws+oyS4Ewh7Dn9dN26jgQcDcTlHE+EvOWWFqYYryTq5wZ8x27DtVCa9Sjc4A?= =?us-ascii?Q?YbgCV3GdU2TnVmualKZk4i7afLHZLqKAUIEyKKvTOr3RbOC6q/nbWndoicZI?= =?us-ascii?Q?njfj53GenyeOTD+nHYnjv3apqnBjmuBPrq11tUK1CixJPxCqWn0rTIUfvK6B?= =?us-ascii?Q?GKaP1MKM/T6GgwGSGFPgsnlh2zcGON4CPiEWqcojWs1fQhhbVaIl7CgOedoJ?= =?us-ascii?Q?85FY1Ce8RoG7XyFSAK4i1V5Lrknyl4b8To1BjCPuoLI2Gkylvbp/mmNonH/N?= =?us-ascii?Q?0vBfLtFiWdscmRQ7JMeB1J/r0LAxCyk=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: a9115d3a-4887-40e1-deab-08da0e7a5944 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Mar 2022 16:13:07.6580 (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: fHDAd1kbfTzb8U2Oa4FUSpqf2qDvEQNTZtW7A/41T5ElIRisgkuM2oGGsrqaMHFvGwSc2ua+l/3b3q3jAzLECw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR0402MB3938 Content-Type: text/plain; charset="utf-8" This patch added a new struct member sched in struct mptcp_sock. And two helpers mptcp_init_sched() and mptcp_release_sched() to init and release it. Init it with the sysctl scheduler in mptcp_init_sock(), copy the scheduler from the parent in mptcp_sk_clone(), and release it in __mptcp_destroy_sock(). Signed-off-by: Geliang Tang --- net/mptcp/protocol.c | 4 ++++ net/mptcp/protocol.h | 4 ++++ net/mptcp/sched.c | 21 +++++++++++++++++++++ 3 files changed, 29 insertions(+) diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index 2c684034fe7a..82b3846147a6 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -2662,6 +2662,8 @@ static int mptcp_init_sock(struct sock *sk) * propagate the correct value */ mptcp_ca_reset(sk); + mptcp_init_sched(mptcp_sk(sk), + mptcp_sched_find(net, mptcp_get_scheduler(net))); =20 sk_sockets_allocated_inc(sk); sk->sk_rcvbuf =3D sock_net(sk)->ipv4.sysctl_tcp_rmem[1]; @@ -2817,6 +2819,7 @@ static void __mptcp_destroy_sock(struct sock *sk) sk_stop_timer(sk, &sk->sk_timer); mptcp_data_unlock(sk); msk->pm.status =3D 0; + mptcp_release_sched(msk); =20 /* clears msk->subflow, allowing the following loop to close * even the initial subflow @@ -2994,6 +2997,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 9ad7d83767fa..b70582f9c3c9 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -288,6 +288,7 @@ struct mptcp_sock { struct socket *subflow; /* outgoing connect/listener/!mp_capable */ struct sock *first; struct mptcp_pm_data pm; + struct mptcp_sched_ops *sched; struct { u32 space; /* bytes copied in last measurement window */ u32 copied; /* bytes copied in this measurement window */ @@ -618,6 +619,9 @@ void mptcp_unregister_scheduler(const struct net *net, struct sock *mptcp_subflow_get_send(struct mptcp_sock *msk); void mptcp_sched_init(void); void mptcp_sched_data_init(struct sock *sk); +void mptcp_init_sched(struct mptcp_sock *msk, + struct mptcp_sched_ops *sched); +void mptcp_release_sched(struct mptcp_sock *msk); =20 static inline bool __mptcp_subflow_active(struct mptcp_subflow_context *su= bflow) { diff --git a/net/mptcp/sched.c b/net/mptcp/sched.c index 1fb3dd24d6ff..5ccdb1756dc6 100644 --- a/net/mptcp/sched.c +++ b/net/mptcp/sched.c @@ -125,3 +125,24 @@ void mptcp_sched_data_init(struct sock *sk) { mptcp_register_scheduler(sock_net(sk), &mptcp_sched_default); } + +void mptcp_init_sched(struct mptcp_sock *msk, + struct mptcp_sched_ops *sched) +{ + if (!sched) + msk->sched =3D &mptcp_sched_default; + else + msk->sched =3D sched; + + if (msk->sched->init) + msk->sched->init(msk); + + pr_debug("sched=3D%s", msk->sched->name); +} + +void mptcp_release_sched(struct mptcp_sock *msk) +{ + if (msk->sched && msk->sched->release) + msk->sched->release(msk); + msk->sched =3D NULL; +} --=20 2.34.1 From nobody Sat Apr 27 07:31:03 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a05:6a06:1f08:b0:4ab:e69e:bfc1 with SMTP id d8csp1592916pit; Fri, 25 Mar 2022 09:13:23 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzpT6Qzv6+xp9vlIdcgqVUhcmMXzWBeSQuXtWtTNI3VxN/uqE9sTQu07tM2+b6NJ5icHvSJ X-Received: by 2002:ad4:596e:0:b0:441:ec2:7092 with SMTP id eq14-20020ad4596e000000b004410ec27092mr9467457qvb.28.1648224802979; Fri, 25 Mar 2022 09:13:22 -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 y17-20020ac85251000000b002e1fe671520si1415335qtn.523.2022.03.25.09.13.22 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 25 Mar 2022 09:13:22 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4445-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=Ygcu9nu2; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4445-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.197.195 as permitted sender) smtp.mailfrom="mptcp+bounces-4445-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 AE2631C0D66 for ; Fri, 25 Mar 2022 16:13:22 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 6F36B28E7; Fri, 25 Mar 2022 16:13:21 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.111.102]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 896B028E0 for ; Fri, 25 Mar 2022 16:13:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1648224796; 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=L113C1CyIjigBHSG3Ku25ohLRxwOK7rng93Vdk/CJjg=; b=Ygcu9nu2NgGQaS5A7VRHnZTxu48UZjAhc3gTLUo0mEHW6aCF9w4BjTGd3vCVe0v8xbeNvV nyOSOCrlO0jSvj2x3Km0jcQcGFRjCfiG/RjlyUtt0RZCA8CmwMt58oa9CpKVinfq0wTGg9 rBUXcjk50XL6r4YmwI8pSeoKjtcvBf4= Received: from EUR02-VE1-obe.outbound.protection.outlook.com (mail-ve1eur02lp2055.outbound.protection.outlook.com [104.47.6.55]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-34-y31MRWJ1NjqA7R9A_S7eNw-1; Fri, 25 Mar 2022 17:13:15 +0100 X-MC-Unique: y31MRWJ1NjqA7R9A_S7eNw-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=oXNnKCDtrhpZ7dqg1uLbOnDCzNBQQD6eO4rCHRxGbrHHfE0ckh6rMfzKLJmADzFgiup9ta04kiBoUkskP58KcL+9KPyRZny4e4kpUIF2BQ7ewWTkm1Tg56xKbtgbCDu0WjozeQBNkFjDU35IxBPvAjoFEdAZYhdF8Q/bD2ltj5rHYCIjC828zDaLg0Ikp/5GfrSlL45VgEu1pvNlCC629pGa8EnswUkJTc4pm89LopsztULfaIS4QjH3dtJffkvvJuv1d8i6sZbNvVUdloqydw/FxJtRBt8I7+79d7XvcWPaJP/LRY/3x0Ck1C9VcBG09XMlJeWxvISXFEJWNf3h5w== 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=NyK1m92KGgv1I1oGgO7bR3/zPiwamjdS6o2JFjVrnqY=; b=QkNLtiOKemWgDUa9V5Px45C4ShSrJsQAn8DCbFGMkVY0DDyp4dWZeRW2S/cG7ost+guhVnoYPxPUQYKJlDAtZXvWxOC4S50Up2BW6TcLqVgH54w4X3mpaP6u4A1xupsBYTDUOU5NAfPmXEmPctig7j14h+b2YY13JkN0P2D4U2BE2vuvGLI3ff1w4f1OH6G+GKc011PNzdDvZ8YVA7as0rDeFP3fyqT2Z4STxDvlNzKW2ZwSURJq0zEVikuNXrGShag3Ab4mVmGVnXKYbnNWGnEOSPmZ1sMbGRvPubROHC/7aTa6kLCi5vOqPXhvo50LVTejCtYEwEhWTHhVh+8jeQ== 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 AM0PR0402MB3938.eurprd04.prod.outlook.com (2603:10a6:208:7::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5102.19; Fri, 25 Mar 2022 16:13:14 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05%6]) with mapi id 15.20.5102.016; Fri, 25 Mar 2022 16:13:14 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v6 5/8] mptcp: add get_subflow wrapper Date: Sat, 26 Mar 2022 00:12:01 +0800 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HK0PR03CA0097.apcprd03.prod.outlook.com (2603:1096:203:b0::13) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 13893a06-3c22-47c4-9659-08da0e7a5d81 X-MS-TrafficTypeDiagnostic: AM0PR0402MB3938: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: Hlb+gGzEKV0RVEaQacZTKju6MrahmBjwUAdYEpqm35rS4pqAaq+CEzPmaRJv251rsvaKH6r0eVuZtpJWiAVpnFlgMi+o2MRIPp0i4hw1YWhCi2LuMFkscAj9iFN0IG1K4Ky+2FFk5+IU1B933eLHA2zrKAwjNLnrHMi3nlXryHXoK7zgfg3n9XOe62xUclB4xBX/7Xs+Kc45p2epr73hjhrSJccdkX7GIdfMAVK8Rh2APIgZEo1Ndet4EAL986cIQZqPE0PFRBoLixMieHw9VO9p311xcm2NQxMxb2PuXwRi50inLht22FpnAcgZDvXzV7vHhW97gQxiOToXib1OUPSWIK7TEmf0hXBmT5mZZL0IrBZauoEzgAZ7pxmWAVpemXWQKQAUvlnYDtNQtsZr9b9Kcm3U0e03XFflLJjW/Ifkae95Lv6XjQHYBCQhtZ4kwZlXQuTKId0Kn5G6scunK3iri5CLpzDQd+glMNP74N5SQp0SkeW6fiXwUWSauWR3Ecyzz6RiS90hbMU1vpxNMEYvoSIZIuk2oGwFFZvJrR+fRHM84gtt5xx3C2d9TNMT1Y8LZpEqPIQZShCci5+ngYc5C0ndX+Nep6B8xabn41QyJPrVKapkVTVSOE9FPRWKNBzw9v3qmxEsZRDROkp5sMGk2BDDMiCwL4DK8HdF6Uo/Aou08hREDy+f0x/rBm4d 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)(36756003)(4326008)(508600001)(8936002)(186003)(26005)(8676002)(66476007)(66946007)(2906002)(38100700002)(44832011)(5660300002)(66556008)(83380400001)(2616005)(86362001)(6486002)(6512007)(6666004)(6506007)(107886003)(6916009)(316002)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?gZjVS4MwisNZvqUZlXaXBi+QUG4lsU6CeKggC4kIxayNkrDUhLqf0/r8tqy5?= =?us-ascii?Q?g914AOgUyhCTrfkRGKt6J1Dl4pWH9LXIUo3yZ+tEGTQZy9+HLdhwKpngzHdN?= =?us-ascii?Q?Hc6qMe7l/oosTE1ZxwaUsAM1tuxykDvh1SKbLWQM4Zjxz1a8f6TNiLFKGbcC?= =?us-ascii?Q?N77Kqc8ixyqXgDYXnCwDZ6v3Mlvur0R7F3StZJtVMvn6tMsgPKNkGxAd+q5l?= =?us-ascii?Q?4BOjZJoBezmVyjtRZoUNB/MylNFmvWj1+xUc1yAOsRMHZ1rVwdV3bFZvRSpi?= =?us-ascii?Q?2ifDO1vGC3diQ/8YtE7Vat7adwsMfPHnSS5/Fq6fX2xLKi8R6rOMVxoDBVu1?= =?us-ascii?Q?gv2ZWbvyJvsDe3bMecZ4bsnOoJqgKhsSIeLqfjK8OItjaGQ1EaW2IegKKBbz?= =?us-ascii?Q?7oELT6V+uihQqsZyRbSpBPJk0WIv88CpXb9QUVeY4b9RejGznqxv4MVM4bVu?= =?us-ascii?Q?3A4zrgvdrhHc8MVcSaPykcqozAqL1nqZi5SAE7aYCPQJ4r8+BFJZz7coYESW?= =?us-ascii?Q?9q20L2NnxeEgIOdiPxUt4eHhiR5ik4642D6YUbdCxNnzUSj+hE+ufhTGMF24?= =?us-ascii?Q?NmdT5BBhDZzYCnhk9Y602PCuQrplt0HxHc5THiT2+IWNOniPg0WDWVs1xMzc?= =?us-ascii?Q?OGAk03iIg0N5GFjigtLbx3mjnCu0J3FF3Yza4CCiQUWSj45Il25JBdmvaxFK?= =?us-ascii?Q?fXk1WUNDp+LPRIDgzsvJea/AEzqLdmN/5YtLiNeva5Neq7tPGKM4AYgWA7Fc?= =?us-ascii?Q?+rdURJ31x5E+38kpVVyQTjHay7+H3O8jHMT/zynAwkk7fZRWd1SymF5upxF6?= =?us-ascii?Q?JNMIVIjk28grHhRQt5ly9+tYFjIGuSN9iqLJ+QiOf/fE430Gu6hUZkHA9bWY?= =?us-ascii?Q?ao5sPlM2PAcbQ7EAgEJDxXVtjpEU+JLH1Wxt2BpcLWerdl73rJIZuN63gKX+?= =?us-ascii?Q?B2dW0pl84/UxZaCHp6cr/2BQibYciaFDiMlaFK1hiIOaS8h+J2qHO4aoicCS?= =?us-ascii?Q?RPG8qukP5hlYqWsQw/OOo8FeVaGa3iQ6jE1FZLKDo0MyP3Taf2UBHal4ex/A?= =?us-ascii?Q?Ddpt+Sxv8FK0gWeuAR/h35x03Xdl1ACOP5MF9OWlL3j13jTinp1dRyYtre9c?= =?us-ascii?Q?Wg2nLqzc12FJhancGSjx6tIx53NLouhLn1c9fg6+nwS6B9aJU6xzsfnrY/lW?= =?us-ascii?Q?tUwFI0y1tILAIAjk8UNqvvOb4BhPOHMbao/WirnllBTBTrE988+/BlW8RDjz?= =?us-ascii?Q?cMQa+CKmPROTPOw8mpIdoP+Nq6wBjqFHjqsieczdxrlnEftMjIa2s177qcnf?= =?us-ascii?Q?9/DQI0QCVdchk9SI2uVCr0AdalXvTzYG1nYvKchomUSEWfn4yT9EgkP/glhG?= =?us-ascii?Q?jHVNL2Tmo9uPgvymklJgvfx0Kv7ba/zrbgZwBGc2fMuVBSt5OCc40Gw/BNv9?= =?us-ascii?Q?nbBWcLRy/q1RCucXkQ9ahzTOWzUAnUDFwWWPeypzkNyygBbCWbh+TIIVwQj6?= =?us-ascii?Q?NjR7yaym0KB/bOjboDJeis4P9fCpYv6YSLHPZmFIMyVnWom3CVITB4q2ETLU?= =?us-ascii?Q?D4HSoKjRynEg4FAW50Jjkvb1WVl5vw2K7zA2NnRZKtRXszM4QvNVeS9EfsQW?= =?us-ascii?Q?TiSo0oP5QlMD9PBGjL7IvAYY9ggRCEcrkx5hA3uuLisaWkYJJXBdrcqmjtF/?= =?us-ascii?Q?je0RkqEM3HwLJRG5OWQW1cCx3Q8zaPUd+BABDVhRNq+J8p99xSoERxVZJ22R?= =?us-ascii?Q?+an0boXEErQ4ID1Iz0zuYcqEsjEvjes=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 13893a06-3c22-47c4-9659-08da0e7a5d81 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Mar 2022 16:13:14.7043 (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: GfdCFoJAMkmblfxBemhWGxJEmKCI/7RnjPWAZ2gQKreAMligGOmZN2/kT+GTuRM2YNG9/BwA78VMxgqrMaCX4A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR0402MB3938 Content-Type: text/plain; charset="utf-8" This patch defined a new wrapper mptcp_sched_get_subflow(), invoke get_subflow of msk->sched in it. Use the wrapper instead of using mptcp_subflow_get_send() directly. Signed-off-by: Geliang Tang --- net/mptcp/protocol.c | 6 +++--- net/mptcp/protocol.h | 6 ++++++ 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index 82b3846147a6..7bc7768f63e8 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -1567,7 +1567,7 @@ void __mptcp_push_pending(struct sock *sk, unsigned i= nt flags) int ret =3D 0; =20 prev_ssk =3D ssk; - ssk =3D mptcp_subflow_get_send(msk); + ssk =3D mptcp_sched_get_subflow(msk); =20 /* First check. If the ssk has changed since * the last round, release prev_ssk @@ -1636,7 +1636,7 @@ static void __mptcp_subflow_push_pending(struct sock = *sk, struct sock *ssk) * check for a different subflow usage only after * spooling the first chunk of data */ - xmit_ssk =3D first ? ssk : mptcp_subflow_get_send(mptcp_sk(sk)); + xmit_ssk =3D first ? ssk : mptcp_sched_get_subflow(mptcp_sk(sk)); if (!xmit_ssk) goto out; if (xmit_ssk !=3D ssk) { @@ -3135,7 +3135,7 @@ void __mptcp_check_push(struct sock *sk, struct sock = *ssk) return; =20 if (!sock_owned_by_user(sk)) { - struct sock *xmit_ssk =3D mptcp_subflow_get_send(mptcp_sk(sk)); + struct sock *xmit_ssk =3D mptcp_sched_get_subflow(mptcp_sk(sk)); =20 if (xmit_ssk =3D=3D ssk) __mptcp_subflow_push_pending(sk, ssk); diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h index b70582f9c3c9..92813aea0f12 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -623,6 +623,12 @@ void mptcp_init_sched(struct mptcp_sock *msk, struct mptcp_sched_ops *sched); void mptcp_release_sched(struct mptcp_sock *msk); =20 +static inline struct sock *mptcp_sched_get_subflow(struct mptcp_sock *msk) +{ + return INDIRECT_CALL_INET_1(msk->sched->get_subflow, + mptcp_subflow_get_send, msk); +} + static inline bool __mptcp_subflow_active(struct mptcp_subflow_context *su= bflow) { struct sock *ssk =3D mptcp_subflow_tcp_sock(subflow); --=20 2.34.1 From nobody Sat Apr 27 07:31:03 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a05:6a06:1f08:b0:4ab:e69e:bfc1 with SMTP id d8csp1592983pit; Fri, 25 Mar 2022 09:13:28 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxhwyB4cczVCDbDka0+DvfM2F235AiHn/VwwCda3QsztOPwwggRpnNVMrJzTXBMZse+zxgV X-Received: by 2002:a17:903:11d1:b0:151:9fb2:9858 with SMTP id q17-20020a17090311d100b001519fb29858mr12292908plh.136.1648224808369; Fri, 25 Mar 2022 09:13:28 -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 pf18-20020a17090b1d9200b001bd14e030b0si3356600pjb.136.2022.03.25.09.13.28 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 25 Mar 2022 09:13:28 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4446-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=jMiHGWXN; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4446-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.69.165 as permitted sender) smtp.mailfrom="mptcp+bounces-4446-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 F175A3E0FEA for ; Fri, 25 Mar 2022 16:13:27 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id DC3E828E7; Fri, 25 Mar 2022 16:13:26 +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 4D06928E0 for ; Fri, 25 Mar 2022 16:13:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1648224803; 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=403NC//BzxNy+eal0mq1CgE2HyEPxAJS5JJ4BI6kTa8=; b=jMiHGWXN1MRnD5mVKN3H9dZ0O4jRP5M9DNK2am0xHHfOKeCmbA1tR3ABAjRn4mQ2ybeNg2 fzW4yO1I+qPoQSEwVcUer434zecz4mDLQeN/CiqRQ4t7H5GbkM9VP2hly8AdfQ7rW6NWcN xWbHDUzNnP6NNNBi6DXn2PjMJRcyQNs= 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-10-PX4cWsXEMwypvAlhtNqYRA-1; Fri, 25 Mar 2022 17:13:22 +0100 X-MC-Unique: PX4cWsXEMwypvAlhtNqYRA-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=OYx9Ikds4gNcZYwzuWf+XxOV3mhUWIm+opmENfuhqcXLtg5YqHXmZAle9ynUxYq5aPHo2SGKkMgElczF1+k/0XcAKLz2FocbDWLrEEgA7X0AWGq9UtDfTSKNCx/E32xbKoKTyBlIx4ltKygUxG3Z/9O1Qa8yXTocjtzxhkQb0d0njES8uTtuXtGYx2XsweP5oqqFW7lutYfyy+/4sTIYn5CFUWPQbYKZq56ia8eP3eRbLhUpvv9Npank6t5OHlO1ObhuqYm8SwVxH81CXRjQkehUdO5Kk/KLVCBbn3HhFqvnEeg6CxPmwQ3iQkyXOtZywruKPvrv0/nf53oKSgfX/g== 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=dbFbJx7cZItfPcmZEu11ek3xFdnXq6L7H6KcbcEhc3E=; b=WZJ+ABnltCqhxkL6+6vgUIJrJotE6UqW8rV9j45K/o581cIczHX22l6NKPGmtQOW3eXjE1X1hkX1dbuYM/jvB4md+PoNNDIf4SoY+ViMcQn5smGnoozNRGYjHEJzWumpWLFi0n4h/Dv70V1s/lW9v9wPW7tBmAIEhtUDIGRYtRpswlC6LAEABuZQW6xaBkRRWMeobMSLMwEjRiOog/IbZMQMtVtin4qcLwGMqkf4t3qnAHyJGP68+PHTN9clUh0FswiulrtB5zwEmd5uU0f/k3RuFq6rvxWkzJ9NdJIj7n/mkxtZnCMUBopLktnaeoVNRL9cNkcTjLhzn753ac9tIA== 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 AM0PR0402MB3938.eurprd04.prod.outlook.com (2603:10a6:208:7::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5102.19; Fri, 25 Mar 2022 16:13:21 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05%6]) with mapi id 15.20.5102.016; Fri, 25 Mar 2022 16:13:21 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v6 6/8] mptcp: add bpf_mptcp_sched_ops Date: Sat, 26 Mar 2022 00:12:02 +0800 Message-ID: <531f998e3069db7f5a21ba9e3a888ad5f1024253.1648223504.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HK0PR03CA0118.apcprd03.prod.outlook.com (2603:1096:203:b0::34) 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: ce20de32-fea3-471e-6488-08da0e7a6193 X-MS-TrafficTypeDiagnostic: AM0PR0402MB3938: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: pMtrSwXFTHkujmGPIpAbNjpBU9KRlXudxzekQ3jQsn0GhOGRRrjBxr/e4DxZ7YaK66ZLXQOO0Iw2S/pzLaFLzCspQmtx4D9AQqI+lLM4BU+aDsCbegTURUnsHVeRvhwErdkPbIdkVJFITfvdAod5DG9n8p8xD4cwfe3owBMaxme43HRUI27EhNVqaP/EvpCCdjV/3By47OUeo9fdwLzUgDZer6m1eqDLtwFK2G0FhPbJ8msUseROE4WWnn0x5dE00Cgp2CAIflHsvsayMpbzf1/2z4b6PnMvQHECvHidUoMOsJayLnbi3y2xU7QIwsO86UCGkV6xcqd3zvpVxrMKvNwLl7BNk56gOvMkXk2dRowZd89wWu+yPVq04uuNFMa1WWlG300QenagmDPYcgsrIaZ7a4IGdf7B2qNi4WhDnszLtn6aGvumrUjK1wYZ9ouyacdSgeiR0Zdlu3xL0CKGnHyvF4cMGrAA2/9A4X2caf1EtKBoOWvycIdBOlyVGHfs0pSY01PCTl5GSbhPM4dpJu/tqdRPB7ctt1JimhOPEyYRjqOi9yvjtIc1GWnh8XGMfpL1jTZBOwYiabwqj+pkG+PqCjDFnf9Thrwe2W8W8cUFelXRXbkwS8FjK8Z7EW5YNHWsCTAn/g2CeMOCxOvf7aBIthYn/scSYd6bjMtp+ZiKg/4aEBqKa/X+KmBH5BYhRQHjBVWLTR/N5usN4++fwA== 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)(36756003)(4326008)(508600001)(8936002)(186003)(26005)(8676002)(66476007)(66946007)(2906002)(38100700002)(44832011)(5660300002)(66556008)(83380400001)(2616005)(86362001)(6486002)(6512007)(6666004)(6506007)(107886003)(6916009)(316002)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?rBJWg89OPmQcQu7+Gkye0l7oeL+58TEzCArLnIEl6GhJLF8AjIkGN+Mp4tJ8?= =?us-ascii?Q?4fRpDihMNAeuszRkAO+79qsirSwBJOVz4aTY5dA+Fs5LGBPsSKBYdhiSnHkp?= =?us-ascii?Q?0Q3efUmx1pRWaRU45axLBSwCNgBXyRpc4iqqvHrfPt/x0geEf3i7yj8X1IaV?= =?us-ascii?Q?3rUgicxmdDhWDhTO4Tr4b+3gxq4N6hf03ZfjMJy5bpqd2F4BNTVTetRIGRBX?= =?us-ascii?Q?AfDKcLI4jFtFSb3oHj9BCXehEO7aUfLAavNkhhrO8JfYK3MK0MbT4qoGJxB0?= =?us-ascii?Q?e6vgfbQKPlt1YtK419QSqZ3LUJBvyLh53s1xWawD5+vsaTUsSWFk1LEqwAEh?= =?us-ascii?Q?R7X+xBkW6zLnFocIMDa5NwrkLReNZpRZdzFl0K8WzHY0LLQj1axH8BZE/6nK?= =?us-ascii?Q?t2BWBXmXcR6+K5HdfBo1G2dUfXy8oe8ZwFjC9ZS6Cbk8Bq+mz2Yl4PXHEUpC?= =?us-ascii?Q?47F81KaoYgqU5bJ0DGh9FrXWVBMJB9iGcNOolS0p31FpE4iJ2SIZlTyIWhg/?= =?us-ascii?Q?KHZDw0MjOKEyzeSiD2lQ8mM1JAegLVUtStidJPLLHnrZSpkUQwSdiqWcO7O8?= =?us-ascii?Q?cfHcfCOm2Zz4CzY3nDe1XfFqyyUWl134c9D3X61DTdiDcjU/7INq0G4NxOZS?= =?us-ascii?Q?T59i145P7UnEv4+zV+48V3OZqf9522Z4wVUYfrgyhkaJD9sMIvTVj4WQimpY?= =?us-ascii?Q?2rcyPu2JKfVJ1X82EVSLEBJUxCK6OKaGqFDb4elzfhZMADBSqt59YMchljcd?= =?us-ascii?Q?rEDXaxdxdAuJ/AbCswcCwnB3vObNpy+poHLqX4ClWZJL6y6v0R0t8kI1GVP8?= =?us-ascii?Q?H9SjuPU2aZRbuZOHhxIkQlfKCNHIeUhkRmI24tzCvhvw3OkPkRuTt09lmFjG?= =?us-ascii?Q?UgysnRgqSXCduHzMXxVJzaWCw94wvFL5DzGFFJFSKVsFYPdzsJAhmTu5/eNH?= =?us-ascii?Q?OcHei2c+8yFKlvC0E1HFXJp1st2Ewk0/KuJqDz+nmcIBU3sovChiutY4Oln2?= =?us-ascii?Q?DwgGNJVbWq0UOk90UyMNGUXkWy5Okc88R9euutDbN3PbW62eCrNW81dZ5EeX?= =?us-ascii?Q?h6nFPgsdbXs8XhEGIQJO+mTu1GKY/etmcIihqelyJ9ICkLGvko2hkj58VTjU?= =?us-ascii?Q?6pc1EUNWUljWSLYkVJycBhfRkoPvRxuMnMSWJ8Z/oYLpInWimtfHzMKGbHnn?= =?us-ascii?Q?yLHJfqzwtrlsbt9czokCa/+Sq5vUy1PQiDN459ElVcerrgiszBAmx2EnIe4a?= =?us-ascii?Q?I92YVHoxkbYNt7Xuz9GPBZJ2aYm/yjg6wLTO1F4jrN/2VCvIvKQLTHIMlbmm?= =?us-ascii?Q?YcaN4qeJgyTi11tcV/MAxli7rycwrMQyv1+fj43kYWad1vCR29nPkwOm/RsT?= =?us-ascii?Q?srl6guGt15pLGK9yW3JycFPvAKvUxfa/9z4GFI6bC13vz0nllmc/H5e8ssBQ?= =?us-ascii?Q?+SMY/LbFPgdqZaoCGxG+GH7SpLSn6r28icpKVu4coBc5jpGTg1eKyTc9ZEjj?= =?us-ascii?Q?5qcibTHknkK9F0wDKyawahIm6GbeuufL4muJgh+/InhmvP/30reGq10HFcS3?= =?us-ascii?Q?kTrgg+WaLBwCKNdE6ESvYAAb8hm9HSinJ+LQaFIeEogEQqMRwqRN4xK75IEh?= =?us-ascii?Q?+8KzDeAReQGhJW56V2dVsfkkGio4RdvZjQLuvspRMjGPBc1wv3rgPZ5ysjdf?= =?us-ascii?Q?G2x21ekciCxNZTm7SPDWJmumoZua8cd/1VZ5XOrDRpxUur+0/AnT0mr/pglE?= =?us-ascii?Q?x12FIqANPn6qbo9jbNpq/99pIOU2z94=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: ce20de32-fea3-471e-6488-08da0e7a6193 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Mar 2022 16:13:21.4382 (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: 1Mi+As+AfqX1QzG3Z1LG/w4kQegYxgMcYVY5cD4ylB6H2HZNM//4JplK2rT5JEqCbfDptajHkMRROJgTvaQTYg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR0402MB3938 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 | 103 ++++++++++++++++++++++++++++++ 2 files changed, 107 insertions(+) diff --git a/kernel/bpf/bpf_struct_ops_types.h b/kernel/bpf/bpf_struct_ops_= types.h index 5678a9ddf817..5a6b0c0d8d3d 100644 --- a/kernel/bpf/bpf_struct_ops_types.h +++ b/kernel/bpf/bpf_struct_ops_types.h @@ -8,5 +8,9 @@ BPF_STRUCT_OPS_TYPE(bpf_dummy_ops) #ifdef CONFIG_INET #include BPF_STRUCT_OPS_TYPE(tcp_congestion_ops) +#ifdef CONFIG_MPTCP +#include +BPF_STRUCT_OPS_TYPE(mptcp_sched_ops) +#endif #endif #endif diff --git a/net/mptcp/bpf.c b/net/mptcp/bpf.c index 535602ba2582..be809438c5d2 100644 --- a/net/mptcp/bpf.c +++ b/net/mptcp/bpf.c @@ -10,8 +10,111 @@ #define pr_fmt(fmt) "MPTCP: " fmt =20 #include +#include +#include +#include #include "protocol.h" =20 +extern struct bpf_struct_ops bpf_mptcp_sched_ops; +extern struct btf *btf_vmlinux; + +static u32 optional_ops[] =3D { + offsetof(struct mptcp_sched_ops, init), + offsetof(struct mptcp_sched_ops, release), + offsetof(struct mptcp_sched_ops, get_subflow), +}; + +static const struct bpf_func_proto * +bpf_mptcp_sched_get_func_proto(enum bpf_func_id func_id, + const struct bpf_prog *prog) +{ + return bpf_base_func_proto(func_id); +} + +static const struct bpf_verifier_ops bpf_mptcp_sched_verifier_ops =3D { + .get_func_proto =3D bpf_mptcp_sched_get_func_proto, + .is_valid_access =3D btf_ctx_access, + .btf_struct_access =3D btf_struct_access, +}; + +static int bpf_mptcp_sched_reg(void *kdata) +{ + return mptcp_register_scheduler(current->nsproxy->net_ns, kdata); +} + +static void bpf_mptcp_sched_unreg(void *kdata) +{ + mptcp_unregister_scheduler(current->nsproxy->net_ns, 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(current->nsproxy->net_ns, + 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 Apr 27 07:31:03 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a05:6a06:1f08:b0:4ab:e69e:bfc1 with SMTP id d8csp1593039pit; Fri, 25 Mar 2022 09:13:35 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwnloKwuK79YFR2U/gE33Md5hJZdrVJXtDUo2lATuYuy0YEKkVABSLt2jKuXEsB18C/R0IN X-Received: by 2002:a17:902:6b47:b0:150:80de:5d49 with SMTP id g7-20020a1709026b4700b0015080de5d49mr12489236plt.77.1648224815215; Fri, 25 Mar 2022 09:13:35 -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 ca12-20020a056a00418c00b004fa3a8e0013si3150379pfb.202.2022.03.25.09.13.35 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 25 Mar 2022 09:13:35 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4447-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=gkMxqIDM; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4447-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1000:8100::1 as permitted sender) smtp.mailfrom="mptcp+bounces-4447-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 852AA3E1012 for ; Fri, 25 Mar 2022 16:13:34 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id A1F4F28E7; Fri, 25 Mar 2022 16:13:33 +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 1090628E0 for ; Fri, 25 Mar 2022 16:13:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1648224810; 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=gkMxqIDM8H13qvDK1rSnuxCDsdobf3NlYipdYhYTPtkhQBg2Senm1JG/iozCPjM0FKR+Uy mVto98VUaJQitSLsEb8XxKHVLt1pwnVU+ZMX2TYXx6nhcye9KsZb9jDAOFUkCPgXQHglXD X304sLxWx83SiA6Moq996ag6HkHytlo= 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-5-1hg8GeWaO_GYjwNZR8liAw-1; Fri, 25 Mar 2022 17:13:29 +0100 X-MC-Unique: 1hg8GeWaO_GYjwNZR8liAw-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=g2TKpV3NaY6o8/uSjEj3kB78Eym3WXJy3vn27PwvypUo9KvTnBPbtNdtnovjhzlAzXOFG1kCfeaqWMVcAZU8YG4iz0IBPLoP2z0aI4yvLkKXZfJ9fwBPrNr9yYAQoyGp1zRKINiIqeQsyzznv3MxL/Ycs8qNCBoTnaHSvwfGM2D9LTLeknyd8Uajm6pPLLA9RYLyF11qSgldxNiMttmMEaZtSZxds4AQ9bFF9Cuay8HXbsWx5yLMpIwPH1cyM8UojBULsFnDdf2GUrzhn0PiQzIH2E76guS2wo7BxAtK1wA/CVkVvA25yfUsA1yeXvECZofNxOgW5/1hW5iDM7vofQ== 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=StqFlPiBzvKE2bUqMaiPyReUttbApadRhN5X+9yfBF2BctEK9M3sMWsrG0fDTOAWkjbeMDzCjybEWANK4heCYTNIQMPJc8/i/+QVhU3KPsolEKzzlXY9fncWrf13L/SKRIOx6l584Eulo4yzpvYwWtwUC59RBN9EKbv8a3FO3H4iA+b40F3DAssXxbKB+EBYzbp7dKTuxOYBiIrOa9bby269gu4ZONdH7FrY/67rz9SF7ZKbdRVSITqCSnAGtrNUfzhwjmJIjrBCpAEKiA9VQtp8BgbdUgBH88jCkyd0bVz0mqMrQjlx76ahVVTizdIiKPVFOX9Y5c8xJi/jdLWJXw== 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 AM0PR0402MB3938.eurprd04.prod.outlook.com (2603:10a6:208:7::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5102.19; Fri, 25 Mar 2022 16:13:28 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05%6]) with mapi id 15.20.5102.016; Fri, 25 Mar 2022 16:13:28 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v6 7/8] selftests: bpf: add bpf_first scheduler Date: Sat, 26 Mar 2022 00:12:03 +0800 Message-ID: <35c97d89297abe349b746582f5db9319c171a787.1648223504.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HK2P15301CA0019.APCP153.PROD.OUTLOOK.COM (2603:1096:202:1::29) 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: 671e3790-9050-4e01-4761-08da0e7a6599 X-MS-TrafficTypeDiagnostic: AM0PR0402MB3938: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: aK3DRhvQkS45rzuFbJWrxbQ0inivzS6zmcaWUFzfTFg9fUpF8KQesObp3hGNIOGhJTUgEklJ+qpnaeIU4TpdLza3Uu58kbaycxnDKev/C7NM10JHtRhm2wNISVgj+ZINtXLptHulIEU/IfPzAC1AY1mVkFmyQ03GQ/td0sT09jgTLAIRJ4PZjmo6Q1mHiAy1ayrfNMh+Ba1fFhhoaLt1sIQkeTJFLSo6GPAbJ5eSJJpSHkPV7HO+aq9w1x5kebnI/R2t3i5CbiBEBc3TtcfxKa5abXYapP8cT6HZsnQsWwtCgU680hKoCgjnPPt2/6bfqEl2KD/1BAS656oQNh4vxYWaaUJgNdwpy4ejeP5KX2MxLDoldhB3+sd3SjebPfGz+/Pq6yhHaIhLnkNX+DcbvU5eUpIuGoKSJH/WdcanYWKcNDDjQla/E24VErjOZDsJihUkt1iWCjN6tqccR8waWTDDYFiXLtkgcyGsf5gb+FYeC02XJdcSnswzFWi/p8BjuVzFr3zaZdov8Q5MYbu1S3xzDGxfadaN1rBlBu+0DvuYywpdYuyREsjeGXJQvBzqHuBexKtl0mz+YlII9RFoWGYJxrlaSK2mgyPT21g/zGEVQvg/bzAibKPSpjxfMP0RWi1TIryCsntQtR+tvV8ANiznXO8wkyKGsFd2+gKQIteUPqbNJIA2iZ+OYU/U97KD 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)(36756003)(4326008)(508600001)(8936002)(186003)(26005)(8676002)(66476007)(66946007)(2906002)(38100700002)(44832011)(5660300002)(66556008)(2616005)(86362001)(6486002)(6512007)(6666004)(6506007)(107886003)(6916009)(316002)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?JSWG+sHFhYh1H8gbIxF0OAh8wC+9AEFyvpE4TE3mWijtTS1OseVdRnmgp6So?= =?us-ascii?Q?IVOiLL+BeX5gVE/clTN8SFZYPp/fmUeOT0vB3kd/uJnxIs+Qo1rQxVKC6v2Z?= =?us-ascii?Q?gyEN79UjybVd7viLlvFEKAqnQE9El6LMJUHMvJ+9FdR+IyaKufGTKz/OrfMm?= =?us-ascii?Q?Lg5qKQeN4etGayxcQTuCJSz5Pm35g7rtAOIg71nhNHdEkt33sw8pYcZzMubu?= =?us-ascii?Q?mfUu4ouZ9EnVYTErkujQeKBzTZ+nbGVhEtV2kLL9VFsTXxTV9S3mZqCkNL/y?= =?us-ascii?Q?Byumt0IUCe18NuPAynOmvRZ9Q4n8Txmx9X9qBUIp1QhyoET0ei55YFFCkIfr?= =?us-ascii?Q?HREOwML2PqLL/jqYUlxLuagreL5Tmv2ouDI6Osk0Fg8ByCzbwH/YOuU9CrMJ?= =?us-ascii?Q?Or0xUDya1A3mBBX3Url408XUbS7BjdqDZx0v0AChWi+r6uSEE9zbFvt2f2iG?= =?us-ascii?Q?gNh3svSUtHhrKHgHt2WcgAj38bRytcf781dxTnrVh7IDCXurHXu4Jbhsw7Un?= =?us-ascii?Q?u0o77kvvth0K0zZJ7I1Ksg0P2DPkQYw9Mfbea0p4weI9wL2FeNUGUnlTFsaI?= =?us-ascii?Q?QfPW/p0+59be/RPZb6ZqEojE5YUsbgTRVo2C40eyutpnuwXe1TXn0NP9+DCW?= =?us-ascii?Q?9wibiSgtUA3IQAatA0R5plIYHxgYbmHuXM0yrVFI8hBc9kWVNuqtZ+KlVcDI?= =?us-ascii?Q?81CWEujcbbiZozzx187FK73ssG7LpxXOG2hsjQqpbxadvRyDLwVCbJPzLhhA?= =?us-ascii?Q?rHigjcm9UG3op+xXrlTbEhKcUH5lePmSKFa3HFlDQSGqooM2LbeDuHJxhRXx?= =?us-ascii?Q?pULlu6+KJ+L+YfjSwgQcrpDi4TtrPxO7uGJQ7uCPtDJwVOL0Qvek2+rB/sz1?= =?us-ascii?Q?eqxJ8SF84yS0LQlmfEbXNxonX4PLmsbdp1MIVfFN45qNWBP4liqTqqr9cpE4?= =?us-ascii?Q?/eIPIZAN2fU6Ns9KQ/N1xp+3dSq6ivKj4z2zT2IcTA5xgJBcpYxZ63pdwcls?= =?us-ascii?Q?yC4FitKY6OtuvRmVHQ59DOdRpYSTfbZDDMKYkyrCWR1S5ILvm7UlA8sIp+Oa?= =?us-ascii?Q?JVDNopePeXuY063mggKAYHI9IWVnuoHGkER+NLbJZAj64WUGzs6Inq4x5mLM?= =?us-ascii?Q?PGrScRZum1XWptGZ+hg68g6GZM7HEyS8ED61sFfND+JMcrVjU64jr34HLPAY?= =?us-ascii?Q?fUnWctquqII20bo/Zc4zAqowy+rtp/Y5FmrE1kemjbS9y5mcBpaoki9+nkvb?= =?us-ascii?Q?jsRUVGj/fO6mNSQ67FCjveCWe3xAoSIhi2FR2CHO8Ztk3yfPoqH4U9+/a4kz?= =?us-ascii?Q?zgJW+pUd3YWbkkEB9KkzHDGI6P2MWYE4PEvtBvPRpmrfeYboN/YhPRSrAWID?= =?us-ascii?Q?S3NWJu0sEC8zZlsTkBUJVaEk4uOGfxg1sFrqysJU0v4/AehV8PPkRjyfcgG0?= =?us-ascii?Q?IecbvnSOuJxQ6XeFWlS+MywEniddd7HX9LpE4Rhy7ZJjoc+CwUMVQQolYS2E?= =?us-ascii?Q?+ut0t/AT5zItE8bSsoZVMXKDU2D8VARxYEcBIwyxjYGAuPrRA2K5hBb08qe0?= =?us-ascii?Q?H0YxcJxspUFJd7KqM3q2C/wevZW4eV2Mg6c8lpewKj/Ng55fN5DV3jwt5SZj?= =?us-ascii?Q?DYJk28AKuxL8EGfS0paVBeqRzkl5m+6rSWV4BmE/XuTrRvWL/yjYSlONvoS9?= =?us-ascii?Q?m7EqEJAN1V5YNZg1bVEHLBDLnmBCNWbcJ2KWa/Dlm8JPvZEnKlDiY0ZjCHSQ?= =?us-ascii?Q?W65cOxbPpSdiZ5CmD9z47E7H5PIoGsY=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 671e3790-9050-4e01-4761-08da0e7a6599 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Mar 2022 16:13:28.3907 (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: QPOpwR6hgmKcXt4iiCbjZxPhsJlnfa9X027Iq8EW9gsgrXEGT4Od5jps+5mOzfHV6NJJZCDtlimZQfGAG50V4A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR0402MB3938 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 Apr 27 07:31:03 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a05:6a06:1f08:b0:4ab:e69e:bfc1 with SMTP id d8csp1593124pit; Fri, 25 Mar 2022 09:13:43 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzPCAiMVdqbW1KLUBWLTsgk1e4L8rTYcPYYO7w9tEtHVWVxg7uBaUcReU10YnC7uZwyueTQ X-Received: by 2002:a05:6214:2686:b0:441:6d03:974e with SMTP id gm6-20020a056214268600b004416d03974emr8191915qvb.30.1648224823152; Fri, 25 Mar 2022 09:13:43 -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 v18-20020ac85792000000b002e1fbf3be2esi1849121qta.31.2022.03.25.09.13.43 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 25 Mar 2022 09:13:43 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4448-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=efM3rzZp; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4448-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.197.195 as permitted sender) smtp.mailfrom="mptcp+bounces-4448-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 D815F1C0EC4 for ; Fri, 25 Mar 2022 16:13:42 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id D3B2C28E7; Fri, 25 Mar 2022 16:13:41 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.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 3698328E0 for ; Fri, 25 Mar 2022 16:13:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1648224817; 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=IyT4jemTa9L8JakbkQVefZW5wjMLlv+8fiP04Xdd1ZI=; b=efM3rzZpEUa3h8LrcUEiv/D4xjt2ZCfxfeKDsf4AxxlHcj3yRhfbmewy8rx/4sPrV0+GpK yTBOo5hCziteXsedR5G/d8g/umbKwH7Tc+BVlHuz3gZJAJsmoACW9M9t8ewG2imL32MMmC VubojGL5wUBVtaJDaD5lDoLgrvOQ/m0= 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-k-j_k72xMhWyOunY8odDdg-1; Fri, 25 Mar 2022 17:13:36 +0100 X-MC-Unique: k-j_k72xMhWyOunY8odDdg-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZMf472EerqrQ7bGryfEb7T/i3YGUGjzvN0wfSliHK1MW4QwtW1xkQmnzpKwugmzCpc+jtn6bD0dq1/hOcBOZY2kdJM+YB59to6vHRtuIPC6H3xnYlzJsIZFoel3bt2U5PoYRWS1XUcsPRdJuPywbirIlYZnb09zdwxLd4T1Mqt2qRctT8hJPBjbMkghd7F+YOSbZ8HFdR7Dd5rMzMeclx09IKzny13/7W0YM5A9oKbof4bzH4WEHrsDk4FrI3cEidgDX0B36FYUEdK1YSVG0sERW21aI/HOsZIoBKziR6YHIgvZC53EZHHQzvU5T01acJnyW+vdchM1RVBWeCSW2Kw== 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=o7zx/Z8Becx6fg64gvMVJuE3trxQZJhRIm9RAkJU1e0=; b=hKf3T5WRPY52vjXxUbXAGHi/CuWYp/BayMERY9/g9gZfIcq6rEhuKmc7Z7zuOkXudQajCHinM9kfLlUDRTdqhAlNVnc2blhWvJEK/4tIwWG9KGBt3HVcYtJ1xWAjmRXtG8heI750yMpj94fEvsFLxcSv7ogXLlrZ0j2xbigjJ+g1lQ3m3JjoeZR7kPzdolKZxsjdooxRuDdW/OINyh6+2zukG6UMxxpyTUmwx+3wUm1HAAMMGfJ+z5Wfi8WBN23RmReRlMWV67wj6CGN3bEbOZnxQsz+2Ul2UHMlH6X5zZkszuqAUgZ8ahsXNThbrvHagyhuBvd7WZLxDdSOtr0hfw== 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 AM0PR0402MB3938.eurprd04.prod.outlook.com (2603:10a6:208:7::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5102.19; Fri, 25 Mar 2022 16:13:35 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05%6]) with mapi id 15.20.5102.016; Fri, 25 Mar 2022 16:13:35 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v6 8/8] selftests: bpf: add bpf_first test Date: Sat, 26 Mar 2022 00:12:04 +0800 Message-ID: <2d4db6f87d2a8f8be36140aa7feabc7cdea87ec1.1648223504.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HK2P15301CA0013.APCP153.PROD.OUTLOOK.COM (2603:1096:202:1::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: 476b6af8-f36d-4bd1-23ec-08da0e7a69fc X-MS-TrafficTypeDiagnostic: AM0PR0402MB3938: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: DQZwf0LO5CtXB6HaOnsZ8JQLLNK3xczzz4GLvKWu2Eej2JSstxSrMHbPRNGEgsc6OgFhaiSf21cyLlE9T99qkGi9O9qaW2QrOMYqXkyMfNrx/8xzb4NpmSYbpHBumhXzKjZYUZ0XC5pZ6+sTOLZie3/Ca8U/8bq/rmSwcRFv0WkzY6uPt/4bywRKK0LrP8anOhuDa5J68NUJjJ/OfzwxwUTdPQaK19rheiFxuCK/o2rghPM+UEVe7yhqr2fTJrVp6nYZKxrM53mPntkz0kDvOVTXvxy9zTVTQ6Ho+8zKruLzwGN/EjEYX7ZimRo+bKSC6SseenRJHG5ue3FGCAP0AqLLi988mdIClkf+VP+3nShp85MYm+R8RuE0d577mv9bTbyKCcCrEGqgbYAvo6VY0CgCTwFDC+ANn+qVclYJzh5IhFokS6Z+eO8MqZgICH2D4fnPuZfgrie9npAXPryc90iEoa1ur7pk1KnOlX3W45mdDLT3NeGQxvuuSp4MWUPZprrCTy8SHzatRC+XqJYBi/k0ClBT21gUJxrnpsYopPgpDjhCBKZc7fprstJKRKXFaDu2CNd1ddlh/1rtfDp1BFqeUfXZZFb+JDMuknxm/3TM4y7QXRA2UWbHY6p6SPy9lgNoLPVtHpwUHiA4aF68khz9iLbSZ1cFpDrY4EyMYUq3C/QYrxYxyAJemwSMl5m0cmk71qU/qjJcqOKr3jTnaw== 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)(36756003)(4326008)(508600001)(8936002)(186003)(26005)(8676002)(66476007)(66946007)(2906002)(38100700002)(44832011)(5660300002)(66556008)(83380400001)(2616005)(86362001)(6486002)(6512007)(6666004)(6506007)(107886003)(6916009)(316002)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?LLwZYEe6hZHXcOivRdfPzSTESQIaEbLarcHLOKUN88oStFUwuP8a6vn/09As?= =?us-ascii?Q?8Wv6P1bLqrE+ACCoEwFqUBLYRWlmTMV2KKRS6WmCPHs8n/4VJpLMc1+QwXf6?= =?us-ascii?Q?kUBK1/52Y8u5N6317qXJWB5/1n6phMt1Vv6PUk4KehiUFZiquPxZhwn6PkH0?= =?us-ascii?Q?rgf9P7Os9Y4aKtRh8cHZITAdn6zPwx3uRunzzNQV0dfHYVWXymb3snAthH9B?= =?us-ascii?Q?03EdYyGQLNPq9hbgvO5qN2WIB41hUEzI3+YwiOQ+h+3OCPuHOU+6GlTsVtOR?= =?us-ascii?Q?ZhrqOLpKaRhGdnSVCdHiWBvjOYCL7sF6jsMGbKorSh3hafnzKuGjVq13be5I?= =?us-ascii?Q?prCTgo+Hg+/jcBDNMf74ScZ6O9mp+Cj8HwIKk2oArPbdxksKMuK3WJgJdi7q?= =?us-ascii?Q?ctcorF8UD2Q8UQMtUj6rCnmT7KStdpaKggpul/LeRcJJF46NUEEVpRE6HU8b?= =?us-ascii?Q?+Ai9vJ2QJcQ3oB7SSoxz9SAzdRFOV/qD9Za8JetCgnta5ImZVgDr6HuUGYHd?= =?us-ascii?Q?GJiClqt1rGc0eFSzv1O6PCeL5DHKDppx78//r/ocCa1+EKZrT29MUCg7lnj5?= =?us-ascii?Q?9npsLsTY69scYK9jrYi3Dzpx5uIRRAx7I6MqO6fzAJhXZtSneHEaNyjlogg8?= =?us-ascii?Q?3YgJKImNyCSmHgHZUnJr9zoObHk+QHBRF7/pNhrXpomKDUB8hZ2mXmGjc5Jh?= =?us-ascii?Q?FDEW7wIvLLzoZoHf7ufyb7Rb0orNlHr1vBEGTKiDvHsH6TSo+E6h1iuyighX?= =?us-ascii?Q?+ANDlHsPAct8AZ80rtaFk/KXB95hk1I95I951Hqda+YMfTpqC0Gh+akIAte7?= =?us-ascii?Q?ey6k5fSdOJ26gLYFObf7SrdbQs/ym7angim8T1oNGRDCGx7RGamcAT9+8HVu?= =?us-ascii?Q?Tudvs+tnwvBOxcvTRsXTgArAMFISAM5NjN3/RBKfl61+IISG/xtOtGxkUP7y?= =?us-ascii?Q?nsEeeX6hIpcZf6nT5LiBPasmmdaKNBf7bAF4ph7Kv6jHufhpj1ydG1bwZL4g?= =?us-ascii?Q?ieOoSenWz7LDW59E/yCEaOfmDMw9qRPJBL25rPV1w11fjY1nXYKJKTYIzg4t?= =?us-ascii?Q?GieHOZIpy0EDIBVXIKDAKJlyjiGLtv1hBgSRJ+ixgwl1lOz66C+52sNDyVt1?= =?us-ascii?Q?VayJm6g3ffmI4k2R+b0sECZtt0xcZDkxfsp9wQozkzD9XUBVeymqOAiLCmwK?= =?us-ascii?Q?k1WQ6WKjWE3hdY6mXMcecMft9/m77mPwyc/QcEcYAueLhVKvcSi2gYtQCZWN?= =?us-ascii?Q?HQNvSCQR96RLFihZMVnph7bnEITubdwRerxVSm8FVar1miQUIanTB10qCWSu?= =?us-ascii?Q?aarMb3GADTCawgA0Kit2COWzL4oS1YBBDVakwIhdXL//h6UxM9oPj1bEj7NS?= =?us-ascii?Q?0ukgCdSgernpt+GhbCZo2i/S8ILbge3njq7RgZ11V6rnW28EE/0ag0/YxJ/Q?= =?us-ascii?Q?U9pN9CtFjvzGBUWFs+BIgukX1jHGsHwRNaK32DkntXcx2Wl9dT/4SpzWW9dk?= =?us-ascii?Q?9BdB5T/x6yS+2j4Qol7DMWLwdkGKuLGGNcnUN12djSHY7pzPILoNDQDhwbkl?= =?us-ascii?Q?R+KsaHyW5pf7V9F+vnQcOHABWT/TG6/rBpQ77DUjqeAYSFR8H09+g6XW//In?= =?us-ascii?Q?8/9g43QiT5VNO3deTswxKJH0ayhsi+bfy9Fzr41G4OXZbpEfDfbWXVb5jPnt?= =?us-ascii?Q?K08weT5JhIQxmwBR2hcRnAzovYrQFrXvSZyi1YDqsLuWA1y7q1ofH+MUktJT?= =?us-ascii?Q?BgVoyKJDZVp18u9+OncI2A+xj+iMCcY=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 476b6af8-f36d-4bd1-23ec-08da0e7a69fc X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Mar 2022 16:13:35.6402 (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: 6wXiGPqfTDNRNEazn12HEPPRyk2WJXDslqmHRP3Sr5f05vUqtRRSBb2A2QPv/HITN2+H9P/SazRuPBbD5WHZtA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR0402MB3938 Content-Type: text/plain; charset="utf-8" This patch expended the MPTCP test base to support MPTCP packet scheduler tests. Add the bpf_first MPTCP sched test in it. Use sysctl to set net.mptcp.scheduler to use this sched. Signed-off-by: Geliang Tang --- .../testing/selftests/bpf/prog_tests/mptcp.c | 114 ++++++++++++++++++ 1 file changed, 114 insertions(+) diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing= /selftests/bpf/prog_tests/mptcp.c index 888d9e9b8870..c654df1141a9 100644 --- a/tools/testing/selftests/bpf/prog_tests/mptcp.c +++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c @@ -4,6 +4,9 @@ #include #include "cgroup_helpers.h" #include "network_helpers.h" +#include "bpf_first.skel.h" + +#define min(a, b) ((a) < (b) ? (a) : (b)) =20 #ifndef TCP_CA_NAME_MAX #define TCP_CA_NAME_MAX 16 @@ -19,6 +22,8 @@ struct mptcp_storage { }; =20 static char monitor_log_path[64]; +static const unsigned int total_bytes =3D 10 * 1024 * 1024; +static int stop, duration; =20 static int verify_tsk(int map_fd, int client_fd) { @@ -251,8 +256,117 @@ void test_base(void) close(cgroup_fd); } =20 +static void *server(void *arg) +{ + int lfd =3D (int)(long)arg, err =3D 0, fd; + ssize_t nr_sent =3D 0, bytes =3D 0; + char batch[1500]; + + fd =3D accept(lfd, NULL, NULL); + while (fd =3D=3D -1) { + if (errno =3D=3D EINTR) + continue; + err =3D -errno; + goto done; + } + + if (settimeo(fd, 0)) { + err =3D -errno; + goto done; + } + + while (bytes < total_bytes && !READ_ONCE(stop)) { + nr_sent =3D send(fd, &batch, + min(total_bytes - bytes, sizeof(batch)), 0); + if (nr_sent =3D=3D -1 && errno =3D=3D EINTR) + continue; + if (nr_sent =3D=3D -1) { + err =3D -errno; + break; + } + bytes +=3D nr_sent; + } + + CHECK(bytes !=3D total_bytes, "send", "%zd !=3D %u nr_sent:%zd errno:%d\n= ", + bytes, total_bytes, nr_sent, errno); + +done: + if (fd >=3D 0) + close(fd); + if (err) { + WRITE_ONCE(stop, 1); + return ERR_PTR(err); + } + return NULL; +} + +static void send_data(int lfd, int fd) +{ + ssize_t nr_recv =3D 0, bytes =3D 0; + pthread_t srv_thread; + void *thread_ret; + char batch[1500]; + int err; + + WRITE_ONCE(stop, 0); + + err =3D pthread_create(&srv_thread, NULL, server, (void *)(long)lfd); + if (CHECK(err !=3D 0, "pthread_create", "err:%d errno:%d\n", err, errno)) + return; + + /* recv total_bytes */ + while (bytes < total_bytes && !READ_ONCE(stop)) { + nr_recv =3D recv(fd, &batch, + min(total_bytes - bytes, sizeof(batch)), 0); + if (nr_recv =3D=3D -1 && errno =3D=3D EINTR) + continue; + if (nr_recv =3D=3D -1) + break; + bytes +=3D nr_recv; + } + + CHECK(bytes !=3D total_bytes, "recv", "%zd !=3D %u nr_recv:%zd errno:%d\n= ", + bytes, total_bytes, nr_recv, errno); + + WRITE_ONCE(stop, 1); + + pthread_join(srv_thread, &thread_ret); + CHECK(IS_ERR(thread_ret), "pthread_join", "thread_ret:%ld", + PTR_ERR(thread_ret)); +} + +static void test_first(void) +{ + struct bpf_first *first_skel; + int server_fd, client_fd; + struct bpf_link *link; + + first_skel =3D bpf_first__open_and_load(); + if (CHECK(!first_skel, "bpf_first__open_and_load", "failed\n")) + return; + + link =3D bpf_map__attach_struct_ops(first_skel->maps.first); + if (!ASSERT_OK_PTR(link, "bpf_map__attach_struct_ops")) { + bpf_first__destroy(first_skel); + return; + } + + system("sysctl -q net.mptcp.scheduler=3Dbpf_first"); + server_fd =3D start_mptcp_server(AF_INET, NULL, 0, 0); + client_fd =3D connect_to_mptcp_fd(server_fd, 0); + + send_data(server_fd, client_fd); + + close(client_fd); + close(server_fd); + bpf_link__destroy(link); + bpf_first__destroy(first_skel); +} + void test_mptcp(void) { if (test__start_subtest("base")) test_base(); + if (test__start_subtest("first")) + test_first(); } --=20 2.34.1