From nobody Thu May 9 02:07:20 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a05:6a06:1788:b0:4ac:5e5b:1ad1 with SMTP id y8csp294933piq; Fri, 8 Apr 2022 08:38:21 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyYSQuNTTe5zGvKOB72Ws9PCz/HqQcWiJdaBV2hH1JzN/YCt7Gb9YMWlqvXd4SD7+hbZqGN X-Received: by 2002:a17:907:6d9c:b0:6e8:556d:8bcf with SMTP id sb28-20020a1709076d9c00b006e8556d8bcfmr2238263ejc.466.1649432300777; Fri, 08 Apr 2022 08:38:20 -0700 (PDT) Return-Path: Received: from ewr.edge.kernel.org (ewr.edge.kernel.org. [147.75.197.195]) by mx.google.com with ESMTPS id h24-20020a170906111800b006e7fef79e1csi1201138eja.29.2022.04.08.08.38.19 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 08 Apr 2022 08:38:20 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4671-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="G/iM/wc3"; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4671-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.197.195 as permitted sender) smtp.mailfrom="mptcp+bounces-4671-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 974741C09E2 for ; Fri, 8 Apr 2022 15:38:18 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 584232565; Fri, 8 Apr 2022 15:38:17 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.109.102]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6F79F2564 for ; Fri, 8 Apr 2022 15:38:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1649432293; 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=z0kch1mhCGT8mPGp23dVtK/5FH5O9sUluL8tRFU5mUI=; b=G/iM/wc3ZYW0IoHglaxG8+qzQLBjcIwUeLVruNy1+rwLy8KDNjtVFjpZUB/M2OL2LGmvc5 ryUphpoMcA+G4xN/rOXJoQJv5I3djoAPPHd20p0oJgBoFZYX2FEvrLZWUjLXRkLjKA6o9H LCz5PlkzlT8OhMPjX1oBpLUjKg+j1DA= Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05lp2173.outbound.protection.outlook.com [104.47.17.173]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-25-zu6tqUg6OCGFcENOjYvd2Q-1; Fri, 08 Apr 2022 17:38:12 +0200 X-MC-Unique: zu6tqUg6OCGFcENOjYvd2Q-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VzMKB5GSLc7XrN4aopknrxgLL4uBADdrtFSrOZQ3O7cECfusrZFDajW29Ir1EY7RQGY3mCn2dPedodu/1Jc6BhB8H6FGzvcIo+DYuZRLnQiSkargyOuT1EVqEEyriGA53LVrTE1Sy5xWmkTs89Stte+/l3FwLwcbWyIcuzwHkKOx9KvB3zUFG3RpMqyrEw8WGrqdZjYp2OxYHIjoffr05vDgWeBe2tXMxAiopUYSI3KQ8NQah81hIuJN8zv9dR5JbiBlmQokaZCCJpYQj6VLae5CZhkxW95unGWqcAujv94I6s92lpRLoDdmWnwhkUU0kFx1hK0qyOmUoCc46C0lmQ== 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=nlRyNR4hC6S6WGRSmBc+wh+Jcf69w8y44rhEExFjO9Q=; b=myFaxbiHxCJDf+NvCugtKqC+/ZfGCAqR3e/bynWbVeTx6aEQuEEElXMAcwbhFiXzs6DS9xItH4woth4DVQ0Ln3Tnqb8OeMBCyKzJv8fIxIyT6jZtRN6UWTrYcx//rXizu012lks43DcSdeJFhXNE3d1ROTUT/MIXN+CSQ+H+eVtCojQSuIxv9R21sp+XEAtC+4d6O6LJkyWTE9EK0B5Jnl9+6HU2E+pu3LK3Sd5L/8BwTscaZzsDZ8437xQne8XgalcGqqtOAddcfG62Hld84M8wGGBVChCzKJE9jQRZmzAmW6gkhvYM40HFHoCAku3DLOlRHNi5wXCddABHqHYygA== 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 AM5PR04MB2995.eurprd04.prod.outlook.com (2603:10a6:206:9::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5123.31; Fri, 8 Apr 2022 15:38:11 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::9974:fd5e:e3c0:14dc]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::9974:fd5e:e3c0:14dc%3]) with mapi id 15.20.5123.031; Fri, 8 Apr 2022 15:38:11 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v11 1/8] mptcp: add struct mptcp_sched_ops Date: Fri, 8 Apr 2022 23:37:58 +0800 Message-ID: <8d7648d5fc45055efed63783664deef03a0e3bba.1649432004.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYAPR01CA0139.jpnprd01.prod.outlook.com (2603:1096:404:2d::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: 69604048-0166-4294-f534-08da1975c9c4 X-MS-TrafficTypeDiagnostic: AM5PR04MB2995: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: 0gaT1LwLm5Yc0SV2G8Re+rufcDh6svUskzsssAKaWsE0XP3QFEKUhCpKkbc4AZ7K9RufPjj5KmzkKK2Tx2c5leFDpzRyVbtaZ0siuOD5/80Ke1qDA4JyQuSRM+DmggpwfuatDvgrZkBZhhTCoVDbbjp3rKpU+Ukdhe7Yx8UJM76ZDIEuWSgaJo99RFofIYJ7nboFvN05PfhNC6W9on9kUkd0f0F3YcjsGcpGENInfXEJ5hXz5n8cLA9F1MabLUuk1dy1h36TK+CoLxn+6BZf1iWSpXDyMbS0lgPGiSZgV/tizcRbhV/GEPCpPL2wOnUc/VlQbxnUrKyeqE0BzH3DdHX9J8OoqGW44H16ilOR4TNLn2ZGLEzQ8ub6XHfGANvAFp4eo4MvP78vyJ3U5Ek5LA/gBOPSb20ryBeZUx5f9KFahh9AKjRR1RxQW4L5oWBTBklBoQTJfjx0as041upZ6C5UfL0DmsnZODYx3G9MPOglIBIrt6IjlOU1NOxvfpwLtjo11GhBbYEky5zI9yNb62xZfPBLZaeAq9/mgV7ibVe4AKW6OAf7wxqMs3xKupRJnDQbXJzri5//5u9+O2XaggrQSSKE4ovvPHxziT9yRsBSSJiLoGvMVoLrwNnh/3o8K7AbK3DCVjaZRAd0GGThs/Rtzjtmxx9VTV09jLXX8LbbXmZWh0Y4+ln0WMqvCUTf X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:HE1PR0402MB3497.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(8936002)(38100700002)(2906002)(4326008)(5660300002)(44832011)(316002)(186003)(86362001)(26005)(508600001)(8676002)(107886003)(6506007)(2616005)(66946007)(83380400001)(66476007)(6486002)(36756003)(6512007)(6666004)(6916009)(66556008)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?ypt+VwBdFr4McvtlUza4+cU3yjrdhu/xfqDahgCQtBIfBl8YOl3YjlvRL/Ah?= =?us-ascii?Q?xJgOjzdoADyyXNw3aN1VONdAXzFPvLg7/p2Tndncdg4rW2jnQFiC7zZS7kpr?= =?us-ascii?Q?PxXdT/d2wLaEApKBu4KSbzvBwJRvUqeRS5lcmRF5FzOgGP8nBuyxEN8LajoH?= =?us-ascii?Q?n69okNLid7V4nm9u9s4wCQ0s+pFJPZa7ORBHFgZlSjE4VXviJ8w1q6iZcE3+?= =?us-ascii?Q?bhwlXKHTyvURX0kGZwp6aKBLt2XZGL8aRXJvhk02jjsrbXRousAsoo4wyn5F?= =?us-ascii?Q?czSktGEWjxsZAdg5Zk2lRLvcpzKqyoeH0Yld/N0wKDd72gAlSz6s45Tdncqf?= =?us-ascii?Q?QWGE69fXPaMgxpoXL0LCaFWuckEweUhaNQlG4eg9GSiHTl5RaWWR1uSoDZX+?= =?us-ascii?Q?6OD4Adz0Tmac0aRXmg0WOwphAY5GN+wYrHAR9oOq3txUkP5Qu0PH+1vWwcYW?= =?us-ascii?Q?rZQVDTkeTWwV/GSYoYJKzyHvgfe0zs2Ogk2CZIVXBdmXH32lx6FSd557NLLe?= =?us-ascii?Q?l41ws5m34ZXoGG+5FMCktfZiiCdBcgjOZKsm9Jr1H6gxDsSInz6WYxFc6p19?= =?us-ascii?Q?BX70PGB4sUWE4VcT2pRT4gY9ofNxYkEzKeFCc6ylz2CPsVUVygYwdvVUZau0?= =?us-ascii?Q?WeWnZ+osSfVFhH90+GQTZfIpOlSF90X+qDnMtnhYaGBhGNXPFDSV4Sul1xju?= =?us-ascii?Q?Th4r4idZsTNJU1ln1RJeA4stdYiC+ur9KDYBmQheybR2oXVeuaaG1fFlbnEk?= =?us-ascii?Q?v5iimflmPc1gyNpkIuKU2vikhHJRDa9RSAWI+uRYDTMQ8XsE4WaJXj0zOF14?= =?us-ascii?Q?YjSpJ0iOThtE87AmxdYBD9DLi576O5Dq28wEr3zspWKmxZ7Sz9XnltKL4biu?= =?us-ascii?Q?TrVQq2i7cTy5UaaKuhe6Jh7VfpoL2uH536ue4oMdXGUHO6B/4Z9pQ60panZ+?= =?us-ascii?Q?BV2bj8si7k+il/oPDTIKMn5JbTRhZCoHoclmKyC46Cr2u2f2KRBYMInjxOyz?= =?us-ascii?Q?e+bQOcwcCyuEk1SKwzcpIcf3qWDQndTnGaWfqvkVJe8gwHX2sL5n+FRAyU/z?= =?us-ascii?Q?waEtAaG7OjNEYs8uM7jD31KWapAgd0B6XTRIXl0xwY6CtuZMXpYRJgipuqFR?= =?us-ascii?Q?QHw92MgX90TQ6afJnx/PbjCZM6NFtVhHkzXJ5tmpliQago04Pqm6FltZ6hHm?= =?us-ascii?Q?KZEI+KvdQxizUzM+7BxEhN0hphWUbJ6b/HEYgI/U1pj9dLasLK3VQmoRMQCz?= =?us-ascii?Q?Kzqbz+C5u/uT8D2SpG0iKjmw2FVKe/I+QW/BfKn6D4ny4JhPh3+I8STvdarQ?= =?us-ascii?Q?fMNNG21gWKkESuouurAMd9FA5udvl8vm5prM6u20CqRYGMjPigBqHPwJf/Op?= =?us-ascii?Q?s8be7dwpNDSYiul0oDZTG0/jXVIgVagz0dOXC49iEzxUrMBzwmbwuc8/QLK3?= =?us-ascii?Q?768qcxQGp7QGwWAi4U43G7cZ1xuocCJiQcVR3j958iYymvexfMG6j82W8nBY?= =?us-ascii?Q?HNg8SDm493iIPkGc1CxE9OPfFfFOpUGNeuMx+E+CUsjzOWdwQ42lHbjCDkIy?= =?us-ascii?Q?rEod1lYQmFvuFNL3+53Fta8Qj6F2GyOrJ/HSTRiJuSwhBhrZP93AszPVUCXT?= =?us-ascii?Q?qpaZP4Eo95/+7OWiIN6Tb7hZsyeolDBEehtwsrI8fjkZ02HHV7aYJayD5X2C?= =?us-ascii?Q?+/uMCOWno4vlvWDJ88mU2D5Rlw4/xUDjAndcfpNXeHtEroqBGL98VHVoUafb?= =?us-ascii?Q?VpgxEpQF1ECrjG2jRhig8IfyNxZcghI=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 69604048-0166-4294-f534-08da1975c9c4 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Apr 2022 15:38:11.6936 (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: dfuCOOe4fcpOJwp5b6FTP98R/yvJSDqYklegWJ38GijKAPvOSLHRMbOb0Sn9vF5ykhdU8jT6JVp2EBmq1exjug== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR04MB2995 Content-Type: text/plain; charset="utf-8" This patch defines struct mptcp_sched_ops, which has three struct members, name, owner and list, and three function pointers, init, release and get_subflow. Add the scheduler registering, unregistering and finding functions to add, delete and find a packet scheduler on the global list mptcp_sched_list. Signed-off-by: Geliang Tang --- include/net/mptcp.h | 13 ++++++++++ net/mptcp/Makefile | 2 +- net/mptcp/protocol.h | 3 +++ net/mptcp/sched.c | 56 ++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 73 insertions(+), 1 deletion(-) create mode 100644 net/mptcp/sched.c diff --git a/include/net/mptcp.h b/include/net/mptcp.h index 877077b53200..78a5cb44fccd 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, bool retrans); + + char name[MPTCP_SCHED_NAME_MAX]; + struct module *owner; + struct list_head list; + + void (*init)(struct mptcp_sock *msk); + void (*release)(struct mptcp_sock *msk); +} ____cacheline_aligned_in_smp; + #ifdef CONFIG_MPTCP extern struct request_sock_ops mptcp_subflow_request_sock_ops; =20 diff --git a/net/mptcp/Makefile b/net/mptcp/Makefile index 168c55d1c917..a37330760b0c 100644 --- a/net/mptcp/Makefile +++ b/net/mptcp/Makefile @@ -2,7 +2,7 @@ obj-$(CONFIG_MPTCP) +=3D mptcp.o =20 mptcp-y :=3D protocol.o subflow.o options.o token.o crypto.o ctrl.o pm.o d= iag.o \ - mib.o pm_netlink.o sockopt.o + mib.o pm_netlink.o sockopt.o sched.o =20 obj-$(CONFIG_SYN_COOKIES) +=3D syncookies.o obj-$(CONFIG_INET_MPTCP_DIAG) +=3D mptcp_diag.o diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h index 187c932deef0..7cd2c1c3d25c 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -608,6 +608,9 @@ int mptcp_subflow_create_socket(struct sock *sk, struct= socket **new_sock); void mptcp_info2sockaddr(const struct mptcp_addr_info *info, struct sockaddr_storage *addr, unsigned short family); +struct mptcp_sched_ops *mptcp_sched_find(const char *name); +int mptcp_register_scheduler(struct mptcp_sched_ops *sched); +void mptcp_unregister_scheduler(struct mptcp_sched_ops *sched); =20 static inline bool __mptcp_subflow_active(struct mptcp_subflow_context *su= bflow) { diff --git a/net/mptcp/sched.c b/net/mptcp/sched.c new file mode 100644 index 000000000000..c5d3bbafba71 --- /dev/null +++ b/net/mptcp/sched.c @@ -0,0 +1,56 @@ +// SPDX-License-Identifier: GPL-2.0 +/* Multipath TCP + * + * Copyright (c) 2022, SUSE. + */ + +#define pr_fmt(fmt) "MPTCP: " fmt + +#include +#include +#include +#include +#include +#include "protocol.h" + +static DEFINE_SPINLOCK(mptcp_sched_list_lock); +static LIST_HEAD(mptcp_sched_list); + +/* Must be called with rcu read lock held */ +struct mptcp_sched_ops *mptcp_sched_find(const char *name) +{ + struct mptcp_sched_ops *sched, *ret =3D NULL; + + list_for_each_entry_rcu(sched, &mptcp_sched_list, list) { + if (!strcmp(sched->name, name)) { + ret =3D sched; + break; + } + } + + return ret; +} + +int mptcp_register_scheduler(struct mptcp_sched_ops *sched) +{ + if (!sched->get_subflow) + return -EINVAL; + + spin_lock(&mptcp_sched_list_lock); + if (mptcp_sched_find(sched->name)) { + spin_unlock(&mptcp_sched_list_lock); + return -EEXIST; + } + list_add_tail_rcu(&sched->list, &mptcp_sched_list); + spin_unlock(&mptcp_sched_list_lock); + + pr_debug("%s registered", sched->name); + return 0; +} + +void mptcp_unregister_scheduler(struct mptcp_sched_ops *sched) +{ + spin_lock(&mptcp_sched_list_lock); + list_del_rcu(&sched->list); + spin_unlock(&mptcp_sched_list_lock); +} --=20 2.34.1 From nobody Thu May 9 02:07:20 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a05:6a06:1788:b0:4ac:5e5b:1ad1 with SMTP id y8csp295050piq; Fri, 8 Apr 2022 08:38:31 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyR42NQIPe4/K18l0Sg9W1o+AynBQGVjV162hHG+dLxp0M5iWa2jZ54zP3yY5yDmNPR0acV X-Received: by 2002:a17:907:d13:b0:6e0:b799:8fcc with SMTP id gn19-20020a1709070d1300b006e0b7998fccmr19493932ejc.11.1649432311475; Fri, 08 Apr 2022 08:38:31 -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 t7-20020a170906a10700b006e76f053445si528983ejy.55.2022.04.08.08.38.31 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 08 Apr 2022 08:38:31 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4672-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=MZFr5dzD; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4672-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.197.195 as permitted sender) smtp.mailfrom="mptcp+bounces-4672-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 B93911C09DE for ; Fri, 8 Apr 2022 15:38:29 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 725692565; Fri, 8 Apr 2022 15:38:28 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.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 303EF2564 for ; Fri, 8 Apr 2022 15:38:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1649432304; 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=oYhe/nNDsO0I28KCc8Z4C8JAG8Zn5V/ba36DqcYAax0=; b=MZFr5dzDirUP+Y1wXvUxSbimN0jd5i+4M6HagN5yFmfZjZL0NQ0xavDAhtD+SApIf23FG0 rEfyWC76LFPDefa4ZuvbGu8V9EfHLPIlplXR2hrZ6eDTxlCryg9mCjWyEfEm9KG54uk207 pLVodSBiqyfos0XKnsHxhMkMHBj3GqQ= Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05lp2170.outbound.protection.outlook.com [104.47.17.170]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-6-JVAUFDmfNZGjyQkhRR4wIQ-1; Fri, 08 Apr 2022 17:38:23 +0200 X-MC-Unique: JVAUFDmfNZGjyQkhRR4wIQ-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=axqvpD3Sm5GngODR+bApM3LXBI2yo49Cy65Ra5h2WhwzkynXUvzTyWqpJaBK4lJr8zafl5p8VzFePrGZLaNQOAvierGpUN/YXuZa4onyBOytDEgsNLr0XoazV09l40YWMdPHU9FuACtkl53mb1JkVAHKGZRd6+ExNp1aepnkt30DXFcbzHWx23nQL53qtalSpz8DHJkBsjMgLrWOmKcNm8ldST8c39J1pVV8GlzmXwAncE31foHNKjnTiepIQGy809EUHoICZiSzKfO/nCP9WMbVA+/fXrb0aeYgsojRDgxUAN3Ijp2riBMXr2SZStfTJD9uKT34vmwvLkaOQXEtvQ== 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=CP7ryZNmC5tVJuBOgkfZFQVKfkv9mvRJGXC8SswG1Xk=; b=f1F9NqrBW5sBvD3Y7nNw2Zn3RyXA8kESGtLDjRG3aCRV4Xqxy08w76CKf+ChQTFvhWMZA4bvqL4gmNESjUvdp98lJW7QG+u+xJsF8Nv/K2m2+6r+EA7aRBRFr1+PciqiIrFanQJ0N6kwpx4TINgd9sd3kiJsGmZXjAeAvF3qgkRkiHlw1AQEsgzdqHxAajrMb8yuK5A/EbEbyhAXbNhyIVERTmQdSpExS3Yfzy0eVKxueUInhuvReb3yNuaVmPoZgjHNlYUEnWOZhyfzuNivInbN1PtdlljEjIRoGbHPtEHii2UyzLK3jRWBEyfIFC/fwunGybgX8YVyjTbh3iEuvg== 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 AM5PR04MB2995.eurprd04.prod.outlook.com (2603:10a6:206:9::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5123.31; Fri, 8 Apr 2022 15:38:22 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::9974:fd5e:e3c0:14dc]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::9974:fd5e:e3c0:14dc%3]) with mapi id 15.20.5123.031; Fri, 8 Apr 2022 15:38:22 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v11 2/8] mptcp: register default scheduler Date: Fri, 8 Apr 2022 23:37:59 +0800 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYAPR01CA0135.jpnprd01.prod.outlook.com (2603:1096:404:2d::27) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 396ba470-c3f2-4c65-89df-08da1975d010 X-MS-TrafficTypeDiagnostic: AM5PR04MB2995: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: XnvYPHOUnRfjUh8jOezQMlzcRjRJMIxwLCfTdLE4LdiEgaDaxZZ88ZcOC3dFZ1oMGV6o98dIigb2LX14mUvOuNdFKcvduGvbcbkeSh5bcXyFO+yM5mQj69lQbGwYE0URVzHKvCg5faoumjaEZsIx7rajleo8r76YD4a/1BwRSEiFiF34zGA4OU1O6NKf2KCth+wMQyrgjvIL8Nc8CGXVA70Mgc22aGb26J2yjT2BeICepvkGgraTIASjD+GymOTd934uAEp2BrNTM+onCELSbXgUax244D/von9XX+EXmbiQ/Z1vSInP587njwzp8oTLfYe/MvHMUMLxodMKoK7uDPFVGCZgwNNJhrPGRUHSvIXH6K45ozrDwJPi04iDXs1wMfbT+YIUk23UKX6bGSUghFjnsS3KbqME72JYst3bXgxfDtXQ8RfRrarBzAWKsbKuOMuuHcG8tbGtBn4Fku857k6EU0MZFNXQFUAVWbkXCa/6yjQ6T3M+gyRfd9rHJrkXVXTCVP5gt4WphL2HgLYX8Ngyy52217vroPRHTgHA2NRWVDL5A3qFR4eb024+hlVptDJIXxheNGn/z5BWHvdVA9Bhwnzy1nU6zw5uO6l42E3GH3xfDA9gAV80NEJ6d15JOJxGSe4fzmhgq6sAjVKnNUGJvAMMhrr5KGQBY1PxWLRNJuCFc5AgswcuC63/bLs2 X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:HE1PR0402MB3497.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(8936002)(38100700002)(2906002)(4326008)(5660300002)(44832011)(316002)(186003)(86362001)(26005)(508600001)(8676002)(107886003)(6506007)(2616005)(66946007)(83380400001)(66476007)(6486002)(36756003)(6512007)(6666004)(6916009)(66556008)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?xS0SvXXlIo/q91LDWzJjfezG7Ah0+ZxMOmRdvOaOx1ayO7uP2YDFcXj7dVCl?= =?us-ascii?Q?LWwMBhcRbE7b7LDtCLuQX+Ccl5HHvTs721QDddcY41CaNQ0p7vh9HDzADoxk?= =?us-ascii?Q?jsRgg5F4UMoTnUP5ByQvDUzqh/cosPsSq6w4xw29S/FKh1ZFwgAwaZ3q13tL?= =?us-ascii?Q?afoLqvTD/bXDi5Y4r7psvACluMNBUQbbqmafZFbNA8RLvaYCY/P0gU0EGpCc?= =?us-ascii?Q?EceOmB3v4Errpdlawz0uvh5vlIyC5GVre2l95KyT7X0xRxpzaBtGn66mb4R7?= =?us-ascii?Q?iMh3ybD53YBcn1McLu9TgkULlIFypLi6sRYuF8GXYrtbjv96OnTqfZAF0xvl?= =?us-ascii?Q?DJ4+BPVGm2KCeqayKbYgRuHlHQCzJGYClVPG211j0uC0khYBiHw4ONjGp9ul?= =?us-ascii?Q?9k6asV2liTlrPeNNHDfWaGn7XFbsu10b8ZVnpnxTEoBOvLJG6g0325N1ybNf?= =?us-ascii?Q?k636fmm7eK0YNqEZfm8i7lkn/EVN7a7XFYDqatctbq5r/2nWuky+e4wiAbyV?= =?us-ascii?Q?9iliDUHx4y3u/YXxm6GcrlvjAYR5TfIeX34gg3a6YqHYZ4JVyn6b+F9HrG4S?= =?us-ascii?Q?MxyyVlIAH1ngJq1JMJooNa/c0b7y5ss0vMMVu/9vGTsG3SLnSHWf+ayQS43A?= =?us-ascii?Q?kPJ08oBNYttp3j2Zu55eNabsPY5KsVOiFFsOVC6OXYqAMPwojM6u3MBruYe7?= =?us-ascii?Q?J1z/IXsa3qe76Jk9FUDP3b817RK7nBCVF7RmOMkrMvoWEL2ZwmE9xBOFJ9u2?= =?us-ascii?Q?IMIZYaPNIUQT7aaoE4MlUS7dvcetrMpeWaIgYQO3Ti6U8mBr/6PSuRUs2DdW?= =?us-ascii?Q?rHZ4HGKossSUtIG8OrAkBoD27qRvpsSy+qAKysYJL/jfh+h6/nS3jX3u5UVB?= =?us-ascii?Q?PNv/gJUBzasCBCmGsRAQoP/tMF96QTd0Wu8cWPECWEdjcMkFGQ5sipcc1CEP?= =?us-ascii?Q?Uz3z2k8XcPr59NVAG1mgbLtRBnWHNu+uzFmGQbPM+EXaYfAA+pz0Do+3MO47?= =?us-ascii?Q?LfVI80l577NxBdhKfGXvoNYIpjWB8TE5w2IST6ZR5EAIzs5R/Axmm4bQxvB/?= =?us-ascii?Q?6Xb6yR8U1xfrlJa2JUdqSWHqc0aSOIMxVCBptiUATcUzRWZdY0nbebBoNm8Z?= =?us-ascii?Q?RO0MwgaJQCJP14q5jjpXDJb9fYM/YwL6SonUb2204SpA5zChEjMA4iEY5IMj?= =?us-ascii?Q?URrFODY8OE+SZ2edbv7Qeo+EZNIRJt0xlA3vDtxMsysPoMWyVaAPn3v6ydkh?= =?us-ascii?Q?rM2wRCoHTOLzGX5ZiSNiG+m0DRVx1xBfUiIeVy9Mmkio+BsWK0n6a196fE1X?= =?us-ascii?Q?RT6WadUcF82zQHEf/Kp6Bvd34fznTTaFpUZ0S1i5brIc9yrwen3LdUmjHO8c?= =?us-ascii?Q?D5sjbjkMoYsRK6x78haqh1l7zij3t9FK4gVeXue3GpPRY5gSgGq02F4upb16?= =?us-ascii?Q?JUr1WsyHa+ZD/zx1iJNXASgrnehnZ0K4oqTPxhQOokp46yrppVE5WaH8doje?= =?us-ascii?Q?m/1950mHfRLjbNLgjG8SHhDn4BHXHupjheexFI+ne7wFOnUOmfa4XzENZRA9?= =?us-ascii?Q?+dg2sncXD4iM2zbWm5AqFUkgKxK9Uggcd55YXluIgprOBaRNvwwJhQEsiT58?= =?us-ascii?Q?Vyk8MEFalzsJGNjYNKxWMWObA9ilAZRk7zrWoEmGak+qXtQpmbND8THuqIOU?= =?us-ascii?Q?GBU30kc4UajfrokexasVJj4Mk1J1fF5sh6LyuZIvz8p8OSIQZbcudPdNtcCD?= =?us-ascii?Q?wwXYWc+9q6/HZaCNurHeTqyEgUIMMl8=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 396ba470-c3f2-4c65-89df-08da1975d010 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Apr 2022 15:38:22.2552 (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: dSV5IB4vZwK6YTalrMSrT9/5tU3eEFxI1fp0wQ0BRSmb20vAeYOgZ4XKvH1ai0vsHFl6iLwbfJAgps+PMs+3UQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR04MB2995 Content-Type: text/plain; charset="utf-8" This patch defines the default packet scheduler mptcp_sched_default, register it in mptcp_sched_init(), which is invoked in mptcp_proto_init(). Skip deleting this default scheduler in mptcp_unregister_scheduler(). Signed-off-by: Geliang Tang --- net/mptcp/protocol.c | 9 +++++++++ net/mptcp/protocol.h | 2 ++ net/mptcp/sched.c | 14 ++++++++++++++ 3 files changed, 25 insertions(+) diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index b2c654992de0..0187059307d0 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -2251,6 +2251,14 @@ static struct sock *mptcp_subflow_get_retrans(struct= mptcp_sock *msk) return min_stale_count > 1 ? backup : NULL; } =20 +struct sock *mptcp_get_subflow_default(struct mptcp_sock *msk, bool retran= s) +{ + if (retrans) + return mptcp_subflow_get_retrans(msk); + + return mptcp_subflow_get_send(msk); +} + static void mptcp_dispose_initial_subflow(struct mptcp_sock *msk) { if (msk->subflow) { @@ -3804,6 +3812,7 @@ void __init mptcp_proto_init(void) =20 mptcp_subflow_init(); mptcp_pm_init(); + mptcp_sched_init(); mptcp_token_init(); =20 if (proto_register(&mptcp_prot, MPTCP_USE_SLAB) !=3D 0) diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h index 7cd2c1c3d25c..9ba37d0b9fcc 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -611,6 +611,8 @@ void mptcp_info2sockaddr(const struct mptcp_addr_info *= info, struct mptcp_sched_ops *mptcp_sched_find(const char *name); int mptcp_register_scheduler(struct mptcp_sched_ops *sched); void mptcp_unregister_scheduler(struct mptcp_sched_ops *sched); +struct sock *mptcp_get_subflow_default(struct mptcp_sock *msk, bool retran= s); +void mptcp_sched_init(void); =20 static inline bool __mptcp_subflow_active(struct mptcp_subflow_context *su= bflow) { diff --git a/net/mptcp/sched.c b/net/mptcp/sched.c index c5d3bbafba71..bd0beff8cac8 100644 --- a/net/mptcp/sched.c +++ b/net/mptcp/sched.c @@ -13,6 +13,12 @@ #include #include "protocol.h" =20 +static struct mptcp_sched_ops mptcp_sched_default =3D { + .get_subflow =3D mptcp_get_subflow_default, + .name =3D "default", + .owner =3D THIS_MODULE, +}; + static DEFINE_SPINLOCK(mptcp_sched_list_lock); static LIST_HEAD(mptcp_sched_list); =20 @@ -50,7 +56,15 @@ int mptcp_register_scheduler(struct mptcp_sched_ops *sch= ed) =20 void mptcp_unregister_scheduler(struct mptcp_sched_ops *sched) { + if (sched =3D=3D &mptcp_sched_default) + return; + spin_lock(&mptcp_sched_list_lock); list_del_rcu(&sched->list); spin_unlock(&mptcp_sched_list_lock); } + +void mptcp_sched_init(void) +{ + mptcp_register_scheduler(&mptcp_sched_default); +} --=20 2.34.1 From nobody Thu May 9 02:07:20 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a05:6a06:1788:b0:4ac:5e5b:1ad1 with SMTP id y8csp295094piq; Fri, 8 Apr 2022 08:38:36 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyvi185tOdnC38BddI5HjuiPR6E1wFWtM6WbclE/pGWfT9eGpXy3y3Y7GIRHJwqx8BR+UXj X-Received: by 2002:a17:90b:1d03:b0:1c7:ae9f:c35e with SMTP id on3-20020a17090b1d0300b001c7ae9fc35emr22298970pjb.60.1649432316608; Fri, 08 Apr 2022 08:38:36 -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 62-20020a630641000000b003828506c119si1673395pgg.125.2022.04.08.08.38.36 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 08 Apr 2022 08:38:36 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4673-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=nPVqbuHG; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4673-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.69.165 as permitted sender) smtp.mailfrom="mptcp+bounces-4673-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 3A1353E0F17 for ; Fri, 8 Apr 2022 15:38:36 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 255B42565; Fri, 8 Apr 2022 15:38:35 +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 754A02564 for ; Fri, 8 Apr 2022 15:38:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1649432311; 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=h3AFB4xsjzNnvoH9OPwrztlRzwU1PI5qONz9ltyCCKE=; b=nPVqbuHGPW801AzyAA5gwerHz6Vvb89hPbHphfOKtUI/kS0EZHdYlhvIw0V2KU1VDJanld bgEWlBXno06UobyeyJP+xo5Y6biQifRBJgxAm02xsZJgvXfkjLVQ6OzjwQe4Dop6btzQES x3C9/dRU+DuQXQhwWoYMHiYStRgSGu0= Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05lp2170.outbound.protection.outlook.com [104.47.17.170]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-27-RoDo29USPiKpyMQe4TTTfg-1; Fri, 08 Apr 2022 17:38:30 +0200 X-MC-Unique: RoDo29USPiKpyMQe4TTTfg-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=aTj1/mawc+sOfCX1dLqgV3EwUt6r4xpZPYi+PN/b7KTtBGzeNCliy2jEa4IQRHJdeC4ceFXTHRQ1Zx1LswQGpqoI8fG5OlFehS5dhYu5O0o5bqW512xGKmb7aeHhtz5TkA9wt1J0nwWn+tjo4mr/vobdz0FuipzgqlO+AMd+JrK25N/latJFXUS7gWaMMe0JAPbqZeG9eQxuEzGkULGOBN6TV8S8GbMB0Xg0SKvbGq7TIBOPgIybyXJ3uBYNy5WtBk1Nfae3MIpNYt/rEjTk7XJNsYbGf068vUG2277gLrXbEDBVvrdf9NF7aG8yhSgniuoqG67rtusauxZcgy50OQ== 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=RvVBNx397swhU+imhwC18Bx79bDDL+oLxotL8VyNSIs=; b=dhhBy9W6sS+0XWG6T5Sg677rkwXTHyxaXeHVrA3JfN7HHLoEVnju/tRYFfhHWC6cAX1yH9batp5A8JeQAxXhmGp7jQkH4y8iKE2noHZhr7kaOEVJhz8Xsxtz6AXqFTJH9KPd83jeD4fl3d4TwNQ9jjvwsKsQHfN/MxIoTWslVx7ybM8GdJbYEAQD8nro3JL/SAdz+LPVbCncXK+N5OR9YjPqEFOCpfmOUYi3bCObUjFXblIl+DFK0OXxO52vAIVLgjy3x+gBMgOPNMLlQkY4S8p0zypKbCONCRx4Sr+X2XcFCJQF7ZdasfK6MOHdXPPDJ8Z7W2XccIUuYTJGtMOPLw== 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 AM5PR04MB2995.eurprd04.prod.outlook.com (2603:10a6:206:9::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5123.31; Fri, 8 Apr 2022 15:38:29 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::9974:fd5e:e3c0:14dc]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::9974:fd5e:e3c0:14dc%3]) with mapi id 15.20.5123.031; Fri, 8 Apr 2022 15:38:29 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v11 3/8] mptcp: add a new sysctl scheduler Date: Fri, 8 Apr 2022 23:38:00 +0800 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYAPR01CA0130.jpnprd01.prod.outlook.com (2603:1096:404:2d::22) 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: 5a30522b-92de-43c3-1485-08da1975d4a3 X-MS-TrafficTypeDiagnostic: AM5PR04MB2995: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: BJluIpkMtvhXjMe2kBQJatb8U9RhEXwfYPaWNFQB+33srO5VvZk74D16KC7D6RktSSF5WD/4XRWHPQW6aWlfNzTt4eusQI5W/TMoOO2tBczDcCu2RWX7VZsDUikLeq7zE3fVTRJpQivdHSiIXPZoFZc9bifI9LiBo6W8k6M/SoqDsitorrqGk1F0B8kFKi30jMHQvBOXMckM26HAroHJL6ibvjHK0g6aa3uHTn8fDT3EFRoaxvfUHJDEZaqrSrB3+bKYfjtPP/VYIeqoGk28aAKyoLA+iJyMv/2y0lr+R/GPgPC5rtSy3nYszmlpL7oK9nYTScQzGF46+cm3ITw39/Eu909v97U/DhXkMB0ocJLtiOs+IN61cOYxD6y2catf36kU3t58Zi/rMSkbuemEWd7XjNZMwHEoDR9MmKnNhZKzzDIGOpLmR34UY7t2W6oTW4oofjWRLiYqehyk+0KfmiXFBY3tSnSpDxt6SeJ/FF9X0gYZE6M4PVEOMr1C3Tj3JYbbWmvcjQXGIL8WtsMuWztFfK9sGVT/6wIIDQLSVf9xHdaSAJF5Uk7aT3UD6v1B7MqwVgEVnKTcrL0Z4AUoKEOZ76mIH8FmbfLGpaU984t8jgTl5AFgXRbixB3/J6khkWsCPais+X8KACkhJ2hBl42YnN+l2L7f1jAwwzZ56EAzh8q22aGcCIwb77jj1eb8pTqOMJ7JOko08affy3oXEw== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:HE1PR0402MB3497.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(8936002)(38100700002)(2906002)(4326008)(5660300002)(44832011)(316002)(186003)(86362001)(26005)(508600001)(8676002)(107886003)(6506007)(2616005)(66946007)(66476007)(6486002)(36756003)(6512007)(6666004)(6916009)(66556008)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?pspPVko5iVRviQbWZDBExuBA0nEUfAPTKk0vMK1UcnjU5I9jk7ivNtEklHJO?= =?us-ascii?Q?0b0P9D0imOFuKezc5Zq+E0tk7T79XE1EOFpmg3zg8nGoADLWutc0yLoWgMxB?= =?us-ascii?Q?oRFyB2buDxUIQWvvmib2ME85tjeAp3ySIYnJcIRKyycUGETWMVoYDe2vH4Zz?= =?us-ascii?Q?spAKT09nZ/6Eqlb02mSLpQCxH2hw6gV9SNc5I61INZM8pl4vcB3uonlq51qK?= =?us-ascii?Q?J0yGtjA3UIZDIyajz4+/1UGvJaaxHIrctZnPesu5xz1jyJjesNmfFQ+SALFY?= =?us-ascii?Q?ZCt7fw8cfhfYk8TGQYVNotCP1Y7cWxnGfbDYvVrMThY5b4IlS4SXD9c6tUby?= =?us-ascii?Q?lrypMDttazO5pwX7fPaEv1spSsR+CSBH91Qcactgg1eQUITMuGXZQsDKHDCo?= =?us-ascii?Q?DfwAUYChIWlsVrGmPLBViZHeUn62mEMW9+UtJ1lKbMCRFba2lh/saiVfEeN3?= =?us-ascii?Q?Ku27XeL7+agx2z+qB/BvVkq+UgI6zD5P/XKbFIkwXVNypvFQmEGu65KQruQd?= =?us-ascii?Q?BnnqL8wtd5CB1KiRkVhysu2I3BnIgTJ/5O44bUNv93DKIbB2nET9L5WMXgBt?= =?us-ascii?Q?EK7A2ktE7ryZnRDuUZbhStHysMuyf1ciaRKHHP+Sf/Z/HL8bHMiEk62IdCfA?= =?us-ascii?Q?cf8GTnWSYwaFeWxgXz58pgDv3L4yYCX8i9fvIIQpnzva3J45M0/fjm/KFA04?= =?us-ascii?Q?wcBZVIW5KLYdw9/7FS5LiLow70GDM+uOf2Nrld1/RKTf4X9LeJxh27Sp+v6S?= =?us-ascii?Q?Rm1GxB09N/hS0PSoVQhIX5w4AXCfDqafsuQ39BdiJezGDJyytaKw6EH8Q15i?= =?us-ascii?Q?NULbftnpHq2wHzYuAKf8T2DmjcM1X0Ctu+ss1zZlfmOyY68AOIqa2YYDnm6E?= =?us-ascii?Q?Fyl9GdOkSCD5IyeiNBFZ7QIxn4kwBpxfh00l/VbHkGziQwGzt7Kh7CkBNOV9?= =?us-ascii?Q?Mn3Uf+RRF1MPnyf/cE0X9LtzhhoP1meVzdhD/0MyL7dgjd/x9LzCaUqzmgdL?= =?us-ascii?Q?I34HZxe18ImZMQQxMRxRE7D9OjWj7CfcpUbYl/V+9xtos5vvsmA9+VTx+5+m?= =?us-ascii?Q?YUXIFMKtMSDTt/RsepIruTkwr2g6U6ZF3919m8I1/vyvI+7Oa81XD5aAQxLr?= =?us-ascii?Q?9ql4h11wF/D2VVhJ1g0T5LoF4A/do3H5CkY1Sbcl4nhL9JvN4XpOege9xSvw?= =?us-ascii?Q?N8I56Iaxuwl4+ribY+kCp4XdoBHwpCMr3O3d9fBOcZHtwQgG5uviK5Wj6EM5?= =?us-ascii?Q?I55rsV1o0Yo98tOZAyjKBeNnpCsa1vitw7D9ihd8owTJqK34xs/cds67LbVw?= =?us-ascii?Q?Ff4THdicOZsw1cTZ49Ot+hpfzx1Q2ug58SsMNYNuRrfOngyp4WvuiH2/qHbZ?= =?us-ascii?Q?V0sUPfdWcfiTVE05M7HRyIW+XuA35Z9ovwvhpgzWOTkRMQcIQ84QpObbEBO0?= =?us-ascii?Q?BMQCE2adeofC97NuQ/laIssMwIWi5xusMDBVJDJqDZHDnanxRw2sfS0qK6fk?= =?us-ascii?Q?QYWkRtcZdcFA1Tw6ih7RJs/cQd7RFum0DQvAjuD0u0XBlL1mpDDkU2xsr1Up?= =?us-ascii?Q?bkZo3vXhLE5+2YDd+3DH48EWXfHi/pR8HJJdwhjzPrrxVprtg6KbE0qquWEM?= =?us-ascii?Q?ssyC1ewuOQK0mXCv6wYTRbUI/pg+DelAYjajidEzDHY6UvqwhlW/DJBiNEOf?= =?us-ascii?Q?1jUbvpj8SsDbilHDDit5aJSC7H4blstC5GrAdXNQ4fF8GZKIY1Lp3IuHKmHl?= =?us-ascii?Q?fL7LAMsvCshYa+guOPcLqCsjDraGbyY=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5a30522b-92de-43c3-1485-08da1975d4a3 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Apr 2022 15:38:29.7390 (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: Vd+6Hvn61I90aTtFHe8xub9SXoekOVjAjpr2fy+rWArzVCFQ57zA3eafKwncQqXl+KljE/o7MTDBPWA5/9KMpg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR04MB2995 Content-Type: text/plain; charset="utf-8" This patch adds a new sysctl, named scheduler, to support for selection of different schedulers. Export mptcp_get_scheduler helper to get this sysctl. Signed-off-by: Geliang Tang --- Documentation/networking/mptcp-sysctl.rst | 8 ++++++++ net/mptcp/ctrl.c | 14 ++++++++++++++ net/mptcp/protocol.h | 1 + 3 files changed, 23 insertions(+) diff --git a/Documentation/networking/mptcp-sysctl.rst b/Documentation/netw= orking/mptcp-sysctl.rst index e263dfcc4b40..d9e69fdc7ea3 100644 --- a/Documentation/networking/mptcp-sysctl.rst +++ b/Documentation/networking/mptcp-sysctl.rst @@ -75,3 +75,11 @@ stale_loss_cnt - INTEGER This is a per-namespace sysctl. =20 Default: 4 + +scheduler - STRING + Select the scheduler of your choice. + + Support for selection of different schedulers. This is a per-namespace + sysctl. + + Default: "default" diff --git a/net/mptcp/ctrl.c b/net/mptcp/ctrl.c index ae20b7d92e28..c46c22a84d23 100644 --- a/net/mptcp/ctrl.c +++ b/net/mptcp/ctrl.c @@ -32,6 +32,7 @@ struct mptcp_pernet { u8 checksum_enabled; u8 allow_join_initial_addr_port; u8 pm_type; + char scheduler[MPTCP_SCHED_NAME_MAX]; }; =20 static struct mptcp_pernet *mptcp_get_pernet(const struct net *net) @@ -69,6 +70,11 @@ int mptcp_get_pm_type(const struct net *net) return mptcp_get_pernet(net)->pm_type; } =20 +const char *mptcp_get_scheduler(const struct net *net) +{ + return mptcp_get_pernet(net)->scheduler; +} + static void mptcp_pernet_set_defaults(struct mptcp_pernet *pernet) { pernet->mptcp_enabled =3D 1; @@ -77,6 +83,7 @@ static void mptcp_pernet_set_defaults(struct mptcp_pernet= *pernet) pernet->allow_join_initial_addr_port =3D 1; pernet->stale_loss_cnt =3D 4; pernet->pm_type =3D MPTCP_PM_TYPE_KERNEL; + strcpy(pernet->scheduler, "default"); } =20 #ifdef CONFIG_SYSCTL @@ -128,6 +135,12 @@ static struct ctl_table mptcp_sysctl_table[] =3D { .extra1 =3D SYSCTL_ZERO, .extra2 =3D &mptcp_pm_type_max }, + { + .procname =3D "scheduler", + .maxlen =3D MPTCP_SCHED_NAME_MAX, + .mode =3D 0644, + .proc_handler =3D proc_dostring, + }, {} }; =20 @@ -149,6 +162,7 @@ static int mptcp_pernet_new_table(struct net *net, stru= ct mptcp_pernet *pernet) table[3].data =3D &pernet->allow_join_initial_addr_port; table[4].data =3D &pernet->stale_loss_cnt; table[5].data =3D &pernet->pm_type; + table[6].data =3D &pernet->scheduler; =20 hdr =3D register_net_sysctl(net, MPTCP_SYSCTL_PATH, table); if (!hdr) diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h index 9ba37d0b9fcc..213d75a58aa5 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -586,6 +586,7 @@ int mptcp_is_checksum_enabled(const struct net *net); int mptcp_allow_join_id0(const struct net *net); unsigned int mptcp_stale_loss_cnt(const struct net *net); int mptcp_get_pm_type(const struct net *net); +const char *mptcp_get_scheduler(const struct net *net); void mptcp_subflow_fully_established(struct mptcp_subflow_context *subflow, struct mptcp_options_received *mp_opt); bool __mptcp_retransmit_pending_data(struct sock *sk); --=20 2.34.1 From nobody Thu May 9 02:07:20 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a05:6a06:1788:b0:4ac:5e5b:1ad1 with SMTP id y8csp295238piq; Fri, 8 Apr 2022 08:38:48 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxBEvAZPghfPC1GH2UVAMY/Q/eE2UtYOCW4+FztF2V78kRXeGwS/QsUyKmZ+eHWzPyBV0Df X-Received: by 2002:a17:906:6a0b:b0:6e8:4062:389a with SMTP id qw11-20020a1709066a0b00b006e84062389amr6898746ejc.530.1649432328785; Fri, 08 Apr 2022 08:38:48 -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 d3-20020a17090648c300b006df76385db5si1085761ejt.597.2022.04.08.08.38.48 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 08 Apr 2022 08:38:48 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4674-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=Nf8Z1bCq; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4674-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.197.195 as permitted sender) smtp.mailfrom="mptcp+bounces-4674-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 E2B591C09E2 for ; Fri, 8 Apr 2022 15:38:46 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 9E3DF2565; Fri, 8 Apr 2022 15:38:45 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.109.102]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B09212564 for ; Fri, 8 Apr 2022 15:38:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1649432322; 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=nR/o1B00CRpVRW84Wfx50XC51Z5j2vsw0vCvPeiFZcM=; b=Nf8Z1bCq9XNMGRnweJYxhtLy7eKl4QP9Pumwj9HztnQ/fa8hz7cwmTQ6ujPbEOHd1aaOBg CaM/wVil7zAbkmmPTg8qKF+5cL9EBt8ao6OAIPfyCEhQSxfxcsp06fWSZuDK3SXvOKiLqq YPN4hP42PubvdwTWfq3/wd+FnXyrCMc= Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05lp2168.outbound.protection.outlook.com [104.47.17.168]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-41-Lte3UkGBOAGDlthgTrfaww-1; Fri, 08 Apr 2022 17:38:41 +0200 X-MC-Unique: Lte3UkGBOAGDlthgTrfaww-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mggnyU3Tc+rOuvBIiVPaPdj1Ed/5iLX1nZrUK6gXdMenl6yEmcgoiPXUvTWcWWza26pmQ9JsAcAi1oa6x+o9A2rrRTRcWFeMA+9sozMtB+FL3PspWpuWJ5tpGtdYgBi8vPqebDvcsvX1+BD3ActLr7+7GC4HrOy8Htac8J9sVWDJVv2yR7EYO47gR7lXUy7Rbto3wZ3/RdTab4JTVDC01IJ6DQjU9jOTzH2dXNhXy13dNG+ZEKGYEnPc9ftqWbsT4dBGJO8AY8tcTxBj5nerH1Q3Ht5yr8gAOvu5WavfllYD5clBEM270baZOdSExUpOFwZ5gBad8tcduYOp7MYkWA== 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=yJxLKdX/QtDMO4gfwx2IXKOaD4gfC02gbqGDmbLPrMs=; b=E/LOSLAYsn6cJ6qvZ8qvL+LCE8wIn9ABT8zlOsCdZZaIZ8iqLYzok24cWDNAIlwB+xAVI5BzoEHqPkAMD+QzyoxOhC+6NPfjbf3Scce59tlILVuTI+ZWXeWmpie92ytQt1QhkLp72BRbwFijWz7Sq3bdm3EvYeKLzq00lmPsx6wBYglIy3ipH6cXhFGyKB3OsI1ZBaqc6rUbwKIr7/68vwI7c7Rdch5HrbADoupqlkhIP2+pM8Zedqw6oKVXEeEF5IxNZvHiWE8lhmx9XY4CAGQwrvGUVhPb5bJYouOFFg9bHVYLpHMIrlamz3chNjTAPFl0KKHaxob1r8xtJJGlwA== 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 AM5PR04MB2995.eurprd04.prod.outlook.com (2603:10a6:206:9::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5123.31; Fri, 8 Apr 2022 15:38:40 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::9974:fd5e:e3c0:14dc]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::9974:fd5e:e3c0:14dc%3]) with mapi id 15.20.5123.031; Fri, 8 Apr 2022 15:38:40 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v11 4/8] mptcp: add sched in mptcp_sock Date: Fri, 8 Apr 2022 23:38:01 +0800 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYAPR01CA0123.jpnprd01.prod.outlook.com (2603:1096:404:2d::15) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: e1506947-6468-428e-98de-08da1975dabc X-MS-TrafficTypeDiagnostic: AM5PR04MB2995: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: Yy/GDlBxPyxDNNSattCQHEJl1WRtRQFopq8DYLQcgIybJBeFBxKrtY58u1A9dnCxn1RRzUGYFBohjdH64q5dRjHJloPSff0Mrkem3dK5occiRwg77k4XneKCYLlm8xzZNzmdEqOe/tstMOxApRn0w1/qlru+4n7h9jHYbZ5k/etNEWesLA1rkr02evrYjQHWJNmiQ3Tl+NBld0NJTH+6gMH521nfouDwRt8LZjtcKOzIjm4cyRoIzqeBJaNVxm+Lzddnlzkp4gclRDWHbSyCewfbB0ke8xLmprXow0LSoBZqARrEZrXCsrbDRrfYGI0WacL6busrMPpYeL5xXe0gSgbhuWCCMw1LRvC58mlLTyzz8GdyNQ0hvw2pdA5RRKNnnp/HHI17w2QqVykl5Z0Pn8V/3XFYCZDaQJA1kaasr/dt1lvIaGuRuixbiMfJEEJ6814qnYwtHKzGCDPNrdU9bTA4YpOqg1xqAIPqiVYF2CrMriT0P3NBJdmpBBpiTocJOnP8yDXgcxsqKsDVcbAFhwPiQd1U5f6NHzU8kkiZHi0CYx51VwaLJtDxoohs5E/dRZqauM9A8144rAghZhbr0LG4Znc+cW2EbbQwQldL4lprLWJFJFKXu9Rw7zf0b9vaS0qt2SC5EnxhzqcQ0pVU0upxzYl1sYP5lmuquS1gHqn0L/BBsEmhzpR7FsSQmGzQ X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:HE1PR0402MB3497.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(8936002)(38100700002)(2906002)(4326008)(5660300002)(44832011)(316002)(186003)(86362001)(26005)(508600001)(8676002)(107886003)(6506007)(2616005)(66946007)(83380400001)(66476007)(6486002)(36756003)(6512007)(6666004)(6916009)(66556008)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?fgK2ulyCq7s8nHyTqH77NsfWalyXQOMr7Ub242z+3nQFRR4MdcqqfLWG3VqV?= =?us-ascii?Q?DpY34aqdE3Eio8rFrYZKHPdXRGxE2fUSFYu5cCYmYrWUfM1rJ+b6D12KK/bH?= =?us-ascii?Q?9Vr02JxyBSq4Dt8e+VNWiANB8xvgcXR7FLCJxRTp+sxzsblNHtsHW58+IdCw?= =?us-ascii?Q?mSvNn+TH1VduOfuLqMJsubYlanLstsRNawow6OHCf4mtB/pvC2/SDPCLWgVM?= =?us-ascii?Q?Vt/n9uQsA9jpPpm9SphbXisvJ9TlBbP8OnWRexyzK8xmDEINSBHfeOTlkIPe?= =?us-ascii?Q?Slq01KrRsCa9WhU92fH3+MXucetj9guPPMG+oXR9UyeBsAYlZUyVY4QLoZhc?= =?us-ascii?Q?7y91pmep0la8wk9LY4D6WoSMxCW3YYOCdsqD3VXsEWH/jjwfCAVk02T+3pHm?= =?us-ascii?Q?Biw2Ym7I2G5uwHNOOuDd10GOAvRq+AcraXWUspWpZtA2xRJubxGeGT2F1r29?= =?us-ascii?Q?l8w/sY38VIq6sXolclqNYGl/G00rFqoEshhNP5abjyuf7Nycm70TH9wYOjd9?= =?us-ascii?Q?BIO38Klkp5ZQVVxDqov5H5OV6n58YqBe/QJLCFaMx/mIH2TcFhRWSqMOGS81?= =?us-ascii?Q?eH0/pvfzeR5h1O8cNAQkUP91gm1UnBiLMKreRtH3ReUgaDmLTFJqnsOhff65?= =?us-ascii?Q?6SNlfRV3PGheJozW7LtSGy6y6MZXUlkbaNu9IQlDwfEpW6BaGp25QIaFESue?= =?us-ascii?Q?lVPm1pFb6i+rYgu/6hdzO0xTc6U6NHGCLXotO1hlVhkJDZHYsyueh2sVzwEz?= =?us-ascii?Q?lMDO9e+N32OsVPyLl5GcoVT22rmlIRWlcjUc81DjNDyFKrZm3Qt8Du8JxNW8?= =?us-ascii?Q?1WdALdaQV87q87gdk+zLS640x3B5xMUETtgUcTDG3yP6LSyI9DrB9agQ029o?= =?us-ascii?Q?Foyy2b8pUKKos3Pgx1uBrJwAY4Gslph02U7B/sY3mWm5JHl13HCuoQLSrxOE?= =?us-ascii?Q?84e/lpsc+gvumliNNd7mUPMOf7KKx5FcYADxpGhcL4l4RuCmWSmGi60XH+LO?= =?us-ascii?Q?5fHl8svdfmgZDPA+pmzfi5Yjsbw8+FWKLLtazOoPI4qlLE4bXb+5LsIUNbPy?= =?us-ascii?Q?fndZGVx4Xf43TnRVVM2hpEq/yxoUzGOa2Iwu09YG4feAAKjFtLxCEROaqLf2?= =?us-ascii?Q?t6KW9PGsqeC4Uac7J47QNV3s9tEEmG/bd93onhTd1XbD+csh2N2ISxZ2zAly?= =?us-ascii?Q?dZG+SQxJ49ES2WOgsI0dj5aEWr6nJlh/lTIiaGAt/fl7jLgQdortfepizK59?= =?us-ascii?Q?b5MU9F8zwypgzryUcGpzum88hR5PmWsdBc9+W1XWMOG2I+TNYgZJWbAH7j02?= =?us-ascii?Q?mNn6FP6hiVQEju/EFjWk5adczZ4th03/YmQt8+gaW48gZfVFLfMN9syS2TEa?= =?us-ascii?Q?EzM3hhjSzqh5K8421tUVWA7VRsojaBUYs02kSDy3U63zCSsAZDO6VTZUgrqX?= =?us-ascii?Q?TRpglW+0SvUnk3rBAU+cS6c5hafTdGvSvBhTi0c86dLjRs34Pnk09RAtOazV?= =?us-ascii?Q?9jB4g/mpvoKQYW9fE0bKpvBxq6XpTyMKmI6UbJAy3ic/83kkIqbkqMD1b/Ey?= =?us-ascii?Q?2zjga+2eQ7CZiIQ8ozm/51Y+4e1yXfgc4m9Ya9HKaGFSRSgiVeJ3sgq1kfja?= =?us-ascii?Q?reEqzTd39DhGZx63K9jnEUk11jIQENLlVY1sWrUpnknnoi4//xjHJBVu8WNu?= =?us-ascii?Q?HzhgP0eMSZkgccijOVk3HqLVMJRcb4/m5xpsB/sIjXL2ihHziFirZHGWzAD6?= =?us-ascii?Q?0hK4Zrr8LnklshUpBt6jv9kQ/ERJlYM=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: e1506947-6468-428e-98de-08da1975dabc X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Apr 2022 15:38:40.1600 (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: LRgZf1pJ1YpbQIR5FMF51y3iC2M5Sig0iJdLoqB9H1+yZpOn9QXd+MJlCkjM6kFHWy+MtFTrkKxkXnY3m0fECw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR04MB2995 Content-Type: text/plain; charset="utf-8" This patch adds a new struct member sched in struct mptcp_sock. And two helpers mptcp_init_sched() and mptcp_release_sched() to init and release it. Init it with the sysctl scheduler in mptcp_init_sock(), copy the scheduler from the parent in mptcp_sk_clone(), and release it in __mptcp_destroy_sock(). Signed-off-by: Geliang Tang --- net/mptcp/protocol.c | 7 +++++++ net/mptcp/protocol.h | 4 ++++ net/mptcp/sched.c | 34 ++++++++++++++++++++++++++++++++++ 3 files changed, 45 insertions(+) diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index 0187059307d0..1153bddb92a6 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -2665,6 +2665,11 @@ static int mptcp_init_sock(struct sock *sk) if (ret) return ret; =20 + ret =3D mptcp_init_sched(mptcp_sk(sk), + mptcp_sched_find(mptcp_get_scheduler(net))); + if (ret) + return ret; + /* fetch the ca name; do it outside __mptcp_init_sock(), so that clone wi= ll * propagate the correct value */ @@ -2824,6 +2829,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 @@ -3001,6 +3007,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 213d75a58aa5..2b3143045f89 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -288,6 +288,7 @@ struct mptcp_sock { struct socket *subflow; /* outgoing connect/listener/!mp_capable */ struct sock *first; struct mptcp_pm_data pm; + struct mptcp_sched_ops *sched; struct { u32 space; /* bytes copied in last measurement window */ u32 copied; /* bytes copied in this measurement window */ @@ -614,6 +615,9 @@ int mptcp_register_scheduler(struct mptcp_sched_ops *sc= hed); void mptcp_unregister_scheduler(struct mptcp_sched_ops *sched); struct sock *mptcp_get_subflow_default(struct mptcp_sock *msk, bool retran= s); void mptcp_sched_init(void); +int mptcp_init_sched(struct mptcp_sock *msk, + struct mptcp_sched_ops *sched); +void mptcp_release_sched(struct mptcp_sock *msk); =20 static inline bool __mptcp_subflow_active(struct mptcp_subflow_context *su= bflow) { diff --git a/net/mptcp/sched.c b/net/mptcp/sched.c index bd0beff8cac8..8025dc51fbe9 100644 --- a/net/mptcp/sched.c +++ b/net/mptcp/sched.c @@ -68,3 +68,37 @@ void mptcp_sched_init(void) { mptcp_register_scheduler(&mptcp_sched_default); } + +int mptcp_init_sched(struct mptcp_sock *msk, + struct mptcp_sched_ops *sched) +{ + struct mptcp_sched_ops *sched_init =3D &mptcp_sched_default; + + if (sched) + sched_init =3D sched; + + if (!bpf_try_module_get(sched_init, sched_init->owner)) + return -EBUSY; + + msk->sched =3D sched_init; + if (msk->sched->init) + msk->sched->init(msk); + + pr_debug("sched=3D%s", msk->sched->name); + + return 0; +} + +void mptcp_release_sched(struct mptcp_sock *msk) +{ + struct mptcp_sched_ops *sched =3D msk->sched; + + if (!sched) + return; + + msk->sched =3D NULL; + if (sched->release) + sched->release(msk); + + bpf_module_put(sched, sched->owner); +} --=20 2.34.1 From nobody Thu May 9 02:07:20 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a05:6a06:1788:b0:4ac:5e5b:1ad1 with SMTP id y8csp295301piq; Fri, 8 Apr 2022 08:38:57 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzxPqO2ovu41EkhsDmwIP0XOV9V/fldKtQuuHBHDgh+CgjSl7MnpyLvLBtmrOL9Cl3S89yc X-Received: by 2002:a17:906:5641:b0:6da:8691:3fcc with SMTP id v1-20020a170906564100b006da86913fccmr18186044ejr.50.1649432336977; Fri, 08 Apr 2022 08:38:56 -0700 (PDT) Return-Path: Received: from ewr.edge.kernel.org (ewr.edge.kernel.org. [2604:1380:1:3600::1]) by mx.google.com with ESMTPS id f25-20020a056402161900b00418c2b5bf33si954183edv.533.2022.04.08.08.38.56 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 08 Apr 2022 08:38:56 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4675-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1:3600::1 as permitted sender) client-ip=2604:1380:1:3600::1; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.com header.s=mimecast20200619 header.b=Ulde1fhC; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4675-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1:3600::1 as permitted sender) smtp.mailfrom="mptcp+bounces-4675-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 459671C0AD6 for ; Fri, 8 Apr 2022 15:38:55 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id CA17E2565; Fri, 8 Apr 2022 15:38:53 +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 183D82564 for ; Fri, 8 Apr 2022 15:38:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1649432330; 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=UJE405uDBfSRJ+SJMznEnJKywNJadW+OPNpyKtWlEyA=; b=Ulde1fhCejyeb91dt1PYwqBCm678dMEawyAxUygsk4DC0PKAzQT0g5ANbEXUatHJeVC4nE o9HrkYSkO1htDi95apohQrimNiJ2QCMI+L3N+VCgA1p/CLUaUj0upyQry1cRvzpX8yhwIk Py4QIQTzTn5l2Qz6NHxKGlyYhiXeyS4= Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05lp2170.outbound.protection.outlook.com [104.47.17.170]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-18-HKTkWkIvOIaoQsRXV0RvXA-1; Fri, 08 Apr 2022 17:38:49 +0200 X-MC-Unique: HKTkWkIvOIaoQsRXV0RvXA-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hnyjBJ8IDHpvyC89/md8Ysi/e1VYVhg19LhJX8sds7PVaPBUtzX7sTXW+8iPRmdlYd+TupouGfQsHM0NcGbVNJR60224YBTC3fQ2ZQzK/poz9NlBo6NPW85CAu4McSNuMxt2wX2wHF3pjnJJVKhQcwzEDB8eD+NeWAzdVQmUrzSSyscsa+fP4o/7fr7t+ra0VskHYZghSI6y8jz51GHsekkt1M1O3GpDddY1CGNL4ZB2WHfjnB8YrmX8TPaeDPHl6kCe5/glEdzPMNGySCjczmmqc118EGpY1Dt8Hy2vIZ4CyRtj5RXXcfSSIrC6amNpgj54+YAdkqrPhCn9x0oxQg== 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=a4aFxYxKyQ+POGu8T6k+SkwS8X3Ugj0JPvJAvKF/Qso=; b=CaG6otCwdP+AkEToWh6l5aHQlGa1xFpFp2doknJ5XSBub+yxyyQLOfRsyeufdG2iN+57h23IKUTcDyYXqP7LK/p68427ytbIjk19lhKt3Wk8ZlshIoXy+pZ2Zu/WTlDuQXoCkvUUX+JI3mgcOUyeUGlcTiX1Jg3oAg2qHX+qbYQgKwnE040rCut50UOby/AWVahvqz8VOEbhkJ8tHZPpBpv69LXOaz6DhWjAAZLTtuk7O4+wfkPxU8s+p2QEYn8qP2/hdP7dNV4vSAj2tZRHePPM1JNUM3naE78LWaHEtc+X8kb1U5nIuCnWmIY/kJgEtn8LDbCVzFMsEAS0wPBtsQ== 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 AM5PR04MB2995.eurprd04.prod.outlook.com (2603:10a6:206:9::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5123.31; Fri, 8 Apr 2022 15:38:47 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::9974:fd5e:e3c0:14dc]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::9974:fd5e:e3c0:14dc%3]) with mapi id 15.20.5123.031; Fri, 8 Apr 2022 15:38:47 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v11 5/8] mptcp: add get_subflow wrapper Date: Fri, 8 Apr 2022 23:38:02 +0800 Message-ID: <752c5475b78dc8408b2f0dc6274b35dff0a08710.1649432004.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYAPR01CA0135.jpnprd01.prod.outlook.com (2603:1096:404:2d::27) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: c1545b40-646d-443d-9e73-08da1975df07 X-MS-TrafficTypeDiagnostic: AM5PR04MB2995: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: j9gTSUOlZ4ymM7LElh+klB5gbVeg5gTejZkrb7BCE1bV+9dFnSDCjmKQLOp0xF3qBKEJf5g6ZTC/xrMenUkjcz3GV3Hz9pzzdAZCgvvIfEjGx39gKXYErwl1tJyzdlmDjlMtrcrzMQyfA4ORivOqP8hhYCcLKZQX8l2YwOH0EYTj8decWzByqNdMfNbYJOrG+gj5PAKOt+pEr1ak9YX66oMCOAwc0Y9wB2ijjkUcjJV9sQsemrg3NxtF9Ot1oCGetGtnc0Wo9+a070ukp/ze6v7TYkqNh7CrvJfmqe4V2/qSIPlencM+UjInkUowMpV8BpYHUpW8E8c8hTNMMibR2EhKsq61pVxZkwvXuI0OHFLCPI19lBqMxrrjXvkCLVleTsreP+W0Sxg6QBhsELZVzfwH9yDQvVnV4ZLnnuHrfilKZZ5TdV+wvbdW0nvZxiv1WNLvCEMngDlRWRyFmLSTDWSBTTiJyhS70BcOhMIDGKCIsZQ4/6Wi93N8eii5XLNJgsH/8ixN967XmO96e56aekwoR7WfCRnepZNpP1BAV6Cq63t0BAyeXTGtq6kmlzLHB5Zlamfs3G4mxT/+AwNG4cpMDeJzJ3Fbmn8v+Aq06kZxF5WPhQuNWWwzRnAiWqqCjduvxX8yd+e77t1x6/ghMrt6OCW9eKrBkqjLX1pn95W1JCgn6C1XA4D/JQMyJJ0j X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:HE1PR0402MB3497.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(8936002)(38100700002)(2906002)(4326008)(5660300002)(44832011)(316002)(186003)(86362001)(26005)(508600001)(8676002)(107886003)(6506007)(2616005)(66946007)(83380400001)(66476007)(6486002)(36756003)(6512007)(6666004)(6916009)(66556008)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?6aEHvrunKOM8q47rQTNwCUuZNVirE3zrGJ9z6w2FTGXqGTXzOh2jIbZ2Ngap?= =?us-ascii?Q?zyXPBwzNQynbCqMP3JmqZa2YjskDZsid5V+ay/E3ZQ6n2GExzHrVtTygGno6?= =?us-ascii?Q?lBhi57DBRdLwkR8f6gVkXNEKL3TJOT9v8tK/Kk2r2u4kbrmSPclDxN3AWtZB?= =?us-ascii?Q?F+O/Z+KAVb1plRrtIj2ZSF82ybGj8J6Fx03kTfjyvR+47XekQOmbDmCG0OuB?= =?us-ascii?Q?ivYMtNo83OsWmMjat1hojj4zgx1OlE8fxBHrbeSfi5tL3QXVp7hjkU3BdV7H?= =?us-ascii?Q?MqhAnZNYXC5gOQDRdC0OPyEEX4iIH2HUi7WHJfB4PQH6I5t5z1MH8xk+Sp94?= =?us-ascii?Q?Nr2EYc9n4mnyq1GM6esm7UsYNzFmUTNoeHKiv49z+wf+ffLTqKiBd20D4Mig?= =?us-ascii?Q?i7YrDOVxWIwlI2lW1TvtJ1YuStWsHLiwVMI+6utm9/oyeooxWdYbGZEY5tM8?= =?us-ascii?Q?rpYUR/gS9BdnUwGDRKktoxN6A/35zpcObFb+QLcZmYx1f7wrZ/2pUqROt5q8?= =?us-ascii?Q?a6S3JlAh3qInjm3JlH+jWIUNHB4jZl0SXd3wsx3pI/ZwHsPA80XyPHADNWNR?= =?us-ascii?Q?7ZCcx5QP/7DMcfax/RHJQPyLTnNKx/xPVby24iY3aJWn3PxywjDZHp/16sJj?= =?us-ascii?Q?sfVwYt0Z52nN15k9rfy6NKYIZx+Uzoa3bNpggZK1IDivSKNRxSaGwPtUDfWG?= =?us-ascii?Q?FWo7KzoPbPZxPFpjkSd4r92ibBDV3zCfcrN7rvBAuOD92i6copfN4tcZOCNW?= =?us-ascii?Q?pLOpAmV9MTIszukDe+uwrQ+1CVuRMxzZwJ1lMx99+vVCrbJbpVyhaXzC12Si?= =?us-ascii?Q?pzv0r7wavKERG+HquOUqdvYGJXtGx37rpgYQ5St+i7khn09toUKIh9WspJAR?= =?us-ascii?Q?+201aJKLe02mBxVxrk4UJdUZSMcvHW2DSrELMbZqkEqc2Ypv7xGet7aTP/CK?= =?us-ascii?Q?wD3MJN9XnuZXrOdE8nXK4LDNENPEvRmv3XD9qU8N89S7UYo4B8xBGEl87miV?= =?us-ascii?Q?f8f/XhvozPIZNERGxoh8VPruJRaof5tjreJ87gQweqzJt86Sd9llDulRSv6j?= =?us-ascii?Q?LYLanDAl0mBqxFbPeNbgzt+mYCUarGOY5cRvK9Tl16h6tLUp7OT2Ux4M5RiX?= =?us-ascii?Q?QGH642lWmemOvZHPa/0zvzmvNN2Mh7y+D8byhkvvrNaRdaguxmfjv5OtTcHf?= =?us-ascii?Q?fYM9em8zILP0X7tMrUUd3gdPrR9BdTbL8TfnYSnT5NN1SjhMkL4oOa7hzNIR?= =?us-ascii?Q?c3LKxI60eU0y+x7c7+f4GpfDUG68RmPDv/Br9eQUn4jW6I/9+GhJkQWaamyV?= =?us-ascii?Q?6ZSmvcq6ZTV0oLMc8vN0ICka8t4v/zbl+Aqw3oKN/1bJVxeO+avaIT3Oxk43?= =?us-ascii?Q?NReI95sXDkvSACp1n2m89agujsFfaFMc4wT1SCLbQNYkXiJWDQxN7ZFDH+jS?= =?us-ascii?Q?GbNLsnk2f/TYJ/wy1HIevnHg97P2cctT+tYOw5kUGYUQpGV3PQuSqWxR/r/w?= =?us-ascii?Q?WPaq8R3yLuG2htO1oqF5ZPe1FHOFIK5+2N6Vw+wFge5WFXeY++Rk9KUUjkSB?= =?us-ascii?Q?AGK/lw/jy7qmnwjJtQE5gp+lfRhoh5Ts8iUjyQXoggmvFiF+vk+Buz113/vR?= =?us-ascii?Q?e8+FCAMXqZhWaL3jo1+60zwiRNWoyv77TJvCrPm7uJuzSuA+w5J8YULmHnLJ?= =?us-ascii?Q?KKEIH6krrHzkGx5hEqigoIdQuEED+aqrfoLPFByy2WWGorL5qJvDDZAsxSzV?= =?us-ascii?Q?GLvz3bSBEe3M0KNvqO+uQb8Vz8We9Es=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: c1545b40-646d-443d-9e73-08da1975df07 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Apr 2022 15:38:47.8157 (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: 1FNsyJ39A0Qtb7+K6Kyst68eJDOTO/snl2ThsWp7glY39uUFLfy/FF9ThzXT035B96qUgDg2kOjFy9GgnlaUww== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR04MB2995 Content-Type: text/plain; charset="utf-8" This patch defines a new wrapper mptcp_sched_get_subflow(), invoke get_subflow() of msk->sched in it. Use the wrapper instead of using mptcp_subflow_get_send() directly. Signed-off-by: Geliang Tang --- net/mptcp/protocol.c | 8 ++++---- net/mptcp/protocol.h | 6 ++++++ 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index 1153bddb92a6..785c428f87ea 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, false); =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), false); if (!xmit_ssk) goto out; if (xmit_ssk !=3D ssk) { @@ -2481,7 +2481,7 @@ static void __mptcp_retrans(struct sock *sk) mptcp_clean_una_wakeup(sk); =20 /* first check ssk: need to kick "stale" logic */ - ssk =3D mptcp_subflow_get_retrans(msk); + ssk =3D mptcp_sched_get_subflow(msk, true); dfrag =3D mptcp_rtx_head(sk); if (!dfrag) { if (mptcp_data_fin_enabled(msk)) { @@ -3145,7 +3145,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), false); =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 2b3143045f89..a58c5c84e72b 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -619,6 +619,12 @@ int mptcp_init_sched(struct mptcp_sock *msk, struct mptcp_sched_ops *sched); void mptcp_release_sched(struct mptcp_sock *msk); =20 +static inline struct sock *mptcp_sched_get_subflow(struct mptcp_sock *msk,= bool retrans) +{ + return INDIRECT_CALL_INET_1(msk->sched->get_subflow, + mptcp_get_subflow_default, msk, retrans); +} + static inline bool __mptcp_subflow_active(struct mptcp_subflow_context *su= bflow) { struct sock *ssk =3D mptcp_subflow_tcp_sock(subflow); --=20 2.34.1 From nobody Thu May 9 02:07:20 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a05:6a06:1788:b0:4ac:5e5b:1ad1 with SMTP id y8csp295470piq; Fri, 8 Apr 2022 08:39:15 -0700 (PDT) X-Google-Smtp-Source: ABdhPJx/jouscVxuHbmrrmqURNjyJuqKjfsAnOPlmav7HsTnROTAOPe5Nm8Zn/H6SJzoXqPYg2VB X-Received: by 2002:a05:6a00:21c6:b0:4fa:914c:2c2b with SMTP id t6-20020a056a0021c600b004fa914c2c2bmr20194809pfj.56.1649432354925; Fri, 08 Apr 2022 08:39:14 -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 m9-20020a654c89000000b0039822e42cbasi1658070pgt.427.2022.04.08.08.39.14 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 08 Apr 2022 08:39:14 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4676-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=FViWx9h0; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4676-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.69.165 as permitted sender) smtp.mailfrom="mptcp+bounces-4676-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 800133E0F50 for ; Fri, 8 Apr 2022 15:39:14 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 60F9D2570; Fri, 8 Apr 2022 15:39: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 9ED822564 for ; Fri, 8 Apr 2022 15:39:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1649432349; 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=0hvgizazLSVqB/vatjqRkjg0r7EonKFUfE/VaWeXCr0=; b=FViWx9h0Lpoo50jET18YScrF19l1ntOPhglI4Zyoc0zJ1C0+syzc0dFis/cnG4GZ+3OLpU 6igk9HsMocqACxv/ItTFRgAj43O/v/P8fN2LWf7G4DbE41y3Jl1M8GdY8xeIUj1NBU6Dej wW4OxSHE5Fy5MKig2ryIzzkzvdYAdDg= Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05lp2168.outbound.protection.outlook.com [104.47.17.168]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-18-wJTiCzKbPwCTeEm-EffIvQ-1; Fri, 08 Apr 2022 17:39:09 +0200 X-MC-Unique: wJTiCzKbPwCTeEm-EffIvQ-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JNBbdtHY6S+7dfFRZXCCjUMMGyyKi+EelPuzzqOfZRE8fGwlYq/3xgpw+8zKWM8Jr/oL5jLWSWIE0vpPCFs4GEpk2Sr290zf/kAVs0L748MPhem9kZqmAaV5tRcHZgxYu1QVLKfyTjvM52wKLJ7yXPdFvfR7NBpiJto+3MZGlNMptHWHepNy/ZksWutn7K9i8z5GhK+7qIRYNZ1eK7xbKjUnCCxCLR1rpGqUnOgdAAKntrHrubFYNIkzRLNizuAf2Poqt0mqsdkvBJ0gR6YD0bgzVUeqKhd2HONLfUPwxUqlTHxfeh3amDXLH9jEyXPlDG7tLMCwavH3J22dvha0tw== 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=i/QGFqUTVH0QlTuFZqXcDHVQX6mvFPq1GybMAx2rAjk=; b=Qv2pS3yxrbEARcPFJvmZl5aXEH4zQKUsB9bWm+cs4Y1n2qhPaKC5dzjPMG/mapPzLloYj23x7YxalSX1xUAlpdbHIBkaUmxAajumf7qh1TrGMPvK+5U1GQhS3ozTm84nwejgtApyGWpx4HB9iMLw7hWRbfqkZiufRed8joTByh2wtt0X4TxNOc/ASAvTj3x7wOhTMM6D7MnNbcVE/zapBq6cEwM+GlU2Y4Ke4yHO1wDCvZURy8ewLSvrIETO+c1D7dODM52jdI05Kz+SQosNsnNJDY4sn0TrC1SOeiXut9WXT+rOINYwqmAyGf/3jLzBDaZiE8k5avgHdnE3Ncig9A== 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 AM5PR04MB2995.eurprd04.prod.outlook.com (2603:10a6:206:9::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5123.31; Fri, 8 Apr 2022 15:38:58 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::9974:fd5e:e3c0:14dc]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::9974:fd5e:e3c0:14dc%3]) with mapi id 15.20.5123.031; Fri, 8 Apr 2022 15:38:58 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v11 6/8] mptcp: add bpf_mptcp_sched_ops Date: Fri, 8 Apr 2022 23:38:03 +0800 Message-ID: <39a111f7231e9e8b32d731dfd6491026e278f935.1649432004.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYAPR01CA0125.jpnprd01.prod.outlook.com (2603:1096:404:2d::17) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: a5c4bc62-ef08-43cc-bc54-08da1975e55c X-MS-TrafficTypeDiagnostic: AM5PR04MB2995: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: vBmBciP8xWX7ppWwWj1/niVt8TRS1caeML2qp8SNityrdzraJXP6dm+cnMjy9rTGE8Ewltcq1Ll6HdK/GfbQHWo6aCb+DPijz9FGXqIyFBHfSi8nhV94pEK9UVTvOibda7FhPD1iFMWie8dTZnf7Nc3m9m5o7IXIrzrmZcwmxNLS4zdEBmgSHtQ/RawUs9R6tgbI5cqlaZtKytdXBgI5QseBiHs+XXRfScX1Nj9VW2DqKs6cixlB4/AJAjaDPndwiqh2g3qq3Zoovshj8gj/AFc64ffNLokzqvielleQCv2TJeO6XcLLJLyf4kwC2uPBUFHfrwXGUEh19xc1DrhRnvewiEDimmGuF1jwkTWf6o52pK0g12D+oi2DELN4IhoaHKqttcnDVpgW/gUEZ0vJbErJy5jzNSwwlKr5nSMV2BxU+nKrf5NG3rPd9wd08/tFQ+KC3K41n7UtOqS4B8VtmfZjXnCfQrDLu2bZ0uQVWjVTAHh301krKbo1iTowHDEQMshfx4KI0S1OCO3Jf+DA9IGUWsIW9mSorsT5unjxGshZAPeeoFZVLAszvbp/kjUqs0dXs14OaB2bJgWzJ6Vy0edYGKmhZymljqLaA3SrSS1uVObytK6gEwwGCrMCZig4749effh8pStVexbvpGI3oMX8XSJJyummA2nECp8ATYa9PQqirbgS2KHgaLCaQo15ZrZPWMHlCODLX37zgvPfkQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:HE1PR0402MB3497.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(8936002)(38100700002)(2906002)(4326008)(5660300002)(44832011)(316002)(186003)(86362001)(26005)(508600001)(8676002)(107886003)(6506007)(2616005)(66946007)(83380400001)(66476007)(6486002)(36756003)(6512007)(6666004)(6916009)(66556008)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?vybSJ7HD+YSt8zCzFezvuQAC2HAll5TeYXhdjcgFQNNZzgtIQNfO7JvNY5aO?= =?us-ascii?Q?WrdOyF64t9YNjBNVid8KXNLR+bNp79bQ5w9/x0i2Cj+NZeGXwGB2rJhjdlJF?= =?us-ascii?Q?WJUjXCaZbpkyT02W7Z0zoephUKp7SLOZj9Ng0RJeRto2yEIvsYbWluh9kQ8N?= =?us-ascii?Q?mG4EdvL0nBoXDVDTMQDAqQ+kFQvuDJjSR28EJ2Aw2pbD7FKUb48dPNKGhft0?= =?us-ascii?Q?1+v1H3yIKbC1b5mwz0KL6TbG3lJZUURNg9L4VME1w4SyYC0RriPC7F7Ebivw?= =?us-ascii?Q?4tjIWLLOhlJDiM9mCQcLwIylzEVTzN7LmXiqPksMyhe16XlRo26KRrNrFmiZ?= =?us-ascii?Q?CRPVrlxJY2w4xmMHZAnrnchlZ5Ef8vBY6b6rAMAb0Q7KZRX+fabe6BeN1Css?= =?us-ascii?Q?SEcdzKB3B9ocILtPLKTGw1qWORz6OnEh2rGTFkubtS1QOvQ0jqzft6v0W9Uj?= =?us-ascii?Q?bIwx6QiQIveI/rNE7uT3WnZj4+SRFx5gNrFkbyIHyfNgLkqnwvDCli+L9a5Q?= =?us-ascii?Q?pRw2goOgFu6B5gAMkJNAC9e+0jiWr/GdVWG4lo0Gkml5ugW6dWnDmxIkQEHi?= =?us-ascii?Q?sGYoUmScu30EKomfvQBCC7iLwoDz3+p+eNYIyKxfjwzXhA0px9P04EaThTFB?= =?us-ascii?Q?Ht/T0Q91AYu4KMfpTovNGPuiOnkSC/Zwuz87OmbNJWXt3qo+jFGb4cwLSs+O?= =?us-ascii?Q?DXJogZ8LGJjI9nia+KCSVPC/I5O5/PjC7VA9g6JtM8BNcji2y9q4mDBbJjnK?= =?us-ascii?Q?H/cy0652dRp//FC4O8VCTNZYkR0qm5Iie/bOyJtWqmw0X6Jh8xAxEHtZuePV?= =?us-ascii?Q?u7a4QcY5Uee3RXcY669mSFrZiKAB3WcrAzzpSPHQjgSJONuLnPsQK2yi1YQt?= =?us-ascii?Q?77qLZD83v+xT0x13dWrbM7OaJHkfKjo0Zt4ilJI5h9pb1tFPbQuhDeX+TNQZ?= =?us-ascii?Q?5z9zIktSpX2ajHYYKRdHh3nn/NQUlg+t9lyvwYuDYOYvSgmi4KeTRjWp1aGG?= =?us-ascii?Q?SwpruOe28wLkyNzipRRi89RtOXEYJ8U+xMcFgDrZo3muY4phtygN1DnBOnV6?= =?us-ascii?Q?r/A6n/mXnlMEuaBp18Ca+5H6jphn9mumoC1u8rCxbcPrjgB8AoFWDdWV1ZgC?= =?us-ascii?Q?gp8Vubn2Rqrl+O1ANBgn0yIlbvKIWnPVrZvh8n0dJ/M4lbs/Em3jxJ0JynZz?= =?us-ascii?Q?vd11lb2SVINWOg+cgD60UqDm+eFLbKukBrCK/W84UyDHF/dhgUX/BTN4H+SG?= =?us-ascii?Q?1MBTXUamtiUsxRd7+SSCBTTZbI5Q8tst5B4t3ZHhQoRIsydi6VtA6DQXV93j?= =?us-ascii?Q?ZHGaLouGjKjINKPP7eTxUCnyZZp3ztBYuyRwj2STXjMz/6ZkDRYyFY7D2Zbq?= =?us-ascii?Q?fy48K3QX35+CXTH1979qfSAn8VCMkzBnCGsTa5dxS6xMBbU3RLzjDzScIly2?= =?us-ascii?Q?z0ILBTn9yuZDAApCw4DVz34xGT2EGOmhPgt9h/c2p3PaZYeHuMykELKuMIfl?= =?us-ascii?Q?YcCqXtiPTceJfyrcoih2ZUZ7tOV0O7c9mC38ZVKDauhypo03yUk+vlTe5ltw?= =?us-ascii?Q?SttS1VFMOUeHw04Nf6eJmj+UHyEv3v4DgqFZo74mJ9LPKrmObr7Kma4GA3ar?= =?us-ascii?Q?fA92Ko6LOD8ECc8GrjwwBV+P7Jlz+EUvfMAIhJN2okGF/Zp3yjhMeTishX2k?= =?us-ascii?Q?l+lo8WpUFjCn84fcRqk4gaA2jv5Cyqi4KmG+qq6OrlaS8eI1XnvoF6K/Iewe?= =?us-ascii?Q?GARwKOptNYN3GXBijVRNzgd1oLMwHRU=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: a5c4bc62-ef08-43cc-bc54-08da1975e55c X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Apr 2022 15:38:57.9867 (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: Xk6XT13+4G9KWb8vTc3eenUcWe6hpfejOutyG/GLfbF6jguvLiliX4FOkgFUvTAreiGEi/8QOGkFr2tnmA/kyw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR04MB2995 Content-Type: text/plain; charset="utf-8" This patch implements a new struct bpf_struct_ops, bpf_mptcp_sched_ops. Register and unregister the bpf scheduler in .reg and .unreg. This MPTCP BPF scheduler implementation is similar to BPF TCP CC. And net/ipv4/bpf_tcp_ca.c is a frame of reference for this patch. Signed-off-by: Geliang Tang --- kernel/bpf/bpf_struct_ops_types.h | 4 + net/mptcp/bpf.c | 129 ++++++++++++++++++++++++++++++ 2 files changed, 133 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..e849fc3fb6c5 100644 --- a/net/mptcp/bpf.c +++ b/net/mptcp/bpf.c @@ -10,8 +10,137 @@ #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 int bpf_mptcp_sched_btf_struct_access(struct bpf_verifier_log *log, + const struct btf *btf, + const struct btf_type *t, int off, + int size, enum bpf_access_type atype, + u32 *next_btf_id, + enum bpf_type_flag *flag) +{ + const struct btf_type *state; + u32 type_id; + + if (atype =3D=3D BPF_READ) + return btf_struct_access(log, btf, t, off, size, atype, + next_btf_id, flag); + + type_id =3D btf_find_by_name_kind(btf, "mptcp_sock", BTF_KIND_STRUCT); + if (type_id < 0) + return -EINVAL; + + state =3D btf_type_by_id(btf, type_id); + if (t !=3D state) { + bpf_log(log, "only read is supported\n"); + return -EACCES; + } + + return NOT_INIT; +} + +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 bpf_tracing_btf_ctx_access, + .btf_struct_access =3D bpf_mptcp_sched_btf_struct_access, +}; + +static int bpf_mptcp_sched_reg(void *kdata) +{ + return mptcp_register_scheduler(kdata); +} + +static void bpf_mptcp_sched_unreg(void *kdata) +{ + mptcp_unregister_scheduler(kdata); +} + +static int bpf_mptcp_sched_check_member(const struct btf_type *t, + const struct btf_member *member) +{ + return 0; +} + +static bool is_optional(u32 member_offset) +{ + unsigned int i; + + for (i =3D 0; i < ARRAY_SIZE(optional_ops); i++) { + if (member_offset =3D=3D optional_ops[i]) + return true; + } + + return false; +} + +static int bpf_mptcp_sched_init_member(const struct btf_type *t, + const struct btf_member *member, + void *kdata, const void *udata) +{ + const struct mptcp_sched_ops *usched; + struct mptcp_sched_ops *sched; + int prog_fd; + u32 moff; + + usched =3D (const struct mptcp_sched_ops *)udata; + sched =3D (struct mptcp_sched_ops *)kdata; + + moff =3D __btf_member_bit_offset(t, member) / 8; + switch (moff) { + case offsetof(struct mptcp_sched_ops, name): + if (bpf_obj_name_cpy(sched->name, usched->name, + sizeof(sched->name)) <=3D 0) + return -EINVAL; + if (mptcp_sched_find(usched->name)) + return -EEXIST; + return 1; + } + + if (!btf_type_resolve_func_ptr(btf_vmlinux, member->type, NULL)) + return 0; + + /* Ensure bpf_prog is provided for compulsory func ptr */ + prog_fd =3D (int)(*(unsigned long *)(udata + moff)); + if (!prog_fd && !is_optional(moff)) + return -EINVAL; + + return 0; +} + +static int bpf_mptcp_sched_init(struct btf *btf) +{ + return 0; +} + +struct bpf_struct_ops bpf_mptcp_sched_ops =3D { + .verifier_ops =3D &bpf_mptcp_sched_verifier_ops, + .reg =3D bpf_mptcp_sched_reg, + .unreg =3D bpf_mptcp_sched_unreg, + .check_member =3D bpf_mptcp_sched_check_member, + .init_member =3D bpf_mptcp_sched_init_member, + .init =3D bpf_mptcp_sched_init, + .name =3D "mptcp_sched_ops", +}; + struct mptcp_sock *bpf_mptcp_sock_from_subflow(struct sock *sk) { if (sk && sk_fullsock(sk) && sk->sk_protocol =3D=3D IPPROTO_TCP && sk_is_= mptcp(sk)) --=20 2.34.1 From nobody Thu May 9 02:07:20 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a05:6a06:1788:b0:4ac:5e5b:1ad1 with SMTP id y8csp295490piq; Fri, 8 Apr 2022 08:39:16 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwgMTus1ltPxlKlYB7cvA6MH/z3WCdJV2dTUtBiGiZK66IH7XAInFIQiDlgZbJafA8ujYa5 X-Received: by 2002:a63:e201:0:b0:382:6afe:f0ec with SMTP id q1-20020a63e201000000b003826afef0ecmr15979046pgh.339.1649432356374; Fri, 08 Apr 2022 08:39:16 -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 rj5-20020a17090b3e8500b001c64f3d4750si5184017pjb.161.2022.04.08.08.39.16 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 08 Apr 2022 08:39:16 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4677-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=Fb5pYedJ; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4677-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1000:8100::1 as permitted sender) smtp.mailfrom="mptcp+bounces-4677-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 9ADA53E0F68 for ; Fri, 8 Apr 2022 15:39:15 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 219B12564; Fri, 8 Apr 2022 15:39:14 +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 8FC782568 for ; Fri, 8 Apr 2022 15:39:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1649432350; 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=1cCK+VsZ1Rstg9g8QPR+XiS98OOGOL7OFKiOjDIPpik=; b=Fb5pYedJ9eVFVTFG0yIPLZ7/lhpTm5uqL6kBxTi6hu73ZaxWB6H5WVsL+vlyLB3vpBxNR9 qcP11S+fM2DuBy/NfuqffGsXaqIXEkcT5HrKzfzjkr6mgsNZ1aTh04eTWCMuZHBAD8orUN 7Abm++pBTBA/q6aaMwMn7WCeM676B1o= Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05lp2168.outbound.protection.outlook.com [104.47.17.168]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-18-htFIOrdtNYq0AVYl0M5lyQ-2; Fri, 08 Apr 2022 17:39:09 +0200 X-MC-Unique: htFIOrdtNYq0AVYl0M5lyQ-2 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MiK26/tf4p3pxdpWfaSE07GydVqkkTGRftvBpiorZJkrGXchoJ5B/fbrT6V4MxnvYF2x8dCIVm4YMWgPLUckedbOZ1DnVrpLbDGHTCTy010fciJRfqaN1G7GilRK/6XcPd4d4rpd5sSUFo972KcSCoxH8r97M5aCe5VCoJNglvoQU+XGCOTHB2VwHTwTcDj0ud+yqgLlZgPUvzbJpnOScvD0QJRG9KOUgf347Ccobwh9s3YxlQ9+nySZFkMYRr77bo8yZw4DZyuZWyO+UWgkxfBGByki8gDFgLSXhdzcDAk1VGGBzTtmoC2U4QbCx6oXMtUWYMfHy1cFQZ1jInaAjA== 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=CwmIyL0H0SciduLqq9F52OP1oiM/JvfxPR+rxkBIcy8=; b=njkSKmy1XhJ667qwbi75xHhP78v2+xFc47RphdwdQw29T5acbWYP9ZQQCndjMYrrGWeM5nHOQSgBdO0tnLZ/wfPPogAYDJTqPnrZ3FBZsO81GKfOgdvmDS868ryQnA+CIEzrRO7C2PQLbjI56AnC/nmQ83G/my4yGDdBgFqf037N9vR/sYB5g/4Kk+NJO2VwGgMANSB0Qd0WgF9ezZOkCtcVizNrhQGKUFWI/mj/eKZmmWEeWVCW9SoBiAqhi8e2qkk4kMEeHLVsvDScV//8TWek/oA/N/wy/rfE3V7QeG+94A1OtN0vGTAxINkhNJD1SV7WnjnE1U0CXFhQXTh5LA== 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 AM5PR04MB2995.eurprd04.prod.outlook.com (2603:10a6:206:9::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5123.31; Fri, 8 Apr 2022 15:39:08 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::9974:fd5e:e3c0:14dc]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::9974:fd5e:e3c0:14dc%3]) with mapi id 15.20.5123.031; Fri, 8 Apr 2022 15:39:08 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v11 7/8] selftests: bpf: add bpf_first scheduler Date: Fri, 8 Apr 2022 23:38:04 +0800 Message-ID: <75ae045257ab014b9ad3001063485481275668d5.1649432004.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYAPR01CA0051.jpnprd01.prod.outlook.com (2603:1096:404:2b::15) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: b2b70ece-1bcf-4b42-1bf9-08da1975ea26 X-MS-TrafficTypeDiagnostic: AM5PR04MB2995: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: d/gYmzTcFzXXr1fdbYp+WquJl5/mARtQaxvZrsGzu24EQRtflKO2nDKf2mklU7GbexP5d9KkNEcXj9OEP/yIhoA/PJxW9Ddfk12QNmQLvkHjUDlHPtcZwMQzpNvcMWcWStxnOndYJ3XJYcKjsn07gjaFe2rWp6kOowZV7ffRuScxf+bF8Q7J7YQzZFMNVptRPbd7gyJad4apu70s2TUP1PnMmJU4boiXd47GO+y5c+9rHPwCPvrAVCJu8QlYJ9wwwjcUTOn+yGMz9S2PD4QcYNquz/2hxUUix9TXGsuUFGlcF4X79GeA1wmJcAgINMnJqqoekXKYHmIZmFrDXru3F6mN2BrbfRO8B9Hm94U6TdNhi8pFivT5bhFnmMlo32NHMLWZ3UocSM6fSGhWFd+gHBF1lK/wi3eCyf6rvzOEJKGjhMtcCii0HWuar7YVNpR0U0a4++bXQcLT6LFC1PFtGM9CUwgsCQxCqgE9dGAlY4dOkkm0Y9nmwFzS6iHGnMg+6OfeD2kCccJ18X+d5DaCN1pe0Ue2+5CRI5ojOwyy8kg5CLBSo8Kb0+mUrVqx/GJYyRCOmAl4q4durH5i0FWPdg5vc5xVfPFBbUuqVeXJDs7+blUd3QHcgHtDmno3T3KmodBGxlWqiBPGVnNtfDQu/Su0O5gGV8YrC4fTN045TWR2PlsYq8yNCRe/vAFG/ioZeqchx7fnYRN1UY30kjPl2A== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:HE1PR0402MB3497.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(8936002)(38100700002)(2906002)(4326008)(5660300002)(44832011)(316002)(186003)(86362001)(26005)(508600001)(8676002)(107886003)(6506007)(2616005)(66946007)(83380400001)(66476007)(6486002)(36756003)(6512007)(6666004)(6916009)(66556008)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?OqQqru84mOhSM9ooOyEEhZh2z4copGzWsSygKJNPbHt13JEYGP4U3Z/OO1CQ?= =?us-ascii?Q?Lws+0yFJKjup3EB63CD38KIMhTd9JqwWC1lBRLkx7QTD+uJF/bnB+k6BYANB?= =?us-ascii?Q?gEAE7cr1giC6c23Me1BWa5jnO37s7F+PiLK08n7ehQULantdQuajR0TrPxTT?= =?us-ascii?Q?+fST5Av2/4AJzMMD0e+10QFqqy1Ao4E1DFbXwhN1f5HBsPWQDVbfybqshqQ5?= =?us-ascii?Q?c0XrhSIN+Zyta3gwWBn37qp7IMam1FZhHTFea5yIHwS3g/kRT47b0eA2Q3bI?= =?us-ascii?Q?79W7zBXA7CloZKCmsIDnCXhat0qPo7AE0scSitNVLvFDFirSRYdNxH/C4ect?= =?us-ascii?Q?73qwFq64+sTQc8wg+ezzLXoXDf3MlI7eZCba8+zUb1sv9cd1tAcb8jtCL3pM?= =?us-ascii?Q?xC6Ngt5hHXya2tVz7H7nD2gN96ucwCCGXFFw+YL0yLDuQbVQLx3zpO65Ih+f?= =?us-ascii?Q?TQMELs6CUIhIqgc419Z2dRXUWkOG2DJkoL/4vc0iBs0wk2b+tI30JoVuieDd?= =?us-ascii?Q?S2jIy6PCI0/XnKowZv0hGw3ynzmpOKUUtx2i6r2f3GUsyQRRwDB1AR3lAwxi?= =?us-ascii?Q?zGA+hpmkfewFYecbU2y+sxwQeczHIvjnWmuTvHpkEdVEwNMSgYntQBBWLZMS?= =?us-ascii?Q?gTLgpiutF/KOQK+KYYWVw10novGrVI7d2TCIAx/TzbH2NkUzxWDpgyUQgmzE?= =?us-ascii?Q?JHlGYP0PNDm6JlPTexThuBieD8Kfavs4SSx1FG6U9oG5n3PPpiJsZvq0xlJO?= =?us-ascii?Q?ZF4Zj1lAMzA2ZtmyNmhv/qZdkfdtf2BCQQSF/gIdu2YcurZgEcyMhwKWpcMT?= =?us-ascii?Q?s9tN/fFop8+ZvwUt6kRtNkB8/EQRuW1xKhSfFhKoFSOgUZy7n3vqAnlQRLE7?= =?us-ascii?Q?XiJ1L5ttxgKCx3zxl/1eYyBbnuDloDUx+62UaDLuoR9s73yLbUoXvsOHs6Kb?= =?us-ascii?Q?QYiKa4u7lVzsf+DpTAZWH3q4Cxuv3tUCWP+qa0rYR0URhGMiApoJR87pFv/M?= =?us-ascii?Q?sjsB4YwTYSB5CoPG+5QTGM31pFmtehmhG6mpku4tD4JUXqc5bw1nbTYYhMu3?= =?us-ascii?Q?zMv3vOeTxF2lBZRvNw7YKq2JL7GIsbMjF+cqevmgozJqNROW+FUngEnMCz13?= =?us-ascii?Q?xFKC/cb8UftYHBU1d4jDrxuBG0TIU1B20hX142dmQLxU8+zIxuGvM6862Ylx?= =?us-ascii?Q?t24ZZWr93sotbnVsVlfDQPC/+euCPyOWjt6NJ6Awv2k2oWVO45UGGIaoKb5o?= =?us-ascii?Q?2QPMTwZqVPmPVX0CtoaMfvKcb6ViM8fCNOHCjt7AbhJihv7/6lgE3JZJ3/Fx?= =?us-ascii?Q?BctRZMGRVKDRi4fhFl1d5Nm3c96S1wJKK20de9Ux+tZ1Hfyyxi1LMNP9V4HO?= =?us-ascii?Q?WdctXeglUSnhmwJP6QQgL2HTzrDgKan5EPZJeIUZY+g54Mfv2IONye4mjpNa?= =?us-ascii?Q?rGhaUAuYJsrh28qPKG/L3tXzCZGbxDH1dL+RN51ORuOMTs5kDjvPLZ4njYjp?= =?us-ascii?Q?hvLndOKG7/GCGwayRGVvFiFWLfiq355Px0NnMRBHN17iAp84/q2fsJJd8e7q?= =?us-ascii?Q?C0rS68qxnqKudbq4tbfwPwh7X7px3gYXSBj3JAeZ+P70w7c/WFIoyCF6TgKN?= =?us-ascii?Q?f8I/0X2gGjtmnh7AbR+59Jr/MdxQjMgiFmTeKVBm96WG0CRtO+dLe97Jn52l?= =?us-ascii?Q?58nWg0Fw2ANkRXJvDXXf31eTMZEi72muAalL/cOAOZ4dcT2GXqCRbar4XXH6?= =?us-ascii?Q?viyGmFcCeQw38swo7YeeH8fsao7ksh8=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: b2b70ece-1bcf-4b42-1bf9-08da1975ea26 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Apr 2022 15:39:05.7830 (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: lj5u91WONCsyTRUOLZoZWVmpx1UvQz8odTKy3TcE6XoT5DHTcTEoUFa+WZ2r4YGa1cW4u4zguYJpFCGmKjl/4A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR04MB2995 Content-Type: text/plain; charset="utf-8" This patch implements the simplest MPTCP scheduler, named bpf_first, which always picks the first subflow to send data. It's a sample of MPTCP BPF scheduler implementations. Signed-off-by: Geliang Tang --- .../testing/selftests/bpf/bpf_mptcp_helpers.h | 12 ++++++++ .../selftests/bpf/progs/mptcp_bpf_first.c | 30 +++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 tools/testing/selftests/bpf/progs/mptcp_bpf_first.c diff --git a/tools/testing/selftests/bpf/bpf_mptcp_helpers.h b/tools/testin= g/selftests/bpf/bpf_mptcp_helpers.h index b5a43b108982..9a0e3e7766b0 100644 --- a/tools/testing/selftests/bpf/bpf_mptcp_helpers.h +++ b/tools/testing/selftests/bpf/bpf_mptcp_helpers.h @@ -14,4 +14,16 @@ struct mptcp_sock { char ca_name[TCP_CA_NAME_MAX]; } __attribute__((preserve_access_index)); =20 +#define MPTCP_SCHED_NAME_MAX 16 + +struct mptcp_sched_ops { + char name[MPTCP_SCHED_NAME_MAX]; + + void (*init)(struct mptcp_sock *msk); + void (*release)(struct mptcp_sock *msk); + + struct sock *(*get_subflow)(struct mptcp_sock *msk, bool retrans); + void *owner; +}; + #endif diff --git a/tools/testing/selftests/bpf/progs/mptcp_bpf_first.c b/tools/te= sting/selftests/bpf/progs/mptcp_bpf_first.c new file mode 100644 index 000000000000..e9cf9dd7de58 --- /dev/null +++ b/tools/testing/selftests/bpf/progs/mptcp_bpf_first.c @@ -0,0 +1,30 @@ +// SPDX-License-Identifier: GPL-2.0 +/* Copyright (c) 2022, SUSE. */ + +#include +#include "bpf_mptcp_helpers.h" + +char _license[] SEC("license") =3D "GPL"; + +SEC("struct_ops/mptcp_sched_first_init") +void BPF_PROG(mptcp_sched_first_init, struct mptcp_sock *msk) +{ +} + +SEC("struct_ops/mptcp_sched_first_release") +void BPF_PROG(mptcp_sched_first_release, struct mptcp_sock *msk) +{ +} + +struct sock *BPF_STRUCT_OPS(bpf_first_get_subflow, struct mptcp_sock *msk,= bool retrans) +{ + return msk->first; +} + +SEC(".struct_ops") +struct mptcp_sched_ops first =3D { + .init =3D (void *)mptcp_sched_first_init, + .release =3D (void *)mptcp_sched_first_release, + .get_subflow =3D (void *)bpf_first_get_subflow, + .name =3D "bpf_first", +}; --=20 2.34.1 From nobody Thu May 9 02:07:20 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a05:6a06:1788:b0:4ac:5e5b:1ad1 with SMTP id y8csp295563piq; Fri, 8 Apr 2022 08:39:24 -0700 (PDT) X-Google-Smtp-Source: ABdhPJx6/uDVMCmSErT80U1josVX8RceRaG49onwqW9oHqca7VIt3R3lQ+fgciGiE/MFMcScd/1q X-Received: by 2002:a17:90b:4f4b:b0:1c7:928d:1964 with SMTP id pj11-20020a17090b4f4b00b001c7928d1964mr22707881pjb.129.1649432363880; Fri, 08 Apr 2022 08:39:23 -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 nu11-20020a17090b1b0b00b001bd14e03053si1672701pjb.43.2022.04.08.08.39.23 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 08 Apr 2022 08:39:23 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4678-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="QDOMULj/"; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4678-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.69.165 as permitted sender) smtp.mailfrom="mptcp+bounces-4678-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 1C78B3E0F6C for ; Fri, 8 Apr 2022 15:39:23 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id F19322568; Fri, 8 Apr 2022 15:39: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 D71982564 for ; Fri, 8 Apr 2022 15:39:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1649432358; 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=GNG8iEtpzdkuvq6LDqfwpmKo3DfQ3gomG42xVqw+Nco=; b=QDOMULj/zfhwTjabyxL1ccwrPbB+OGYhLv+s+u5cZnx9cHJnaEIo0uoDYi6B/xz3LTv/ue DHEyBlhLzjk4Q1OQJqQeRgUE2CfCIEKmeT9+noE49Qt+60Un+JLjHaRVJs0yZUUFhhJ2w4 a+e/gXHeeCACQVgiR17ybBqe/m9hreg= Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05lp2174.outbound.protection.outlook.com [104.47.17.174]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-38-HY-ec6tAPqa74ZDrrPh_Fg-1; Fri, 08 Apr 2022 17:39:17 +0200 X-MC-Unique: HY-ec6tAPqa74ZDrrPh_Fg-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=HnpnFugJxq5Y3R+ar5IPHbMK/jS7zt8YOqYgyHVdxnqKcg7bfZgqSVZzOCjyeBKSyXpVlHS66QELte5N8jHS9R8x6rEn6WAecuErgPOF4dGuxw+rQ0vYl/Jfo9730S2jcN/GFzGXJjjpp4VBsVXB9htojHQEZmAZwctQXMXEjbxkMpszzTK4fNfizCd4arAHFxBOZmFZPfLgeJQ8TfRUc6Zw3oamIMiqktLy9IKyZ0vJ27yTjyaFTnIJaPr/e8zYX9zyE8+px8jWrXCOKMDGNCO5yM2i8WgnhWUpylErbIZOgDdvkCfSR3+sCQE9GH9wRFp2KRAd+vFifYpo4PJ37A== 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=YZK0VfxUK4qsR2ROUjpij6j46M5w2ZGToJAXYcwSeKA=; b=La+4WwRWqdTCmpMOsSSFmsDRQB1OfYTI5nhFW+lFIKf5v6NbmWkLlEp0x9aGCvBeyI3UmldnBkiygmzxwWAPJ9udyfYRsNi5crhhoBUTbVFqqrd5vCfTNlMcLp7D5+qE8YRSwMd8jyTQhD49XhvtUClm+vYErVm4ilbEFKNGj0qWEeLv+T9Fenoj0lRgq4cPARwvi1Kh+2dDF+7gH90GzmL+URjRHynQno/bsSmjX5RoUVbcDfkKfawoUOi9DQjjtPVItwIUfxh0kxmsDqcy/XjId7tHTuxiwVUi31O6/iK7ZkVig/YIl4UqGfiQgpTtRoI2+7i89NfTNVf9orzdxg== 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 AM5PR04MB2995.eurprd04.prod.outlook.com (2603:10a6:206:9::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5123.31; Fri, 8 Apr 2022 15:39:16 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::9974:fd5e:e3c0:14dc]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::9974:fd5e:e3c0:14dc%3]) with mapi id 15.20.5123.031; Fri, 8 Apr 2022 15:39:16 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v11 8/8] selftests: bpf: add bpf_first test Date: Fri, 8 Apr 2022 23:38:05 +0800 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYAPR01CA0056.jpnprd01.prod.outlook.com (2603:1096:404:2b::20) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: b7346a0f-6ba4-464b-2981-08da1975f049 X-MS-TrafficTypeDiagnostic: AM5PR04MB2995: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: nPDSPxqLn9V4dFCIAJzXFzy0JHBR8z+G3FvYbPOKJ1FrnxQZjdZUXu4bDfmWOC5AbiKBdcUjNGwlWg+Gdyx4xM9MJRH74GmLkrzFE0DLRXX2j9pQSV0HKf3NDV3vSFok5raNd50o1YfLK+MPtST4OQjZZobecVot8xKodZTOAjkkTrlEzjxSUrNfXSSNCUmAgv5MxgDGvVZB+/jbHBdZyef6/0p1G5LiIlqMxpkjRAr/ePTa6VOTZ/zcF0KG+kKcI3yv9eY9o3/LZvoO0DzkQdo6wxDEDCgIFG8CLwVy0Af8dmhhZQ/x1jaSnVSMsnRbjmO0xAc/Tc9tBCxczNBjrzxlsEVULTx3Z0vzZvR0VZeaKSKAAmM51SfL+ZV0xa9w8rFqqWYAQ/j6IfjuoxssXAFl5tG58DmbEa+gIXQUL5LmnODfvbDr+H7ntMZAJc59sJnX7j2igqEYNtf8p2yDq7xv7B+ie57IEUM4edwqASQjyIiu6/ZdHRoA5ACFZymDcUyAQQ/QWvEdn6G5pNBTCB2uj54F1lzHEckYe0jipnZwESIhghKQYcXJUPT8yG5xB5AlU/RTynEklUUE/+riOMQuHioXE/2hEMcz7SMcwakbGNS6X+PGdT1xjqCCtL2mgPEaQkWuMvafV8XNw/eHXK0J53rFNJDBbp/LSgHTM2XLbSRxrxpJvEXr1YHnPo2t X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:HE1PR0402MB3497.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(8936002)(38100700002)(2906002)(4326008)(5660300002)(44832011)(316002)(186003)(86362001)(26005)(508600001)(8676002)(107886003)(6506007)(2616005)(66946007)(83380400001)(66476007)(6486002)(36756003)(6512007)(6666004)(6916009)(66556008)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?4o049XyLybYWlLdigeSOYZ69X5YJIqNGUcg3uV751QlWxzg32AzB0/SMERru?= =?us-ascii?Q?8UeDOEx9ua1ZCj+m9BssCipdChZ8IbDhUiPGAPTpDHQKAHgwam6C5W+EX3KV?= =?us-ascii?Q?1L5rZv5FB8JyarpT6t67129MJHl60W3ms5Nd72J62wlceHw/Jc0Xrj3WrAZu?= =?us-ascii?Q?DlwRlDv52Ht/+4XOwaQ3+p6zvHN5x6aGWcPTa2gvnfFM3Nk+TxLAYUCbqSPX?= =?us-ascii?Q?ZakgAsp5qUAQvUqMn+dk6B8Z1oNPzub/mKXeMyujxPhkkMjci672EFcOWeQu?= =?us-ascii?Q?cysZOSQz70uMulE2WAb9MFrIG45AJUqwporPdyUuiy64vCRoi5SUT4OrqJqc?= =?us-ascii?Q?BJou1AMCyb3/MfQmmw9sSanmu9gU2MLwag9PncjCJq01Dnawb97sBwuWBn/9?= =?us-ascii?Q?QOvw8ne9Io28fL2D07s5W/bs0NSAgzccfn/ASQNbMmAQZG5zCjr05xxNPmuS?= =?us-ascii?Q?fs2+eLE7mNQzxWzr4SB/9EEv4D864MSojyauYIR6aB/66BBdQJjF/436WApN?= =?us-ascii?Q?2gddBmK7LP+nzCGKoqoYEx6W79KJSPzOn/XVdcJvT3Twp5K0EPM0ruFxDt4p?= =?us-ascii?Q?h23YJ4t6ZylsAHcyx/dX0g2Q+Ur1D/9k+DZDDI3iy2ZIDDLLFEEnPmRjOJiw?= =?us-ascii?Q?tD2LM6d96LyOo5+MP9pnyTsvwOj5feq6joqYlq5RWOsnEQJXjoIj7dEDfppe?= =?us-ascii?Q?46VZ8w3ucScXIo8PSzgblHdK2brFBp7rH0DukBuVaRd6d9AjeaTUkvXu0rps?= =?us-ascii?Q?afDZtt14AnTnaeYygPSzUc+Z1K1R5t28r9UxO0qhHLMWWfWUzWn+7Jqig/ED?= =?us-ascii?Q?Ve5U1iBq05Jns/HkPOWKkVfjFPAG+/qc+EgdYMfEY55uscuvSz9i6dWUJjUZ?= =?us-ascii?Q?JAfSfESMQz6rxryHXq7zh/OE5ZlQ7M0LorAP3vBYbMVxHkLEa7uFod9t7imw?= =?us-ascii?Q?EAnXA1UnU5ywcfc7Z09MNJMOmX6lT60Q3mv4PgUxzHCowGQfj6fs7yU9v18z?= =?us-ascii?Q?ozLgv+DwCO6mAQpF5+Jg9BZSEJ11hsLt/qE0foUUSRkCTK4BNxUVGNw3agcZ?= =?us-ascii?Q?6y5Zde8Qs2y4W+pdQGxYjQ3/KBjSBMMYyCbnu+uftoa7POZXeRCQH7lJl60b?= =?us-ascii?Q?HznPDqqyd8k8MHxJaI05Ua3y01Yzafr/QGnoP3yvJ0pt3TdtT3h/tfHbMLvn?= =?us-ascii?Q?6ppXJJ63Cvqr+OX/sV16XShnlbPMHZ/beIHNdoL33uahCVDu+o9u7akGZx1i?= =?us-ascii?Q?4HsQ+Na4g2rv1V0/vbCuLQ/ATSj2lklc03Aw1sfqFEUj3ulda8rPX9DnFQRT?= =?us-ascii?Q?49ZxlDeapKUqV4Mc6+hKu4RYt9fqsqVG5r99srXfS1FSpAQZpacDdjbv/SZr?= =?us-ascii?Q?C1lXnyD2K/OF5x0BDniGsVc1YRKOmElBIyPgxjz3lU74C4FBwFzGkNe9UdJq?= =?us-ascii?Q?04Exn/EAEpkPrZ+WHjZOmeHWLbV2IS4Wot6AEbnjL7yNPB/rNgziBb/eHOqQ?= =?us-ascii?Q?OiRFsERhEVuW/h/pDqLWqgQhLLqVR9WuSf9t1plbhhX48iGUoObCrjO7SV+M?= =?us-ascii?Q?PG/8PNNxGLHJKvzEQUcCxj2yn7AS+YFOZNFZ/wl5ViJWa3DfwfnDZYPs0glV?= =?us-ascii?Q?XEWpr2eT6D+TlMSj78MQ7DRoF15a07CM0eTB+3cnJkYVbrV4hRYlsfi5sEJ+?= =?us-ascii?Q?8lUjQ/tCeD3hzDQQ6Sk/aYF1qeA0kNRBT0k2/5o8pjkZ7chQuDPzJlnu5ECo?= =?us-ascii?Q?YJZp1mxlLfrX6Doa+ifB57/4d78C9Do=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: b7346a0f-6ba4-464b-2981-08da1975f049 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Apr 2022 15:39:16.3134 (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: cxEecCVELIqz4WzLaiGgJSrs1WlLUpqFc+GHUbqAQLk3Filt5uc6/LYdwjukjdTjruBQqpK8QXbyKDE5GG/GMA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR04MB2995 Content-Type: text/plain; charset="utf-8" This patch expends the MPTCP test base to support MPTCP packet scheduler tests. Add the bpf_first scheduler test in it. Use sysctl to set net.mptcp.scheduler to use this sched. Some code in send_data() is from prog_tests/bpf_tcp_ca.c. Signed-off-by: Geliang Tang --- .../testing/selftests/bpf/prog_tests/mptcp.c | 113 ++++++++++++++++++ 1 file changed, 113 insertions(+) diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing= /selftests/bpf/prog_tests/mptcp.c index 7e704f5aab05..377ebc0fbcbe 100644 --- a/tools/testing/selftests/bpf/prog_tests/mptcp.c +++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c @@ -1,9 +1,11 @@ // SPDX-License-Identifier: GPL-2.0 /* Copyright (c) 2020, Tessares SA. */ =20 +#include #include #include "cgroup_helpers.h" #include "network_helpers.h" +#include "mptcp_bpf_first.skel.h" =20 #ifndef TCP_CA_NAME_MAX #define TCP_CA_NAME_MAX 16 @@ -19,6 +21,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 +255,117 @@ void test_base(void) close(cgroup_fd); } =20 +static void *server(void *arg) +{ + int lfd =3D (int)(long)arg, err =3D 0, fd; + ssize_t nr_sent =3D 0, bytes =3D 0; + char batch[1500]; + + fd =3D accept(lfd, NULL, NULL); + while (fd =3D=3D -1) { + if (errno =3D=3D EINTR) + continue; + err =3D -errno; + goto done; + } + + if (settimeo(fd, 0)) { + err =3D -errno; + goto done; + } + + while (bytes < total_bytes && !READ_ONCE(stop)) { + nr_sent =3D send(fd, &batch, + MIN(total_bytes - bytes, sizeof(batch)), 0); + if (nr_sent =3D=3D -1 && errno =3D=3D EINTR) + continue; + if (nr_sent =3D=3D -1) { + err =3D -errno; + break; + } + bytes +=3D nr_sent; + } + + CHECK(bytes !=3D total_bytes, "send", "%zd !=3D %u nr_sent:%zd errno:%d\n= ", + bytes, total_bytes, nr_sent, errno); + +done: + if (fd >=3D 0) + close(fd); + if (err) { + WRITE_ONCE(stop, 1); + return ERR_PTR(err); + } + return NULL; +} + +static void send_data(int lfd, int fd) +{ + ssize_t nr_recv =3D 0, bytes =3D 0; + pthread_t srv_thread; + void *thread_ret; + char batch[1500]; + int err; + + WRITE_ONCE(stop, 0); + + err =3D pthread_create(&srv_thread, NULL, server, (void *)(long)lfd); + if (CHECK(err !=3D 0, "pthread_create", "err:%d errno:%d\n", err, errno)) + return; + + /* recv total_bytes */ + while (bytes < total_bytes && !READ_ONCE(stop)) { + nr_recv =3D recv(fd, &batch, + MIN(total_bytes - bytes, sizeof(batch)), 0); + if (nr_recv =3D=3D -1 && errno =3D=3D EINTR) + continue; + if (nr_recv =3D=3D -1) + break; + bytes +=3D nr_recv; + } + + CHECK(bytes !=3D total_bytes, "recv", "%zd !=3D %u nr_recv:%zd errno:%d\n= ", + bytes, total_bytes, nr_recv, errno); + + WRITE_ONCE(stop, 1); + + pthread_join(srv_thread, &thread_ret); + CHECK(IS_ERR(thread_ret), "pthread_join", "thread_ret:%ld", + PTR_ERR(thread_ret)); +} + +static void test_first(void) +{ + struct mptcp_bpf_first *first_skel; + int server_fd, client_fd; + struct bpf_link *link; + + first_skel =3D mptcp_bpf_first__open_and_load(); + if (CHECK(!first_skel, "bpf_first__open_and_load", "failed\n")) + return; + + link =3D bpf_map__attach_struct_ops(first_skel->maps.first); + if (!ASSERT_OK_PTR(link, "bpf_map__attach_struct_ops")) { + mptcp_bpf_first__destroy(first_skel); + return; + } + + system("sysctl -q net.mptcp.scheduler=3Dbpf_first"); + server_fd =3D start_mptcp_server(AF_INET, NULL, 0, 0); + client_fd =3D connect_to_mptcp_fd(server_fd, 0); + + send_data(server_fd, client_fd); + + close(client_fd); + close(server_fd); + bpf_link__destroy(link); + mptcp_bpf_first__destroy(first_skel); +} + void test_mptcp(void) { if (test__start_subtest("base")) test_base(); + if (test__start_subtest("first")) + test_first(); } --=20 2.34.1