From nobody Wed May 1 01:00:11 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a05:6a06:1788:b0:4ac:5e5b:1ad1 with SMTP id y8csp297486piq; Fri, 8 Apr 2022 08:42:55 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxEEjiIhV8RP4ZT/04YzYP6F2miX7wozx3S0hHgX5mKKGsJBy9aadWnesnBFENpT7piAcxq X-Received: by 2002:a17:903:248:b0:155:e8c6:8770 with SMTP id j8-20020a170903024800b00155e8c68770mr19225909plh.129.1649432574945; Fri, 08 Apr 2022 08:42:54 -0700 (PDT) Return-Path: Received: from sjc.edge.kernel.org (sjc.edge.kernel.org. [2604:1380:1000:8100::1]) by mx.google.com with ESMTPS id pi19-20020a17090b1e5300b001c6deb4730asi5477847pjb.109.2022.04.08.08.42.54 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 08 Apr 2022 08:42:54 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4680-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1000:8100::1 as permitted sender) client-ip=2604:1380:1000:8100::1; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.com header.s=mimecast20200619 header.b=LX+PbxI1; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4680-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1000:8100::1 as permitted sender) smtp.mailfrom="mptcp+bounces-4680-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=suse.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sjc.edge.kernel.org (Postfix) with ESMTPS id 376123E0FB0 for ; Fri, 8 Apr 2022 15:42:54 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 2B49B2568; Fri, 8 Apr 2022 15:42: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 F273F2564 for ; Fri, 8 Apr 2022 15:42:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1649432569; 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=Gp6B6YSAl1fY8zJ2qbVz1zeF5plUKW3Flc0vrP2LCjY=; b=LX+PbxI1Wr2oqRiW62YrBrI0y+F4mj9mJNykPHfLoZ8iZQJlKPmTrSgdsOlqT3Fy+WF2ko lzWyFksuQOT7K8qt6nMFEeNKgjuSaF1SjRZEP1RugUVV4Sv9SMtETR6U7CQOscTNm+tE89 BJP0ioJgnuZ2zuXsXpCnCPvmX4runfk= Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-he1eur01lp2050.outbound.protection.outlook.com [104.47.0.50]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-12-XjG7lAMoP8KP32q5RtlZ_A-1; Fri, 08 Apr 2022 17:42:48 +0200 X-MC-Unique: XjG7lAMoP8KP32q5RtlZ_A-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GCdR5MhHOQt8SESjFmrR0uwmBIiRypMGdt+lpGOcYqVdQ3IsdVoMqPVgxWQpNQ0j9kAsuChFSk4KZRV5BU1iMns5Qv1ZHF9pCcmRQ2e8P1KBs3yJWDF3sVPTwCeaqn3QDXJCBx/FftqruUdnjwhs7Il28PICxIYN1RfVnk6tYo16yLEAq7OLVHIOEk+6JPTA5o4vLu90NXy0sUDPzUyDai6by9xHOkz3SbzTtqo8xxbu2bJvd/xvCAGx6bpax/kYKOLGSsYVIWpyOdMPagXB0O5bNvVJVJZhCb2bOFbuP1O/6Zx2XDXwhOUIfOg/gna7NCOLDi8TGCiB6+NG0smyFA== 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=UdbazcLTvK4bieYrW2A3PG8NmlvEz85lq+QoEiEX3sg=; b=LwUZIBSFYwruWQ59HOsrdzv1i+hHLdB9D+LMiNBUlg9nSxpA/QxfYm31OFWJIbbwPHd3FZWhjWQXWov+eSovzIBcEMbEkQvrYDsh9T0X+qu9v2Ls4TAI60mDs5lvuKW1ETdm2UeuH2e+JF2q8bTRsX9IKM7J7JUkMAsGjLKS16fX3IT3eJhihJbNpFk5PFi+mzLmnPQiYjVtHB7Iwr+6uPHUIL/hppUzMKFYYEfpTaUN6HxMohSuEOtIMJZXsJS2D8Lo0RjeOy6nnu12aISh0w9G8Ew6QcO/hKW/ZES+5jKQgvlMxOILwW7vY4buHdDzJuc00C3tATJWl+MAnykLnA== 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 AM6PR04MB3957.eurprd04.prod.outlook.com (2603:10a6:209:40::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5123.19; Fri, 8 Apr 2022 15:42:36 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::9974:fd5e:e3c0:14dc]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::9974:fd5e:e3c0:14dc%3]) with mapi id 15.20.5123.031; Fri, 8 Apr 2022 15:42:36 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v4 1/4] mptcp: add last_snd write access Date: Fri, 8 Apr 2022 23:42:32 +0800 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TY2PR01CA0014.jpnprd01.prod.outlook.com (2603:1096:404:a::26) 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: 4bbb4025-03f9-4c90-d667-08da19766785 X-MS-TrafficTypeDiagnostic: AM6PR04MB3957: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: OifpXdSuWR8hVmriXIv3iqNmHor9FaxUYbxN8i3x2V+razQZNjBYOpNHwIBS2VVA/6NhkKrc188IZrRuH6L5CjK0HnBT/05szYK6uGZoVnlx58zp/aQ0yDpkUTXgQci49SVnOiq6XrL0TcxnaA0NaZew6yG79eit0VnTGBzMrgYIKCJm4u1yXltyqnnM+q+iflf9dhghEX1nsJow0i/JRtStLkzOjWT+5XyRzWO9rU/Mhe3O3IXsI3l1OumCmC8Xie7kkTnDyVzF1Z0qxLhaPuuTHUVHAciQwE3SrAf1m92vuw8PbEAZ0+i5hQxsYGj4+Gt1BiANO5vg/WiTCoCW1okLJgTmasIGFDku3/wYhyq2qg2oISOpXFBv4ev23AcVmaIaai7Y/I6TwE/qOkVrXnj5URZCV42zK9Tnf0vSE+xJjBxUsxG1s5zw4gqyt6NKi8vtqtdrZSKstEBxzv/JOBM6ds93yCfVZ7zBEcfhd4CR3t4ahdX2QOQ6vX9ApK6+9jL4BRWM8sZunTptInpzgBhQaLhWxtKGBvMsCsYZioFHOh9oZV1OOKlhRbm6H9UoGIqNz0g7FiaRwO47FAiLvNgQdsTQ96fIzMNY4WHffg9gE6ze9HdQyeqCUvYcNwXexIfZoE8txgU7J77yjVF0xp0+7TLvKGPYM6kQFWAhavlh6jM6npVGbipY4GcXvRx9Nb9wbe1/ATSiyOjRxsPq8g== 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)(38100700002)(6916009)(36756003)(26005)(6512007)(66946007)(316002)(8676002)(4326008)(83380400001)(186003)(6666004)(2616005)(5660300002)(6506007)(44832011)(508600001)(66476007)(2906002)(86362001)(107886003)(66556008)(8936002)(6486002)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Pb4mL7HkYmOrGcov2SKKlYWyB6iSBs7lUmiV6lgzUUMtJso2QmDTdkMk+Y64?= =?us-ascii?Q?QceR1PTgDKWZP459MqYjzt3Wc8fE53pGHD+3iiATJN4znQGq5J4uQ3WxzPy9?= =?us-ascii?Q?yBv3BbBfaOolGqr99FWWvXzRJ0QWn4rep5YSNZgI8V9ih7r0NxmXrNPYuS4d?= =?us-ascii?Q?75N0eePxeZGJe3EHK3CfFotOWMUQ6YXQwnmbPznU4gtEkWR2wQ84zhq4XyN2?= =?us-ascii?Q?2uHTZYt7NKe3Z3XRXS7quhSbO+O7+fefqYLykVZE1KX9KJvaL5ecBhVH8Heo?= =?us-ascii?Q?sLtLqXFIUbhoi+T/HK8NYvpeGzdtJ4c0b8c0wBBZne3cnRC8UnmKDap2/B9m?= =?us-ascii?Q?qhJROts6N3P2JeTE5WIydhRFALeIaTi9+ZAQNI9lr+v7XAYEM17x9sPuHPDi?= =?us-ascii?Q?hELTQlP25uGZiFGZwq+cJWrApQYf6MHLInNXKKhEQ97EqCVRePIF3DEukhZx?= =?us-ascii?Q?QVixghDkEWp0Rvid8M5Ahhdpsj6jQxcHRIiCOiXGa6hxdU3qyzBokX/DsbFW?= =?us-ascii?Q?x3Ya3gI6b54ZERST7BAb83MXwsI8UEzpuuEmjjscdOubezqhmcZjABCv6pub?= =?us-ascii?Q?DHoKCXsyf8NQDEEuo/IJa5DI9de0rFL7RfYyjRiqc7gxWR9dG2mBFdNCpFuP?= =?us-ascii?Q?EQUFlskSG7ShHTOYbAqaWrxbEGv6otvfBl1hVEZoeBtbv/AG/gxjqcuXJp3q?= =?us-ascii?Q?vmyODHBepD0uWHG6FIifDmUmbzD1/fGqZLzUTvWaPYTaVEsE7vNpEYvXz1WD?= =?us-ascii?Q?cnGu/3uzPQ+prF9SOLCk1jPqKJjO4Z73WrAOGrTvkkShyyUQNeRYtFYqw72c?= =?us-ascii?Q?B4iGv+xQ4S8xalSFsGhBCV0lJx1KN87Y77tPsalTlehPih/QqgrRifwneRtk?= =?us-ascii?Q?r+sSOeBnYrSRiQ3SmB9Bxtxljt0ncN/6VLciZc4NQf6M8uvKu7iunAz6rPyg?= =?us-ascii?Q?OnkJIJmV+j6au3bn0+AN1O2L07n31ys5vcZ2mk2TFsRjfzo3BLUR0UM8/y48?= =?us-ascii?Q?JxJrAHMenc+1xeeZ5bbGYZO/A/fXFHQ/+HwlvKe4oIlAAw1EZ63mEfnla7uk?= =?us-ascii?Q?/2i7GLAH2fzPW0bm/Q9zk8SBWp7IL1iRPO+lGosOXOT3LnBfv1VYSir1nwNa?= =?us-ascii?Q?Twdz8O8d246HgnhbfveV1X1fMv+wapms/PJ1x9zrCeuPwGRmqLUpn+GvaUFg?= =?us-ascii?Q?+jcUoNz+D9eR36SicPT7ZD0RHecVx8h9UUYWa7RI1Q1IfGS/VDxtTwmmoKb7?= =?us-ascii?Q?E/kZ5Oo5FM4LnMonC6zNqH+VjlRFc3WeeIW+3iZHZTg3ciY9r1bk/24w7n+7?= =?us-ascii?Q?81mIeYcwl0ajFDxjtliFh8i2Wr5eFTPs7xvLKfzpjNCzLIahxViAzYZ9Zv8e?= =?us-ascii?Q?pk7oxVKC4ynckiL0rNWf03RzJZm+PBUrJLcEu2c66UwdadeA2+V3rgRt5zK1?= =?us-ascii?Q?EKBPylcHFTfhb4snFOEoF174XjA31+993apTEEGwrPfTuVk/ciaanRk38sxf?= =?us-ascii?Q?/aP3fVRni3svjT2En+XRoayVXyga4tgco/1zk8IBXyna07mjZdiHHGNkMWpA?= =?us-ascii?Q?6FQsRegi7fR93vdjBgPltJvjwlUbQs3U4WBsgp6eyeI5s7uRTw/1mbCC2+k6?= =?us-ascii?Q?qYjTfQW0NRqj7vvh2qWSjMJlyjuPzf5Isjzf6bi3W4eKi5T+Gt+JqZEqWkin?= =?us-ascii?Q?3+6tpwlejCzWXNrrknVshl/1+0La+aD7fRSVtqILAC/6jY5hF4dxxOFYw0Fb?= =?us-ascii?Q?KZMT6WSPTdTNFsMfDfVeLPdejOSp2vw=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4bbb4025-03f9-4c90-d667-08da19766785 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Apr 2022 15:42:36.1412 (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: zN4ZPp3cvLfzUjHMtZBW68KNjjRwmjkDYZ5y+E2FK9iRk6AJlSpEtmqytqT27OaLyU9VKsrNbt1Svnwff9yjJA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR04MB3957 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 --- 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 9a0e3e7766b0..4f82baee998c 100644 --- a/tools/testing/selftests/bpf/bpf_mptcp_helpers.h +++ b/tools/testing/selftests/bpf/bpf_mptcp_helpers.h @@ -9,6 +9,7 @@ struct mptcp_sock { struct inet_connection_sock sk; =20 + struct sock *last_snd; __u32 token; struct sock *first; char ca_name[TCP_CA_NAME_MAX]; --=20 2.34.1 From nobody Wed May 1 01:00:11 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a05:6a06:1788:b0:4ac:5e5b:1ad1 with SMTP id y8csp297546piq; Fri, 8 Apr 2022 08:43:00 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxb/3x7yAG2UphF5GnQTcCIjOlSq6lSCI4pqhofUyH9I5Op9NMObnu7rGHjOnT5yH/9FGyA X-Received: by 2002:a17:907:968e:b0:6db:aed5:43c8 with SMTP id hd14-20020a170907968e00b006dbaed543c8mr19056334ejc.636.1649432580598; Fri, 08 Apr 2022 08:43:00 -0700 (PDT) Return-Path: Received: from ewr.edge.kernel.org (ewr.edge.kernel.org. [147.75.197.195]) by mx.google.com with ESMTPS id hc31-20020a170907169f00b006e804fac623si1708630ejc.138.2022.04.08.08.43.00 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 08 Apr 2022 08:43:00 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4681-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.197.195 as permitted sender) client-ip=147.75.197.195; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.com header.s=mimecast20200619 header.b=LqO5bAuJ; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4681-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.197.195 as permitted sender) smtp.mailfrom="mptcp+bounces-4681-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=suse.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ewr.edge.kernel.org (Postfix) with ESMTPS id E08851C0B2A for ; Fri, 8 Apr 2022 15:42:58 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 81E7F2568; Fri, 8 Apr 2022 15:42:57 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.109.102]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CEE142564 for ; Fri, 8 Apr 2022 15:42:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1649432574; 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=jgXg3vVnhLMPBszWHvmtMEVAZ/zoCfKNiCVdsEiKF5M=; b=LqO5bAuJ0mJ1j3BIaN3pHb4gXbtVOuG1iw2Y6V1X/uoZNBsYjNIb/G1DuSvjIpy2ZQZxHC +iu+0fua6Mml+W7I0X8VmZnPpV4SIK83Ey4+Dgypub/fu9rnVe+St1gAKgT4XINw4TZRzQ Bwo7cguDx8LQaKVWjF4KMxn7D3QD/0M= Received: from EUR02-HE1-obe.outbound.protection.outlook.com (mail-he1eur02lp2059.outbound.protection.outlook.com [104.47.5.59]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-39-Gt15iZ19P2iPtSimsMtqVg-1; Fri, 08 Apr 2022 17:42:53 +0200 X-MC-Unique: Gt15iZ19P2iPtSimsMtqVg-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dy78SMIY+JppYU4kkrZHu+UY6L0SanGHxyKO6NBgZrkLXzV9KCoQP9BoBZcz9S0UNRcp0LEWQNkOsltbXcRl/c60UmiuEvyfoUzjR0bpejo18dEcCiH46V47oyLvTAGcLVEgq8vM53epb6jBlig+8x5qitTPWucgrUYdNWHLwuTBRuDOffNdyYcguS99WvPEmTmTyCe3X3oomnBLY/TpuGXw3swzgfl7roQIqZpM9wbO/zW7EALdfuVESnhX4jRsAsTFDHsLperI7Sk8B1yF2mNe2m1cSSyb8LSDxxGMGAaeCVVgrkshw70sP9j2Q5HgXwWtVKHxLTPO9u7UvFKzqQ== 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=MXzdaEnG0SKTDSALrktJl0PzBD4XzXODO8fD/vWWNxE=; b=CW5ddjuiEmMi2sl6gBBOUjeex7XEvSOBh95Qr8Qi+U/DKhzcWsBICACERr8zyhtSUdbMwmQBsshFesSxKih//weyrRMqeUWlf8sq6ezAP5JzFFwamEMZBu/4Ry1TZxU58pPWK4CnY6RPNBlxJVlsjbdxxDpUnQTWhCifacI0cgMFTkvXo6gFMmMh74sMSOQVU2RdE/jQ4qdU2qpE47Vwh5BHVz3Yhj6g8DdxUU+SqkDWtxdZgMZ/rnPeyYDW4yNbxaa9Epcs7SmNHY9Wtd61IDGVHj4JzbvnVmwv1ftUuah5UhZ8PuoordcN6dNyQEvgB8W/bXCcF1Q7jb/UwAFNew== 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 AM6PR04MB3957.eurprd04.prod.outlook.com (2603:10a6:209:40::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5123.19; Fri, 8 Apr 2022 15:42:44 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::9974:fd5e:e3c0:14dc]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::9974:fd5e:e3c0:14dc%3]) with mapi id 15.20.5123.031; Fri, 8 Apr 2022 15:42:44 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v4 2/4] mptcp: add bpf get_subflows helper Date: Fri, 8 Apr 2022 23:42:33 +0800 Message-ID: <016936c2bcc0fad9dbdb2d1372d027d99e78215a.1649432434.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TY2PR01CA0023.jpnprd01.prod.outlook.com (2603:1096:404:a::35) 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: 2cd6bc05-6e6d-49da-4286-08da19766bf2 X-MS-TrafficTypeDiagnostic: AM6PR04MB3957: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: H9cyFCsbi8ri64LP0r4boIRIOASBn0GCY5AFt16BNMGRA//0x76H6Zd3ldZ3p81JZ72bB1/liK0tSxySQawQdLnyV55GyEg4wiXNSUWu9yjpIjZ5YpkBYK0YQAsjTe1niMZqBSlaGGWxrEI+nA+rcSFG3XoIx5f2d68IJx5xvxZ7VpgWXYMJy5Wr5ytWD0DRr2/wJLXM9Tcpn6lrkwbT55W3VvCNs0wyYYFlPcwMU94Qb6TPIvZeHQ4UyTYe0mfNM9CeiCA6w/r0HONZbxm96kBWcJHHobwJ/m8//VLBebVl0yVyRWurhIEUsPlBBg802A7XOhH7RFc1Xa2Hnpi8KSUKC6O56GbvZCByClm7ZMn8JdscktWMZAh9QI8BxA90nIv7mfhMrOKsotBKZ3yyVRgPkcnKUo/eRQlJrRsCVLRK2QQjKzMJNmis6H1W4pjposyC6i6eUdtm6roKKW04ICHkbsPm+bLuflmE5OBD3FU1li7R7hV9uBN6ye2vPRin9CbGg24wUA5HJIIKPXEEv6M2bBNtmwXmyd6BYVPLLhQLg+unkhiRtmAxr8eBdfeBh4RFV9bYW8w4lzxzH+OIbQDLwG2rr7sGaDZBydcdioViIqcg3/dJxvKwcyOyeCBmnsgykWCMMZP78LJe1BqqsxH5U7OzB8ed1akrkxA2LH+ZMAbuDeNr7oOOpCHHChAQ 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)(38100700002)(6916009)(36756003)(26005)(6512007)(66946007)(316002)(8676002)(4326008)(83380400001)(186003)(6666004)(2616005)(5660300002)(6506007)(44832011)(508600001)(66476007)(2906002)(86362001)(107886003)(66556008)(8936002)(6486002)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Opai3cNbDKPZZ1CtYGlaRXNWsJgDY7kQfGVEim8uwM3ilwjdAXPLs28Ja7c7?= =?us-ascii?Q?AebrnnxiJkb7F9gRFty1mMAYQqcigYnvD0z9BR5iIDCTlpefTMWs4edyTJRc?= =?us-ascii?Q?Aj+Tvd5XN66gOK/Tka4TT6x/2MrbfNC1KNdlZO1I3iT5V1SUU6QyKs6IZUq2?= =?us-ascii?Q?NGlrCEHsAygf66L3v2nllGEPYAH504sXAnWUTGHAj4e1AxrmirYOhMEiNJWw?= =?us-ascii?Q?zjoqQqxfRBptWRshZccAZH4VMf/36suQZtr1+wNfHcarkbro3LzFi1RdVuda?= =?us-ascii?Q?+KMfz5DfTFqOn0OYuvsnrQIvNT0bEqralD48ti/OScKgudXxKTv+NVoW1skw?= =?us-ascii?Q?iyF5yD1OumHk75Ms3PNc6TBcCB7fe+S3XHUnf+1BRvqAkMOl2asw5n9cl3fq?= =?us-ascii?Q?k3H5vN2XZM02h0ehLfpshkpWV50ePohcIkAYHXRcopi+KI7RfZ3ddrknMWFl?= =?us-ascii?Q?v7zS7y4Ry06kMHyH6onORAgKRkUC8gdeQ9R2LWNBhLTH9yvbeypAf0MAyJGY?= =?us-ascii?Q?ot/m5q7TP8m718sDZJAaMJOv7reZ1+DynlZv6nfYXSI4gpTInidLDkyuJUlP?= =?us-ascii?Q?Cb/rhc4tOq9xL+a3Xde2YzO1zSBE/s7AeI4pjCs+2G9RXezuFVrCqXE/wgII?= =?us-ascii?Q?7Dd7JkxKL8uJTQBSNnz1XOD6Qw9HfEKSvVLALUm+8mgX+Im4IiKPrqli3+0f?= =?us-ascii?Q?35JKmN59xkpLMFy6g0JLdNlq+v4yG8QhyTybhPtUT/yG4Pm6C8G3wrj+raLI?= =?us-ascii?Q?/EI24+jCnvpdZFRftGcHi51sjnETLDonKqQ+1s9cCiiOOP9hNyWpwFG14hvB?= =?us-ascii?Q?ZpUL3SRiYy454+xsn9cUkhtEJW5bcJ/b53/FFLyw83I0r7M2K1K9pB89ms14?= =?us-ascii?Q?ME4G6UFB8DaCDwro9w66otXnOIhd3ZyRrM9Uhuqs0I/pKaiU9RNfQukUlFy9?= =?us-ascii?Q?qK4QneuN4b23X+Zgg7AK5EtxXs4q3SBKLs9V6HahwXfMdYMF8u9alcb5elf7?= =?us-ascii?Q?RvBlsWXCri0rdj8xnzrFVifIhpExfPTfED49U05zkltWOuIFiYF8DwMLRfEt?= =?us-ascii?Q?duXMitm8U6r+ZQd2VtE3U8HTrbyTkTmtnyGn1FBchTMl4r3q8YhOKY98VmUf?= =?us-ascii?Q?sC2hFJjGL/B68dEFx9welNOb8HlMStgZy1FFgmmhI3NhAeWK0oLFyxRbN6pg?= =?us-ascii?Q?TDP8PliAHZWWRluRH8nlLctSXH20RKnl4FIl+XU3kBWQjCfhWjMUBmRQ16f9?= =?us-ascii?Q?8AiW/pD1LPKCjBAk/6kQ1EhwUrkPbvl+DPre+v5EgLDHAn1T3GG1teyY6qwW?= =?us-ascii?Q?PeIwKTomzTuCC2z9ji1MCt7G0Ky54Zcn0js731+frcOApRDe/DzLFbbdqOvB?= =?us-ascii?Q?wXEE8X3Rgnla/DJTJxdm44tOUuTYFsG4SGF4mfb2JZ4gxVmh3gKfRbBmAB2J?= =?us-ascii?Q?y/7CQ6Dc5+JFK9Gj3ZvlYJtbsL2fLEBnsmU0Rl91RLTBTlHoFFejpU++bARQ?= =?us-ascii?Q?FT90brzkR4dUaxqFtqpP3YpnvkhakfzkOHwLCpPcIV96yJi0EANwVJF5AjAL?= =?us-ascii?Q?rERe3oQxP+CUBQS9IyIVhRfq0X2WrreVfMWBdo4N5hcA6/BMoblvZia8zMlZ?= =?us-ascii?Q?CHQVq9Ks4U5kGohcc3xiJCVhiZ/X6CIQd77I5KfrUYTSE+RsULXLH82T9SXk?= =?us-ascii?Q?B0cyoW6qAenTFJt4lRO74qXZSmazDryu4ZynQG+nKodtSIkzDtkUvSDO9d7u?= =?us-ascii?Q?YlgSpkrVzjbgGOMv9bQvrffK7gvgspE=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2cd6bc05-6e6d-49da-4286-08da19766bf2 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Apr 2022 15:42:43.9218 (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: LR8dXgyrmTPeLA7FMUo3cYcpo6chsn8GjEObIGc1AX+rvK+7mK9vi8XhwzRV6bQ87BONcl36ZQvK/bynvxXkzQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR04MB3957 Content-Type: text/plain; charset="utf-8" This patch implements a new helper bpf_mptcp_get_subflows() to get all the subflows of the given mptcp_sock, it returns the number of suflows. Add a new member subflows in struct mptcp_sock as a pointers array of all the subflows. Register this helper in bpf_mptcp_sched_kfunc_init() to make sure it can be accessed from the BPF context. Signed-off-by: Geliang Tang --- net/mptcp/bpf.c | 28 ++++++++++++++++++++++++++++ net/mptcp/protocol.h | 3 +++ 2 files changed, 31 insertions(+) diff --git a/net/mptcp/bpf.c b/net/mptcp/bpf.c index bd3c50b07ab2..7f8782dbfa6d 100644 --- a/net/mptcp/bpf.c +++ b/net/mptcp/bpf.c @@ -157,6 +157,22 @@ struct bpf_struct_ops bpf_mptcp_sched_ops =3D { .name =3D "mptcp_sched_ops", }; =20 +BTF_SET_START(bpf_mptcp_sched_kfunc_ids) +BTF_ID(func, bpf_mptcp_get_subflows) +BTF_SET_END(bpf_mptcp_sched_kfunc_ids) + +static const struct btf_kfunc_id_set bpf_mptcp_sched_kfunc_set =3D { + .owner =3D THIS_MODULE, + .check_set =3D &bpf_mptcp_sched_kfunc_ids, +}; + +static int __init bpf_mptcp_sched_kfunc_init(void) +{ + return register_btf_kfunc_id_set(BPF_PROG_TYPE_STRUCT_OPS, + &bpf_mptcp_sched_kfunc_set); +} +late_initcall(bpf_mptcp_sched_kfunc_init); + 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)) @@ -165,3 +181,15 @@ struct mptcp_sock *bpf_mptcp_sock_from_subflow(struct = sock *sk) return NULL; } EXPORT_SYMBOL(bpf_mptcp_sock_from_subflow); + +u8 bpf_mptcp_get_subflows(struct mptcp_sock *msk) +{ + struct mptcp_subflow_context *subflow; + u8 nr =3D 0; + + mptcp_for_each_subflow(msk, subflow) + msk->subflows[nr++] =3D subflow; + + return nr; +} +EXPORT_SYMBOL(bpf_mptcp_get_subflows); diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h index a58c5c84e72b..7c5bb8fb9e77 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -238,6 +238,8 @@ struct mptcp_data_frag { struct page *page; }; =20 +#define MPTCP_SUBFLOWS_MAX 8 + /* MPTCP connection sock */ struct mptcp_sock { /* inet_connection_sock must be the first member */ @@ -298,6 +300,7 @@ struct mptcp_sock { =20 u32 setsockopt_seq; char ca_name[TCP_CA_NAME_MAX]; + struct mptcp_subflow_context *subflows[MPTCP_SUBFLOWS_MAX]; }; =20 #define mptcp_data_lock(sk) spin_lock_bh(&(sk)->sk_lock.slock) --=20 2.34.1 From nobody Wed May 1 01:00:11 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a05:6a06:1788:b0:4ac:5e5b:1ad1 with SMTP id y8csp297614piq; Fri, 8 Apr 2022 08:43:07 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwy+y5zVd58BFGOG3gyJ/TM3lIJNmuS2eVq2KCp5gJHOGkRFZuqVnfSwHwimtTUiq/pXzzC X-Received: by 2002:a17:907:6d04:b0:6e8:4ddc:1c6b with SMTP id sa4-20020a1709076d0400b006e84ddc1c6bmr3717968ejc.309.1649432587386; Fri, 08 Apr 2022 08:43:07 -0700 (PDT) Return-Path: Received: from ewr.edge.kernel.org (ewr.edge.kernel.org. [147.75.197.195]) by mx.google.com with ESMTPS id i13-20020a50fd0d000000b00418c2b5bd90si1043142eds.114.2022.04.08.08.43.07 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 08 Apr 2022 08:43:07 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4682-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.197.195 as permitted sender) client-ip=147.75.197.195; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.com header.s=mimecast20200619 header.b=adu7oxWx; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4682-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.197.195 as permitted sender) smtp.mailfrom="mptcp+bounces-4682-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=suse.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ewr.edge.kernel.org (Postfix) with ESMTPS id DA2EB1C0C60 for ; Fri, 8 Apr 2022 15:43:05 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 786932568; Fri, 8 Apr 2022 15:43:04 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.109.102]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8F2E52564 for ; Fri, 8 Apr 2022 15:43:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1649432580; 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=eVwBHdrLVdVHLDS9ssimup77ZbpXQ8TCJ5+gqPHa3kU=; b=adu7oxWxD2wD9LOVZzcLhlseMq96LDf+KqC4utWZ3yhIKKsangguvcLCyXWg+rnZS0l7cv Z5Y2pKHS8hb/O4SO241iy38PyXzUGOcvzF6OhEoFyf4a9nZCYPW+yJixDyZn+fF/aZWS6+ KEi6fbJv0VQEPl9hPoYN+JB9Z2AxN1Q= Received: from EUR02-HE1-obe.outbound.protection.outlook.com (mail-he1eur02lp2055.outbound.protection.outlook.com [104.47.5.55]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-13-tamSOaW9MbKnJWvCih1gYQ-1; Fri, 08 Apr 2022 17:42:59 +0200 X-MC-Unique: tamSOaW9MbKnJWvCih1gYQ-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=I3+5utFHPFlf1cBw5L5U/U+eKjroP+CPRYUJU18NFd4OaIXWElL9hQ8OSOev9qCVztx2rRkYipoHUMBLfy1/5pLD1ETk3aFdUwZrHAjf3YsornZBRpa1tkUizcXcTDDf+w8OqfWFLOYHHDg5SUQD4p4I+rAbezLFSlYjzB1HB/zLMVDzXynxcLggSTB33ueHXu+eztwk+UJpVpu9g/e7/8BQGP0DrcU/eqBHK4Ko4Dd5U3iSZv7BviHWjzpxYCSHCqu39u8iPdVT1TkoQkaJvPNPS6OWTtCyttGvHR3B1e/UgYD5WcDZQN+psudFMJ5L1Q99jaoTQkeLCKkQuRcTJg== 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=nw89snvEEU7HUpdSkIBXjqV+CDipC5SNv5JBvOPcUKE=; b=MUWG8SzqMfe57nCzaXcTUCKI0jAEYH1kPErHB5pVThExpgsW5Oqm9cB7d8rIuW5uQ5i4NkjAPTzfWIOFfVcEhSmjJnlDr0JybReXUG4BNjSkwPyhQsVJcmg9whtxSHN+I0cJGGwsi7ko5xpdvvESVvWgeA1y/0yOfvwYRvOgdpd/i6lZTmfw1fbX4aT5dyRmhWwIqj8nLjBU/ZvDMwIrQUklGyaeXWf7pVA+tlTa6cdsjp+KxVCGooW00PfqhLhP95/HIo6LUeAB5pDSixYdtHPj/cPCdev3wMA/GQv4jZF9rgzPlXNjVarEjvnHbQhLrotYNcEmazdWiEsXw6mRFg== 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 AM6PR04MB3957.eurprd04.prod.outlook.com (2603:10a6:209:40::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5123.19; Fri, 8 Apr 2022 15:42:54 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::9974:fd5e:e3c0:14dc]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::9974:fd5e:e3c0:14dc%3]) with mapi id 15.20.5123.031; Fri, 8 Apr 2022 15:42:54 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v4 3/4] selftests: bpf: add bpf_rr scheduler Date: Fri, 8 Apr 2022 23:42:34 +0800 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TY2PR01CA0005.jpnprd01.prod.outlook.com (2603:1096:404:a::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: 77830053-0267-4551-70a5-08da1976721c X-MS-TrafficTypeDiagnostic: AM6PR04MB3957: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: hBsgMtWUzD8mqRJG4O1hdI1QkM5ABK9t0H4DuJxCaSIC6OgRslcBpnwQ7V6NasQlFORSnmEwttzwghahWBzpDOlAn9ztBixdJ/a2HALNgXDl5mnYutD/2Ag7Wc7/8K6fHhFwgVYLuUdHJUOLvdjc1+Mv0nQtANg895u/7SutKXOn+bzfp3QPOeEqfKDRYQ+/h7waspbHDqD6z1rbrPO7Qfq+yOD5WVtnX1/k9pIytl5sBQLEreyV03UJc9V/fsIOyLNZdlEkdlCmBCU7eLX5XxoioB59gcmw6axPGlgYK9N61sgeOgeIOlzs+a7ebciNhQnsuVJHEz9NqqpWxYbeHnwfQq+EfjNIAYONNWmfBOV8awkeFa7/OrGBmEPeZwlMzVSRzYm2fXOGEpieJRub85FAe02ufGi8UPTSWFEA5o6SXFs+ppCTJgyT5ETMF+m7XifcccTYJ2YB0Pddbbm54yMfuKs1O8kRlb1U7000nQLR/IKG+kKXqBN4oxsc4NGzpvcfA/Tn2ts24vGPCVu5pKsvPdZUwibWMHwzbL8hdtwSeV3RRoUaoH3W4S7moHNRmcj8T5woqt6wRsiQoN0kvyE2OrMNM+T9ntS9LyRg//csOePosgovhq0DP/8kDMSF/dOxAVqlsAIoRPaSeJQNU/kzUP5NLKLcYKIDFfWj4qhEwzSQG030JxJUvdjQyYEUd97kRbxfBd9gyNTtL2AqZw== 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)(38100700002)(6916009)(36756003)(26005)(6512007)(66946007)(316002)(8676002)(4326008)(83380400001)(186003)(6666004)(2616005)(5660300002)(6506007)(44832011)(508600001)(66476007)(2906002)(86362001)(107886003)(66556008)(8936002)(6486002)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?KIrapjO7UequUIbDrXlwiPbqSZEVZj3KecMupo4P9cOxreg7C46SFu6nKv3I?= =?us-ascii?Q?nguHAgnwKvTX27/OjiIMXeuzpA7bTBfPFBHRqTXC4vx5Qq16L9fIUj2uRzTq?= =?us-ascii?Q?Q8kdYSsnyGDoIMcMFo1C6ZKJ6/9J2zCKP+FdA93Ksnu545beBhulaN9n/eBD?= =?us-ascii?Q?n9F6NK2czWb4C2IxB47UY34sbs1EIq+yljlMtnsApRyWCjyxvIhoLpEIJwL7?= =?us-ascii?Q?9HzUInbLQtHhFDqIIDbJ78yGQDcjq9YfAtUWxFjfWFxYb18hC0T592zyagf4?= =?us-ascii?Q?DXlqlyCjI2JN6TFBNBz1v+pZIOHA9HimIlwThRuaXRUOTUXc8PXB28dPp2Ya?= =?us-ascii?Q?iAgl05+l7wygyDt6XAkvo8RMpU7R2eG7SKqXJZnW/ZVXIcj70zvpReiuMMcv?= =?us-ascii?Q?Sh0eQTZV/OMdsnePXkWpTP0grTEQhsvATkQ+BVcu3iXrzm2o8rRVmwI1kH0v?= =?us-ascii?Q?nvNGyVikfw+j17Wvqtl8fLhwq1Ut2j2iY6U1eJyecjzRnxGXHGDzBg2SGQVC?= =?us-ascii?Q?jU3Kex8tzz3vi15sB/zLi1Aoj0bEGKu+ka05QhXFw4X6F6hmxgonlyqpviXA?= =?us-ascii?Q?7smWDeHvsn19g3XKdRW3zi21cAZCcwRrl7xvl5YYvyjQG09cENXsWJgN2nmK?= =?us-ascii?Q?yDsnX56wJqrQ3W90yLICS34rxzJgyYelucfwYOAD5SuhdjlfdcynNG3c8LZL?= =?us-ascii?Q?CLG8GexGHZZTbm9m5n9raXEgpuSWVCx6MmbXnqLA2tySmP2y/xF9zX20VCfz?= =?us-ascii?Q?Pz0KOiTSqRW3FHvzQ87f+ld1jEm7U4+S0Vbx1OplXA9ofuqzXPs9zw81TsLy?= =?us-ascii?Q?3ebGIV6GvjTVXcaRIX6VwCUOO6+51X9uU1DpQ7IMC27x7BiSOfZyLL7z1nhe?= =?us-ascii?Q?+Atv8Oeg9h80vcgBWrQQ/WlZmU2tFFXcgNMzdN5SbitfeesxFHBMnXSfTF+/?= =?us-ascii?Q?EVBckie0FO16rfuVq7MTBotOS0sEERrKIePSMlppYdn+djh/Nr/DD1UbGOxc?= =?us-ascii?Q?cBviddSncTln4le4afdlpBesgffrlFEKXxsmMhTnIIFZ5jowqYw9eEIaxzUQ?= =?us-ascii?Q?QsMbalmleIImZpeOAmhOyJENaAVXH2PyuWeCoAmiG8yI03KswD9ZEfXJ7bpG?= =?us-ascii?Q?wi+SMqdmMgPmgflS4WuBE683BHO0TV8Q9NQ3IF3VAytoTfF4+J7oeoZUD/97?= =?us-ascii?Q?1q9CSlmYpyzJiUwgoqS6WY/WO5GuxoygcfqmaMPsIKfT/8+NXUDSdwa/krhD?= =?us-ascii?Q?5h8AFke7HN5lETHUhRc6sxrpxhHJuvCfhrel8LwK7qeWO+4KFjBD8IK0Y79J?= =?us-ascii?Q?KZJLnnSKcLtHWjtJXpL5WVIyhcag4mjC2gUwfZOpufhYy3BzHf1PMuXXkFKs?= =?us-ascii?Q?hbVN5YyzCEVExbkMTu/EwLHuc/qOPNHWwtjb0FgMLIKyypASRN18GmnUOHcR?= =?us-ascii?Q?Tr1etjv1GYoLnQ0vDrLW/MlHvpDiEztL2MbY7//zVDONGB8eHSV0EZFWq/Iw?= =?us-ascii?Q?EFmaOad9baBxRLF9+u3yL+tDktp7LJWIKqUCN7g6CIM+CNWaIgIjEutquicC?= =?us-ascii?Q?xk4fS4zYZBRGaPKjBepbGB6BJb7sWm9KaSRmEZqnXh/guB82kKDlZj7Gawrd?= =?us-ascii?Q?CmnSpQjpWfxVDA4y9EuZSV9Mwh0Cx4KTYmg/ViqICt9CVQNbaTpUYQypNgvt?= =?us-ascii?Q?1Zxnmow02UaMeF3LeC4sjVqKk7erqCNnW2MixjRE3yCbtWkCE5y5Io39WLsG?= =?us-ascii?Q?VS4l9JMVLlc2ZlEQ1JgoyVhCYPcGigk=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 77830053-0267-4551-70a5-08da1976721c X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Apr 2022 15:42:54.2022 (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: HziNeGarPOi9cp3M4+xQOqZdnp6jdI3eO78Xa3xiyvlmuQ4Lc6Tbts3/xbRnIKeBY586bM3OLz1HPSVcF4/s6Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR04MB3957 Content-Type: text/plain; charset="utf-8" This patch implements the round-robin BPF MPTCP scheduler, named bpf_rr, which always picks the next available subflow to send data. If no such next subflow available, picks the first one. Signed-off-by: Geliang Tang --- .../testing/selftests/bpf/bpf_mptcp_helpers.h | 8 +++ .../selftests/bpf/progs/mptcp_bpf_rr.c | 50 +++++++++++++++++++ 2 files changed, 58 insertions(+) create mode 100644 tools/testing/selftests/bpf/progs/mptcp_bpf_rr.c diff --git a/tools/testing/selftests/bpf/bpf_mptcp_helpers.h b/tools/testin= g/selftests/bpf/bpf_mptcp_helpers.h index 4f82baee998c..4c2ff78e0a9b 100644 --- a/tools/testing/selftests/bpf/bpf_mptcp_helpers.h +++ b/tools/testing/selftests/bpf/bpf_mptcp_helpers.h @@ -6,6 +6,8 @@ =20 #include "bpf_tcp_helpers.h" =20 +#define MPTCP_SUBFLOWS_MAX 8 + struct mptcp_sock { struct inet_connection_sock sk; =20 @@ -13,6 +15,7 @@ struct mptcp_sock { __u32 token; struct sock *first; char ca_name[TCP_CA_NAME_MAX]; + struct mptcp_subflow_context *subflows[MPTCP_SUBFLOWS_MAX]; } __attribute__((preserve_access_index)); =20 #define MPTCP_SCHED_NAME_MAX 16 @@ -27,4 +30,9 @@ struct mptcp_sched_ops { void *owner; }; =20 +struct mptcp_subflow_context { + __u32 token; + struct sock *tcp_sock; /* tcp sk backpointer */ +} __attribute__((preserve_access_index)); + #endif diff --git a/tools/testing/selftests/bpf/progs/mptcp_bpf_rr.c b/tools/testi= ng/selftests/bpf/progs/mptcp_bpf_rr.c new file mode 100644 index 000000000000..cdab0823c496 --- /dev/null +++ b/tools/testing/selftests/bpf/progs/mptcp_bpf_rr.c @@ -0,0 +1,50 @@ +// SPDX-License-Identifier: GPL-2.0 +/* Copyright (c) 2022, SUSE. */ + +#include +#include +#include +#include "bpf_mptcp_helpers.h" + +char _license[] SEC("license") =3D "GPL"; + +extern __u8 bpf_mptcp_get_subflows(struct mptcp_sock *msk) __ksym; + +SEC("struct_ops/mptcp_sched_rr_init") +void BPF_PROG(mptcp_sched_rr_init, struct mptcp_sock *msk) +{ +} + +SEC("struct_ops/mptcp_sched_rr_release") +void BPF_PROG(mptcp_sched_rr_release, struct mptcp_sock *msk) +{ +} + +struct sock *BPF_STRUCT_OPS(bpf_rr_get_subflow, struct mptcp_sock *msk, bo= ol retrans) +{ + __u8 nr =3D bpf_mptcp_get_subflows(msk); + struct mptcp_subflow_context *subflow; + struct sock *ssk =3D msk->first; + + for (int i =3D 0; i < MPTCP_SUBFLOWS_MAX; i++) { + if (i =3D=3D nr) + break; + + subflow =3D msk->subflows[i]; + if (subflow->tcp_sock !=3D msk->last_snd) { + ssk =3D subflow->tcp_sock; + break; + } + } + + msk->last_snd =3D ssk; + return ssk; +} + +SEC(".struct_ops") +struct mptcp_sched_ops rr =3D { + .init =3D (void *)mptcp_sched_rr_init, + .release =3D (void *)mptcp_sched_rr_release, + .get_subflow =3D (void *)bpf_rr_get_subflow, + .name =3D "bpf_rr", +}; --=20 2.34.1 From nobody Wed May 1 01:00:11 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a05:6a06:1788:b0:4ac:5e5b:1ad1 with SMTP id y8csp297685piq; Fri, 8 Apr 2022 08:43:14 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxYIqhyINWor5fbuDfZ9w3zYGayMx20QWntAg7ve+GL7HaA5H6bkBipYFrpHA/n79zYUX2v X-Received: by 2002:a17:907:3f02:b0:6e7:7172:4437 with SMTP id hq2-20020a1709073f0200b006e771724437mr18396350ejc.361.1649432594390; Fri, 08 Apr 2022 08:43:14 -0700 (PDT) Return-Path: Received: from ewr.edge.kernel.org (ewr.edge.kernel.org. [147.75.197.195]) by mx.google.com with ESMTPS id ku3-20020a170907788300b006df76385be3si1337597ejc.131.2022.04.08.08.43.14 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 08 Apr 2022 08:43:14 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4683-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.197.195 as permitted sender) client-ip=147.75.197.195; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.com header.s=mimecast20200619 header.b=dySledCN; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4683-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.197.195 as permitted sender) smtp.mailfrom="mptcp+bounces-4683-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=suse.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ewr.edge.kernel.org (Postfix) with ESMTPS id D19E51C0D08 for ; Fri, 8 Apr 2022 15:43:12 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 8D6ED2568; Fri, 8 Apr 2022 15:43:11 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.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 D3FF32564 for ; Fri, 8 Apr 2022 15:43:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1649432588; 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=x9PjuXmxx//rp3Sg1bxMtKi7svQtMfnWGsRK9tVAIhg=; b=dySledCNhEtuc+D2JsYsZYD1dYQlihLAhNYRXV9sgB3EEeHYyEMoRmXKsG7rwmuKehuECD h8QL2LFU06SQQl1Hzv14MecLwjWqzmUbplLHS/+NHAjCMPodIrnRaLZvvULI0shW0Y5FxM ivctGqIaGn1AZtMBIZHBw8BZ+JkR1KA= Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-he1eur01lp2054.outbound.protection.outlook.com [104.47.0.54]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-10-Pj_HCG0TMZW7ZWbb9xHh7w-1; Fri, 08 Apr 2022 17:43:07 +0200 X-MC-Unique: Pj_HCG0TMZW7ZWbb9xHh7w-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=LdyljVndLy+sQtzYkpRibs+jzqmmQ0ncUtTfhsddxRi2/CdOrt1tkixfrn8qFtbKkWmYF2cqEoH1zmMqD2EXOLTyCh3H9mOMjGyWQA9F+GPdTJmQCDkDf94cCwLKHzNJ5UWUFuUokWKIfoBkBRVOTMB6nlEeRR5jgP7os14/Btznh6uZhoIr5kR/qONKEzNptSU/4aYg1tB0BSyRsUGv10L/d0gWHQgZdNnGk1yPQzaL5MaX+8Aup2b+i3f82gjDst417SWri8BR8UZ4LINAcLqXCdkVNOchi4IxLOyPa0DXyhZ2xnrqqKdlnF/tr9/smSKl7Rq4wcOXWUpIGZKVnA== 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=UDnccN4Ej6cG02KY5kELgZn3ENNVMtxOEg3GeS2yTrk=; b=UUZoTiUzNZvtiKi3A6azG5TWsDr7vWZsSAAjmGf5hZgIYfLYrzkYX7Wm7M3aurDs7cylJctql7IGUljgc2GcViOye5+aWRVo7yx4I63p4jFpnZyM+EdxE0xMw3d+r7NiSxtsGPe+lTQbaZzzOUJBy2gX2Ey3SMw2xhNuYD+kAAO9+1cfPz1W3etkMfhRZXXtwHQ/Zg8plRHO1ecWqB/uTlf57VN8aZ+WCdbtXmsIyOgb+KFwCH7jIFeNvTaVx11F3aW5CMApUyXTuMuYO/h1Jy8cXi/gJDUUSFgfxq0r5X5ZuHMa9Z6SKlnStx34ZNMkch5VURTr5wYZUdiM9T6tNA== 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 AM6PR04MB3957.eurprd04.prod.outlook.com (2603:10a6:209:40::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5123.19; Fri, 8 Apr 2022 15:43: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.5123.031; Fri, 8 Apr 2022 15:43:04 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v4 4/4] selftests: bpf: add bpf_rr test Date: Fri, 8 Apr 2022 23:42:35 +0800 Message-ID: <926fa0efd29f8cfa3d9ae15fa48a1f1228abbbdb.1649432434.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TY2PR01CA0013.jpnprd01.prod.outlook.com (2603:1096:404:a::25) 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: 80fedc16-2dbd-4e79-9093-08da19767852 X-MS-TrafficTypeDiagnostic: AM6PR04MB3957: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: FJQZCvQd6MaumuMBYxaakW/ISluEW2CP95g5urUPvzYHoZIRQi+hM2z1/tnGEnLy7fc3yFHwfA6jrmC+A0+SbUVABd7njbusO/1B4v3Kb6CNVFbbHFJnUgdxFZYaU+9HCvoFzgVicDKU3tWZEbERP1SQhTcObaH+/06QcUnDcQVfzNLaeDpeJ7Kjr8MEzlwljboFLQEcT6hg5Zce5i3PyqR5ZHmN8S/vMHjr41KhipnVzPElMHofgO0/1gQYsnUL1Lny5EKIhd47Ecp5mPw9VL6JyzBiFdN5XAYHaNBploK+58pXnm+h0n6qWGM9IsJHv/EuXmIB9cCFM9clI+1MI3rt0yxcUeyANVD4maskGHN5b3Qtmz7XjUK/C2qS8E7rDlj9f/qeMAPgaL+8YJwFQ6XNdHZBmTiL7g4m2CE/bm1Ze6s+v5yDRhCzJo9chfPPS9QdxzUk1AgfByX/i3WUFEWaxNU3VROtN7svW2K+bvP7qgdxLL/PHhB6nKUksPHYd3tSrW6BUPucCRRtY7Gy5Kh501qO/phntx8TFhzdHPAUnLFO4tgfrKsUXgok9O09BfQHIE0S+niqlUJDjiFpp04Yqp0qOF0WO43GdNQl7rkiM+HikiwHSzXJGV3t0FCxAGwGqD2yvVnNvm2PGLol/zjiuH5TURxyNV0AcXbd9YVkgt+gJeNytwK9xwAMK51L 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)(38100700002)(6916009)(36756003)(26005)(6512007)(66946007)(316002)(8676002)(4326008)(83380400001)(186003)(6666004)(2616005)(5660300002)(6506007)(44832011)(508600001)(66476007)(2906002)(86362001)(107886003)(66556008)(8936002)(6486002)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?9Ta2iwAdOlW+t2J3VnWlp6bv2sfGL2ZINEcVIbAfRITVO5nqtiogG2TC9QY6?= =?us-ascii?Q?ClCW9d9hSg1/63G8v1o/wcUxEtHCCMwxeJfg1X6UIlZYs4k3nKPPMea2tfJq?= =?us-ascii?Q?c1I/Ez65XU/hO3y86Zy9myNG3ugfOhao3gLADjv/TmFL0nZphoHL4OJTQsrB?= =?us-ascii?Q?4RcskGHEnNZNklqnD/TUUFXptv4C3fE/BrAzKG5Imc8wuoIe8/zFMpwIaI3e?= =?us-ascii?Q?zIDfCfuWexUKU+V5SDZyZ5pwqJe4kiYoUVkN9GAwTTy9iKfeoNccEvOemBMc?= =?us-ascii?Q?1WcCK/ie+ZbCLRNPfCB3xuRSfXov6ugg7KbdGm9upKjj7QUdRSGA8hABAHp5?= =?us-ascii?Q?EAaOBPBU9jNHYPR1x99ajfWLVxKzk54RmR6dFiBfGeH+0vc7AdUTUCqbZpkt?= =?us-ascii?Q?bWjdPkCscBlfsJe1H2QomAza2fC+771w2nVgIcdLCDAdiVnpt3eusqfpTDsJ?= =?us-ascii?Q?cxCHpKFw+znmkeljzpq3AZUihVwz6xOkwhhcwv8ZE4hcEuzuHxaBww9IAa/i?= =?us-ascii?Q?MeHwV3VfdFoa76cBC29Qyx16Thwi9zE78vedBcNZQLv8/zxxwr+/48voVskd?= =?us-ascii?Q?fpjkfgKsaddPUKVLXjUo+VM8tAD/BNHgJ5dL8tiR+K4g3QIwWjeW/g6WvGnq?= =?us-ascii?Q?RUWgyGJyhYwruCPXT4ne/Bexd3WpdKLQfYy3snsvWAivJw2ND6aeEOCGWbKj?= =?us-ascii?Q?KJv1aDKguL4G8O4ceu5fW8RTVnylYETvtOVNmn0S1VSEhI42pk66OhuSU1K9?= =?us-ascii?Q?Hr1iw30I/9XT8UGsd6UIFcnQMBNZ2miU+MCmxFOr2o8Nhgs5u5RBb7VUZfuk?= =?us-ascii?Q?LLcwu21Q0A2M6Bi14i09u6/w0RpAW/lXm3CXhFiR/BXXhPBt6di+67Z2tRsM?= =?us-ascii?Q?HefssLejurEi3yY/pximt4bi3FZnSBYqinMcT7n5Xcj33kpDD9ISwW+yUF5F?= =?us-ascii?Q?UWsPrAIF0zEMIhJNnjibZ5ITdAtEb5iM2bOWgC2u5Blo8aGjVgCEmT095XpD?= =?us-ascii?Q?dnLr7beTRBKx4QBOtgYUD+Fw5F+cJDxWwDV/Oizoei3lDrndO2Bv1PJ6mk/I?= =?us-ascii?Q?FHGx5T7p59Ik9qy8h7yYWPEUA8vkbh5HAY10uOmhPZQgqeuU60vqBiYoru2Q?= =?us-ascii?Q?bCy/VmP7i8bVIZ1URZGwrcjb2/45Rg72JnqcBp7PtNjSemoRAc+XWaSrargz?= =?us-ascii?Q?vs9ZbnIn8u+ZoLrhq8hU6SEhvqHCQwDNix++dQBEGxHfGT/gKIgN6qjUAhZu?= =?us-ascii?Q?uI8Tf4h9hPfT901lnk0MIubuNQnIXEM7+Wf+IZ3zAmzrKMcLv2CNq9geiO14?= =?us-ascii?Q?D30kUU03eopoXlyBfPEtvnP6DoM5eTL+SAgX/bHo88VVxFLr2heEvLx5VeG5?= =?us-ascii?Q?fAlZ61HS9Dould0wkMBPYc/zL8VMlabipQFaAfuyTSAloNviA16w2rA1IX0P?= =?us-ascii?Q?N7fhWE6W1Q2UAjPzh4cZdCs5j/5TlhSkoOEfCnNVuDLo3fC9UpuLANqeFxHK?= =?us-ascii?Q?06NupUR2vjt75QlsRrd4fM3Ou+9E8G82xO2hVysFWXBv6Etqb7TCE+v2+X2c?= =?us-ascii?Q?m6ndzK+96vQMibAdQaLyWjqDP9p9lY0z/hYi1w3wfWnq1n7WyUiWkzkMjIre?= =?us-ascii?Q?t6OXc1KpMUXbVw0Vm+00xqCwfHvh4iVvvtYg9GAJUeRU74kEFnOq6M9yvRqT?= =?us-ascii?Q?OL8qvPS4Xj9VeJ/OJafiSGx7e7NlebPrPoXXOLtded4BIHz2D+0V6dejeBqH?= =?us-ascii?Q?WEYE7z1UTSIVbZ/lh0twrGWP6gc2ld4=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 80fedc16-2dbd-4e79-9093-08da19767852 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Apr 2022 15:43:04.3421 (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: 3DbjmsS6gq9ZG9LTEUSVDgOAIqPzvJc6SuQAXN+MJraPVdzgz9wL7WbdrMZHqrMooLffSbHT3SOmE25bEMzh3A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR04MB3957 Content-Type: text/plain; charset="utf-8" This patch adds the round-robin BPF MPTCP scheduler test. Use sysctl to set net.mptcp.scheduler to use this sched. Add a veth net device to simulate the multiple addresses case. Use 'ip mptcp endpoint' command to add this new endpoint to PM netlink. Signed-off-by: Geliang Tang --- .../testing/selftests/bpf/prog_tests/mptcp.c | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing= /selftests/bpf/prog_tests/mptcp.c index 377ebc0fbcbe..7052c520c0f7 100644 --- a/tools/testing/selftests/bpf/prog_tests/mptcp.c +++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c @@ -6,6 +6,7 @@ #include "cgroup_helpers.h" #include "network_helpers.h" #include "mptcp_bpf_first.skel.h" +#include "mptcp_bpf_rr.skel.h" =20 #ifndef TCP_CA_NAME_MAX #define TCP_CA_NAME_MAX 16 @@ -362,10 +363,46 @@ static void test_first(void) mptcp_bpf_first__destroy(first_skel); } =20 +static void test_rr(void) +{ + struct mptcp_bpf_rr *rr_skel; + int server_fd, client_fd; + struct bpf_link *link; + + rr_skel =3D mptcp_bpf_rr__open_and_load(); + if (CHECK(!rr_skel, "bpf_rr__open_and_load", "failed\n")) + return; + + link =3D bpf_map__attach_struct_ops(rr_skel->maps.rr); + if (!ASSERT_OK_PTR(link, "bpf_map__attach_struct_ops")) { + mptcp_bpf_rr__destroy(rr_skel); + return; + } + + system("ip link add veth1 type veth; \ + ip addr add 10.0.1.1/24 dev veth1; \ + ip link set veth1 up"); + system("ip mptcp endpoint add 10.0.1.1 subflow"); + system("sysctl -q net.mptcp.scheduler=3Dbpf_rr"); + 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); + system("ip mptcp endpoint flush"); + system("ip link del veth1"); + bpf_link__destroy(link); + mptcp_bpf_rr__destroy(rr_skel); +} + void test_mptcp(void) { if (test__start_subtest("base")) test_base(); if (test__start_subtest("first")) test_first(); + if (test__start_subtest("rr")) + test_rr(); } --=20 2.34.1