From nobody Wed May 1 23:43:11 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:ac4:ad0f:0:b0:4cb:58ce:be2f with SMTP id s15csp1279505pih; Mon, 23 May 2022 08:26:19 -0700 (PDT) X-Google-Smtp-Source: ABdhPJw68AQYz3WmoYV/jnYxOOxpQZb/QH56NNyUz+4xUgP+lkDd6eBajpe6sxC4cQAcldoaY9/B X-Received: by 2002:a05:6602:14c7:b0:665:49cc:4f43 with SMTP id b7-20020a05660214c700b0066549cc4f43mr1503594iow.156.1653319579309; Mon, 23 May 2022 08:26:19 -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 m8-20020a0566380dc800b0032e5cb3cf51si11228769jaj.99.2022.05.23.08.26.19 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 23 May 2022 08:26:19 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-5442-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=M1xz2BKO; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-5442-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="mptcp+bounces-5442-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 83A5A28098B for ; Mon, 23 May 2022 15:26:18 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 992C22593; Mon, 23 May 2022 15:26:17 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.109.102]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D7265258E for ; Mon, 23 May 2022 15:26:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1653319574; 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=szKeF7MYZKE8z97+NsQrvgUxkl7c7o9yeBy08lXSQcE=; b=M1xz2BKO2tBEMZfdtnr+WY79EmeegM28QWGUxv+KwLJeC9CtpBX1U5AFxFlzQpNgkdcrge Rt7XTJxnNIOMzrAeiEFi80KTT2O6IwgUBO3NO6+kiFsS3bng/0HRPJtkx/cQpb3MwTOO/C SpC//ZtMJL4RoFh1C+9qxtMokt4x7gU= Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-he1eur04lp2057.outbound.protection.outlook.com [104.47.13.57]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-27-pLbjMzn1P0-r6AjFNnSaLg-1; Mon, 23 May 2022 17:26:01 +0200 X-MC-Unique: pLbjMzn1P0-r6AjFNnSaLg-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=PWMphDk0ViG/thGLdxSeh+fkUeu5Z/tgaJ0ylJR4ZfWo+wiKwt4kWOW7nVULszynZW32xJ/2f5B/qO1Uq86hTNj4sHniybA0xvYn0vqYeh2RqF0p1M3CgEZyAm5/8lANfCS9MJZQb3IA0dhqMiqn2tajCmJaSMZrrfnwBMaRI9k0jVTNi+4QxUFVkpzaAnJR18Gvo1FH6w5hs5ST7TYx2o9RGYSJPyeraBzDoCJ2GhNnHiZonOsr4/VlEipYmn23o1rI7zBDwsBAtSPyVpne0iSEw9pjOqhn2iYyXy0Uv5GIKVEVqkGnataVHKefFhYNIPNPsjk3+6dKRtfCHIbHyg== 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=TnXC128HIsrFxdMWAHQQrUrqHD8gMcgnYHF0mf80ZgU=; b=QIyFzTrCd0g8Yn2cY+59l9B74IfAyi106XfKV2hLvrOGlatK8/jljdDGiyrgTb2ESGzKXyC8bh0AolArfo6CFDpqvgpCKTu6SRCztkgZqn6Bom0K3a1xbhp2Yvx8nLcuZkfAdfUZZve5m+uOYdeAafmU4eT211g6nL6WaZnrojxeQpz75EC0Wuzr25oiaoW5UaWS+4ahno/RaGOQ2ba0MWyEDoJNyGbf6vURA691nt/Fg5KYEJPvjHCr7m0TDsknZSfp/mHJ0l4jvKMaqbGJu3LZUa+tAyugnu/cDjeU/M6BlNFiRZENUp+etTZ03oQZXA6XLKpkptCt29Q2eJFYsA== 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 AM0PR04MB5681.eurprd04.prod.outlook.com (2603:10a6:208:12a::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5273.22; Mon, 23 May 2022 15:25:59 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::5557:2d1:efed:96a6]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::5557:2d1:efed:96a6%7]) with mapi id 15.20.5273.022; Mon, 23 May 2022 15:25:59 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v15 1/2] selftests/bpf: add bpf_rr scheduler Date: Mon, 23 May 2022 23:25:53 +0800 Message-ID: <0b44f7371325e07fd6cb7d95346c51cdf794154e.1653319279.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HK2PR0401CA0011.apcprd04.prod.outlook.com (2603:1096:202:2::21) 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: 29bc1c3c-dbed-4fae-1e14-08da3cd089d8 X-MS-TrafficTypeDiagnostic: AM0PR04MB5681: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: wXOhnjsdynAOVWCSDtGsdWs+zuMG4dMgWvYVaLtPU82/M6TBXVOBrOfpdNYkHe++Z2GleJsUHlYlg+o2INuzyUYnxiTIPw9Nse5z+TF8Wu4ue04bLqXaNwZPNYHD3sMFUppwsfZPPTj1mj6D+T/1VEogpQXrnw4rpaBBPWdw9Ve4xglZrCzLmQ5Stqj2PjhG88mpHxjUfpE5QsrEF7YX4Assetjann+n2XlPz3Jy0X3mvmzwwuX2Zy4z6QGbjiWe59a+hOQFdEyCv3tRkpo3pWheBm+sVTmQkzfvaOVJt0Ce4MZzPWYEOF0fMN7BscEFXja7lw8foHg40wVDHe0CNuZdIq2L+JwjmZK35PK6DpdBbD5H4GCb9jeY8YVq5Iad4ybia+27+/635N1uPLR0cQ9IKGsmqR7evAIYxF0WpvGnb7WjEovPh1aT0gtz/x5DxhTeqzB4I3IRJEVlB+qrWXPSctG1uyjnDrXUyEs02h6lL1SX212RAYBvJgW6eYQqGzObRgFyvUWT8BRrgsyMBHyYZfzQTx8ZJAD3ZV/C7sDbcXxiG57I+p+GPIN9DijYmJFh6VFVnJwVBNePNQActucY/VHsYBP0M8vjrw3HXVpgYeR6Oo416wTQAJ7fdwJfkxC8FinkMNJVKBoBIwBrV71xmcg8I6pGm+TNj5pt/yjxAXOo5yLuQruiS+BUM+mzp4BNjkDPj/KPfE4+4CjAzw== 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)(4326008)(66476007)(8676002)(66946007)(66556008)(8936002)(508600001)(2906002)(6486002)(316002)(107886003)(86362001)(6512007)(38100700002)(44832011)(2616005)(186003)(6666004)(6916009)(26005)(36756003)(5660300002)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?2TPEDz5++GEI15KeO6HtMMnmPp7HfcmCK37VvssVv6F3KREGrybVSuS15s3w?= =?us-ascii?Q?YKOoJbcqXhP7CygUScfRx3wpWo9iNbYs3gXzbLKZqWg1vUpWssGv9nRgEMhh?= =?us-ascii?Q?zAcQfKqL3TXT5yrJL6Cs1hhXgs3dhpkMpGK3O42P2rG9AqTbqbEKqjogMeaM?= =?us-ascii?Q?16BOEbsVKKbox21WF2lbRQjd76oiHjkTRYhf4BY13RuRu12R/C2psSrE7s3h?= =?us-ascii?Q?2kr/PDwwPPRCi2YX9ScZ+XovDaVbCrgWdXQIX+bMUO2hyXYLekP0ATFLHhDA?= =?us-ascii?Q?P42+aTEX+rNJU3wsccu+UU+eYuc8NcsEZmZDJZ9QBND9t6NmkNpWKLwsvUH4?= =?us-ascii?Q?LUKVs1JVkia/vHRYD9jyKajDBuCEAnRfqf5E6J2NimJexWFLz1zdoJZgVBpQ?= =?us-ascii?Q?QnctAHlX1Js8vvU8FmTkPhgPjwmQrgMDt6DLj4R+hR0cIKsoJKnnWdoPwCvL?= =?us-ascii?Q?fV2cziGStdTyGMQRpI0vsWkxMDWdw03TSjeXEmcj6YDDbitgp7qqZDtXUak3?= =?us-ascii?Q?U0hN6kPfyF8UbL1JnVTOr7ZvmO5Z4AgSZDZDeKb0Onwji88pouF6XZtNZkxo?= =?us-ascii?Q?YvNQaOuU2xaCH4LJM+3tnF5k1pZtcI6DOjKH1dIN0sYq67H/9C7n3CMOSRvZ?= =?us-ascii?Q?BUmTmZ+KY476hpPLCiRhWPierCR5kT6E9JfVeZesTFEU7X/XWLlrZel5wW72?= =?us-ascii?Q?tLnBUMnpIiwz8wORPcug/+q1jgEdBYkhDHK+b7m44JmAf6nYQngFMHYwWJT8?= =?us-ascii?Q?JbhtETgMCJfdoSd0iqsFRilxSLgz/UXvt8tr02dkudftaRJA7/cfIWWM39vc?= =?us-ascii?Q?0bCbbk3Hbktz1yRZai2LllTiDE94srXqHhgdFBiHAeaTLoUiG9ceAJja5h1Q?= =?us-ascii?Q?7x4N3WlqyVWC5oWGUqAZIfD2sudqr4IcZO1Abc24xHDWgQA/U7IN77I4CPMa?= =?us-ascii?Q?ishrac7oJlNkx0043NIil9tsfpigzzSd0J7CFZ6+Nia8cIN93Dh6vrPv75qm?= =?us-ascii?Q?ToJT6ki9OuwXP1IeKzc6FIvikaeE8nqt3Fl6sF2RqQT2BHMvm5+wF/BSri/b?= =?us-ascii?Q?VtFljmdWsCKr+0mgA2olQ/KoMaWYMo2rUflsbW+nEjX7nYZdoqs33eqwPxew?= =?us-ascii?Q?39d2BbpsyJaaX1nC/krvxnRQwRjHaMecIj6HC0TC0D1EpUJ+pIZ7UG0relA6?= =?us-ascii?Q?UHj/5uYwRylKeQnEPwiYwPPZ3XyG+wQkQrPoy/yS8xRFjuEydHolrHmJKUX7?= =?us-ascii?Q?UqaStU2ZwoOUmhO2+7oFVDYmSz+TRUjhlX1g4oA2KTVOJWmwJmxyD3p716ko?= =?us-ascii?Q?zvzINi9Qvzp75jIaD+A+m9G4s2Iqo5a/FFxfbcvRt+DxXdJhOJ+m7UUFZH1a?= =?us-ascii?Q?XOYI95XTqBhoRBBlOB08kwEKgjf93dy95WPe/ocaxJZ/bOZ6wcYiFkYwD60d?= =?us-ascii?Q?Skj1LGsHoIsOdXWwcUoAeXpJb7Buii03VSAF+5HlulJpmOcYJAorpuOwjpQ8?= =?us-ascii?Q?W6nnkjrpoZbKkL4cchEvqqIoWSpkTwDf+G/g3i8lX7Opi8kvPP/3WvDokXTK?= =?us-ascii?Q?ovyekNejg2rzF1AwDL7TE1AWZc5c/a2Vto6D++rEfMyei6FKKxvqORaETAdc?= =?us-ascii?Q?ROSLEbSg7FBW7CJGpwU4WBRji4Z5fAJ+XmDHkx3tmTMLBNew29Qd50ZejwTr?= =?us-ascii?Q?I6yYZSu4/Rn7r/3xFqqGv9AWAn+rwihbTzPZgrkGHR1aQsBotYGQKLyelk7l?= =?us-ascii?Q?b/hBN/+y41E51xUMsn7XTo9rFAqTbM0=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 29bc1c3c-dbed-4fae-1e14-08da3cd089d8 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 May 2022 15:25:59.2821 (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: +WQVOnNGlBOhTocHwIgeot8POsFfTS8n1TYOmKpBpHuyRg2cBA9FKyzywt9cKkxd6SVV87sZOrqie2KL/HkMBQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR04MB5681 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 --- tools/testing/selftests/bpf/bpf_tcp_helpers.h | 1 + .../selftests/bpf/progs/mptcp_bpf_rr.c | 48 +++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 tools/testing/selftests/bpf/progs/mptcp_bpf_rr.c diff --git a/tools/testing/selftests/bpf/bpf_tcp_helpers.h b/tools/testing/= selftests/bpf/bpf_tcp_helpers.h index 9c7d33e106a4..0f29b47260ff 100644 --- a/tools/testing/selftests/bpf/bpf_tcp_helpers.h +++ b/tools/testing/selftests/bpf/bpf_tcp_helpers.h @@ -255,6 +255,7 @@ struct mptcp_sched_ops { 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]; 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..ef475bd33dd7 --- /dev/null +++ b/tools/testing/selftests/bpf/progs/mptcp_bpf_rr.c @@ -0,0 +1,48 @@ +// SPDX-License-Identifier: GPL-2.0 +/* Copyright (c) 2022, SUSE. */ + +#include +#include "bpf_tcp_helpers.h" + +char _license[] SEC("license") =3D "GPL"; + +SEC("struct_ops/mptcp_sched_rr_init") +void BPF_PROG(mptcp_sched_rr_init, const struct mptcp_sock *msk) +{ +} + +SEC("struct_ops/mptcp_sched_rr_release") +void BPF_PROG(mptcp_sched_rr_release, const struct mptcp_sock *msk) +{ +} + +unsigned long BPF_STRUCT_OPS(bpf_rr_get_subflow, const struct mptcp_sock *= msk, + bool reinject, struct mptcp_sched_data *data) +{ + unsigned long bitmap =3D 0; + int nr =3D 0; + + for (int i =3D 0; i < MPTCP_SUBFLOWS_MAX; i++) { + if (!msk->last_snd || !data->contexts[i]) + break; + + if (data->contexts[i]->tcp_sock =3D=3D msk->last_snd) { + if (i + 1 =3D=3D MPTCP_SUBFLOWS_MAX || !data->contexts[i + 1]) + break; + + nr =3D i + 1; + break; + } + } + + set_bit(nr, &bitmap); + return bitmap; +} + +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 23:43:11 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:ac4:ad0f:0:b0:4cb:58ce:be2f with SMTP id s15csp1279513pih; Mon, 23 May 2022 08:26:20 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwqhrwP6FrWQkxQlrbxbi2uBrq2/bnRQ627ajXqeLVwF6KZSN3mAtJHAz7xoxDIXvR4O6QI X-Received: by 2002:a17:90a:9dca:b0:1df:2686:55ac with SMTP id x10-20020a17090a9dca00b001df268655acmr26765093pjv.115.1653319580144; Mon, 23 May 2022 08:26:20 -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 d70-20020a636849000000b003fa811731dbsi2135778pgc.687.2022.05.23.08.26.20 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 23 May 2022 08:26:20 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-5443-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=gZ7sNYg4; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-5443-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.88.99 as permitted sender) smtp.mailfrom="mptcp+bounces-5443-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 D42BB28099F for ; Mon, 23 May 2022 15:26:19 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 39CC8258E; Mon, 23 May 2022 15:26:18 +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 8067E2592 for ; Mon, 23 May 2022 15:26:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1653319574; 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=o2T7mVubO4wK3t8OKAo+M4lfxkoVeL3vDkH7Up6zTd0=; b=gZ7sNYg4Xuh4S0ETf0FaqwloonkGFxrBIz6oQ4s001iqz6p3klJf4EcnsSJ8cXGuHa6jG9 fxSJ5GitRxkxJZYoaiJDyqrjvIiShv55SO/9evrMvw0FeYFHCq8wBq+48MvwXEdMlfhxcm CIvSUjbAYYsuOaKEHhflNBFocfMavZY= Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-he1eur04lp2057.outbound.protection.outlook.com [104.47.13.57]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-27-I3rZYC3vMlOI3PRPUTpHEw-2; Mon, 23 May 2022 17:26:13 +0200 X-MC-Unique: I3rZYC3vMlOI3PRPUTpHEw-2 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Oy9mKu2fIDQfLg+FRTGBfGjdupMrEVffOgbe3JCWNm57KCT+OIgi+sfX7HsSqZf3t9/985wHPNFtj5o5ozYmmX0XInWet7nR/dS54bLE7tBdS8m5pzu7bZ2MvcFMY707iahvaHYcchdfm18NIa5O/CTvntDN1Hs2A/1OBtz2TOVgwK1yNdIPzCKCxeKNHY9h3c3TaITYuaC429zxq64pjL0s0VRZFFqe3V+VagTtS+nojBtPREFt6WT/0FFv6PorEPDCQxHExQafOSf2DGlWmCyT/9YmuENVzwQKc9lCQuUdOrZ/kRABvFu4LNh+4w4aT2THM7LvmveytvFZGCKxNQ== 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=DyIY/QEIFZgnefDkNKNmY8JMeoMtlAOCnZdxvWYV0vc=; b=JQUTgbdRV0gRSalTYPyxNIlb+F4TLAg4q5y0Xy8dWv9e7ovdAR3sLnZCrRjmUXMsre+P/C7ABIcZjjv29oqXT31dJI+KCG0juMFz9mhxIxkRQpJuSgrSWMQXSOvlUQ+pL6ZW1P6DiFs7E0dORn1pdYUVTkOJWa4V7aQTjclorP0WiBf3HvsJCYQ0V4uMNFo/o63fBxRXEXJYC9AtszA7T/oa3Ew2JA3Wjm/g+ZSVb1XVX+Pm1KsuIu0PMw4qBLert4CS9yxdcSjMj0KkLVRePnNQ0ouhsE0x0HD5+iZuqPO4yR/xDXy8mRX4mior8ePH63o0Z+dmL9DmYz6DsHy6zw== 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 AM0PR04MB5681.eurprd04.prod.outlook.com (2603:10a6:208:12a::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5273.22; Mon, 23 May 2022 15:26:07 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::5557:2d1:efed:96a6]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::5557:2d1:efed:96a6%7]) with mapi id 15.20.5273.022; Mon, 23 May 2022 15:26:07 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v15 2/2] selftests/bpf: add bpf_rr test Date: Mon, 23 May 2022 23:25:54 +0800 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HKAPR04CA0017.apcprd04.prod.outlook.com (2603:1096:203:d0::27) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: a371dd25-d741-48d4-3e0d-08da3cd08ee4 X-MS-TrafficTypeDiagnostic: AM0PR04MB5681: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: iTXDkM6eSff3nqUrLJGXVk0vhRcmuU2TMufb4Nd6AMv2j8ztzOfuatLWjQUAe8RUmcdywAF4B6NnRO5ESCRasww5bKJOFTQ9WSn5JtQQ2EISA56UTtGnXhJww3pGiA4zHDITFv2fv5DuD9IttKm+rWW1owdtn0a8CfbMwYi3P1YwS5RnzpFW7uQb4xJWqlB0Uj7yFvD6oivz2Dh9lx8NkKzlrDmg4XoGF6SfF3ER5LpUthUPXLPb1AVypDfF6/fiI1DE7XdjebRXJQfjPB4SZAWal5dU3VN3a8Src79tiHP9Lg6ievi6leCiST+G1rjq4S5gBAO1YAicrVSM4Hx71vmf22NHpJaHKHjcpEBL7tobn8QATuCd7o6FmIHT3BL/Qio7Y/d/cqJdtGwKpgMMr8BbbYlwpY8hxXU1P+nu0KrGN6pxrVMijCf7grvl90h8KTE9+UIXhfu6kM1FSjrn2Ro4hpsuridwXk9twsYp1eJxPLDGxlD2o2tNT4eer0DGrB55fETrZV/taNh0vegi75FoOzawksWWP35AV20+JIAGpS6xrbGcKvQqd975/cKGTWe+yDp7uVJSpKxId5Po8fS6GveU7nAu3zg2dyT3207jfbLWEcebiMMWv1RwGh+myoNXwtdRNjmjFRbOQOjgf2eoFJoXnq4ZTxYLJf7qGgMj3O//11FI4cfn7jGsxrwe 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)(4326008)(66476007)(8676002)(66946007)(66556008)(83380400001)(8936002)(508600001)(2906002)(6486002)(316002)(107886003)(86362001)(6512007)(38100700002)(44832011)(2616005)(186003)(6666004)(6916009)(26005)(36756003)(5660300002)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Sfyez7q7PPcFg1vdBD8unjh4LiFkB7wUfnZnJLOUjIS92kki0H6bHPfzI7jg?= =?us-ascii?Q?ujOD2k8SmqpVQzszSZdMG5fSveSuf4xUv7dLuD8TUj8f1jS7EiFHSunSoyBn?= =?us-ascii?Q?cqbmOOT7YfVHf/LKBIBBr3t48GUUsib5RdC9/DBYuzgCnVwrdLHcyKaMs7wz?= =?us-ascii?Q?rE0Ppy/2jmaMlhOPBTF4pX/Z6WAOPcZvIPgNE/n0rYfRjXjyO+VFz9ata8KR?= =?us-ascii?Q?Znnv1ysPGWp3l5kbeusV9QJS/iUExR2dZJB6I3zpzUC60KducLh/GpKPNZWh?= =?us-ascii?Q?FkjeEa47w2CyQVLZETEiZylxxSmKYTCnwqVfoP3OSKeOCaMHDo1hQL8NRB+Z?= =?us-ascii?Q?U+YmFPi2811J9OVwHDU0r4Xky3nm5L+m+RFMDEYz/wFyVjFDBj1BFymYub11?= =?us-ascii?Q?Va3+yMj3T7bxSjHzWg6O87eTu+j30w7+UnLnXFekBLzpi1uNk5N0D9OFmc4d?= =?us-ascii?Q?EEG6bLCFOksrugzZFaJiA+/Yx/XY0Xb92YW9YKYU0bt7jhLxsic8dT46xr3w?= =?us-ascii?Q?f0xFjfIknX+gKhCQklv2ULDBQ/FpISWN0JOO+WPBm+6OYrTNIhLzCRY0APMr?= =?us-ascii?Q?hQ7mbcSk0ekG25mK9T/uwDLMDg7IIuSSotfxYao9ODN3cpzW0CO3zFZW/jbM?= =?us-ascii?Q?+PqdDeCJcQ+KawF2MOGyn+BzN9gy35qoqx8Y6rs+Hb02zR5ITOXCZpg7ZbFf?= =?us-ascii?Q?8S63fzP+Yo5gL/YVF/+XEIcDHwGmgOl0X0FrtzWy8edJFRw2ZYe+bqV8byY1?= =?us-ascii?Q?90DdbY8Pl3ctOsdox3e0cgaJc5ehyiPjPtBXST64442Uy2Plgs+WB9tyJsVH?= =?us-ascii?Q?IAjl/uX4SIbRsGet+9dchiggQI7PD2qOvwGuEjA7XP89HKiLbfiv8bOi+N7j?= =?us-ascii?Q?wKGM2tH6zf2+ax/4X8rPuedBBxfkm1O7b6Z0a1dhcqWR/KHgeNB1A+wbQbYa?= =?us-ascii?Q?cGL3hANUw3b+qb+69PoPUV9hXjXflYUkcpFuIU7L4SrRNCNs+nYPybRfc358?= =?us-ascii?Q?KvOQ/g25qyrtqIat+EfCIIPWd5fssNCJCnWS/6a19iyCFniQyrkr0YBgMAG1?= =?us-ascii?Q?aEPbe3SixVKFVJeZ/WvkCj7xn1sfb9ZlZ5vaXof4o/+GGdEs4EwNGCb7qB2z?= =?us-ascii?Q?U4PQsQIa3WgUM+7s9kQDnjUrDtmqy1JadBC6Skg9eSPZF0Ohg3TZ3R2USpJ6?= =?us-ascii?Q?VkXdSFoibzDsOuFrW58MUq0u9GiQT9+Yb+MWmyMPOscS452Ft6EQo+2EGCfP?= =?us-ascii?Q?uIzMRiqlN8yF1LacAEd83qmxoOT4o04dminD2sQg4lIpXrF9vZ4N3a4x+aXe?= =?us-ascii?Q?xKKZUinjB4efALXCIobrjv5uEVbcr3riwg2oFBfMx5uLZiPkewKua7uSjOCb?= =?us-ascii?Q?9ojEElmOj0uGbYtmLgEEhjpjFtVKGjlzaBAynt6i85KSUcCl8krFuNpUWqWn?= =?us-ascii?Q?/p85IVCzCLNa08CrZYqZ4zdcnybnNmEzDGHRjxnsJVpJwrDM/rMgT/SB651W?= =?us-ascii?Q?K+FvIOiSsdVadxJ5yD6AcBrOUViS9sXaaxQMNAe3sowQxiH3WJ4GFP2Hieco?= =?us-ascii?Q?fE7TT0tAiz9eEnkZ1Oeocn0sosiNEA7zSt30lQ8hAkh2sg2JJzIcOrB+UyT8?= =?us-ascii?Q?j9TryPKD+JycGXlzQT7qtH/lmkVpemjunhGgcUPtqrvgKZbeFPJ2efcTAw3Y?= =?us-ascii?Q?HP0YnTiUT3zO3iUtCqtteX3CnZYaUubdaQ0BScLGJr5phgns4+/7LaA7/RNQ?= =?us-ascii?Q?PlNxdJh88Hn15Gwd+UA0OSrpy7rVBVY=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: a371dd25-d741-48d4-3e0d-08da3cd08ee4 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 May 2022 15:26:07.7658 (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: bt6g1fCqZhWqcf3t/VStJbZCRHsl9zYUeTcR6H1heJ28eIvqASzg2TNpQkPaP4lDDqmI/gJGZf1aGGgu5+EdLg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR04MB5681 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 | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing= /selftests/bpf/prog_tests/mptcp.c index 9d37c509d3ce..1746b6488bc0 100644 --- a/tools/testing/selftests/bpf/prog_tests/mptcp.c +++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c @@ -7,6 +7,7 @@ #include "network_helpers.h" #include "mptcp_sock.skel.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 @@ -279,10 +280,48 @@ 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 (!ASSERT_OK_PTR(rr_skel, "bpf_rr__open_and_load")) + 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"); + system("ip addr add 10.0.1.1/24 dev veth1"); + system("ip link set veth1 up"); + system("ip mptcp endpoint add 10.0.1.1 subflow"); + system("sysctl -qw net.mptcp.scheduler=3Dbpf_rr"); + server_fd =3D start_mptcp_server(AF_INET, NULL, 0, 0); + client_fd =3D connect_to_fd(server_fd, 0); + + send_data(server_fd, client_fd); + ASSERT_OK(system("ss -MOenita | grep '10.0.1.1' | grep -q 'bytes_sent:'")= , "ss"); + + close(client_fd); + close(server_fd); + system("sysctl -qw net.mptcp.scheduler=3Ddefault"); + 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