From nobody Fri May 3 08:15:59 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:ac4:a898:0:b0:4b1:af33:c52d with SMTP id z24csp1938716pid; Tue, 19 Apr 2022 21:57:12 -0700 (PDT) X-Google-Smtp-Source: ABdhPJz1f1iXfEjoeRCsfNFQdNwuFitSmP9Ouer7ZLRbCM8ChmyqUJv9oG+gRD2nACGJo5zsMKP5 X-Received: by 2002:aa7:888f:0:b0:50a:78cf:1862 with SMTP id z15-20020aa7888f000000b0050a78cf1862mr12976093pfe.62.1650430632028; Tue, 19 Apr 2022 21:57:12 -0700 (PDT) Return-Path: Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [139.178.88.99]) by mx.google.com with ESMTPS id j13-20020a170902da8d00b00153b2d1647asi1483549plx.130.2022.04.19.21.57.11 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Apr 2022 21:57:12 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4786-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.88.99 as permitted sender) client-ip=139.178.88.99; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.com header.s=mimecast20200619 header.b=GSPADH49; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4786-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.88.99 as permitted sender) smtp.mailfrom="mptcp+bounces-4786-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 sv.mirrors.kernel.org (Postfix) with ESMTPS id 6A0E7280994 for ; Wed, 20 Apr 2022 04:57:11 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 5B072110B; Wed, 20 Apr 2022 04:57:10 +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 86B187A for ; Wed, 20 Apr 2022 04:57:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1650430626; 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=/ovcAqFfzFg8bT/XRItLC5GaW6XmeOYCw+8KfszpueU=; b=GSPADH49erY2b9HQVQrWIp60ym3HbUzpM+3isq8bdHjvpUQ/AocczHlgOXGrRnNcC0UFBT RqBVqV/os5Jbugwrxv7SPl3G/0nMY3tSvP7HuGzhWxMDXwfKQfmUnOniOoP5Q87nx216Am OTHGphu4etA8sw/th7PT+Fi8SWCa/bo= Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05lp2108.outbound.protection.outlook.com [104.47.18.108]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-27-ZYe91Ox9P_ipYBo7F5LVqQ-1; Wed, 20 Apr 2022 06:57:05 +0200 X-MC-Unique: ZYe91Ox9P_ipYBo7F5LVqQ-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QpdK6zAwzSq8UUoPrTVGKmkC2HN9IBU0p2VCfnf7FJos8uNYVl1YC4arH/vs9ByWUhR2W5Rxq03ehKWhAh0a/MCGXnYPo3wxoApynIPe0iYOFUjj2fJJKpjNLeDvz/8ewKP3yLCQwicYkLqbmTyvVKwcPY8CHO1BizPKEsH43wMXlvFUTraBpFCNrRiq1IOk1ozPFs4LCej5e0IZ9wKbzvET/SUuFtSp0XtOkVRSbwe0NSeabvYjZN3yaUSOC2CMo+qiTqQIFCIxubNmryFB4HK6fPGRcbDkN0G/v29YZ4O+sEi4G/XLaU5hBObntNhr8TPdAyqXz+H7zNmSUBd7Hw== 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=FO3zp8ruI4Zj7gYD88xUvfV83/jIC1OiEnSUq/Fvryo=; b=jJ/KD+2baYSC0RjcU8vKj4QbmMFdM7ymXdiInTEr6YyRMkkvWf/7viFdReF9ZHsnfPEyC9ovQPF+Ov2q36pInz/UFqxZNSHIbksYltMCR7fDPSShqv0gs73AGTWzYkgDDa+ubYfJe1isqEiqf/PNQQUsVBpAJ/kXcLT9DIJ4A/G5MtgAlp3vSMeVW/Kbxu7laHuyybYNqx9l8CW/e3LOCWJSg42yUUQ/Ye/ep2+q8bRmWWIK1G1UYGPBc3pKZ9mpffIJDtO/H4y0mSG5LhL085kr6odcQYboN4BQiAuE96xAati1V4XW0sHNV5AHHkRtK++ZvG5SgiAUNtCRAxE/4Q== 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 AM6PR04MB5752.eurprd04.prod.outlook.com (2603:10a6:20b:a7::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5164.20; Wed, 20 Apr 2022 04:57:04 +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.5186.013; Wed, 20 Apr 2022 04:57:04 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v12 01/10] mptcp: add struct mptcp_sched_ops Date: Wed, 20 Apr 2022 12:57:00 +0800 Message-ID: <9112f71e4901f8dd719c515b26581c8d747fab45.1650430388.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HK2PR03CA0057.apcprd03.prod.outlook.com (2603:1096:202:17::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: 9ef239c5-3480-44e9-0b81-08da228a36b5 X-MS-TrafficTypeDiagnostic: AM6PR04MB5752: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: 2RxxQvANsykPL42cSY90uKvCrJ6S8O+8cthA87Qr4tJZh6x/4UkMOEcICqbHieNuZOfwdznkOs6srBUTSbbaBztUfvY8cViEbRlwyGL/WS7Ys4jXwq5O2l+hOs65Z+/deHssaL2m0s4Xn3XWGRnR4q+O068mRh6fV/niwavmB5Nzh+bqWEjkYsZI6GE6j7PzoFjj13vh3pgldU0DC37mFtbrkHYtXjx5MeTa9ap4BJ7DvOIHb5i0/ljVxown1nd46Lpn2uDKIWznyRFEK23+w1UJ37u7dijAl3QYWaSq2t0TKIOuZJqbmocFzn7tj/GnoQMvlKRUw2GImGsY9dr+YaaAhlCdNLCCaqg69XznZHUS60ttIB3K3/sOhoDTPNK79zW+9gMbWhsvrDXDaMOvsW+WnSh/+7S/L0eD3qQek1AI0VWMgNMWDHQOvaoTtxFlxPVt2QkvC7j6x5HaS+ihFdI367XBhWT14vg3EXuGz0TM22iVIRqpYNFWchf1PYlAFozkSTM9oAW/4B/5InKIXqBTZCnqfUW2Bkxn9OSPfPA0wIkL1Frm5jPY05zSzLo+FJSoAg2NOPujkyxTpHzSIRYobtLKLLvgVhpoupS68F3j3h1qwhUZZ8SZWY30BMDKQKEhXCrRtSdEKj9ywPW1AZ4SXbmYEv5LAeNv3OjgchhdNzzFAEQb3Ck2d4Iieo8N 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)(2616005)(38100700002)(508600001)(36756003)(316002)(6916009)(6486002)(66946007)(4326008)(2906002)(8936002)(6666004)(8676002)(86362001)(6506007)(44832011)(107886003)(6512007)(66556008)(66476007)(5660300002)(186003)(83380400001)(26005)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?hIvasRL1imw3r/LR5YfxqgX/4cX+zzVMCPCX73+EyxpBX5GJkADKeUxJDh1H?= =?us-ascii?Q?viC11tL0t/l4yaYOjTEEpB9ql2LhNP05Gb2dTuUY9TlllH4SdAJxnAYqkS+D?= =?us-ascii?Q?kUYBvw+EJOxdwTNy/Yyd/joyfVzOVxAqK0JynRHbM6BnwVL0PH9UMogf9hhQ?= =?us-ascii?Q?NR/hxq/V6RqkXPAf55Yo2PLxoUyBIzE5Vpbbhmuu3fzWZUkU5bnQyTwfVOgx?= =?us-ascii?Q?L2Tnpot2XpFdbjBmSPzF/YckV5FTYi5jKxOj7rSg6ztS7aXUHbrTnK5lZ/SK?= =?us-ascii?Q?ZD8Vm2tSPzPVXOVQ55adO1bE3PptV24P6Wx6SyVuIvYxjXY077sNXcBqq52H?= =?us-ascii?Q?02oCtbtCZ1bbqV8+S15q+nmRZ/VdYCwMWDtAv6ov+2N9AWYftaqieWCbHePQ?= =?us-ascii?Q?L7/DJAJOB3oU7JPHIREQbYiRSbbQ6+d+6fAOcq7i1vnBxfXpqfeOyZMIYe6e?= =?us-ascii?Q?d46ueQC4YpVE+SFW4yHtDC5Pk3qkfApSo2y8sUeJuiMXQreZAiu8iV9Y8Fmz?= =?us-ascii?Q?UP0+20JUQg24aYJLpVMJ5NAjOPvKQH2ImLCo/UM0z+b4TWETDQpQ4m+t/C9F?= =?us-ascii?Q?lH1uVP5jwx6jsNzkUkarCnk+lEyNkrBAFkJ0PANaja+KAZkqMuBz9zmGDzB/?= =?us-ascii?Q?NtlRysIKWwiC82dJlqkSuYTu5waOOpIKSkJxsZyUgDz1NyS4evo3Y+3AnKxk?= =?us-ascii?Q?CeF9IM7pQK1GVq+5jPckd0FbkEmT0A/iPHbmFJr9Bm/RyNTUERepO5UlWP7r?= =?us-ascii?Q?wGd029fcy1Tc2raQy4DpcIRXEFNWrYrY24l2OWFA0FxKvsDN4bTbUwMgn6bx?= =?us-ascii?Q?1iV6UB6YbGNFfaCNXfBFtzS1bAqzv98SN1D0sCHHSdxVMJjoDPergKGQNY/s?= =?us-ascii?Q?1HQEhauOXyfPmM1ZRm8MSFB57Sg2UU45FKKSqjgjJwWJ4ilGCUZRAlk8+i6B?= =?us-ascii?Q?DxUTN7kR3RLwPvd4wNEillhd4KGcMq/4tRP4SrrO3ytVRcBDpO/ZDYBr1O8p?= =?us-ascii?Q?CVpjtEgTV5rSzY/uyRFTYkBtm/3gPUhorW5/bz97TizSXTZOpr73OkVpXj+B?= =?us-ascii?Q?1+Nn3/QyeQzeaHWOUrd3d79OTy3E+tqWpprOKcmcLFHf4mvoZ8wnvLR7+Z5r?= =?us-ascii?Q?dwKeojJHH2V3MHO7kHXyh5AT1FuHxgKUfvZET50qyhDe705vF+G07yj3s2pg?= =?us-ascii?Q?tkqUwjeHxWa5e3AIlRSrm9rvMAXm1wVw5UUcjvE9u3QwRMi9nVYtkEL9FymK?= =?us-ascii?Q?dvGxx210E1fEsUNCp99sf78lAiI8swfs7JvPIke10xL8D+Ow87ml6AKGES9O?= =?us-ascii?Q?le5liZqBYkQ04zaizVCkM/ieceJdD533IIvU/druol0Wl3MEOOQ+t7EUVPwN?= =?us-ascii?Q?3Szfald5tQEXl5rs6laVyThzetMiJUSMkrro41FXoFfR1ZwK00GafgvrWqO4?= =?us-ascii?Q?iHkBu/TX73C/Oxq+R535HlfTEwx+T3mKNynG9zyEC3fxdMog6qgEjo0//WYH?= =?us-ascii?Q?m3aLmdRyIHrZFLTibibB5rCkMSvDu8AdZV6zrKPLWaD7cD73bkib4aiU3nCC?= =?us-ascii?Q?dmgKapE+PI+uFwqAUUbCgF93EdNudtxuECOFXvmUe/ETgCFQwt10WdkgLr5I?= =?us-ascii?Q?HCp2S89uA1hJcHw4xk2/wa+q5vwoA3C3BII1Tjw/U4RTvFs4d1uu1B0ylGW7?= =?us-ascii?Q?Ee2rxF0ZTaUym+4h+o+/DAOYTUhh+jJzcD/eST06hhV8NRQhAqWmGi4/Z2cg?= =?us-ascii?Q?OJYI7ZZ41IWDYD4D9w1pH1txCqW+6h0=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9ef239c5-3480-44e9-0b81-08da228a36b5 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Apr 2022 04:57:04.7512 (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: 42T6T5pFht0ipN6WB6HGQ7ags1BIssq0jfo3TwFUOOLB2DBOFtIfY9iakEj4AcjhMF9yVuJSmzHFf7HKtXoD0w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR04MB5752 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 +++++++++++++++++++ .../testing/selftests/bpf/bpf_mptcp_helpers.h | 12 ++++ 5 files changed, 85 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 4004347db47e..702b86e8ecb0 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 pm_userspace.o + mib.o pm_netlink.o sockopt.o pm_userspace.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 f542aeaa5b09..18f8739bbf9c 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -621,6 +621,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); +} diff --git a/tools/testing/selftests/bpf/bpf_mptcp_helpers.h b/tools/testin= g/selftests/bpf/bpf_mptcp_helpers.h index b5a43b108982..8d4e4f08d327 100644 --- a/tools/testing/selftests/bpf/bpf_mptcp_helpers.h +++ b/tools/testing/selftests/bpf/bpf_mptcp_helpers.h @@ -6,6 +6,18 @@ =20 #include "bpf_tcp_helpers.h" =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; +}; + struct mptcp_sock { struct inet_connection_sock sk; =20 --=20 2.34.1 From nobody Fri May 3 08:15:59 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:ac4:a898:0:b0:4b1:af33:c52d with SMTP id z24csp1938756pid; Tue, 19 Apr 2022 21:57:21 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxlN/9L12gIvYzxg5r9x+twEFOEC5hl6SbaX1c1zMz9j6Wyn2h633a94iZ3lShFeEPV1udh X-Received: by 2002:ac2:551b:0:b0:46d:ce6:4252 with SMTP id j27-20020ac2551b000000b0046d0ce64252mr13498818lfk.251.1650430640961; Tue, 19 Apr 2022 21:57:20 -0700 (PDT) Return-Path: Received: from da.mirrors.kernel.org (da.mirrors.kernel.org. [139.178.84.19]) by mx.google.com with ESMTPS id r14-20020a2eb88e000000b0024c8ed42ae0si1367144ljp.210.2022.04.19.21.57.20 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Apr 2022 21:57:20 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4787-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.84.19 as permitted sender) client-ip=139.178.84.19; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.com header.s=mimecast20200619 header.b=TjBnrsY5; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4787-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.84.19 as permitted sender) smtp.mailfrom="mptcp+bounces-4787-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 da.mirrors.kernel.org (Postfix) with ESMTPS id 577812E0C8B for ; Wed, 20 Apr 2022 04:57:18 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id F0786110B; Wed, 20 Apr 2022 04:57:16 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.109.102]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 56A8E7A for ; Wed, 20 Apr 2022 04:57:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1650430633; 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=Ui4dhnrb7AUXsVR73s0E8y4J75RdJTeiDSqWv6aDrIA=; b=TjBnrsY5OLivWpQaNOtwFz7Qln8BxKDocA552yr/goadcRHHVphGTi+9GY8sRoZUTN/0tg D0mWEJSDXPsRpGapkMYuct62RJvhGhs+wWIe5yX8xYeig9G9C/XpP51bvW8kn7fEi3BDKv t9X7F5lu4/X8M6svPL0cJWrcvzUJyXI= Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05lp2108.outbound.protection.outlook.com [104.47.18.108]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-31-O7PJFss2P6ySoDAPGn3hkw-1; Wed, 20 Apr 2022 06:57:12 +0200 X-MC-Unique: O7PJFss2P6ySoDAPGn3hkw-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=CRpoKSQKJLJF2GHgbUPOMkO0PpjlTihvHvylzKxucjGf8yh9QvghatrpTeOPEsEnNu7HZOaN+WJp0ciiKRlSQktOl2NXRUDxs4zVrYGzYTCe6S9/xErJivpttU18KhXvnmYKgz5aahhawt78hBr2FiGbHDWiX+yFKV7PlPvEdoKUJuZMad/MGZu6corZe0uD1t3BkwDSI3dJL6Hm0QEZboLlcrpflWhoBlAC7Cx85LydC0OfIl/2ioT23h9xhUIueU9UypLSQBf3IftFn+AqW16pw033cl1biTlXCAlb2SRKfKzAohhm2eoPT8sh/gFZzh6rSYx0eJbursYPqLKoMg== 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=BZ59QC0aZwOg7J30AxhyHriPVAK85ta3jIWojdTaQJ0=; b=S74d6XiFEW8HNI0e1POkS4b+l7/1MhNhgIiA8U5N22jgRXIj+U6GlajREKhw8nf6ZzK64pcjdIXzct357KW1w4sAYHtjIV7YVgGEPUyZrvo6jrYEnr33AJgXgunL/phm5NHqVpBZ0d7BqthbIY7PoIntGifX7kPZnXuZzp5JQwQs+IxWacg3L2YubpLS568L2b4KmN6RZ/hCcStLX50mu+jNu07E00bKW2UDaZCoETn4wUa0YHx8/Y0D7LrnHlD4Zvsjax1p7CCTdO33oknhJGlCXpo/BAWkfVY2eCVx+4o+LmSWXOitLIcXOX0WWEdAdbzfZ7zqIJbtNN/TbUen5A== 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 AM6PR04MB5752.eurprd04.prod.outlook.com (2603:10a6:20b:a7::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5164.20; Wed, 20 Apr 2022 04:57: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.5186.013; Wed, 20 Apr 2022 04:57:11 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v12 02/10] mptcp: register default scheduler Date: Wed, 20 Apr 2022 12:57:01 +0800 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HK2PR03CA0044.apcprd03.prod.outlook.com (2603:1096:202:17::14) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 2bf763b8-d0eb-4b6b-12f6-08da228a3ae1 X-MS-TrafficTypeDiagnostic: AM6PR04MB5752: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: wc2VJ1PP/hr99h29J70HEngrMFc1p7cSZm2Iy7dnRaGNHiOfdsP6t+cQl58wfirvNKqm++wY/1330d5+9bctK7nrHy8VUGd/rxmN659EDD81Q4s17JO9iIBwp9eSn7Q9nM2SgexxzWsoS/taAkFrajr7CIrNr67/2SWvq6skj6Ic3SWy9imCV5qD2OcwS5kJmV5R5aHaAFMsHT4Ln7P84couOfTs/pZTSp3J9aB5O92Rsk+KygF/zzF/VwVihcvOxwm5Ok8yBfhFKryafbMKIRzdtaaPNaiFyiKwRt4BOTNCXCbGhEjmn0aEmyaKvCe+6y1uSZvrih9rMu4D7DxH0IfT4UJlCFXoAMzOrpsZTgaJaMDsz6Tx1OjdyyX5Bqb//m92OgXSM2smMmakiGYoL2DMqtFL+B9qJY4V2DxlDCTf12p4obJ6ylMXoXMg0p3/yBQPbEk1oMZR3fHwk0ULq0AM0fBYl3UjAKb43mC7oxzU9jEjKYirZgUb56A1CFtJAKNePJUegnW2pwk70qPuQ0nku0II2v5Jqgl9awi7skaUtWXGFygfWTkGlfcGB1XX6MQBvcbrZeLav171Wig0yGQhSCNm0WNoZgp23ZYFWtDW4fyjq2fyvgG7l2hehFhYkBw6vVr+Qa+r68YjFzE947zrODaVkE+u/iNJ/CQJ/tXcaggxL0toFXTrqMbDP5gI 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)(2616005)(38100700002)(508600001)(36756003)(316002)(6916009)(6486002)(66946007)(4326008)(2906002)(8936002)(6666004)(8676002)(86362001)(6506007)(44832011)(107886003)(6512007)(66556008)(66476007)(5660300002)(186003)(83380400001)(26005)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?wyonDLN1yoY4E27Ph8F7kly6RNhyW1aPtH3neugmf1t/QvSpyN963lCmyicS?= =?us-ascii?Q?SOz9Za5UAs4KlnOI60vZBCTg7zyEfMRN07A7lvK8lkG5ozuZ+qI41X+xGbwL?= =?us-ascii?Q?bjTXzd12QrPdZMGOvpQSqkogfNyHOFXzP8dARpxwKN8axdpiHjSCwPitGzcx?= =?us-ascii?Q?cl1533Qq0bYEA7RREm8fgYAf4SVE5GS0WsXn9sb3EZ3UuCCIobPLPkRvwWeh?= =?us-ascii?Q?1hBoBklsFyDFfzCW+FYvw5kUTFlLEzDWiYQE4LclOP/+u8wBYLsil2L0ywWG?= =?us-ascii?Q?FZFiE/woC0XZtVM1ww44Mmp4QrL7SCR9H5saFTo4+uO9qy0T+bnDg8JRjJH0?= =?us-ascii?Q?8R0vxYp2jr8Kj6O2PsiiO7uJtTNccdxoImkq0ZVXweQNeBSQhkg2w6nbm7zv?= =?us-ascii?Q?ElineZBrZjAcCic6D386rbupNEkyyMM518H6cj09ilgspWXXjVCywo0t8vHB?= =?us-ascii?Q?NpLTSveuL1DmxI5lq3eq+PVKZqMpuPBJ066uKspsquiFUCI5HGTEV4xsV3I6?= =?us-ascii?Q?G19/sY8NXliLGNEUVKUe86h7DhCTWkwuCd9yoBI46w5pjl5O9CV2/i0Uw3BG?= =?us-ascii?Q?OBKphaHyO+hRuOGJqtb+piPsINo/sYhXqJmuLNTEB2yw6jttTQyZ90uvssqC?= =?us-ascii?Q?yM/LTXCPreTWwRDpvHRfK1LA2hjAx2PrSji1qLLTRCGaLhDg6SSkIN6AW9xI?= =?us-ascii?Q?km834YQYHcdeFMCCTLlv6N70EY4fCF7qfz/3yM0gaMecn2gL8V6v3b5HMcuw?= =?us-ascii?Q?kwyP8wy2YSl7FAqaXk5onwxKQq4I43OTnp1mtzli/we1gm000cXDYTGuvDx9?= =?us-ascii?Q?5kHDHDhJLUv/6JNqhrgLkc42w5ER2ro/v4e8Kn4pu1GX2QBn7EoxdFkSH5j2?= =?us-ascii?Q?KmaoKRrmuwtqZjxDYQe/EgpDCPMJlZ4Zlt7zIu07Ms42GlNZAFFvG19qX88F?= =?us-ascii?Q?/Jf3AyhCqFHxjNA4nreF1oCkZTcth6j5w/R8wtQ3Pnno76rWy6AAEUZGsd+g?= =?us-ascii?Q?j3d+eCS6zaFgqrphVWL+vOVdUw8xHsPQ2vPcyQ1JkT0Fr3q4nclKKM64J//A?= =?us-ascii?Q?AbhWRYFE0KYgwRv/a26ECYBTeJ6epyWiOkAmliF4TmeCJ6dcc7TklqnjG27u?= =?us-ascii?Q?hvSAbVaA/VGaT0uHYARB8CBAvhvVHZk7EilGVLx4OqBiWMKDELG7DWtIZXA9?= =?us-ascii?Q?Nnsh9aDwNs8e+VoNR1UlhrWCkigzqzgNr5sWI5ghighOq+y6xTuzRgRBj/DF?= =?us-ascii?Q?+SmH+gU766gjtLNx7uPSQwqfdp8NZ8vMLTgLwfiyc72v5LK+X81Q1MwJlGlJ?= =?us-ascii?Q?u6ibicIRZhsd+mhIRX47NU1rv4BvazFiz6ePKLc0veSq6FMzgFyFMCQlHjm4?= =?us-ascii?Q?Cvs8sO7klh8/g8/wlsKs+i+2UmTXsAzHxjMxMGowPJS9a/OrThMCNLrpIumI?= =?us-ascii?Q?BA7kV9gNRF1X0CReGoeD5xIaGOCB2yEXgzWVbeqMvcm1Fec26kXDHL0FACRE?= =?us-ascii?Q?XMlCfKKeyB45/7MOEMhTC42i8VjXQS2ZpNRIe7+dW5E515dcL9Xox2JBikkV?= =?us-ascii?Q?/jIzXGCYeqlNjs08WsaRb39JW/RSb2lX38LNX2CLt+dNl0OAm5jUYYhWmdW6?= =?us-ascii?Q?gZl4aeD7nNzbKTOFwDQbrvtQte4uleix95ZNhYcZu6ksHx3r0XYn9oF9/uwE?= =?us-ascii?Q?h2sikaqVX1XzlXSuKhKvC1hCXIDpIN+2sOOW+g4TVivFTEFrzJqO9HhR8Nx7?= =?us-ascii?Q?wTolfHcN4aWesuR8zvgq3cSMpgCm1OQ=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2bf763b8-d0eb-4b6b-12f6-08da228a3ae1 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Apr 2022 04:57:11.7037 (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: +83z1qltVrPpYdLgb3t56S1fTHWAgQrEn2Biu8T0lgrnz/zXCKnKgy68c+oLrN9QsclWWbAF1PK5Sdb0sHVNhw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR04MB5752 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 6d59bfdd6bbd..8679289a8394 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) { @@ -3805,6 +3813,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 18f8739bbf9c..9fd4c689e423 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -624,6 +624,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 Fri May 3 08:15:59 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:ac4:a898:0:b0:4b1:af33:c52d with SMTP id z24csp1938807pid; Tue, 19 Apr 2022 21:57:33 -0700 (PDT) X-Google-Smtp-Source: ABdhPJz9aOduc67uHtBJTZrnOpD6k63Bs/Oa7b4qnO/dar3O6+RxhKLlBxJ6sux3cIHryDqAdFbV X-Received: by 2002:a17:902:d542:b0:159:51d:f72f with SMTP id z2-20020a170902d54200b00159051df72fmr11454656plf.95.1650430653372; Tue, 19 Apr 2022 21:57:33 -0700 (PDT) Return-Path: Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [2604:1380:45e3:2400::1]) by mx.google.com with ESMTPS id o5-20020a17090b0c8500b001c6edf679b4si3602521pjz.46.2022.04.19.21.57.33 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Apr 2022 21:57:33 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4788-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:45e3:2400::1 as permitted sender) client-ip=2604:1380:45e3:2400::1; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.com header.s=mimecast20200619 header.b=fhuFT7Ss; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4788-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="mptcp+bounces-4788-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 sv.mirrors.kernel.org (Postfix) with ESMTPS id 91D332809A5 for ; Wed, 20 Apr 2022 04:57:32 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 5A57F110C; Wed, 20 Apr 2022 04:57:31 +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 C92527A for ; Wed, 20 Apr 2022 04:57:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1650430648; 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=HIVn7S+y9Xdc1/M5E39oPAD5w+fP2A9xdhJzlnkWETo=; b=fhuFT7SsuPm5JJY4YBb6pa9Nu4mCLq66JghMbX8Qi/qTZjInJoAC6AkHR7Jt+bBNaDXkAP 1Ij5TmlGC0nSoe439aAx7eGdVICQvV8BQ8D3HAqCkwB2RFJv5KqS/rPd+Gyyf5X0VpuchY dhUCkNO1Pv4+1+ZoYuVq3X9Dmmn7qFw= Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05lp2105.outbound.protection.outlook.com [104.47.18.105]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-39-ODxLK3nWMdqr1PhC4HMn0w-1; Wed, 20 Apr 2022 06:57:19 +0200 X-MC-Unique: ODxLK3nWMdqr1PhC4HMn0w-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=OO+4AwOfNj9EbmrOtfMjlIZTnI1ytt0SGcOTEItB50avDhd0hklqXxivuSMysAfs7CY2KTMfc0AM0SLiJDzgJ3K0Mch7qRtUV0ai5ijACmIuIrdT3F1gf7EcHKoIqK4phlSxxtZaZFggPmz6pwqZGn8ZZrjqBfmO9AM/IXTaAJYUJ2Oz90kym9kZH4sCCDHgTiA25vLK3Pv3DwCV2xF2FUIB+nmcnugWDaNRRceBxJV5ndKXAgT4Xom4rbXYisCxLgmdN529RnLIN8CpZndnLJFvreFt6k03BG/MLt8MUzfbO29fLF8wTMXNhyDojywLKkDanC5uUEB5p2QwRu0/8w== 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=yeT3Unm2LHkrcYgU07Mt2ZInydm4PZB0Y79DyhMIGGE=; b=I9EqHFGLNQe+ZWmcLcq/VXTMdozWC+4bKpWCuVe4ZWgohoRlUNeowPEHvNv/vhHilVNKO0QSGj5P5iqvOWasjpJ96QUfMt+z/bZhnkbmDmPOyj4lv+iRLdgz5m2TiMKG0iNKn3f9FJXWhZgKBRsCHmIVxPlf5UaBP4aySItR6ZAj2OHM3cfa63VBsA9PlyqKhO/4ZKuZizELjllB1tdF5HdjVZw3r/FzBLHo+3MUQ49wREQtdd6UOVwvEODLv+1qP0E+bYBuP1JHdNEiq/e8FjC2VZXxu3zzbKjrjiezbJS2DRys1foAfE7rOLxORhLz3FToa5iYpB2VxiWbOP+hZg== 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 AM6PR04MB5752.eurprd04.prod.outlook.com (2603:10a6:20b:a7::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5164.20; Wed, 20 Apr 2022 04:57:18 +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.5186.013; Wed, 20 Apr 2022 04:57:18 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v12 03/10] mptcp: add a new sysctl scheduler Date: Wed, 20 Apr 2022 12:57:02 +0800 Message-ID: <6b5019d618e5dc9c398c5029c2af3ca7ce639499.1650430388.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HK0PR01CA0049.apcprd01.prod.exchangelabs.com (2603:1096:203:a6::13) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 5b9d3caa-f4a4-4865-df27-08da228a3f11 X-MS-TrafficTypeDiagnostic: AM6PR04MB5752: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: oJawo2FlWLEArw0LqQkVREHNLBnvWI/FRAeI1Vvu4d0ljFjo8KO/JiqLKCg9zRnrsl61EKASYFbopN21pmlVFuZptjt2j427j0XyUJanIdX5JtdGgQ1WKnfF4vkkiO9Ut94MqjSGfI1lvY9/rP+v11Qzb44yuzuJ3LjLMCIiJ2e1sseLFEkVyxZWLe6gasvK+xTu667ctmWryYQfPVmYfF3OV17dpKArTq2b+PxmBf45YkriM7kQ3m+PE4k5EIK+wzYO5CWbZJS7coA7AcIVuUDnMzv+4sQYosM4pQEg2IjE4yRXO7NT6y44Wa5ew5PivNhpfhOoFkTZQCLZ9LgDdptVJpzbt3da+J3+T09aQsnf/2S2cVDYx+ATg73MJTkifEQFXcdG0ZGSe+ebDIToVT2NnOMISR3nsrWIgRYuUA6aPmCozAxw3S66OPrTGMo4HqM7+J7ZXwsJCXWBFsNSaChawvr50JqWvW+6WVuJthNi45kA7wU3RuuPOOuo4GUOvUXXN/fKF8F7O3rPihLCKpfO/xa/cP1JYozlvqC01tKRRpSne/JUMnvwYaOL+NpGsR/mLg/lby6s+hIx4z65BVeSvR6SuAnMbOhfC7h1jep0uw/H+n7lrCdUZsJsno3MWpyYUu40tZecvEgGGK99FLOu22LKtmQvKqA4v6d1u6rJP/Vp3KkXkJhjYKvM4zQM87IyF17+s4FnC1dcg/EIsg== 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)(2616005)(38100700002)(508600001)(36756003)(316002)(6916009)(6486002)(66946007)(4326008)(2906002)(8936002)(6666004)(8676002)(86362001)(6506007)(44832011)(107886003)(6512007)(66556008)(66476007)(5660300002)(186003)(26005)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?B/l0rVetiVFnRxtmPFdfatV81AsyOZ94Ojh4InflBnZnV6i3SiVn7NXUxCbT?= =?us-ascii?Q?aVEQeI6tmMYDQLWx5XjZh1zcJdTdlFrd+ejh/MQkKKwm+lT8kCccYm3yz6JB?= =?us-ascii?Q?WCps2g0IQcKh9kLRWkRMNgtpkAjzNkHr8gIzCyT2WUlttJEUbPo5spmsoEiY?= =?us-ascii?Q?TiorXllKWwZMQ6rI9jTl19/2A3K6/hOR8nQ8BTOQXpyb3yyOHGhCpd/00pZn?= =?us-ascii?Q?y5MY8+xsGC7I2iBIwkiDD/qwQo44pwhckL5hozwkDOoIv7DTkDYvaMGnRa8Z?= =?us-ascii?Q?dfg9bIN3wg5kYyVj/Kb0i7QoadAIoyV8HpXBcPQjWmFZQzy9BlJvnzTv+T1N?= =?us-ascii?Q?+WSleZTYxP0n90W2/VYg0nqhd7TdX0waHpVi3pA0ecO6uh+6NUNFng4cSZVw?= =?us-ascii?Q?GnbsS6RU1NgVkCn+Y+Pnom0vriRqP6ta7UTd0kXUg6H7I09LnJR1IaSLcokd?= =?us-ascii?Q?dgIcC2UcYBrRda8ELpS1FcVJjw7W/uuy4XijQNoLbtGTvQ+FidpqkSNX/OYe?= =?us-ascii?Q?4e2JoTZzyDyrJcHE5l02bGeajTyTQAqQPDrnQTil+gfjNdiSp7q4Tyt6nJu4?= =?us-ascii?Q?tEdZRgSOswqJb4fSdwxpJk+7S5N2Q3Fdp0ocEw8vYt+rIpXhldiWf/OyJlrE?= =?us-ascii?Q?/RTOuQjZor5fww8Au7FmgLFu1IirvA0FYDaOTSEDQ34KwyHs/c5ZVxAvtKSE?= =?us-ascii?Q?C9YO4pZZ6Bk6iCLtcQyljzTANqzEXUn5b1xsVgSNcXoKBa6ma1tVz5Lqh1fl?= =?us-ascii?Q?lT3ftLypuSBtr3bl/co1ewaJ+dY7T0BGN5Um8b7D84HNngWxmMgHZHCwBUgL?= =?us-ascii?Q?vtTX2JxaMmxuO1wtNz3hWjBeVQWaf6KKbd/kKNXA6fnjb/ghMZkFZmGNES6U?= =?us-ascii?Q?O4dzNzLoW19ValWu+xEUX1UXKS8sEupbR0ipjPdIb4ByVSohbZ0jQCyhK4kN?= =?us-ascii?Q?8TOAFUgjKBMjjzBWS6l6l5jMiz1gZ9lrZ/EX7P077wYXMB9Z6Z2ByvhL25hx?= =?us-ascii?Q?OHqhFSFIomuErkPDV6ObVzxJY6Efji818UcCDbFTpenhdi4zYFvVtwQsYZST?= =?us-ascii?Q?C7WflZ7Vqc8HzASnRHtwb7VyvFhYp3SfLhj/Eq4G4xXJoD4keQKLQEfWREwV?= =?us-ascii?Q?vLsLd3q239ywFP62vwJIkxB6Bh0JFE1rYiPscVS0zRYU9qlEkhpU3d78pPXX?= =?us-ascii?Q?rrnsYnYZY4hAv9NvcF9I02PI75QLqNe9NGeeMmINSF/NNgmHURA0VIvPvZHR?= =?us-ascii?Q?iBW+aWGgLgr9TA5K+joMcz+7p3wZn8a7O6umR3Sqt7DPC/gYIXG6vgQoxxVI?= =?us-ascii?Q?iRmteQ8ta13+/gycY2WU41yKAFWTsdt18fs1eo7hC9G88YeWzOBqb3GCLaW3?= =?us-ascii?Q?U/REBUfFTzSjsKyxmKbgNxfH83rzyGPCtUI0bBOx0buSw0WOxUEyzCIJUhvF?= =?us-ascii?Q?//81HVRdy9vbKdekNW6pUX+ia+dwlXmQg8a6qGK3JaTvHkHd75BJ7XXOSwl1?= =?us-ascii?Q?HHyTFR0gnMoJ//zczT4i/hdOPbJjX/8t5DsCF/5YOY0w+Hz7cjWM5jWHpKvL?= =?us-ascii?Q?jRfxeTtTkEu5x5lAiqmsVO5yeHVkGaJtMn5M25xv8jz7bl1/foPsZ+UvTNZx?= =?us-ascii?Q?ImvXXAUlxR+T8mYBrUTqCiHWkmVzhfcPevOhb6B0tIMv+l7Q24ZRBgdQSSn8?= =?us-ascii?Q?dxi1J8u7x3Cbq+KF21eamtC+GHn6uVeLtqZVlehdo2I7z0mkaEVfSsMOnj4B?= =?us-ascii?Q?jzr5+//ZmO2b9TncrG+HzoAJlmFKUHA=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5b9d3caa-f4a4-4865-df27-08da228a3f11 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Apr 2022 04:57:18.8438 (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: P/98lUvgrfAA3fZVFGnfCttuckPYyxSmXmuG/C6zAtrXqDUXkdq7ZnwrpYghplabWFXgAtRQRIpJI6J/Xmz/vw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR04MB5752 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 9fd4c689e423..d05dd2e2d05c 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -596,6 +596,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 Fri May 3 08:15:59 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:ac4:a898:0:b0:4b1:af33:c52d with SMTP id z24csp1938813pid; Tue, 19 Apr 2022 21:57:34 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzQoEbXg0jeP3DnUuh1hiO4RBgWrl79FiIRbR6Y50eJ/7Wx6bCMXRYHFIoDJVy3zyPHD4Ne X-Received: by 2002:a17:903:1210:b0:151:fa59:95ef with SMTP id l16-20020a170903121000b00151fa5995efmr19152041plh.57.1650430654761; Tue, 19 Apr 2022 21:57:34 -0700 (PDT) Return-Path: Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [2604:1380:45e3:2400::1]) by mx.google.com with ESMTPS id 5-20020a630505000000b00398604b5c6dsi1213004pgf.828.2022.04.19.21.57.34 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Apr 2022 21:57:34 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4789-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:45e3:2400::1 as permitted sender) client-ip=2604:1380:45e3:2400::1; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.com header.s=mimecast20200619 header.b=Vuwz7v0G; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4789-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="mptcp+bounces-4789-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 sv.mirrors.kernel.org (Postfix) with ESMTPS id E732E280A6C for ; Wed, 20 Apr 2022 04:57:33 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 5B1767A; Wed, 20 Apr 2022 04:57:32 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.109.102]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DEBE7110B for ; Wed, 20 Apr 2022 04:57:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1650430648; 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=INtnfcyJZjxaHsi3lb56Xg8puY9zI/fDm+gY4YRaZV4=; b=Vuwz7v0Gfu/0Xhkk13YbeoUBtlBf0BkXcUmXVQmc0CB3WY1Tozm9YGvj7SqQE+wa3ItRzR 7072DKkpK2estJBlyX1qqZb5gZVMecD1lodaBmpB6TtdHvy5uZ3wyqj8pTf10qgoLg24Lt H7qKWiImwVOC1UvdRQYldffJLW6bnW0= Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05lp2108.outbound.protection.outlook.com [104.47.18.108]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-5-ga9QdvmvNDmUIpuVNLwA_Q-1; Wed, 20 Apr 2022 06:57:27 +0200 X-MC-Unique: ga9QdvmvNDmUIpuVNLwA_Q-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gJtN84ps70CRPXvY5W5jBeoSnjU/14CMP9SkBa6Pn6fE7xGD+ANG2DHX4bzEj2AJBM8OdOxJMNaDWCQ9GUlHvD1amwdhyQghomC1iSMWNRteDP3CqfJ/WhPwUUrgk8I+nUNAxr85/Y+h4XOwG5ThEHDuWjRFKI1YddroXhpiJLGz7MSSY0MdlhafCmZhUqSUjWxjlJJb/29Xg274cYAR9t1yzGO7PbJ4wW3J7lOKvT3svam1pZeQU6dW9SI8ZgO9uRIHbQ9tBYnBYww/BZRguFErcVYA27Ej23A/T1XS7DWGjlE7OwCGmbo8KSjI81X3H20S7Xcq9Rj/kXqG6lulxQ== 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=0tdVuuczTx3NtTNG3ARzlbLUn7dqST0/Kgb8AkIMCSA=; b=EvWqc+Hn87FFJTEAD+4yMwaCctqLwxgfKrMXWmGd6Fd957jkb6G0bbvMtiPDXs5EUFGM8jXe040jzPF727iep6+XA1riBYgMQKYVKjfqreisofPNXRr09fLc7jbqBRwz4QyZZ9Q9KjcVADq3pyDGCxnMQtXFWFCvgBCnsdvtICwi1Tsw+ldOdtECEpTKW0qDlx5nqgDCPEHCY0uC21wFs+B5AosANs/Jn+EAD0qAMqRXuc7XGxjGYha/iCgWqwUshbrAM1cMKDkLKmFf27EUSzhXHScqbjiWbqjYn6r3UzUN1+I+KAy5uCnDNZ0kp05p02JMkZB50K81m0Oc7fEJXw== 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 AM6PR04MB5752.eurprd04.prod.outlook.com (2603:10a6:20b:a7::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5164.20; Wed, 20 Apr 2022 04:57:26 +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.5186.013; Wed, 20 Apr 2022 04:57:26 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v12 04/10] mptcp: add sched in mptcp_sock Date: Wed, 20 Apr 2022 12:57:03 +0800 Message-ID: <8b5f84ad8419d70ead8837433d2e43f14a55cabb.1650430388.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HK2PR02CA0199.apcprd02.prod.outlook.com (2603:1096:201:20::11) 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: 7a20351d-b305-4783-596a-08da228a4372 X-MS-TrafficTypeDiagnostic: AM6PR04MB5752: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: 2c7Bu3iHctANkciyw8PMwLbkc5Kc5dDmUuZ60SIlrFCwdASPOrc76EHe2GiXncknnRGk791RHXCWMsLUrVqP992TkLVIwUeY0uzm5rM+Zp5+wAqbORd9P284+t+sws8DeXkNmXc8kES6loDqZMCej8lB6KW1XvMGDR84zPOmujyLeJx43HyApUQ0AHMk10bc09a2J2NcRBSEfpLk6UKGtR6n5FYAzm+bAk0VAl6lHKaVklFGhfU5lksJKl0VgdjuhRgp5ZukjmHhdpIMJM2Zb+PwAGP3clRK8S4OQAfYrh41WmJvuQfonLYicsdwSPCTPWzp4wr5ZIudX67YEyeH2NiFef87zKFMlRLE5A3F0PL3o34zZLTr7S2Nw9syjjRVFyBYFE1Bxb71p2u0uh38v/NE+b8aQbEptCUNrwLWOTzGSZNH4JGp1/wpMq9vdWAhXIZPJNr9Q/X+J8j1UhTcNz+M9e7+vcRMURthmbnOobJYaHZBBIJNShQvOyLmlvV5QS+EVWz41fCUzGoTdW9ipi11IZZ19xnDBbdquxSn+IdmV+VhEM+cWvry33yZmpMaDPB5skqU9AOATXdA757Su8VMv8yszcNakQ63sAYPXFgewQZ9ADRHYadZVWMV2xBArUXcjYMXHE6O7PK5Z1wIzyHbwUJ4Gj1CnuNSPmodg1up7579ZaqH9G+LVWgMW9Rv 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)(2616005)(38100700002)(508600001)(36756003)(316002)(6916009)(6486002)(66946007)(4326008)(2906002)(8936002)(6666004)(8676002)(86362001)(6506007)(44832011)(107886003)(6512007)(66556008)(66476007)(5660300002)(186003)(83380400001)(26005)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?PQespZunc0z+CTaMKHxG5bMQ0QVBnyK0ZLZibxYvZwkyscyOqGuQviVvbH1p?= =?us-ascii?Q?MPPv+spv1Ipr6rx/L/ZQORdIF5PZSTvjHJbTVbmE7SdQJVoFzsaxhhEkOgt3?= =?us-ascii?Q?8r6n1gmJ4xjiNBeJTXaAmhT0mus+FvnDgNBos6Lvf6ZrhyiHe2rJpDPleBjv?= =?us-ascii?Q?IkpPhzeRfQIZlqaQjheKGIDCi5G8x8EtwWs00qldULshhspqv3bSjSMhGMsn?= =?us-ascii?Q?/CnwBZLPNoZI9I1nsYpD3uSIZzAqss8IDdcMUAZ+5Kc30Pc4htowlWItSSfe?= =?us-ascii?Q?auOT7ycU4sPjE2zcqNNXbDsiGXdnNa3kV+SXE4n/oVuRZ66juqJ9tX3UnegR?= =?us-ascii?Q?jRbFGjsZO+AQh0FHGbDzqkP/qlaQsjYIaYZMO2Xr53/sf4tga1NTka3IzQY8?= =?us-ascii?Q?RdBABUOnpuR12qH8fi1EraSmT5VadpObL5Cq6ccLPNxYmzStLfse+UjRFGek?= =?us-ascii?Q?A/aJSahba2VAjlckNXl8Swv+PoH9JQy1ed7OfyYwtR2ys7US+mB+zfqGBjR7?= =?us-ascii?Q?xj05bRJdwkRgyxD9K84qqy6mNJZE5I4fPtB8ewc3LoINridlCNgZBAVxBIYy?= =?us-ascii?Q?qFfICcDRWlF5e2Lkj6ibMfmwLNhKfdd6PMAT1BMYafcLSllzOyLcB3BWiMsA?= =?us-ascii?Q?78oLVRZ1Ft45bKiFMERJ/3hM7jrzbXnQHT/QEVJQvLsLnYcV365Qj7CFj44X?= =?us-ascii?Q?J7H1zZ+D6hVNNFlaZiQkX4/Zngy9nkL5m+s/iDr7jUnZSoHbQDV9H6yd7EBR?= =?us-ascii?Q?+0ZCGoclTtdxr28jUv0WhSXxpXZ9lDHsTGjikTI9dHn2wZEJH0RnDRWPJe3e?= =?us-ascii?Q?bNkMxtBFjcId3+8WdT2tf99wwk8HbkDN7w2eNWbThUGUOJmcgAW8BVlGaJAN?= =?us-ascii?Q?AgP1r5GkdGXOyob1UK3pWrfFLkhJI8vJp2jz/GbwttzDc7RXeey6bvM3aXZw?= =?us-ascii?Q?cZa+ywJkkGCIIVRtdpGGs10eAfN1AmXqx/a0kf3IsoH5uuPCejvuikXX1+/H?= =?us-ascii?Q?68YmXLQQWj3KWJLSxx85h4Jh4nvSuZFPCUilyepoMzyxRuCCgQVxq5Rt3npA?= =?us-ascii?Q?SSly2O4t2wI9kB+JkBjNWc9xgfwWgv2usYxs0d2c1k2sEvNXjvKljtwNlqO6?= =?us-ascii?Q?aBecZ/qCUpUvIUNKK4wWA1AP2e8WOU/pUEPRNS6PgUdiB2G+N+m+2pAHEAhl?= =?us-ascii?Q?yKK+1jMb7caaSJB3Zl7izMb+bYgIGcpONSkUhLzbeDhUjhcTM0Cksn4P4MLb?= =?us-ascii?Q?3+f/d2OvzPC/kslZJjj2zSqLltQkf2qHdnIysH6RyqnHcWpTHuGzqhMnwwBY?= =?us-ascii?Q?FA3e1zkVAc3emIWzo28SUVQDev5ZfG9nnS73hR1jr7BIGluhd/93elFF5atK?= =?us-ascii?Q?sPfAw1jnhd8XUCB7KChv2E/Chev73mfQFb3uAUD4S7Ims77CctPAxk5nXBAK?= =?us-ascii?Q?2whWF401Tu0Aog5tBSYvT7xfJbcnzau3eHjCCoD5WEAoqhHfgoAJwxncKOHH?= =?us-ascii?Q?vdmPEs5YSJ8dooNnMAd7xrPrZdO26p4wen7Ge7ZMVCudl8dlocXjUhTUqJsZ?= =?us-ascii?Q?iNo9KTx+Ad8iYNsOYfhkYEJXBx85+KyMbDdAeg9+VgAWe8sVe4SgBxDp92RP?= =?us-ascii?Q?EiraDgUZu+O8LpEAZ0OAOhMkE9DRwHFSZGegddXGwE8kXTnjxGTzhhuK34hZ?= =?us-ascii?Q?ihUaNWf/maM8XDs35OIqA36R8pwTNn57ZqGSF3cVIpDLjl+IsrVDwsEoypFj?= =?us-ascii?Q?D6OIab2BdZcKqWD7QsR0JPDezWZcxPw=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7a20351d-b305-4783-596a-08da228a4372 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Apr 2022 04:57:26.2026 (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: 6POKv7GXFjt/gJsIlo1GXMMSrGto4VJhfextkRBUytk85gBrP3KgB/jSy2fRZV2nhAOtBurfo6R/YxX5qAqz1g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR04MB5752 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 +++++++++++++++++++ .../testing/selftests/bpf/bpf_mptcp_helpers.h | 1 + 4 files changed, 46 insertions(+) diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index 8679289a8394..3d50c35c0b33 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 d05dd2e2d05c..b06836d1a899 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -298,6 +298,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 */ @@ -627,6 +628,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); +} diff --git a/tools/testing/selftests/bpf/bpf_mptcp_helpers.h b/tools/testin= g/selftests/bpf/bpf_mptcp_helpers.h index 8d4e4f08d327..eb51fc1f54d5 100644 --- a/tools/testing/selftests/bpf/bpf_mptcp_helpers.h +++ b/tools/testing/selftests/bpf/bpf_mptcp_helpers.h @@ -23,6 +23,7 @@ struct mptcp_sock { =20 __u32 token; struct sock *first; + struct mptcp_sched_ops *sched; char ca_name[TCP_CA_NAME_MAX]; } __attribute__((preserve_access_index)); =20 --=20 2.34.1 From nobody Fri May 3 08:15:59 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:ac4:a898:0:b0:4b1:af33:c52d with SMTP id z24csp1938839pid; Tue, 19 Apr 2022 21:57:43 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyDzX5ed3WxCh80xMSyzU4icPpNyn/nnBe3rY9tP6FXEtkaN83y/5fR470OC0kylKhPahad X-Received: by 2002:a17:902:bc8c:b0:151:8278:d2bf with SMTP id bb12-20020a170902bc8c00b001518278d2bfmr18910616plb.114.1650430663093; Tue, 19 Apr 2022 21:57:43 -0700 (PDT) Return-Path: Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [139.178.88.99]) by mx.google.com with ESMTPS id t1-20020a170902b20100b00153b2d16442si1232987plr.74.2022.04.19.21.57.43 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Apr 2022 21:57:43 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4790-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.88.99 as permitted sender) client-ip=139.178.88.99; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.com header.s=mimecast20200619 header.b="XGX23/JD"; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4790-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.88.99 as permitted sender) smtp.mailfrom="mptcp+bounces-4790-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 sv.mirrors.kernel.org (Postfix) with ESMTPS id 61643280A68 for ; Wed, 20 Apr 2022 04:57:42 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 7C9EB110B; Wed, 20 Apr 2022 04:57:41 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.109.102]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id F11737A for ; Wed, 20 Apr 2022 04:57:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1650430658; 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=G6KH0JZjxF9V5Mz1TPrg1Xc5MdqK38fIstsCnD9n5Tg=; b=XGX23/JDhxVuXMFtgsd973TfqQa3pnw7r/vK1243qJWIKzaRCcfvwy+LmFC6KRduWUe3sz WtL+Pm3WxBmhSaVYwfKwvI534o4IO56cs/xZJ4OEDQfo5U6b0eSyyWSo+qAkvKpERxr+Ot Oh6UfaWoGDRTNdCbIUF6OteHsUowwYw= Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05lp2105.outbound.protection.outlook.com [104.47.18.105]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-17-LQhNI_MAPk6bzOlNbIYmBg-1; Wed, 20 Apr 2022 06:57:37 +0200 X-MC-Unique: LQhNI_MAPk6bzOlNbIYmBg-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=kwcq7HA7Ze8JqVzJxU3MZF73g8VRnxega2JG5+YGcqb3C9ryiELKU9NChALcnazx62STRUo34QJbuM06q45mT33XizT+zpS9W0HJWDNqmvCtcJAhoORtPFyMJZsiOx790vo5rkXSSi7DqpsdMu6ZbrOIDd3USlJNW2BQw6ocfzwqBoMj6GH++NWqlUKjgayIPFQQ2xfA7Lks2scYP/m/8R4eMU7v8/lZ42tGALh3TLayDEKdPhddkX03IVUBFvFphYF0OI/aRcKuJkjdpVzc/dV27kd18cPExN8MLSbazA4CjRKHnJLJptyAJMc3RFwwaM91uaC8cnSCx0iDsbdwYQ== 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=29RsK9EuoXxO7M1cTS/Y60/xzC2ESgLLvW1ALtynvOU=; b=DHsNUjyvnBXlkbPB5DK8bqvpLuiosWMz17Ulbf6SUJqzLaijTTBSJiYdZ9rvG7Xke3b9CS9Oh7J0kcr4PcYGC/9GD1Vd/ebSPkGQ3Q2ma14TXxqENLsFfFtBb0Z/WZmX5umwoSPpaCTLGGOyY2d4uSUfe1FGDNft1EcfhEOIr6qMfp2mshAfsbZ4R6MnQ57hALElLsnfSZym0YYNIDLNZimvbbt/4rVZKu756DBU07rP8DqWG8AVPz8zp4EtbSQafSGkaEQ9usQWYF7YxF58So9X9LcHKzarS9P0UMT7t5McgAcykyh5uh8vjLEjG4hRwDs9sZrwkedpeEepuVe3hA== 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 AM6PR04MB5752.eurprd04.prod.outlook.com (2603:10a6:20b:a7::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5164.20; Wed, 20 Apr 2022 04:57:33 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::9974:fd5e:e3c0:14dc]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::9974:fd5e:e3c0:14dc%3]) with mapi id 15.20.5186.013; Wed, 20 Apr 2022 04:57:33 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v12 05/10] mptcp: add get_subflow wrapper Date: Wed, 20 Apr 2022 12:57:04 +0800 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HK2PR06CA0011.apcprd06.prod.outlook.com (2603:1096:202:2e::23) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: bb7b8e25-9720-487b-c148-08da228a47bf X-MS-TrafficTypeDiagnostic: AM6PR04MB5752: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: MEMIUsBpJqp5qWme39/3XbSKJTt8UiOwHNyf8qnBG1VfLbRQEoZyRTai58zVLqvA1nHSEy7bD2rAtCR13CdwV7Yq6AqjOzE3nrMWZ2Pn36lEY2OHCqO4tYlybvhYDa8UBSWsYm0c6Tv50X9ZeEsiT6Vk8yhnZ/yAu6nmWfXyyDQH67owK+zjHI5NL8Z6JG5TMaGqA0QtKS2pNNKZJjXsgNs67qBbR06ECS0hn41ng6ZIbRo7H1rLmNOMglX3q6vqrLYIWsdlskuNYalmYgFDDiXR4vnBkl62pQG8oWHiAyx+FuhFW48A6RRYimDsiP6Y2UkXyHaTOxuQXJb6uc5301bVY+94Yc32YS6bJrSx0GPlHorDGx92o9wurCEyDmsISeBK18kbjdjLTi5cFuLYDv4trW6FBEB5/C5uxbSHOYidzZ0CIcaEeQomX5b1230ORf1NLV6IhEs11o0wvdG7eOwlwoRuZExBeYRAVfz6ieyiwV6juXXsKX9WzwHmsOEUax1+1PcHGXjH6pIEjDJiXfrS7hAjRLh4OBPLM4sIG9lY+qsPbgvAnK6oeN98UY6eTcuIpf/83Tb1qb8QbBgpbSEjdl0WpAOyoMx8hXBBXdTcovjumWwQd1GANjmuB8Y5lYOhR/FUwQFnwW8K/QPuQelE9Bv0umaWw4RNNrxo/cTfOeddjzQGIrmXbVj4PNht 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)(2616005)(38100700002)(508600001)(36756003)(316002)(6916009)(6486002)(66946007)(4326008)(2906002)(8936002)(6666004)(8676002)(86362001)(6506007)(44832011)(107886003)(6512007)(66556008)(66476007)(5660300002)(186003)(83380400001)(26005)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?U1nNRaeQKBpuuYcdq4/e9i6kemcXZCbH6XLinlNJrv97miUlxXhRXq/+dCk2?= =?us-ascii?Q?QUmbQNu2EU2S5FQYV9tFCmyRAYLiy8/9j/N5EQfCg+BJ9QM9C4lqwq9kVLFv?= =?us-ascii?Q?YaK4dNDCfqwsfHsUTx+7PwZuphPUb29fBYCHltYxyqnYJKn2Ff7UkVnwuWXh?= =?us-ascii?Q?vWKvXPTLbo8qtsh10FduRFgE78bfgR8Ab02jsCAKHaEhacf8oohsE8i5dIzu?= =?us-ascii?Q?bhludM3aA373Lrdcs1Md4bJuguFP+sBejZTUtZWtAiQCzCV3n6AqNBVY6Dov?= =?us-ascii?Q?w4poNnqJxrx93A1DhqwTcixZVe4kIEF4XN51kmssUAac2KTJP5BY2OhxdMN+?= =?us-ascii?Q?NGLgUAl2plPrV+FEgNK/sI7fT1vHBp4SlQ7RkpaJ006unnGCaSihksHc+trj?= =?us-ascii?Q?1/3cMa19yEcvKXuTGSZtb0ujBABtipZsTv0bRIwcQtKicTMfG+0rzVmFlFED?= =?us-ascii?Q?uuKyC7/scATX59JXf5CxzjvqFgVG+duOsD+xFsyQlf/Q0b2p1HUvHOrFOzFS?= =?us-ascii?Q?Eb+vLYvkmQCnxgcCkb+5SDa5suGE7QFKIcSuSGartEbofThnpjifbGhKh3vi?= =?us-ascii?Q?CnoZMP1eCwFZCpdWHcwxgVM5S48Ca8y71MzbeE6V1tuyOVs6InNL90XtVoBl?= =?us-ascii?Q?SaWN8RpQr70W7ilDSycyBryxmY3ELxr0kEvqYlSSHpQuUT4reVwa/xtv5ZFD?= =?us-ascii?Q?T4ghb53TiCM9B83mZkhXS4Nm8OHzlaYmwHQ4kqr5zHE7/+LCl5yekZC0rDHD?= =?us-ascii?Q?7CPGCZsDWpCV0/6NIqmkeEro6K0MPic40EN8uwXSlMl0P7jokp8lR5kfbq9B?= =?us-ascii?Q?mRRgAY6iUSbOWFmr2+y9iBjAj/dwleEXBxB/iPEi6MP5LWdPkIb81bSR5ro0?= =?us-ascii?Q?yQ6slXZfSW0XIQhZkeqg8+SC6RgGeryUqmKdr4DX2LEU3Bk2Qk0Kzs4woTxH?= =?us-ascii?Q?bep3MT8xNkHxnlQpCYzoJDCxNbJTfYFVWhTgzoqklwinlO/KlQW9TC1z1M2B?= =?us-ascii?Q?heHoIGQOrP0fU/hs4dvumNCYSCJy+cl+xuRKUQO69OMGdgTB6byrCunjQqwT?= =?us-ascii?Q?3XlXA5f89bnVRjRsDCm1NuAdBuDrfhIKB9ekY+gBXBTtf+sqmmUBTwRIH8Eq?= =?us-ascii?Q?Fs37bEhAmcmqNj2mq8lvdLBwge46BO5D2QkRGzMF5rvOpcyYoicLTJYNtMWT?= =?us-ascii?Q?PmeVei04IZnodzpn46TMG71gJdpRXQEgI6QY+nH40oSrPqXtA3d9QcKaDq3j?= =?us-ascii?Q?+1whcYe8Bg2cDbqMQV583ciojCOfjvKPTkO+ebFviq7pXNE4L9v9x6bG+OMm?= =?us-ascii?Q?X45fQ9W6GCD7LzjwB/WeM8S1/BfGGxH71GBu4tqMrOnCCY1xXIMtS2wkftH/?= =?us-ascii?Q?2vhhTEa424dITGVqnmup++ud6JUAJVtUfNWKOyL8eeyqUS9CvCcXDBRAv4z1?= =?us-ascii?Q?/QRQShCVNq7icoZjcWAtcRaVMFUp7Nd74+gQy+VpoMNnuoy7ngMYQjH8+LNA?= =?us-ascii?Q?DZNmM+mfd74+C9IfhjWtPN8PT4N2T8lohgGyePLajRlRPWxC+MOSgO9/pGkF?= =?us-ascii?Q?THqfbxy89RK67zfEFJxLlfH6CNsL4Q4FDXHVycCY8EcwG1BPmydopJXeXDYx?= =?us-ascii?Q?fYRJ8K6Vj8SjVaibvwJ/NlQV+2XBW/u+B0fJfuIZ4LsGG8RABLU9nXw6UjtF?= =?us-ascii?Q?kkWNyGxoOJLAa86GXFkxjUF6NMlb35KPuOOQNvChvQv0Tcmo8I0R+JiUCRS/?= =?us-ascii?Q?D86QUM33exHOw8zeIRbPrQLde+QgKUg=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: bb7b8e25-9720-487b-c148-08da228a47bf X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Apr 2022 04:57:33.4051 (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: RARZVyCjM0KPx5xYR9qHqoD+areje3RJoTAMvIriDjSPSj9vtTr+dUzXWaATVyKgwdX9BiGMfZUf8avakGmUnA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR04MB5752 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 | 7 +++++++ 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index 3d50c35c0b33..c1c23450eff1 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)) { @@ -3146,7 +3146,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 b06836d1a899..d831effe2dfe 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -632,6 +632,13 @@ 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 msk->sched ? INDIRECT_CALL_INET_1(msk->sched->get_subflow, + mptcp_get_subflow_default, msk, retrans) : + 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 Fri May 3 08:15:59 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:ac4:a898:0:b0:4b1:af33:c52d with SMTP id z24csp1938875pid; Tue, 19 Apr 2022 21:57:50 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyjTIrzywUDoi4zGqehAM/w0I/IMIeC+h0lB5Gq1OZ26waRcA98LA+DFuLAbSnMJUgNkted X-Received: by 2002:a05:6512:282b:b0:44a:f340:b4ea with SMTP id cf43-20020a056512282b00b0044af340b4eamr13493402lfb.600.1650430670480; Tue, 19 Apr 2022 21:57:50 -0700 (PDT) Return-Path: Received: from da.mirrors.kernel.org (da.mirrors.kernel.org. [2604:1380:4040:4f00::1]) by mx.google.com with ESMTPS id q12-20020a05651c054c00b0024dbd0055a0si1517331ljp.22.2022.04.19.21.57.50 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Apr 2022 21:57:50 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4791-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:4040:4f00::1 as permitted sender) client-ip=2604:1380:4040:4f00::1; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.com header.s=mimecast20200619 header.b=Fq0nDe9N; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4791-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:4040:4f00::1 as permitted sender) smtp.mailfrom="mptcp+bounces-4791-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 da.mirrors.kernel.org (Postfix) with ESMTPS id A43FF2E0CB0 for ; Wed, 20 Apr 2022 04:57:47 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id E4BAD110B; Wed, 20 Apr 2022 04:57: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.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 3F5617A for ; Wed, 20 Apr 2022 04:57:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1650430662; 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=Fq0nDe9NXC2+KENZXSBJ98K8gts4kXPZhgEurYNehlGeQdh95cOeANWE0ByRHtBVhIXmGs Ua9DEibzx6iEHRJrZzSk1BqP+gHj+cklCBrw5e1P6cQnkctLyOPFaIvJdcJERAn2hK1sAZ 8aNGlx7Dh+yLWB8i3AUKhzMbqI6O0uA= Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05lp2106.outbound.protection.outlook.com [104.47.18.106]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-16-AqS6xcSWOJyIQyi_DQffTQ-1; Wed, 20 Apr 2022 06:57:41 +0200 X-MC-Unique: AqS6xcSWOJyIQyi_DQffTQ-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=LE02y1A73cnJgrgkJA0Hs8gIcg1mlQv8ooSXFeZ8VTelZq+3PwMbIX9c2tknXypQyfmm8gMGx2d3I2/QJUP1PHlp9y4cbIbOnEmUrPj///eCZ5gbGEerFwVWWgrt0KNVFTKwnFiJPdHdQZg02okgkb/1Nhvui5Rg7QuauY5GuKOvi4qccwt50BtDxrF8qiVDioiVy2v4y2rXMNkkRIpcpSJWq6EK8mrOjkGYULmHFBd/WZDvVx5JrKw2TWVAGQZYlx72WbrBHj+l+ABq5InzB4b62XaVgDoIMPI/RU15kKebel5nboTxlxv3xOOXtpljcCgyPsidRJvcQ8vp04ROlg== 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=M9ShZ265fZoM4+cYX2jLVvTa7myBR5VkAR+YPWh1WyefmAoqqQe1aDq4u/BVtOdPTG/jH+TDKhBCsxFg5tBbRCHlV72zzvhzMP/ipIJBR/409YOthVvfnBP4OXtd3PTm0RYZe1In+1gj52VJG2RoL06XcGKGyiD28tLm7p2kBO36wPXzpg/q9zmdKGpFcLm2kfoSUfDZYTwq4vXwF3DT0ByprgKsYwjmrX0BNhke4+MH0BGABD92xUbd1qWFvm5I2VDBflNzhTDHhI904Szdw+HB+Dm9PLm43g0/i67qYHFJkD90Uut8c1QsWD4e4npk0Ew0cBOp2FOeqTZTSPlsSg== 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 AM6PR04MB5752.eurprd04.prod.outlook.com (2603:10a6:20b:a7::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5164.20; Wed, 20 Apr 2022 04:57: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.5186.013; Wed, 20 Apr 2022 04:57:40 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v12 06/10] mptcp: add bpf_mptcp_sched_ops Date: Wed, 20 Apr 2022 12:57:05 +0800 Message-ID: <675ea3a801243d177df45b9259d0fa5d46746e13.1650430389.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HKAPR04CA0018.apcprd04.prod.outlook.com (2603:1096:203:d0::28) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 05b4b46e-8ca5-475e-6274-08da228a4c27 X-MS-TrafficTypeDiagnostic: AM6PR04MB5752: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: 3fforc8Ui4Q5syJ1pUy4CX3QsvFv1RDt3eRCwcaLJsM2lbpZUjU5hBfWNup7Q9S4OsqFwaqPT3Op2l3C+DWMX9asc9RgfCAnK88j1kihoAWOD4euqflbjqDjMZprlw+83WYjqNqOrtDbIgV3MUaUN3GmGRE2I/KfVQ3BbikD/g/RyAcVwXtt1xiut5loISHW8Tz/znxhOtqanhiBZtLPs3j8iTI5LB93XaCQzd72ir6NlcwYsZyxAl0TvNAraW/p6Ap1RagRAKq88L5V+QG6VUBa3BQUJFq7sXMXrrk3LPUJnhNXmQVHRWrBb/VJE1vJuv6hPk/zv8nTgfNvf4Le2iC3HW6SbUxsJVdmmxB4vK7LXqaD1ZZgxtq/RPcpawo2ER3XRVIFsaEnthENeC1WD0IZ/W8MbqPie30vU892jvJIROaxJJkPu4iW1tqkjDoF7B3HUOcRr3f9cW2W9M9g7fcj0sh7toYoRbOD3ylyZlVXCKn0fKa3i0OKEXsr9f62CR8inA920DwMgG4TeWSo7o8bWHlTqq8WwZuOiVe9N2256jYnoWdfnvFe2h3Lg3V8wLtRNnSUUzn5xk7mI2VV++6Yq4n7cCUrpHNruwAoZty0g8efQ4Ig/sN/2ylcq/l+PJNZ2w5/H1TJhDa4SePC8KqwLqyHueFas4Cqmw5JiUYe+K8+TBviKH9D+0NeJkn5bFZnsLhix1vaPTYEBa0KcQ== 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)(2616005)(38100700002)(508600001)(36756003)(316002)(6916009)(6486002)(66946007)(4326008)(2906002)(8936002)(6666004)(8676002)(86362001)(6506007)(44832011)(107886003)(6512007)(66556008)(66476007)(5660300002)(186003)(83380400001)(26005)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?98z0Ug2rBzudvOKRGp398X9A4Rx+XxnRxv+K/ymFA0xVjnr00jbpFg6ZBeJB?= =?us-ascii?Q?gz8/lLI9tW7yo/HJpTqg6AWODhArLNHNBX5pE19RfY/uJPHgztPEtMusN/u3?= =?us-ascii?Q?pshi7+ZRG7ZER9KwVkUOD49iM/le/y+Qo+RyDWKQnjWfmkyP0hzYoNK2fR4J?= =?us-ascii?Q?6rXbYVBAUzbR8Y0GtKREEyRq0rLWSi6M6eoCxIZpAp+zWy0pUSGQNSUpNiW6?= =?us-ascii?Q?qraJq2Xhmf/o1iGWH8o0fDkWc0yzHauwyBlYpDOChxk7/D7lIf5fydacs0lO?= =?us-ascii?Q?JEhIPvMwxPe23/czQQ/3GYaUJAAq7p1aL2BKWk8bGYo1xMNBHP9oBX9wek40?= =?us-ascii?Q?0yMCCmpFSwBg9o1fdxynfbepMMdoIHb+162JKn9xwm0wuQWP/2SfmKf1tohE?= =?us-ascii?Q?3v0m7J5VD4j+NmxMZO25bijh24uBrMojEMVib2n74PGaoWzuh2rYx87R04Hs?= =?us-ascii?Q?8pnLoMan3VU+2ApTStCdxUjLMrmlQ/+0FbGkVtMMgsTa3q0zE3bhNFI/hbF8?= =?us-ascii?Q?dHRDkbRZX030bMy8986QOXJQyCWgkjw0JbHMLihDbNqSxg/kmowfaJa1n0lU?= =?us-ascii?Q?Wx5qQ3lWHAX3xOsWBJAYBPGSIyxmEhH9XOBSgEHrJabPWUuxnDSIRYTXLHB2?= =?us-ascii?Q?Kw9SEG5uAopqS/fA+ahChUsr/s6LTAfu2Pz5IHqVp5WhyqHpg/lYkQgN+7Wr?= =?us-ascii?Q?mqYpHYSxNyGnDXupSmGk9UDYi89ClbFXx9dfGLrgNW3+umPyu3DhpAIkCn7t?= =?us-ascii?Q?XbacMzAdxnWoplWpXyjh27bRYukS+V7uwt9f1Tt4RDd27lseHZhGLGPPKY36?= =?us-ascii?Q?gd+M1h3DYbIFnbc8oHJpTXcvc6EJEld6+XBxHVl5/cNkIwWqZcOyFqpYbIaL?= =?us-ascii?Q?bOCbuO7CkZ0VzLARuLyzNBesB/qCE1dmy7Uhb768rK8tX5r4GVP0jwD6vnJX?= =?us-ascii?Q?aHAPWjH4C1EqgQhNBEzSvSBKvQ2v4vC27f1D9AdAAdpOij6YHyiv9VcwBygc?= =?us-ascii?Q?nnchy6rXN68q/Mu8/+vGAAywc7NXo+UFk56d/2ou2DrbgHash63CMXZy2IPi?= =?us-ascii?Q?xzl7Hx3jz/829y10m5rM0eEcAlIONrWFI591XvqDdIMbusMgsuVOtz6S5RlE?= =?us-ascii?Q?x9Z+ubVTxb/2ZcX8ktAPOSuJ6zLPV+vIt37fbnOjtCVZLhlRhZ3o/jwTAOm4?= =?us-ascii?Q?wdviugCQ8sK7ICjR4MVVrQooUfi3mW3fUVHd3P4TLzMcTw7Qe86lXW8dFJRl?= =?us-ascii?Q?peXV2fhOXz07dDr5uf4wypNfNOskB3K523chdDTaJRRePdhZjM0VR9rpUnZI?= =?us-ascii?Q?MYRSu6m/zf/rtuUt3jhs6GqZKgDmzZiYeLk9UEYbs/5Rmnzf2IPtast9VgTL?= =?us-ascii?Q?dPaRznf8cLkCZsdNc7TzD2XoNwAT1Vlh+Nj2uWQ6zWLfdsEUXn6T+6Irtutj?= =?us-ascii?Q?RtuR270wzE7psyAj+EEzOyTYMrdEhjXqAf/tVXuvyZBW5sBFCCb2YQWsgf6Q?= =?us-ascii?Q?GKBaRuptuQ5GwcKvJ1f5oV8r4l4bN7WMUEZcK7k4SFzfyxa+gCSlwiZI/+Yx?= =?us-ascii?Q?FhPJCgHf9nhO14vjA0CcNu2KQxo1hmF84pJzzrU6tin4iqcsF2DoUnqc5qYQ?= =?us-ascii?Q?/E2myEyciV3i7jYjuyvg9EFft2+G4EZ0mt9g/mZlDM+hTeHFpoeeCPt5GIpQ?= =?us-ascii?Q?oXpD1gY4SNb9DTJaRiWwEzZXn1FcjCNPZ32CXmOwYnT7GEf3RCSky84c58RN?= =?us-ascii?Q?8cbJapO50DFM4kxl5QbuuEfh0E6FakI=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 05b4b46e-8ca5-475e-6274-08da228a4c27 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Apr 2022 04:57:40.7795 (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: XwRk3bo4xp+vY6reEtwt+g3KnYwM1vM1nm4CP5fUWAKaMQAwcDgTg1Z5k3Z73QtABJjKxXr0BjTNlj4P43tAcg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR04MB5752 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 Fri May 3 08:15:59 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:ac4:a898:0:b0:4b1:af33:c52d with SMTP id z24csp1938906pid; Tue, 19 Apr 2022 21:57:57 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyzwgYJxmNQiFyJEznwsHG2jleNmfMOZRcekeLo17KH/q/c4jW0DHAKitW1auTqyLL2/UF/ X-Received: by 2002:a05:6512:1326:b0:45a:3a4:f25a with SMTP id x38-20020a056512132600b0045a03a4f25amr13200331lfu.575.1650430677358; Tue, 19 Apr 2022 21:57:57 -0700 (PDT) Return-Path: Received: from da.mirrors.kernel.org (da.mirrors.kernel.org. [2604:1380:4040:4f00::1]) by mx.google.com with ESMTPS id f3-20020ac25cc3000000b0047195005b80si793479lfq.123.2022.04.19.21.57.56 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Apr 2022 21:57:57 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4792-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:4040:4f00::1 as permitted sender) client-ip=2604:1380:4040:4f00::1; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.com header.s=mimecast20200619 header.b=i82tjFYJ; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4792-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:4040:4f00::1 as permitted sender) smtp.mailfrom="mptcp+bounces-4792-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 da.mirrors.kernel.org (Postfix) with ESMTPS id C64E32E0C99 for ; Wed, 20 Apr 2022 04:57:54 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 294F3110B; Wed, 20 Apr 2022 04:57: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 CAC4D7A for ; Wed, 20 Apr 2022 04:57:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1650430669; 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=0jv/VSWGUQZjcFiujo4d26vI7YOdDA3d0IM5WZNoZAU=; b=i82tjFYJ6kaqRVigAzTOPrnZTXp1Trj0O3sZaXf9vcCoVAtAttjMgwgafoWZPPUDPCm0Au WKfxyZ7LabeFyyVJ1ZInjTfLBTIu6Sd+fyL6JGffIC18Mx27TqNppplRfVhIDNew5f7GE4 Vtd9wTPXqO9QG8u5erLSaNsh+N3O92E= Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05lp2110.outbound.protection.outlook.com [104.47.18.110]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-28-iU2ZeyGWNk-5ntVzMz_Jzw-1; Wed, 20 Apr 2022 06:57:48 +0200 X-MC-Unique: iU2ZeyGWNk-5ntVzMz_Jzw-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gwSEKzVAFwpGydsZztWUkiMibLFqGrN8tZfuO9mUPDWxecOItt3zkZ9sx7jtzeHSR4tWGIkh2cte6gMexQsgVDuz24Sd6XRzCCA+Jq+fnErMctfQ0+9aRvF2UUJpvqaHECHCVZN9qekEmQswy5hA68SzS8+8Eu8J3//VbxU2AQsMbcuwujdXYCR8rdRWoz57pKPLEWwjlQvXh4tQUruGa07+zBOBtHGnf01e43ued0iPHZnYsQn1TZbrzn5zA+e7ciXtow2jBDBR7Iw889mgEi+wdN1Za/UCvNQVANHG5szEzgJaE1l8K0QQS2WBDUWYgZk8LpUa4XkfjxgJwxTs/Q== 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=+fH2xOTvjbQnpgPpLLskyQQQvnLVmdD0Lktfx/kZzr0=; b=dZLKzVfkHCVrnuE0ON4l2SPYUX5mJg914rGAOJB/FgN2Jk8AXEexSCrgc0gTEUYUnwku+Alm81S4dJS4YaINPok5MMjvM+iBlcQ9dKqbBihtOJizlnoHv0ET+LdMldURha9lb2W/XlGunQgq67G8saGxrY0/Ryp09IFDl2vUp5s5xedsqM5HCu1VasPb8/fq7IFPAcjhgHyZah/zhwvGoqyycQORZrn5jylyrNsduDfhmSAcLWo+dsWTITaA9RWbicM5Oc7L99LNQbmZUzqDvWdQTvu11J67FjojcraJBQhyvuGY4sQyqbqs/kyZQLrNed3kxz3wNv0tlnlTtezqUQ== 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 AM6PR04MB5752.eurprd04.prod.outlook.com (2603:10a6:20b:a7::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5164.20; Wed, 20 Apr 2022 04:57:48 +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.5186.013; Wed, 20 Apr 2022 04:57:48 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v12 07/10] mptcp: add last_snd write access Date: Wed, 20 Apr 2022 12:57:06 +0800 Message-ID: <396f8edcbf8e4f65a1d76c228dc3d12aa4dd2f11.1650430389.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HK2PR02CA0178.apcprd02.prod.outlook.com (2603:1096:201:21::14) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 23a8caef-c868-444b-f124-08da228a507b X-MS-TrafficTypeDiagnostic: AM6PR04MB5752: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: Y540FFVJZEeZ2MpWpn+cVtu5n0yRBawAsxo3AX8puieApXQplMYxKXb7V8MOOmTKjyU6EENprEM02b5djuRpp/Ft/B4EQ+dktjOmboLui4rR2YMB6BvovU7AMGP/4kJ+1GNBCypyiNkElK9NVtZnhHCnS0Xqfb5CQfmzd6BrXxn7fHE4vgRRs0Fco9nHbZNrQFddzVXh74ZPal3BQWDtJpkxhv8nJLa7du8extIXWL93BfhYMYTGSxMKnIugKWkb9plmmLnvDBnDcOamafQgEssJXZyr7hilW6u6CBNKJPeEGoDqEBVyYYLBt2eLXz7mXfoa6/ArvfnQN6IRo2wFGL488U8UeNIvkbsqM95uMCa4lUvJmenjWDaCyGwxhnD9MLKteLAAXfQcVMqNAZR4H2MntqgEhoNYMdJRSuY0bldk5c8DKWr8vLK+PVGyH7uFJdMgJv9uHDRE6Lsjh1ZhF8s55IrbY9tPlMI8fDPsdef2JCWWQD4tk2xhORTMhs6ncEfIwc5AJYhF7RSgk0MQMXOv2o43oWHxCS8S21PlDMg4s4OfXsqeWDZLPW4b/f/w3Ozz4VgMrMSVRG8phfhZEOKPZFpHoHfwvQ5k53x/diYYunXPAj5N4Djv806D1HHMT+2BubYSrIGXG9w0sHq66WMvmIj0pGp5ay9jIM/l1ehOwxvBbToq7eM2ixvxIZ4EyLqcuw7OUnf2sp4fxWLlvQ== 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)(2616005)(38100700002)(508600001)(36756003)(316002)(6916009)(6486002)(66946007)(4326008)(2906002)(8936002)(6666004)(8676002)(86362001)(6506007)(44832011)(107886003)(6512007)(66556008)(66476007)(5660300002)(186003)(83380400001)(26005)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?5dJSmD5vfmeS4nATzaaMxfH9pBcol9SwAHK2q6UsWdM6PnQvzMS4gXlAi/X3?= =?us-ascii?Q?9aXyrAiA5jr8EE3+tgvnye8WVzQ4ZVzEGmBAcgemVzBIK1MSLMCNf1P7ikEG?= =?us-ascii?Q?9SDHyNw/baoxYNWdkHXHEiHJ68VvUorKwjVySJPMPIqqT5E6D7sMxJKXV7N+?= =?us-ascii?Q?jxlxl7rDn1x7VwEgCqJtCLK11m4r4CSgVZkVF/TluejkwEXOCit/6Z7+RTxp?= =?us-ascii?Q?aLz1WL4drcmoI7y65isVRY+UsHwha9TSZWFyZxL4n4tvgc63U9N4Cu5PvQ0x?= =?us-ascii?Q?cl5o/VjaestJqjKQorHnvRsC8zTr/xuuZ+01SgQ1fUPAU0LTLXYzcAoAAAJD?= =?us-ascii?Q?fkerXOp/U39AaC+sKjMOsbZ+68b/go9eGa8XzomS1RPAcUqMePT3Ia1WMM+7?= =?us-ascii?Q?UmHvAeWc1U0jRjURf/L58fswZvoPiu7WE6xlXwEaB/UZHFyfBWvroWeJRwDA?= =?us-ascii?Q?TShKMCoK9K3fRpcPfc+QkD2lmYg55Xlp0i/zxsPkg/DrN+2hpR5yS2ZKLaDA?= =?us-ascii?Q?ByBmYNddC0Gq4F4Jy5ps/1moPFVdGWJMJCldXyErKl+urewcwJO+q2FnMi+7?= =?us-ascii?Q?gOW/yQXZs0dLFmy44ntOdpxUUbTToUw7rASmHdpgDQH2bWgj5TGfl9H60LiJ?= =?us-ascii?Q?bQ1QFuJA+C9xKB9wJiijnUoKo+62dVShFOHlAWWJH8CWKagOZ/nGQkX2dUuV?= =?us-ascii?Q?JitKl5cNuIcz3mvWDGHJ5Yh6gjqN/GQ127H78MJbLmOY/s2s+rCfQdyJcOgG?= =?us-ascii?Q?hv8n7XJZxWylfECfy3Ru1rHQtbl2gaC87rhR43c9MZYexIy+NB3KtqldTJ30?= =?us-ascii?Q?j9qSekapDuhmBAc7p+AeqkBNl6ReUEYh3LoEZRwTDHKrNbkHsSU20zEIfxCB?= =?us-ascii?Q?ODj1fLJnjqunY+pOg71zt+AsfkifHtSEVtXtGX9SVCmVkqh3Y5FH0+fNexej?= =?us-ascii?Q?YmR49z16bQG3J+JbJdEfjW3rMKWSV+yMFrzTAxVEeeITTaaPl+6Dl9IJO2sk?= =?us-ascii?Q?TjKiXRhz/YRqmHBBoPXC5y/b0Ye6NaCAS4NDB6FHlHpTmIuyl4GKLiPq8iBW?= =?us-ascii?Q?gw8ZXJ+TW7BI0yl59Hcg66JKQ06aLyEE08VKueASjfO7GL9t2Os/d4nSYPxv?= =?us-ascii?Q?kaDer1pITufVhGNkM62cheWEhmmwUJSQwh0gHT4TtELD+v6CgMEFcaZ979dr?= =?us-ascii?Q?jV+v3/b98gf3pflJzQ+/DeXDulxr2oFmUl1377rF9RGZa2qA8eAwweCLydnq?= =?us-ascii?Q?rwrGL5O7MERp/ccMN0abAKxBJdmONBZSC2vThg7HLZ2K6G0s1PC/NsqLyi+a?= =?us-ascii?Q?oVA9pJYz4xs9tIXTq32BBPizj+0rF9GGqBQVlcytujjJ0he5xdLEMBWHdeqS?= =?us-ascii?Q?X1hMkJ5p6ENPKUmWvy+gRS/XWUaA6xfEnZ8BmTNnXGKy2y3H+74J+IU7QdZd?= =?us-ascii?Q?4k8mGvkPp2XAjj4IvIDU74UuI/XqxHCItLRtdsihWOGfPd7TZFkzs3KHHbqA?= =?us-ascii?Q?Tf2vLcohGlvZX3AKCt6xq8ul4FlMaHO7XgTITOp/WJAKPe7n7vlLxH1f88il?= =?us-ascii?Q?2Hb7XTzA+fog2+vuPuVdlGvr7KFPdf5g4ADG7rKt6isg18Kd35/aO31JvHX6?= =?us-ascii?Q?qZ2uNIaQLmR9+mPeWxsj2C5GbvM2AIXgERVjJUpSpI9ioqyM0P9LEMY+Fh5M?= =?us-ascii?Q?o0WZ75hlLdT+RrmfJxmOfwDkB64AmQ3UpfhkAhhEszVCX0RpIeZESLic46dj?= =?us-ascii?Q?Clbtoait8WKeywNoIi0c+PpYhLI6HFg=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 23a8caef-c868-444b-f124-08da228a507b X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Apr 2022 04:57:48.0758 (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: HVEx78vtbIVUhal1SBuYcgfCKw8s6cYJe74WF9jYH1WfY55JN9awauqtyV8r1hPfs6dt7zNQwtC2nyYYoRLMjw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR04MB5752 Content-Type: text/plain; charset="utf-8" This patch exports the member last_snd of struct mptcp_sock in bpf_mptcp_helpers.h, and adds BPF write access to it. Signed-off-by: Geliang Tang Reported-by: kernel test robot --- net/mptcp/bpf.c | 16 ++++++++++++++++ tools/testing/selftests/bpf/bpf_mptcp_helpers.h | 1 + 2 files changed, 17 insertions(+) diff --git a/net/mptcp/bpf.c b/net/mptcp/bpf.c index e849fc3fb6c5..bd3c50b07ab2 100644 --- a/net/mptcp/bpf.c +++ b/net/mptcp/bpf.c @@ -40,6 +40,7 @@ static int bpf_mptcp_sched_btf_struct_access(struct bpf_v= erifier_log *log, { const struct btf_type *state; u32 type_id; + size_t end; =20 if (atype =3D=3D BPF_READ) return btf_struct_access(log, btf, t, off, size, atype, @@ -55,6 +56,21 @@ static int bpf_mptcp_sched_btf_struct_access(struct bpf_= verifier_log *log, return -EACCES; } =20 + switch (off) { + case offsetof(struct mptcp_sock, last_snd): + end =3D offsetofend(struct mptcp_sock, last_snd); + break; + default: + bpf_log(log, "no write support to mptcp_sock at off %d\n", off); + return -EACCES; + } + + if (off + size > end) { + bpf_log(log, "access beyond mptcp_sock at off %u size %u ended at %lu", + off, size, end); + return -EACCES; + } + return NOT_INIT; } =20 diff --git a/tools/testing/selftests/bpf/bpf_mptcp_helpers.h b/tools/testin= g/selftests/bpf/bpf_mptcp_helpers.h index eb51fc1f54d5..90accd94e947 100644 --- a/tools/testing/selftests/bpf/bpf_mptcp_helpers.h +++ b/tools/testing/selftests/bpf/bpf_mptcp_helpers.h @@ -21,6 +21,7 @@ struct mptcp_sched_ops { struct mptcp_sock { struct inet_connection_sock sk; =20 + struct sock *last_snd; __u32 token; struct sock *first; struct mptcp_sched_ops *sched; --=20 2.34.1 From nobody Fri May 3 08:15:59 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:ac4:a898:0:b0:4b1:af33:c52d with SMTP id z24csp1938928pid; Tue, 19 Apr 2022 21:58:04 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyXJQ7RymRP3GgvNB8/VruWR3s66M7v0YdJCQtnnXXYelEGtfbnqs/1+Tp2+u/yXVT2sAYy X-Received: by 2002:a63:200c:0:b0:3aa:4d00:85b4 with SMTP id g12-20020a63200c000000b003aa4d0085b4mr3623165pgg.271.1650430683986; Tue, 19 Apr 2022 21:58:03 -0700 (PDT) Return-Path: Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [2604:1380:45e3:2400::1]) by mx.google.com with ESMTPS id 23-20020a621917000000b004fa701bd461si982654pfz.203.2022.04.19.21.58.03 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Apr 2022 21:58:03 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4793-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:45e3:2400::1 as permitted sender) client-ip=2604:1380:45e3:2400::1; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.com header.s=mimecast20200619 header.b=gif0wZVX; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4793-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="mptcp+bounces-4793-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 sv.mirrors.kernel.org (Postfix) with ESMTPS id 8AC67280A70 for ; Wed, 20 Apr 2022 04:58:03 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 68320110B; Wed, 20 Apr 2022 04:58:02 +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 B51AD7A for ; Wed, 20 Apr 2022 04:58:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1650430679; 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=qQoDnLcJCXbPD4I92hufzsOd5mkRS7q81TpG7C7wpC4=; b=gif0wZVXJNKezWtHcWrVWTsYOdwbQ2sI59YfAFz8GlVE4TdxXPoZlgRkpRSyxslwM2xTjA RIJMrTEC4XlT3D81hKIygWHDSdJbf5Vpf05wAR1RdwFIzKBkrmBB69glf2eaJXwOK2EdrD q/2yuF1N8wLbYsBGNoRHmWFcN9/wOgM= Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-db5eur01lp2058.outbound.protection.outlook.com [104.47.2.58]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-38-dSAWL_X8NnqGvVTFU4lmJw-1; Wed, 20 Apr 2022 06:57:58 +0200 X-MC-Unique: dSAWL_X8NnqGvVTFU4lmJw-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=SiQaqEt1GQ4Nc0wyAaMBlP5WwSh+gZtvpnFLOzigLKuvsIVtrATVPMyOC3igb9V4HKtcUWsCkcw/gTm6nzu1nvbOPlV2vwIcydDUM22u6H6+fbI1KNVMSxebGrkm2dryEzUSpWdDfvc3SJWK7pJNrF0Gj9Ilkdt1JDtytoWrc7V1+K/jqvDv2TURwUFyU0ggaQnHECZ/L2BihLUIbd/YT9x0wwMsIxTsIRsJ015L+Omc1j/vh78adew2IApNm9IpxD3TAcAcyeckIif+B8vtV668Wco5i1Qb/Xf2GH/OpM6wp1lqQ8Y0ibDytBrkFNNvmyKlV+HIKOQglyNDeCU80g== 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=a+FgTwXgEjAjg/NHrPCTwby3r1P+vIgim2QSZjWNhug=; b=abVZCLP2BARPjhY0+owPwI7YLOmzZhY1vcADxguOsFguk1SvP5QT9GRC5mvU8T4pVlISMFV6OmZWLpGqcEAhNLDRMsphpdMFRJRK0OBEZayQm0P2bfpsWWRJQZDRzafGXwh+yy2C9DVznJos67op0TcAveVpmthxByM6Ts7vNNae4SPfvFgTm9i1GPBYCvQB9gMa+TNyQJDzQn+yWcmlk2VaV/Ep0LTaSnAPM3T6Mq05WzC5UGuHr1nVdpUBCoVqS88DEGReUKun8zC2eqhtaFdR+KNXbFXxhK1sWlmxVmAZtfeC0BPtwHFA93ELhTKBiETohPv+O3BKT/umtZAhsg== 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 AM6PR04MB6504.eurprd04.prod.outlook.com (2603:10a6:20b:f9::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5164.20; Wed, 20 Apr 2022 04:57:55 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::9974:fd5e:e3c0:14dc]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::9974:fd5e:e3c0:14dc%3]) with mapi id 15.20.5186.013; Wed, 20 Apr 2022 04:57:55 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v12 08/10] mptcp: add call_me_again flag Date: Wed, 20 Apr 2022 12:57:07 +0800 Message-ID: <68fa62e5d0ba5fe88f89f6be7923eb952fe3b817.1650430389.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HK2PR02CA0181.apcprd02.prod.outlook.com (2603:1096:201:21::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: b57c28f5-c283-4a05-b720-08da228a5509 X-MS-TrafficTypeDiagnostic: AM6PR04MB6504: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: xVa2eBPTpntIbumzjw3QDnCAkFF9emry5UC5F1221wFBHhFPpqOvwEF+HGBcahmgedsh306GJe4iluwvtL/qEelUjOkJ4RUYS1qmAVlxaO/CM4LNFyYr3KiAs87MjzAUG0costvV3bWdFKksMZ7nhqPdEoMZN5fAALG+ouKA0fQobotseGMiMSwsq2UQSqBNV7/wbKrrXh9IxyryPVz7ntenIhlAVucN/DeauclczJUbObKrLG3A4WBniw8k1dRVjsl+D4Ed2uVAgR3itJN1y9JDntTe5zjK8o6TitKjL6L4y402VWG/vjz3sAIFfopPKaDi6WBaYz4hn7VF/ZCxh/L90hTvFvn5RslMLDeuzhU53pcw1NWPqr3PCGGWNnPsc8i7SMZcVHqAWV3yJILBlBeccnFRgtrgxXqeZpSO259LQmiiKIpzrz5g0hojiaUdqGxuruyBpSiR6Mb3lbcRh46VmrG1FtadKlvB31XBD6bwZ3cVofmIH5UWMmiJkFYjWT9Ka5GnHdo2/SJWuGGUOcN6EWp+b7FF1US64Wf5lkD/ZHeWmpNFrdouzIdO5G3I0F8Lek5PtXpogG8+amoBR/F8qydRG26YKMRpi9l+1h1BmsuEHR4CXhnfwg2lCLJmaHfMZYKrVLeFI2aOXHl57bkM8qxeaZOc6KvQQMHp4Y0wMj8agAjDkVcGETwwNB1w+rbCkdTM9sm9auMw62K4Kw== 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)(6506007)(44832011)(2616005)(6512007)(26005)(186003)(38100700002)(6666004)(83380400001)(6916009)(107886003)(508600001)(66556008)(66946007)(66476007)(316002)(2906002)(8936002)(86362001)(8676002)(4326008)(5660300002)(6486002)(36756003)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?3nYeouYHqaOrcYry/9LdN5/Q0ikq9oEUxsA0Y/QIwWAn6QJG/Rc9Q3VThcoi?= =?us-ascii?Q?2N6dPZ+2JQAP2+J0/DIi4ghzUqZ9prl+ucqbFxm8aemATtfcwsZWfq50nQ0V?= =?us-ascii?Q?DL7WEyyNrkhuZAmso8yYKRkTEAza62DZHrhMVRyrzzx7LSKFGITlcI2UN1ic?= =?us-ascii?Q?mXr8Ajt9xGBMZO5JtfFBVPT+dwJP4DJDWQv3p4BDFPb7bjjWkMcOjwYq/XTq?= =?us-ascii?Q?nhRbXUSLcqCs8OiJcDbo3Gutgw0I3luDsongJ6M1unHIng+6aV3mXchB0QzK?= =?us-ascii?Q?RaIz96tXUK3V+n7TFvwCPvGiJlYQgUygsC6RzBxNoT4PmvWL/UEUXZM7Vo6y?= =?us-ascii?Q?6WhXpT/bCpZMe5TS4Y9TR3H1lAHWu+PD4zAoiYiLp6TpxMrwvfJr6K4moruh?= =?us-ascii?Q?2H71XYlG/aEjimQ5XVpsfQ08mtT1t4LF8/lB77mejWKoKYIoKUMJgOtKTVNU?= =?us-ascii?Q?TsxROvXSUALCTYeicYsfxwt7kM2pNGB9/efETMGtRDLZZM9DPDdaUd3KpCza?= =?us-ascii?Q?BHd0Z+s7arXtR2SNXiB1dWUVcQnN3mb3cIZ0LVmUasP9NBjlSAI6bVs/XY3e?= =?us-ascii?Q?Mw/vPAvwpVh3QConF8o5a8xAQL7sNrhLcRhv9s2K66jgBm3efu8kuwwDB2+9?= =?us-ascii?Q?hkMT3j5FXDPgcrm6aiIdzlEn8g5vUojiPEyotY4J54Oa2fCGuYHQX6vChSIc?= =?us-ascii?Q?NIE2t2fyqExpvU8IFS2HefJ0DSvuZa90zO4VC2EN/VYjzj4J9WahPX1thsZs?= =?us-ascii?Q?6qDXUtBNNivw1M5FxBx6KmeMMXRe/I1vDPUyqjVHBRPuIEvn5/rh4e40jdDz?= =?us-ascii?Q?fZOONHS1pT9Za5CEx9V24tmp9+xqA+A0svXONV/cRnfWTQ8o/Xe/4cLTorcN?= =?us-ascii?Q?3IBN7tQVhwcHXrjF9NpmwyrZS1fkqtbxLxXPFnDa2+VQdhaMu3AZLHRsr4IY?= =?us-ascii?Q?KqmjDX3BWyxqrpDSoxlmMYZPR+rTuDV6aFNZ+CV+gWr79axs2Dlnxymvf6ju?= =?us-ascii?Q?QAFyODc70xl8dtJ0yddVcaotB7ODroG3UHNYe47e3ZT6VdVCLZZG2kh0fSeQ?= =?us-ascii?Q?8b7+OMu0WCrQIpcHO+BaJ6x9myBA3gfvvsJBVep+TJEWngH2yOwgCsPoB4LQ?= =?us-ascii?Q?y6CbFJbCr7CDQOxOyuyzu/yAKxLH3Z32HMyadm0XXKx/zBmfob4DHipiVah9?= =?us-ascii?Q?vIOZw/OBV0M3VVCaFV1MnfGzKC+CkwEgNdTkryGltSDwSNG2rHrE26NRMiI6?= =?us-ascii?Q?zcImA8p4aZAj+XpSP3KOzW8fIQV0k3Y6+tmsV8uOXUPXKCyI9chxVoeKFVyC?= =?us-ascii?Q?cAC9VTI3Ul5I8c1ypnHJ4Qn9/cEzPie6Hj60ae7h+DRL864osr+O4uw5GwQk?= =?us-ascii?Q?2z/gFUPYEowYzDz5dCq+dbyuSW//1RI9hhZ0nGt4LVwhlbCUnSrScI3/3oun?= =?us-ascii?Q?CZqgQaXt8/XiLGzM0vTYBdmsZAciTzXH3/lh3N3mqKN2w9kHQxU3Iex6Tva2?= =?us-ascii?Q?vX9ZosAxoYmmIB7IJbng5kLgievcWzEscvzO5QM7888j4QBzpX6uxXYACl9m?= =?us-ascii?Q?gjj2MJ/VxnxSSrdZdJh3VBL/HmdDRuc7v+R/hjKeat5aESDthXqR1TbCGwNm?= =?us-ascii?Q?piTre/dxKdIVUhraCZ7b/qdohjBa/Z/nAYxXT1AGUy7Gubz95wnugIBL/hx7?= =?us-ascii?Q?pKMwMqYuwqIw2iMQ/CREo/il/N+RfF06Lro98fNWPrGLJZiYhYoGlh6lXT5L?= =?us-ascii?Q?iLm9dX/ma9CKYLYaifYqA12mK/eqr+s=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: b57c28f5-c283-4a05-b720-08da228a5509 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Apr 2022 04:57:55.7002 (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: ZXgRB8bJMavLtaGJ86Z6lFrCDNXPzbzQNBrs+3euYt9K7oBz6G+NgEUGCliGUQcAs+neTMg6RNoUBh2dwYqFUw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR04MB6504 Content-Type: text/plain; charset="utf-8" For supporting a "redundant" packet scheduler in the future, this patch adds a flag named call_me_again to indicate that get_subflow() function needs to be called again. Signed-off-by: Geliang Tang --- net/mptcp/bpf.c | 3 +++ net/mptcp/protocol.h | 1 + net/mptcp/sched.c | 1 + tools/testing/selftests/bpf/bpf_mptcp_helpers.h | 1 + 4 files changed, 6 insertions(+) diff --git a/net/mptcp/bpf.c b/net/mptcp/bpf.c index bd3c50b07ab2..e203653860fa 100644 --- a/net/mptcp/bpf.c +++ b/net/mptcp/bpf.c @@ -60,6 +60,9 @@ static int bpf_mptcp_sched_btf_struct_access(struct bpf_v= erifier_log *log, case offsetof(struct mptcp_sock, last_snd): end =3D offsetofend(struct mptcp_sock, last_snd); break; + case offsetofend(struct mptcp_sock, sched): + end =3D offsetofend(struct mptcp_sock, sched) + sizeof(u8); + break; default: bpf_log(log, "no write support to mptcp_sock at off %d\n", off); return -EACCES; diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h index d831effe2dfe..58b980660d20 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -299,6 +299,7 @@ struct mptcp_sock { struct sock *first; struct mptcp_pm_data pm; struct mptcp_sched_ops *sched; + u8 call_me_again:1; struct { u32 space; /* bytes copied in last measurement window */ u32 copied; /* bytes copied in this measurement window */ diff --git a/net/mptcp/sched.c b/net/mptcp/sched.c index 8025dc51fbe9..05ab45505f88 100644 --- a/net/mptcp/sched.c +++ b/net/mptcp/sched.c @@ -83,6 +83,7 @@ int mptcp_init_sched(struct mptcp_sock *msk, msk->sched =3D sched_init; if (msk->sched->init) msk->sched->init(msk); + msk->call_me_again =3D 0; =20 pr_debug("sched=3D%s", msk->sched->name); =20 diff --git a/tools/testing/selftests/bpf/bpf_mptcp_helpers.h b/tools/testin= g/selftests/bpf/bpf_mptcp_helpers.h index 90accd94e947..f02d75f91e37 100644 --- a/tools/testing/selftests/bpf/bpf_mptcp_helpers.h +++ b/tools/testing/selftests/bpf/bpf_mptcp_helpers.h @@ -25,6 +25,7 @@ struct mptcp_sock { __u32 token; struct sock *first; struct mptcp_sched_ops *sched; + __u8 call_me_again:1; char ca_name[TCP_CA_NAME_MAX]; } __attribute__((preserve_access_index)); =20 --=20 2.34.1 From nobody Fri May 3 08:15:59 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:ac4:a898:0:b0:4b1:af33:c52d with SMTP id z24csp1938958pid; Tue, 19 Apr 2022 21:58:09 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzadm2xX/8SJZSyBQ8kZaYh5rwA+j/raAwxVpjrdJmn+1fg6kcQaad5WJPkXNQtSOar7ifv X-Received: by 2002:a17:902:c1c5:b0:158:f971:630b with SMTP id c5-20020a170902c1c500b00158f971630bmr13872181plc.37.1650430689683; Tue, 19 Apr 2022 21:58:09 -0700 (PDT) Return-Path: Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [139.178.88.99]) by mx.google.com with ESMTPS id m29-20020a63581d000000b003aa663f5451si1052452pgb.744.2022.04.19.21.58.09 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Apr 2022 21:58:09 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4794-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.88.99 as permitted sender) client-ip=139.178.88.99; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.com header.s=mimecast20200619 header.b=TPKVqcmS; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4794-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.88.99 as permitted sender) smtp.mailfrom="mptcp+bounces-4794-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 sv.mirrors.kernel.org (Postfix) with ESMTPS id 11F7D280A81 for ; Wed, 20 Apr 2022 04:58:09 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 23635110B; Wed, 20 Apr 2022 04:58:08 +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 75F487A for ; Wed, 20 Apr 2022 04:58:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1650430684; 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=Gf0/uTaZ1616mhS+pueyarw3L5pLQaiyErfa94XSnIw=; b=TPKVqcmSMM2bFUC+7vJRf9ZwKG8+fEWYVBhLdnihZBjwQqsck2m2fycWqGuub1OhN7Uodm 7vrq7GCKaSyx26sVYUarSPr2DXqQmOA94XKHHPaCdFlsmONbi4qFfBL8W0MxSovi/J/zXr hFy2K31U60uLMazE3mMhv5OThZRLDos= Received: from EUR03-AM5-obe.outbound.protection.outlook.com (mail-am5eur03lp2059.outbound.protection.outlook.com [104.47.8.59]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-41-5lcDIN3_P0Ch68q_B9Vh9Q-1; Wed, 20 Apr 2022 06:58:03 +0200 X-MC-Unique: 5lcDIN3_P0Ch68q_B9Vh9Q-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cXbrAAlfgIp7orFYdMdPFgxxWmiwcfSqK4R9tXM22Ro0TxMSTqBR/zEd1xuTcTua8YB3/ipW9cFNeXPX+/nqMq7uNK9dBc0Momh1RfnHcUYFyTIwwe73GVcFeUqtMG6N9L8IdMXIavaOANmUzsTXGOKFPOwXq5WDqa4hurho2DrZAm8c0uTIxs+VjYDMJUKntUPVMP8vd4AHGbSrdHE/Xx8Vk2HchId9zjThWFkByz+uNZLUa5pASnSSz65RxivK2RgEOiwsbE2ZBHetAAZM+3RukYqNJ6hjQtOfd8qvOUWOnT5+lCATgqV/6Ek8SlQnOte16rXlWpiunId16Oms5A== 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=BSDNd3Msfs7Xm92Ue1PMSBuLrILOFWwnrMShpe95ATM=; b=SaJ0ZUAh7KcDHkiQEEIf1ZxMIFYBA3hgDLOXH9S5T1iw+wkmnMh7+VxBkj65JhQY8lmNlJpAwg/bpxXzfK3R8hxAEaKXWN5Hw429n285t9fW3LWtGuHxcYbBVaMZ8rOf2kKEVmwRpS3pbrTPrKvW2x2+41/UXIEcZysZLkUuELU2S6oH8bxtpe3LDkPDPywcLse98SY52QQsVMPTJJckz4pf25FpDdyeFAdMiQS+Ol/hT7zo4KEbLZSJ9LjhKKl0Cq9qBLATCR5hNNlFgpTjeF1UMEQphjzLiL91Xdwtu+VQpMgxkWJ1+9vNT4fRAEHnvi1cot7D3sAXCm+Xe2wRxQ== 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 AM6PR04MB6504.eurprd04.prod.outlook.com (2603:10a6:20b:f9::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5164.20; Wed, 20 Apr 2022 04:58:03 +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.5186.013; Wed, 20 Apr 2022 04:58:03 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v12 09/10] selftests: bpf: add bpf_first scheduler Date: Wed, 20 Apr 2022 12:57:08 +0800 Message-ID: <017efa90a2ddb36d4c9a5b88fb07e6c7bf8b6b7b.1650430389.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HK0PR01CA0063.apcprd01.prod.exchangelabs.com (2603:1096:203:a6::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: 8dbbb48a-7689-4714-a61c-08da228a597f X-MS-TrafficTypeDiagnostic: AM6PR04MB6504: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: zKwe4HSnqS2feAJ1EXV7D/mJirH4P5JptAbnSJi8ArGrtGd94X7r8AzT6OsLrv4B98Aqh9v9sUT20Uf4qae5k/ZqDt9uPVs635PMXWLOk0/fHRcP525WJaS9tA161WDMAcy9S4hvgjWCxXrAaBVAF2bePRH0CoIizcf4UcMhiV8eCabG6/UOgsyNJn+QdhjMYVmMUFy9+tMK/EesfhmwBsgOhc4GGF/AAcr8s11Gtaqp6mYKBalYLOEINed99FuHPGSiO2hPUDmyv3TTgCI3qEstIW3BQ4uq3vxqwXuHyObFf7CY/cFy8Nj8Jma6PH0pu+/PV3quHO5DIxgyNX/EHD1kuoqmaDyqNLBpE/s1Wu2igfFBHiUKCmP0gb+DdPbl4cLUuY0RaAcxB44XhnjLiuRGfa+Vtb8kVDssQMLA0F/bWtBLy1EeHacsfvIDisrQHQedFfj8ol6HvgB4QXNkul+8n3R9cFyKApZtj2TtGP90ayaEZvD6u7KQFIpQwW9t8mucx9q1uC9XxojjZ7BeVbVyp62cPD/u1UEhZ9sd849NbNxsEneVvplpU1lZm/Y80Dq+2NF4aQN7RjlbPuz2hdctl2QIMlUCLyDyhT/mB/uQObwfmqvXxgKiJZJwyGU5P2fDZqUJAeVYkD9/di++vJc28dCl3O/zRQdsKzx/Ninh5xEB8dUaBZ78ZRLAHiRYazD8aw11dA/Ar4cYFGqSWQ== 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)(6506007)(44832011)(2616005)(6512007)(26005)(186003)(38100700002)(6916009)(107886003)(508600001)(66556008)(66946007)(66476007)(316002)(2906002)(8936002)(86362001)(8676002)(4326008)(5660300002)(6486002)(36756003)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?xMVIfcitG6Vf09Pii0oNuI83sS82+B6+74G8yTkt0XAt6wc/vb7kRCJeUWlU?= =?us-ascii?Q?6dSFVTk/HcQSGXYbfPSivUmnntyidTS3t4i7hn7+ohP8kuzOiatYbtNr2X80?= =?us-ascii?Q?KHVgDUHelY57dQzK7g1O+hCJ3YbKusxxHOqmVV10SRvMoDU0EExSmm8or2M6?= =?us-ascii?Q?j9tz+WquFbb21TYtojKvYlRx+qOAghgJyooCEhUcomrZIySfD8GCZGOYgMnR?= =?us-ascii?Q?rwXk7o+2FhxJA2MAhiXBotP6h0oSvOEpPnLlF508rjhp792fgcgY6eNcuiiy?= =?us-ascii?Q?pk/nzSDIy8W0Imcsoz+UTzd4X9luggK0y2OJOqgq1wp6VVuM1cuYeS9mYMoz?= =?us-ascii?Q?4Ux1WDDWwxnHvRDnWaU+Vp5OkoOEN8iNlytN823tQqXnwuQZW300QCUi3V70?= =?us-ascii?Q?BDZFEgZkvjA3R14DDdDtQVlS3eUhiR0HCRgsUo0H7KQ9L+0xtnlY2TWWB7aV?= =?us-ascii?Q?fu5Vfki64Ms8jCHyAopgHf1itCIC7IYQGEMXcUdHvZm5kXHoSGMKdK7Q6yFB?= =?us-ascii?Q?QxYYV0dLb1AZUMckHqMqGaoy1BbRPAnGMauZmGj5t8A1FZd0iJiHdLB7z2zM?= =?us-ascii?Q?jLr967Po9yBZp0a8/YoSgV2hI4V6ZJpoR30igR30vF5SRk9DtXwfTTT3S5Om?= =?us-ascii?Q?MgK/216tDICxk58hSX5zE3iDo6OAAGCFLaXe7JL+Cqcrf4+JdpBHaWD86g0S?= =?us-ascii?Q?SpKybrScjrtpSSySX08GO2EiPyRbxm0E4K2EKjJs8uJ14k5Qdi79+hk75hbL?= =?us-ascii?Q?NYijBtLti3duJfZvNNtb1H1V9YLRlLOSXWdgLpiAyBID9OI4pUTJaC5RgHy+?= =?us-ascii?Q?Zw/GE3EIFYM/0rPMDySx2YWb8weMpnKpDlO6UsoYBvbZO/5q8UHfTSkTB1hP?= =?us-ascii?Q?xc3oYsTqq+DFyrbxcrIsBKdAm5kDf7VSSCVroRtnvEF/c7Dxa1ryHrh79zVJ?= =?us-ascii?Q?R8d27gsM63Lhf173uQAdBOJDiKJTeNN52PBGkkSi8t5qU22VSx/6A5MFzqyq?= =?us-ascii?Q?Q6IMKFQ4lcjPbZD7bxq4sU9TO1UqvrTB+oKtj7P8L7QuYXAWKjHWLzdPTzOl?= =?us-ascii?Q?kFoWwUsoHhGXhALGCgLpnbPmr5EkBNmlvLU5pTA73YwuuHq2RuF9tLtYToPz?= =?us-ascii?Q?YOM+gvb60+keSy1vT6vfbwcctkbqagYvCR+mokoUc7raOFju/WKT/7qv6vwi?= =?us-ascii?Q?kl8xYvfKZG6wSeh/j2dARj7qE8TuCUvMp5PemEBNqHIsrvk2N1l1DbhKB1tT?= =?us-ascii?Q?48w1hSp7ix7ehkM0OQrtD+/+jjTHemHoo7Ovr61PvI9amjKQwKGAxq7QF3an?= =?us-ascii?Q?i2swDK7KqYkPb6TE0XP2jzVLJnTAJQ+YMRNCS/2RoSFv1l3WUfUXKuOJ6unV?= =?us-ascii?Q?bXBSg1s4vPIcsOErpEilZ4P8IXo40Z/pDE2HgUQrvLJkQO1fStjYgtl/CkEB?= =?us-ascii?Q?lecLPw+NauBl3aWVEqWy1VsmHK6Et/Xgi+56Oyw5KzymCKuccaApoNDYCkX2?= =?us-ascii?Q?Z7+wkCkDG8S9NDO/HUcEwQ9CwGCexifNnz6CPMcO57/XYO8X6Jl6yCbpiFuJ?= =?us-ascii?Q?4HlHB3k6sxkpgWy9lltugoieXQoLwUEAihzYMkZihG0eySsbGK6rw/3hvVMJ?= =?us-ascii?Q?6fOSg8cNsdaSLueJlYY9R6BVRODEeDLmCfjmQh4WUY6B40Aotgs5kPFXWMZ8?= =?us-ascii?Q?cIw61M24F+yCJMgNzCTi+zzfUJMShiV59mEsKPEC3A77vg0pEU8pidX59deC?= =?us-ascii?Q?//QrefzxjnhkK7fayBBL0J+xfoibal0=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8dbbb48a-7689-4714-a61c-08da228a597f X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Apr 2022 04:58:02.9965 (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: kXMbOcIt3+VH1zw5KLxiEfUeYCTjbM6GVhphJWaNpBsL0vRXbqoS2f/Eo46DwxEVOFOf0oonc3tixpAt6xSCdg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR04MB6504 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 --- .../selftests/bpf/progs/mptcp_bpf_first.c | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 tools/testing/selftests/bpf/progs/mptcp_bpf_first.c 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..425b89c654b2 --- /dev/null +++ b/tools/testing/selftests/bpf/progs/mptcp_bpf_first.c @@ -0,0 +1,34 @@ +// 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) +{ + struct sock *ssk =3D msk->first; + + msk->last_snd =3D ssk; + msk->call_me_again =3D 0; + return ssk; +} + +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 Fri May 3 08:15:59 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:ac4:a898:0:b0:4b1:af33:c52d with SMTP id z24csp1939001pid; Tue, 19 Apr 2022 21:58:17 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzD/kvLVoixST0BscGov9Syho6H4OaJyPum45qeQELHfTIcK629Higg2tC1xyBWkXjRotyI X-Received: by 2002:a17:90a:d584:b0:1bc:e520:91f2 with SMTP id v4-20020a17090ad58400b001bce52091f2mr2370919pju.192.1650430697398; Tue, 19 Apr 2022 21:58:17 -0700 (PDT) Return-Path: Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [2604:1380:45e3:2400::1]) by mx.google.com with ESMTPS id v64-20020a622f43000000b004fe3a6ea856si1009093pfv.176.2022.04.19.21.58.17 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Apr 2022 21:58:17 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4795-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:45e3:2400::1 as permitted sender) client-ip=2604:1380:45e3:2400::1; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.com header.s=mimecast20200619 header.b=bz0BngBx; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4795-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="mptcp+bounces-4795-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 sv.mirrors.kernel.org (Postfix) with ESMTPS id C35D1280A8A for ; Wed, 20 Apr 2022 04:58:16 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id DD8A0110B; Wed, 20 Apr 2022 04:58:15 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.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 5B3607A for ; Wed, 20 Apr 2022 04:58:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1650430692; 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=bz0BngBxN0IASFR/5wNnS5HPRgOJ5mr4Pc/a1ABH0zmSXQVGLHCIm5rK3vUtzJC8QOisnJ 4aaV8g0qgoo6K+QbSLcwBaSbnmgx+HfSaKmGCidjKDf3J9EjWioqjZuIttHCiPnaV8b5YV dvz5xev85l4c4TyR3+y/D+ih7rrfrzM= Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-db5eur01lp2050.outbound.protection.outlook.com [104.47.2.50]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-8-qC9yNgesMxugBZUpF_OsrA-1; Wed, 20 Apr 2022 06:58:11 +0200 X-MC-Unique: qC9yNgesMxugBZUpF_OsrA-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=HcyXGBRNbPATgRBWhNE6IRSfscJ/PYgzTRfn3DwGiupniizzlupqYqNjDBy7YFukKmrt2yC0AqBI8vT0ph5KVce2VN0fHoUxeHS6/S8ckBAN+fYqvQ/hxlvTbq0xarNMpZ9i2jcb37M+G5Ut8nwqSZVM50djmF/yA4bFAItrk3/+KFPuwmVs0/cTh1e3E2P10D2+ZKAI+W72W0Rn/rjNqQeE1kWHnxBPizFDJ7dKLuYghlXuwlvHiCe0e7dJ7KYBo95RG2VeMLi13ofTsHreClIz/XSReOH0A/65a+jC5Cr9LsQDOxJ5X6S3uIt39PZBTFK2i1d9D2pV0PLHR13tew== 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=WXNPnyWEhq6T+E8Hv6B73GMPjXofk4bg7XFKM8vb8LM+06cq9QIoqnsKpIZ70RnimCG7dpW8CqJFHrpSREFY9zWgpqiTRuwMeMtiFJm8PZ6K10ZxukE2eggGV7QFkn7tbRGWs3UFOWlXIYTLnko+wr8B5QUGnJqF53HiajBUyBAYi5xysy2r18oPMOnZVqoCJFrRKPXnD5G/MC2r+u6jXMdi/uf0/PecybPEGARjgrdrZZ3KUc39wsKg4pEg0yWTGXvv2wtlZMNYOlZgode5kXY4ZegWoUW530id3S+If9sNzEXXC4igFqF0ukiJm77dhv0IqpXX/iwk6Lt9z1PtWg== 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 AM6PR04MB6504.eurprd04.prod.outlook.com (2603:10a6:20b:f9::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5164.20; Wed, 20 Apr 2022 04:58:10 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::9974:fd5e:e3c0:14dc]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::9974:fd5e:e3c0:14dc%3]) with mapi id 15.20.5186.013; Wed, 20 Apr 2022 04:58:10 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v12 10/10] selftests: bpf: add bpf_first test Date: Wed, 20 Apr 2022 12:57:09 +0800 Message-ID: <7072b5ca4b8e6d710506a789c4e962c9e33cc54d.1650430389.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HK2PR03CA0049.apcprd03.prod.outlook.com (2603:1096:202:17::19) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: de13e5a4-f64a-4d12-fb85-08da228a5db9 X-MS-TrafficTypeDiagnostic: AM6PR04MB6504: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: 1XfwratK9Up6FtM8ej4jFfcWk9rwWHKQP63ypZiadye2aK8v2vD3B3djriGb4ud0PgVDo/g61G0UmO3zDWkBow1k5opo0UhCfx/j6znhmFPMY8YNiq/yQBt9AIZn4FlRW6aSz4f7rzSr32lVpDuRJfgqKw9qhXSmMIpjOo/ejG3hX94De6707hMZH8m7XgMOJQmOpkevQ6jAhVNJE3miT89Yr8c8xYkE6W7Y9ORmQQBNQKI8D16M3DWqLd4iBOVnTGyK8iUK1vD/PdvZ8xKy5rDivViKq9UeCsDzBkr6zGCzv8n83c68LI2wibSPFTktzgjVGWwu7W47CMVxMhNAftqCeS81KOIdM4IXY50z7xvTXNHyNuiPtAqcHbxpsUaMJMrCzauYJZKsvX0q+lorPdPpdN6gAp3KoSo6FMBmkPIruZqj4xrn46CSbLoOjE0QAb/mjHqk7EU3zOWZj4hhPg8u6gUk28Di2J8/7GyNqiOiFe2KqcEbCJ9+Q/EHEQS/H7TQ8kXPSBWik6v8I83i5kVvIfoLQBz25Sq27pLRSoouIF0+sHdScCEukjs+O9KDOsPcoR7ohh26Dl2XUnSntXeV1G/Gotq4D/3qdmwYCkTAZyVYSKObPeaHk0NKiCIVfC1koYPkViK9vRPI1LhMx9VHyfzvYSWy0PGxjOyV52uvqf6s/RiPD0Vdlx5ZQd60 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)(6506007)(44832011)(2616005)(6512007)(26005)(186003)(38100700002)(83380400001)(6916009)(107886003)(508600001)(66556008)(66946007)(66476007)(316002)(2906002)(8936002)(86362001)(8676002)(4326008)(5660300002)(6486002)(36756003)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Hk/9NHHbwLj28FjxujZ55LGPSAu/D6GDACIX8AHukuYb8eDsvRB/T78zrrzH?= =?us-ascii?Q?D6vxV9v1KEg5qW5hImIJQgSxf8sadxrc7ZVIDsqjvx8k00VgvtLgAtPijZE0?= =?us-ascii?Q?lo3E6h0+CEsWtH6X1cKrpSjMCWi4J15u/fARAYIDWZtEX9Lc+piaCs6oCeyh?= =?us-ascii?Q?2r1mQlV9VtVBD8Q1N/t0zD1fNkotbbNu2T4MildrUi0Mna5yxenkRAckZW0F?= =?us-ascii?Q?O+Op5krDdOsZDJcz1yXjlLVdvHL4faZzhm0TXvOv4tfRwqePqnCUnsJT2jrL?= =?us-ascii?Q?56g3jlI7WxIYvTSGSfbHa0y/guP2kQ0xNb1p6Ute2IXGM5LTQijc8Xwwqn5E?= =?us-ascii?Q?a/S1gM6asYJPJc0QFJ5nTKTEawfut9xqIL9tXwZxV98H4XncGpBsFHGQXOJL?= =?us-ascii?Q?9/2hK3y0s2Eogm5w1hMV6sX0cr7VArblfPPZJk/bo18ySGmTsRTzIUn1aQ3S?= =?us-ascii?Q?1Rk9Mz2cj0qTm6evGsNDWEyugaFMvRr2J4sexfdHJqa0XJUyZC2tTHY/WK+z?= =?us-ascii?Q?MauQgMTLEwgCXqOUWxcxz+C4KapPRXJTYX+QjmglK/SinhhJ6Wq/rsLXgULP?= =?us-ascii?Q?pS72sQdJDi6Sc5w3/N7IUn+N+93fU3l/xSKgjgktFe4h1yhrpMAQ5nD/W6UX?= =?us-ascii?Q?Pf6TctH/UYuOIPQbukvA7seCAkCrDO494pl+HJCTMBf0OXqrgpvLS0lZrWR2?= =?us-ascii?Q?OLo+zuXfgsm5rNviV7HBzE0/suVkdw7u7Bw5uW39qOKe0LcAgFs7CpTbPSW8?= =?us-ascii?Q?LGlzyZtr8yxxECYc6s40jtAZgCJv3+DIOTc4fgMqIxZ5m6y73PYfTrbWwvIk?= =?us-ascii?Q?zUldQhdZ9Aqwt7Y6LVoN92C3CmtZW6rw5o2cqs1pB6krQptqTeh9hL9VPdeh?= =?us-ascii?Q?e75SgdhDOfKTIdjHX4AszRAtV+LgobYtSd5Ise7QxeJoe+xPx/l/S2h73I50?= =?us-ascii?Q?WV1gzhjArKSq59zYUPf2bctknR2SlDE9J8MjXG6yV0r5gYUYGAdxeq6o9vFC?= =?us-ascii?Q?zH4zFvJCQyEglX2qyH6ZyLAWJsssIsWuXQbGo5XL0JXpBD9v0lBLiNzyMk0Y?= =?us-ascii?Q?ngoi3sB3mBC/y7d/iXZy4St56eDrMboSObz7opS3SJhvMNDs5Q1sg4tcNPt0?= =?us-ascii?Q?guzqIuhC2rMDuiypcgsvjksBPjOuy/N92QeNdJTEBCRIQ6YiZZFemlrLcidd?= =?us-ascii?Q?qCMl6dbXcR7/R2OZN3MZZTxPTDCOKH08QdcT/Hbxs1EXGzTbFScdyF2/CMy4?= =?us-ascii?Q?OFrSzkMim8JMdd76JnXgRCuZJmC1/aMaK8qTCUyYyktkLv1U++ZHbJB6X12d?= =?us-ascii?Q?/7D4dIG13oh/1TIu86gZheKfaKcnmJWOFy/fjYcO1aNC3JQHN9tMRVfcG/21?= =?us-ascii?Q?QEpVI4jV49K1Nc+00R9MsqOISWS7htWIpmBCQqaDbt0bT5CeExxwLkPQFuoW?= =?us-ascii?Q?dyFMJSYC2VcLsimf5l/kR066wQoC0y+hZco+i5YfJnFWtErb04LsuuLHzsQC?= =?us-ascii?Q?MwOvn7/r6TVmAIM7cQzToHBewITGpg1Rs7oXPtZlRBxGilIytiDac8NejZ9I?= =?us-ascii?Q?CaEwY+Rfd6W70cKELrYy1qULRjMc1T8+SY3JY7SrCHksijhfJiJ0tnVj2Sc9?= =?us-ascii?Q?4ZqQWsqKw5vA8M3TYw3OPpSBfaBs1575+b0llmEifMYE0uxtdThB+NYr5dcD?= =?us-ascii?Q?EsTV9AsSyUAiGNEhYDo8Hrd8+t8fTOfNTVQMSbXj8Ay/w7zE+5AASESE4PlQ?= =?us-ascii?Q?A52zkI7DSGT7CSwMJNePS2p0fbrSQ3I=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: de13e5a4-f64a-4d12-fb85-08da228a5db9 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Apr 2022 04:58:10.2459 (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: Ppb5iCXptvTvZBFlU3YNIcavs3W50KLWKQ8soi/LBXQjzef+Jz/0uGSfLiWVzGplS8BqB6M5+rQ7Q1nOTe3u1w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR04MB6504 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