From nobody Mon May 6 08:24:26 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a05:6a06:1788:b0:4ac:5e5b:1ad1 with SMTP id y8csp1166126piq; Wed, 6 Apr 2022 21:10:20 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxTU7WbF8moSbIb4gd8WZOgGmzDNiubTQwxPHqiuuAcdZFhS3Yuv9IfRw8YqG+zeDcC+Sd8 X-Received: by 2002:a05:6402:5111:b0:419:74a6:6dc0 with SMTP id m17-20020a056402511100b0041974a66dc0mr12379107edd.293.1649304620058; Wed, 06 Apr 2022 21:10:20 -0700 (PDT) Return-Path: Received: from ewr.edge.kernel.org (ewr.edge.kernel.org. [2604:1380:1:3600::1]) by mx.google.com with ESMTPS id w10-20020a509d8a000000b00418ed563a99si13005291ede.484.2022.04.06.21.10.19 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 06 Apr 2022 21:10:20 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4644-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1:3600::1 as permitted sender) client-ip=2604:1380:1:3600::1; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.com header.s=mimecast20200619 header.b=XRC2j8Vc; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4644-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1:3600::1 as permitted sender) smtp.mailfrom="mptcp+bounces-4644-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 74CBE1C0CBD for ; Thu, 7 Apr 2022 04:10:18 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 2AC7220F3; Thu, 7 Apr 2022 04:10: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.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 D93EA20EA for ; Thu, 7 Apr 2022 04:10:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1649304613; 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=fv4maKpvBiGkwEI0drCGGuPw8tRskEYnOGFjC6Z+eyU=; b=XRC2j8VcaAC5/Wxpjt3R3R4tVKiL+eCwffdlDOdsaLhpXaE5QzpBFqBnqJqdmW5Wa+ph4+ KRZ+/PU8S008w4XLkqAStAxp6aoKhj4dVkcgDaHDxIIXH7b9mi7xXmS28PAYud7nmGesMV PgOMk+cmTAjlQtqpin1cfBq4TOfgsWY= Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05lp2104.outbound.protection.outlook.com [104.47.17.104]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-30-xm2s90y-NOiob72H5oLiXw-2; Thu, 07 Apr 2022 06:10:12 +0200 X-MC-Unique: xm2s90y-NOiob72H5oLiXw-2 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=k7Rb5Lz0tD9c457ZO2HIWxad0eX8mUxvZFCuq1woU45MPBxH/F1YaWpJLqPRLwky6XiAN0cRD1dS+0LNmxEe+h57w58UcsQMk8Co63rrmH26mvbTN1bOkVs0aHPwOuJGLymo6xX5pFbC1k6FgTtYjIzVo+jpNuzYxqh3K7W8onqoMzP/cVQR3jnTu+YctNAZAp0YurjWQP6rLzYgJUkN90t84eHQOujNDvp2SCh3PRMtWoN8C5d/+74kVLOy+ggTQWk73jnpqL1RcBs6EMYqP3um1QrCK7wpRqTc/iaX7G8dvnfzGzkeOmeIH2+r7WvvOpj3M+zlsaHS6QRyCdYIEg== 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=spYRxwGHXopx/KtRq3wZfJeYnCGHaTmVXF+xmZwfZ/Q=; b=VRTTq+fWItc1xPz0F38Ne59rMtYatSUWxtg9q62wBXvXyGbAukh0RyK7QoPUQkRylGmQ4l38bPI5PZ7cULylB62+1Z5z1Wu419o80NtD3uqC1IZujJ0jGSqYkmZC16X/m6fHQkqf0Hxd5IeAC3VG7Ff83NEYtbklgAUbR+x6VUPt6drmTSP5uexeJdz+ATYZjoTrM6Ru5RmqA99YjAxLuqBWY3TFkBbMFcovVTJKCu78B1K0I2tt5VL5sK+lawKOmWE2aolabDflOiW2x489M+c4/pQcr6PhM/92yDtTKePa7DQ4FQzIJU5B8UlKG2UHA+WVTAh1Hq+hg0mXAupjeg== 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 HE1PR0402MB3354.eurprd04.prod.outlook.com (2603:10a6:7:85::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5123.31; Thu, 7 Apr 2022 04:10:11 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::9974:fd5e:e3c0:14dc]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::9974:fd5e:e3c0:14dc%3]) with mapi id 15.20.5123.031; Thu, 7 Apr 2022 04:10:11 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v3 1/4] mptcp: add last_snd write access Date: Thu, 7 Apr 2022 12:10:08 +0800 Message-ID: <0a862e37de917adce45cb8897e09e01f53b19a58.1649304364.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYWPR01CA0010.jpnprd01.prod.outlook.com (2603:1096:400:a9::15) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 1f8b2c8a-dbc4-42b2-3b83-08da184c8231 X-MS-TrafficTypeDiagnostic: HE1PR0402MB3354: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: eimdgQJirWaT2yr4HW53YEOwHZohFpYIWTDr2HE1D74gaRAwI53dyiu2ygCxUnwQzJU0x6SXOXlEHr7anqg2QXDi0GObLC695X/TfGtTnL20T+45HDOfBxY8d6TAt4kLkKH8IOpVIcVuKGA7t7LTtXUOIEzV5dOCjikp6yClesw1E3Y06qk948t4NDoZrx6r2Au/gp32QLAiRLX5dSk23ZDbqaxZ6HetLuT1YVybfEeKCvkxUJnZMIzL8vgC+oNDae5flxRA8EQQleKYwcAGukWxYy7xme3RkJlBpuZo94XAXQ/V5BPIsNdRRqGgV1J4PS8OCBlBq39GGypEq+Oz9uHvUV1D+rIf7KhzNT/xxQW2Ra2d7PHx4f413Q0kwk94xlg/DSjEGTQxnrPJiB1KduwUiqM8KcNtmJF7u4lcfoRHjym60w90D5Rbp1MqVVZuwFSUzJU0TDhOlWvjbbT+jE1VZluyDdgjKAJALj4cKuwwOss2OTLAuCb9XdQiP43ITg0I2/kXi+5GR8nojXCKo+sBvWTaSxXVlU/NKheixM25rR6z398cRagkzc+LH5WpP4M0z46nCFdddfIsvROid1fW81gPR8k75093yQRSZTKU+LZt7u+BOwJr/x2e/6ng0hH+AX4nn72TqOmkvL0rf7sdXN0dShctSK2lbN3ERc9n3GA6L1LrUAcDCuc+Hqe3Y2o11rNJiGDyjG7JooR8RQ== 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)(6512007)(6916009)(107886003)(186003)(66946007)(8676002)(66476007)(83380400001)(2616005)(6666004)(6506007)(86362001)(316002)(4326008)(66556008)(26005)(38100700002)(2906002)(5660300002)(508600001)(8936002)(6486002)(36756003)(44832011)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?+0SjBOjE77wlUWW2Iu/3ZiaT/rGPNKXEabV5sdcoN/hLCKgjzKAH5GzsoWvk?= =?us-ascii?Q?rqLTLZ7gDg8u0bOtVyiHzPiYq1Gx5P/BbMewppWLE2aOKe/Ig3l9z5QaVUbt?= =?us-ascii?Q?bv6cYHDS7vOeKAYGN7oDjmjE15j0LywpeAJr+ijkTxmpJ29v2hGa/op+mZef?= =?us-ascii?Q?YQfyIgg84IVJAct8WDxIlR2pgxdpEtj7Nj891oDdd3vkHk9rJOf0fLv4NzIl?= =?us-ascii?Q?T3X13bGsimm9GBPFKW75n13h+J22fuLWe9Un3cvg8jH6Adb9ku0jboDG8mM5?= =?us-ascii?Q?FI/m5r16/6U3uYz1DDJUKe86Wex6Zo5GL0HALQwwJkgdMJYYBjTeGHGTZsUB?= =?us-ascii?Q?UM43LN1gdsGBJnjC0Rpj7M9TrxN8QvBld3BcfA8FYkNWQzhdmnytvsTe75LH?= =?us-ascii?Q?SkSz50VVrF65nP5C+CHr8+z2XRHH5XRW6s3LRCpfrRKo0x3LcAL0ON0n18M8?= =?us-ascii?Q?Jy5iBj44+BSJa3w0cdy34HJQNshgcPuSt4txXmIcYoh7gPKNI0gj4DLcJBWU?= =?us-ascii?Q?lchB1lg1ppDl3kRcDtGntWZ1WSRIVwzo9/Adj/nfBS1gxn9tExTd4SjM1Rni?= =?us-ascii?Q?cMZm8SBf7fmeb0G/13Qa0A5LDjrY0sNxH5WGzG2OBKyON6COjXFZXl0nZY3a?= =?us-ascii?Q?t4ZaqeMYE39CVXZ4l/ELtiXL4eTK7KCep2WLSlloTc5JFl4HqLev5inYrU4Z?= =?us-ascii?Q?o325zgvZ36gsoLBSPpIRlUVt8a/p3brGBt1X9rHNKaGjLY+9xlql6P6MvA+O?= =?us-ascii?Q?BtCUZrMfD6rGUx2ir2El/2prelcqM4PwBqr3EVUe9mB5OfrysLUg5ifFjsX/?= =?us-ascii?Q?lsCZKEObkjqmuJIy334IHH3SuumQ6J5YBW37n7fQ+DK8DV3e4739IpydMLmX?= =?us-ascii?Q?310RgiIJ2VUGyYz4095LjNSTm8a6S2mlj2BZ9IZ2Xve3snn4GdL3KGvjhFOX?= =?us-ascii?Q?2FPx3dqZ2MZIs8KWALd0KBvjSYC26U/mhnoiQwVl2kETHDjYS79Ey5hKJnw8?= =?us-ascii?Q?aS4zSKjWz+H6o1FodKeTJt6EADwzbLs06miHGq6tcmlsPXWETWxpnsatFKqp?= =?us-ascii?Q?0CCMkl2VJBZiqzxvMiVoE68+hBQtQ0nEy4lXreBT2AIS3NsRv2xUy3nuvk6j?= =?us-ascii?Q?xJN5753gmD54tD6vYxl0MzXWE0M+fRnif3f4rFNJLVD0EQdJZzYj6EebuU8A?= =?us-ascii?Q?0XjDPhe8XV/mI32+2hmYJVdQd9/R7OV1ogq1R7BLeoSKJZjTzoeXeez/u0Hr?= =?us-ascii?Q?g4nKmpvMMMGEMsQ4YLVV3UTUlae+NFBr2MEjV4/Za2AVEfhqCnD5JjAYzR2b?= =?us-ascii?Q?WQoECIhptaFogRMaVDDkqash9mfPkaCAdV+YdA/zX27v3Eshqh6ylceO7tm4?= =?us-ascii?Q?+rW4OuIwUpRXBLnEuG3o16q9iHeMmyBRKEudrmEq2remJT6d3DFcC5jqdejV?= =?us-ascii?Q?JMflbY6L4/XfDZLQLCKag4nweVafMikW6iX/xiSwB7Ug4fwjElr6PADDgbNb?= =?us-ascii?Q?Bha6+SeyBV+D5merzCV/4D73cm/AWXP205Pzq3pkyQk0rEYbGlqRiPrev8VN?= =?us-ascii?Q?t1QxZgWe0ponr6UFnjB5TunEOR4YbydCHHWP9w1aRbxv9+aPGOORUpVvTT2V?= =?us-ascii?Q?1jsbJwRI6FvohEe7/YPsZbsQWReZ1qpo64thxRHq2guSHmVuDNgFc7jw4b5r?= =?us-ascii?Q?ahoEjONY6vqsv2On4Kpq6w1nKJkrTcRTWpbXNYCNBrmVNNbJkMifOHPsL1MA?= =?us-ascii?Q?spvHEbwSlokaee5Gw+EJKPYOYD74ou4=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1f8b2c8a-dbc4-42b2-3b83-08da184c8231 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Apr 2022 04:10:11.0160 (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: kpcp5iNXE+KTQ3tIyu60Km556K3rio/XwX4H7SnMdtp5Blgrgcxr/SlY3MuPkdxCNv7te+scd2ZTN3SWVXjjRg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0402MB3354 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 5135eb6710e8..990ccd2b6e96 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 Mon May 6 08:24:26 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a05:6a06:1788:b0:4ac:5e5b:1ad1 with SMTP id y8csp1166190piq; Wed, 6 Apr 2022 21:10:30 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwQZo0IaRQrcNUP9R/z3fBVnN0FRx694LloU12E2d+a4jXi7qRy3coocKaPTnYcI6qPyfGL X-Received: by 2002:a17:906:9b8f:b0:6e0:6bcb:fc59 with SMTP id dd15-20020a1709069b8f00b006e06bcbfc59mr11452972ejc.624.1649304630755; Wed, 06 Apr 2022 21:10:30 -0700 (PDT) Return-Path: Received: from ewr.edge.kernel.org (ewr.edge.kernel.org. [2604:1380:1:3600::1]) by mx.google.com with ESMTPS id p20-20020a170906785400b006df76385e88si13160974ejm.808.2022.04.06.21.10.30 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 06 Apr 2022 21:10:30 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4645-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1:3600::1 as permitted sender) client-ip=2604:1380:1:3600::1; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.com header.s=mimecast20200619 header.b=Jp0ghtqC; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4645-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1:3600::1 as permitted sender) smtp.mailfrom="mptcp+bounces-4645-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 F30D81C0CBD for ; Thu, 7 Apr 2022 04:10:28 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id E489B20F3; Thu, 7 Apr 2022 04:10:27 +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 55E9F20EA for ; Thu, 7 Apr 2022 04:10:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1649304624; 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=hpnKGcuzoqaH1LS3bVQSUS33uAroWdU8scpM0BJorkU=; b=Jp0ghtqCZH6sCCbsAKhLiPeLc3YOXFfJnknyKB4OtqCFjOpKxoceud0HLJgFQ4sI1TZLsE SY1lfwCGnysTLlF/vUzAvXNEtkM2QhlnBH5Fa/BMK9FuC0PTVU1BLEzIazY2Tmb1d8rGWX 14PtxzWTFu+UqF6hZUONDA9XpYQyCaU= Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05lp2105.outbound.protection.outlook.com [104.47.17.105]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-40-00pG0JE7NOOCFqT5H70NGA-2; Thu, 07 Apr 2022 06:10:21 +0200 X-MC-Unique: 00pG0JE7NOOCFqT5H70NGA-2 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MmjmI/MCmrKunbdwGKx/RV8zd1Wx8jDisITZbw1wlvSzPbOPOWH/Ne7UGWOuWgXglTnPwV7B6r9WqC/qbL49jcI8mzq72ayOic7BOhbvbrNLRwYyJ5s8f6ZFD3m44AsGaSGL1RmoaFK5e0f/DaOHTFGSJnrxNZyFrXyYZjM1caxf3Cc7nDPIO3rauMwOQaYBDXFR82Xe4nfLdgc19h8g1jPr74b1DxMn33kEsWSnsURceEIXuM0vPLHwSoYkRwn3gJKRlmdA15c38+E5BzfQ0Jg6jRUzOWqvZ95s3WnLgxyWgaEdQ4o+1K19TUQizsNIsLjcHaMu9q7HQ9aecRpjig== 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=Fc82hv53r02Ko58DsKa3d/aIKLxlBza4OgNVKT+HDOE=; b=Z9Ujmk2o75dtMgRAnLkGLMAkz53IJBaqkk/k91w4RusJrRs97jzgUMjZqRyhGut5XzLOcspStLmH7ekdLcfiy/R88ecCPESvCS4fl9GQlMTx2TNvUf46cUEbzQp6xfSnE7slqhjgJzVcd3dyPWM48fYLhKcOTVuxQ3iX3tzImL2xgot6rFZfrFczHKRRFUax0VoWULmJZVlDnNlm6yp2tDrPLjGsKfq0xAoGLDA52umyRESZp1DsyMGrF4s1+7aIz2fBc1nQ2tS2xKTu3bKfexUu+L2N9CYLeF06nOgVCUx9h32OPOUT/eo+SNnnq9HtvpbXUYECv3uRqTNAMcruwA== 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 HE1PR0402MB3354.eurprd04.prod.outlook.com (2603:10a6:7:85::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5123.31; Thu, 7 Apr 2022 04:10:20 +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; Thu, 7 Apr 2022 04:10:19 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v3 2/4] mptcp: add bpf get_subflows helper Date: Thu, 7 Apr 2022 12:10:09 +0800 Message-ID: <0d8768d4ab4e8207a60d28ce5ba0d4c9c1a6c3a0.1649304364.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYCPR01CA0027.jpnprd01.prod.outlook.com (2603:1096:405:1::15) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 035eb874-5d41-4735-5769-08da184c877b X-MS-TrafficTypeDiagnostic: HE1PR0402MB3354: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: YqX8Z3Q7nxPXmeaQNdtBjHTom1HIacbEq+NVEo3mbAxeOtqgQRmQfGiXYGslcGSXJFKvwTC4LN032Iz3WGSntWMZuMX0JnCT1GP+g2pThy8VTZ399+D26N4Hwak1FcNT0psITbrTtRKVPstbK2HoxAzfz3RZPgWSfw4KTchgSSzEo+LJFKM0kW1esaT8T+JEMDyQGoABpM0+UmF2oQw4rqZTbQmjijIH1lJbDrSQViYJMNlYKqOusoFexYl90ti/ck/2sgSqZ1DEf307V9Zb67xDegVZplQsPpwjjQziI+IfqUUNhGIedrGWIV9w7vokUw7lvD3aBuGMv0GmBQ6zeOfp/1T6kadWiGPqyZQf7KJhW1YKxdEimfi9mC1Mxz8giCzXx0aCXQ9x/uCYEZ1CBeYY9gxD6E8NAs+T3guIQZOT9M84m9bR7je7+IZSnSlqvGQ9gt3I6R7ILFM5Mn+xELFQdf3SDKSGi8kyMXRs+Nwy0wabzAMi87uMQ0nb6KZfxxL+65ChuLXAS7ht0JhJoWBV+of7qRxz3i92hV1t3qMn8GexhcO2/t4A+qnhNQ1mjsVqE/rG7NxuFlBB+bWLE35ADhPqrtcxe3wfcGpQDqZ20eEQDYmfk2UN6EAczCbHHPaapd1Q3a4FVrqBRWVTO7z4ezLUgI40SzGXA/99d2X0Aebs+u2Iy5qlQ97d1ZlU 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)(6512007)(6916009)(107886003)(186003)(66946007)(8676002)(66476007)(83380400001)(2616005)(6666004)(6506007)(86362001)(316002)(4326008)(66556008)(26005)(38100700002)(2906002)(5660300002)(508600001)(8936002)(6486002)(36756003)(44832011)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?uR1UHmcEdT/1bJSHzfCC2GQZKwILV9dZmHlora0aWF4OPlvHQBnh83zPN0kz?= =?us-ascii?Q?JvQuOi2TE1jNnyl0bPpxiYb9x3Nn96tFJ4KQlW+TN6e79IGZk9ePwW3CMtJI?= =?us-ascii?Q?esw0FHdyo9RtGpC0Bochl0Q2pHit/QDKIXekddmwUvt5r9z3uyOkFTA1TZPt?= =?us-ascii?Q?6VhLAoFvVF3fJ5G2YTeXOOBBoMDvpEngnpqq2xTKbC1zucLkug1gKCOTeeHy?= =?us-ascii?Q?xzZDAJZH8I6Um4nWgD3FaNvVte/lAxlrhjLPjnjkZvnwZg7yZHrGg7DudFYt?= =?us-ascii?Q?GPBw6WhU5uMxSf7gs4MeCJx6UIJtVyM0WCZhZUfzi3TCj0sDZCB80ktX05BW?= =?us-ascii?Q?zZEzmVUNyGezzJd8cmN3OgxSzCnN+jfSCARCysFTXABPHRhUjbp+RUm3XkGh?= =?us-ascii?Q?D1qIBwlxxtydQJCVrtXRRlL4ps0HSDR+5nIBCX447PWgokh4tjHOUTyNr0Ro?= =?us-ascii?Q?1T+trQcl7Rguq77T8J3ZoVKVPPmw30xjyDxBSjzDiJ/v5Q+Lpz+sla3QVaSD?= =?us-ascii?Q?+z4lXd7E2FIjj0rHY8lXkVx8i1prhDjxI/ETQhy9bpvfB4iDL643a5aI4ks6?= =?us-ascii?Q?CluV3VvBHWQvwFF0ppQKkJryvCQJiMP1Qs0P9beeNNPwmlquwjZroihROYuh?= =?us-ascii?Q?Cmr2ogobRcUuvEAtoqYA8jFPLmfG/EspUULGvp08pfjrWd20Ga7qq9eICXol?= =?us-ascii?Q?KPL7maA2VbY+nPxpyzCqPr8VUcEUpTLYSVRlUN4H8d1V2TWbDFrV299fDMBr?= =?us-ascii?Q?8rnb8rdf1siLe79HCIKgP+x68RvS8b6NfKU0/qLOymBa68IB79oMCVQFNVpv?= =?us-ascii?Q?8KMQr0LtSvpksF1RVaXzj3y94nEjLwBTeDz7vYHXTUIOzz2Z4bm9dtWmPYpU?= =?us-ascii?Q?mn59/SSWkLUZIsg/x0GV4xgGGHGq7hhJi1GPCMpdbNn7uRhd/pnS4Qc89/Ov?= =?us-ascii?Q?mTQio2yid3mCOcUi0VddTu2nN/C33ij5hADUuTf6LfXTNj758dkHV6q9DkuN?= =?us-ascii?Q?i3MqD+iSQoqVPOvUvZdgZiovKEnK5k6dlJiCnLN73QN3SpB/dWuaQii6HAc1?= =?us-ascii?Q?hb0k/un7YLfv3QEoRemXS2d4GLLYrIb1bGrfWrumrYWIILTb6W7RYTZHQyc9?= =?us-ascii?Q?vg6Cn9eRJYboRLb8YcABSjSqwPhxCD8lQOFMjL1gQNaMPFJo6mIDojewlv/B?= =?us-ascii?Q?DNpc3YF9aQgrde0DGFWEKt+hHMtQ48F7lXC6EKrnnHA4zJQYqRrWI9Kovbhx?= =?us-ascii?Q?CtJHp6boSwxFd29pFziXBNklNitL5V6FUSWkz14KKs6L23NIVCdtBIVZlFpg?= =?us-ascii?Q?BwX31erC+XM6A4m+73awWKfJ1hagecxl8fyEQOkbB46sqYEajGJbZKNGESyR?= =?us-ascii?Q?1Xd+iXFG3Yjj9bTwvBfGAUQ/bPLQMQrKGDUJ6hxJ6GUuyChHKRNPj6aRnWx8?= =?us-ascii?Q?0aVd0zyInUCdgVD+vpuDjX55nqFYknRRc5LuaUIDImJ92NPEUyACLTnFqzVx?= =?us-ascii?Q?70uP8Kk9O/S+6HQ2xylHEwv/uCi5tHGv6bNpWp9jdTiSc+apm0+OXXbb8bo5?= =?us-ascii?Q?eFD4iRZz1v9Ym88JE7v6YsFAc4RU8rFs7RXD2rDVtJFMavsiL0ItUIXh38D8?= =?us-ascii?Q?yQIolDlTzVCxlWp7w/3LwXxiISfmN7TkCHUN4QOi3F7rlO4pxnG4K+7JEifY?= =?us-ascii?Q?97iVK77GH5lDhvyFN8Ja41RB76uQ10jWPDEuMvyIN51sttg3hlO2y0e/aVOs?= =?us-ascii?Q?mgMpBbGdqgtXyoiuYKFUD2S1zqsdmXM=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 035eb874-5d41-4735-5769-08da184c877b X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Apr 2022 04:10:19.9059 (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: lCZ8vcl5a8KaOT9oe1BX3ISSLuw8c3kEilVnicx7V2L3i1BicIxLGBgexTcHB8C9ea1HUAopIN2DPIAJ53jMwQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0402MB3354 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 60d6ee54a899..5000f9db4913 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 Mon May 6 08:24:26 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a05:6a06:1788:b0:4ac:5e5b:1ad1 with SMTP id y8csp1166217piq; Wed, 6 Apr 2022 21:10:34 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwHPpH+yG871wBzrQnska7msilxfb0iwtwtMYk3UN55kN7Gt7Z50UQhOiLjN0IMYbAOyXb+ X-Received: by 2002:a05:6a00:ac1:b0:4f1:29e4:b3a1 with SMTP id c1-20020a056a000ac100b004f129e4b3a1mr12283549pfl.63.1649304634534; Wed, 06 Apr 2022 21:10:34 -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 mu14-20020a17090b388e00b001c7c48c9fbbsi806407pjb.8.2022.04.06.21.10.34 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 06 Apr 2022 21:10:34 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4646-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="Diy/J68B"; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4646-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1000:8100::1 as permitted sender) smtp.mailfrom="mptcp+bounces-4646-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 C492A3E0FEA for ; Thu, 7 Apr 2022 04:10:33 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id CFFE820F3; Thu, 7 Apr 2022 04:10: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.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 DF8F020EA for ; Thu, 7 Apr 2022 04:10:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1649304629; 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=/N4YwAImiHCBeK+aA6penYR/roFRJ8AY3nas2FJnp0c=; b=Diy/J68B6LAWcv1pAJVCeICRUiYJ2fQISFHJLgIUlS6CWpd5Xf/eVKb0oW4KFXEifdl2VH RK5fYbDuvj5UTNifksXP6F45yz+DDsNbq2AWYFOf3MOA/aJaT9VFYArEtHzOyF6uhTcbpu d+1PaIrsd6ZhJAxgwaKsZOniv90wyMk= Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05lp2110.outbound.protection.outlook.com [104.47.17.110]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-10-oqwz0YnrOj-u8vtjxTHVrQ-1; Thu, 07 Apr 2022 06:10:28 +0200 X-MC-Unique: oqwz0YnrOj-u8vtjxTHVrQ-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=PjSANUpz1svU6e1noB63/d6hzngySer8L/BQ0eu950aHB4o5JkxumzE2spU9BemU2+aItFteKx7EDkv+8T5iLJTeCeyRFs4sYlt1o3oi4fSxYnVGXIl5yX6Rlrv7xlUSiKBu11lYXsySU+H/M2rn1t2rkSjW+s/DMgPfHTbeoX0yq+mokqEeIJ4DniHTdEg8/uKYPP+eHLkx2NifSzjisFMeL8uN0G/56RrrIU7neSPMXsIPNwtjbbFXP4ItoHFPYDIkbSAepWkeKVdgxzrT6VrmR4hBMOf9gOA/OcMJNdqfLxOVkNXtJ6cJgVLMWVkqA4XUehbIofQd0+uRrvFSRw== 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=GsbQTgKgIeCh1Syk6xyC3yZPteGRkfOkr5jPgiIaLcI=; b=j+hjhgf4B0Tsevaag9ahV7J+dVZ50NCMMYku9RABKiem7+cwqp/4/PH8YlYW/cfC9m+QqCMukhsSGv26JWaCKPftg9blo3ZUoCDSbKJ2m0h1doS8JTmQYasG2xRvnMWSY3em0CNlNWpn+xtQRJwtqsVs1zVXKDDEc6ItZG5ZqD1KFS0jV9PzpNsFhwOiNfC7ljJOrIeg3ECqom3nzQuGmZR6+Ffm4JaZrpDji/BG9VbDHm24D8NhhwIKFU6WjTlmK4TigzfS9HBBQtot76Pbk1kkqkjIZhsD6THr1kCSQMaW3vVXBNp3OGTdwc+VXxtXbLK95E8gTZzI62ETaKT9JQ== 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 HE1PR0402MB3354.eurprd04.prod.outlook.com (2603:10a6:7:85::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5123.31; Thu, 7 Apr 2022 04:10:27 +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; Thu, 7 Apr 2022 04:10:27 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v3 3/4] selftests: bpf: add bpf_rr scheduler Date: Thu, 7 Apr 2022 12:10:10 +0800 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYCPR01CA0027.jpnprd01.prod.outlook.com (2603:1096:405:1::15) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 4d4f630c-4086-40f5-f675-08da184c8c01 X-MS-TrafficTypeDiagnostic: HE1PR0402MB3354: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: pWhzqN5C8DzECu7AtTFJpEG3y7cedFApJpyiWEvsoS+quj8s7xB372+gHFfLgk/qbqgw3NsRLxZRjOdDV+7aC93yC4erV1dFbu0bDAnRHYI5ALg6YJ/7nF59ByA9Tk+vf2kqxHWo3KTQUid8lBtlqiViVJHK6FjHqMVHipstRNafWQxZi82eZ/jDBaGaNQ2BWD1zNMwOW+p1UBd3n+BCWeeK76fHoGB/+n43nYLM8v0mthvLvJz7JClcFZfnRnisLWSILrheJOaQH1P261Xn98hQb4sPVdRjk9dGhrThEhHRAOMmL6JhDhck/HMs8I5HBx4YTjz4ooGEPBVSON2L13n56Qtgl954qbjo45vXoreOQkbM/10U1JcP73EqOPKfKO8+vwYLZAevUu9r0AmyvpjVAAtYfeKZQkAoncpBPxNrLF/pcLgjZmNXLIeYv60GekdF3JuGnrFBGaXZnkGsv0YPR5/LrX589pwpvVsBwQIHbw2RGGmWzHJHKOEnnWhCIEVb6dE7/k0DfLaeW4m6l+/Lud2mf3O5fISsv8YuR2qHr2eC/gNhKAEOf6cnF6no4n01flYTn50P3rcCVtB1Smia0wI96FBZQw3V39YvgbWrxk5aXJHR8nNKXo+9WyQ+W/T8mIyPtRnuvYy4TV9Y1dWN7IXnW+AifYs/HV0KP9UuHug1TiFqIWM3qVcI0/IRMi0TpvI6cx6MQv9dqqLy5A== 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)(6512007)(6916009)(107886003)(186003)(66946007)(8676002)(66476007)(83380400001)(2616005)(6666004)(6506007)(86362001)(316002)(4326008)(66556008)(26005)(38100700002)(2906002)(5660300002)(508600001)(8936002)(6486002)(36756003)(44832011)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?GdkJxFnr6+3Jchj+PF03Nl3U4cdLyG/pf2tbfAPtSQaLnhpoCJu7Mi1/Kjld?= =?us-ascii?Q?KkQP+3Dm4WZZKwvAA60AsWiOREFNCzkAreaJ35qqa7YuQC6QedXdpLRv2G+2?= =?us-ascii?Q?R6MZVRRWwnCPrX+zWJlp7NLpUq4hIApdlAn6nwRJSRUHCAZorrpEYm3YThol?= =?us-ascii?Q?ZMs+IPixKgJo5hvJKexm9gijqXcJJsUmuo3ADGOgzygK+Cu7jKCKhH5yrVmv?= =?us-ascii?Q?3dfl1aUXtU9Tkfa0k3UyM+eJMV7ZGPpR5INGk6Nc7lRE61JCdMCu16hexBWd?= =?us-ascii?Q?574Wu9UjDkZ079OKT7j88VC6AlWp692M8sl4IOAv3nbJbLWQeTqP5pxs2mWZ?= =?us-ascii?Q?88wLQQLZ3qNOqhgHpBRcmzaghBb6mRUx5DTDLXjNYcZxtt9XFHKg44c8sF91?= =?us-ascii?Q?9u1TyNovjhnzdlaLAYwxf5VM/O0F2jeIsvRIf9N9E0V4hrfUuQG7KUFpmf5N?= =?us-ascii?Q?LPo7Apr/DqrYpO9juuF6dPYypUySocc4YDyaAkB8P7Lu0NNqgSZqWG5LihOi?= =?us-ascii?Q?PDTEqbBabK/hbRN6M2FbNOAItJetGbQIhWPLbDEkJIhXXandJyrPRqRlTR/G?= =?us-ascii?Q?kOPkT3yJXFkt1DdHczVitFKwe/onqDUVWKTkp4IK6Ye73lb9x/ggD0TXyt2E?= =?us-ascii?Q?HKhWNZn4T15EeVCgYhknTW3unpsw41D8c+ptw/TPUpMXmRpHGJafpdfgzolw?= =?us-ascii?Q?yeQ4595IOBExmnwq2U+p1NPZkpisZakzydHMrbsmfWUjEWbZMxlG70RlWqBb?= =?us-ascii?Q?WNK10pufQp7TwerNv+qBjKulCIUP/Yn/zRZS/0z7yVEXz//70YdD1seXzWIt?= =?us-ascii?Q?kZfc4OzTJ5muSZktji4oHa5lBYPlLoLoIwqKgMg96C2YQngN++1c1ww5WlIr?= =?us-ascii?Q?8sDI4nW7UPXqaEJIOglq08LCIWYpDPCgBrF+p2Nh+4qB88+qYLyeuFLS7lGe?= =?us-ascii?Q?EGgBppIaJv9ep3wRVKOO4ZeDKdhhPj0+TjEbGEmLt4DtDEtMKrMwZc6w831m?= =?us-ascii?Q?qBku8Yn1YrL5L7JWspUMFttr1K7pmpi80k8UBwYhPmRVnQOICk7NGcvhcVqB?= =?us-ascii?Q?v2X+vye0C/yoeLbzt9oyeKTFyEgsYZAmYSkCrGp2rFnHCdwftZiv9G/gpfyi?= =?us-ascii?Q?AaivbGVpoaEYaJPzva21WUrAoGpF1a4JmHZO1CfaTqXW2t09i/u5Tk2ZoClh?= =?us-ascii?Q?dxTz1gl0nRcfKRDxZLBbmcZr7eipYjT2Gh8wmgd8oftzHFjqpMrDSk8WIWUL?= =?us-ascii?Q?DR4j0hQOBUT4GizeYlszjWU36Blr+khh3uOuiBGL44oKYnkGzgyDZmbthift?= =?us-ascii?Q?PmAeg41wq1gTBP0sas1Jvs8tCw8f18wZkJUgDmgOu7fmm2/OkcCArdD/IdTB?= =?us-ascii?Q?OhJDYsdsw6mNdZdgLn5eeYYK7V3G1K43aQKbggXLVdTksOlW+B5lLRCtw9xH?= =?us-ascii?Q?b88bGrpK0rugLlO7Qp/UA5PifMVagzOlzaMyJTutcsIPYnBL4t6eeJ1dHL5k?= =?us-ascii?Q?xA5QSkC6OfpyLEVbRwloV5HFMyNsSQaBX9Yuib6CGicvx6nDjCoBst2ovsNb?= =?us-ascii?Q?hhbQeHTjLmRaNhRi/tB+O8jOemAyNsqTx9cnDgQ8NGCEdfst60wU9bhmUbND?= =?us-ascii?Q?F7JfALjTOXbdfJWI5cFtoZMH5JtAmYvTiX9MslCKJCa3x54g2AF2jd3l3oas?= =?us-ascii?Q?DfeoEoN9ZzorAyta//wHjwxyWJN0a/J11cE27PEHhxQ/6dFObFJa/gmUS3HH?= =?us-ascii?Q?TbKKUrB1R6qHW19YkrTomZtWmZZtfBQ=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4d4f630c-4086-40f5-f675-08da184c8c01 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Apr 2022 04:10:27.2491 (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: PsxkVuTfWtgeBXVqquyFN7eFDvJ3wBBunXzpbqGgxyLa19izjUPHyJ6U9W6VCg8PI9fYz9s66jkklL5idQ1OdQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0402MB3354 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 990ccd2b6e96..6acd62fbdf24 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..0e823dad4e59 --- /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) +{ + __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 Mon May 6 08:24:26 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a05:6a06:1788:b0:4ac:5e5b:1ad1 with SMTP id y8csp1166291piq; Wed, 6 Apr 2022 21:10:44 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwTqrAe19ygJkHFR44Z/vk8EW9V8AqoKZCvCHTJWJQ5mGdC/l6GJO8HdzNYlpPv+JpCEdCV X-Received: by 2002:a63:e24b:0:b0:399:1d7e:1503 with SMTP id y11-20020a63e24b000000b003991d7e1503mr9683631pgj.335.1649304644270; Wed, 06 Apr 2022 21:10:44 -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 z13-20020a63e10d000000b003822812b5f3si16821868pgh.568.2022.04.06.21.10.44 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 06 Apr 2022 21:10:44 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4647-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=Hz6iN5rU; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4647-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1000:8100::1 as permitted sender) smtp.mailfrom="mptcp+bounces-4647-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 9ED673E0FDE for ; Thu, 7 Apr 2022 04:10:43 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id B635D20F3; Thu, 7 Apr 2022 04:10:42 +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 3E75620EA for ; Thu, 7 Apr 2022 04:10:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1649304639; 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=Hz6iN5rUNzxWS+RAw/HOlMxdC217JvJrHuBVR4Y46quKwLSYNZm3I4wWA8tI18vhDjBSOi raha6UZ19EghnP4Wv1au4oYm/5mT0UZK9nHFFcMlX7jpJ4VP6bOz7qRR4ujKhHtx4uNDeI IhO39x5q5WrdCj+sZGo7c+Xfw7fbkzg= Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05lp2107.outbound.protection.outlook.com [104.47.17.107]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-18-QzVPzynPP6yFh5QTMGIiUQ-1; Thu, 07 Apr 2022 06:10:38 +0200 X-MC-Unique: QzVPzynPP6yFh5QTMGIiUQ-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JNh6zlG4b2JbNq5TDWaiSngbsFXejVQrAlE33O1435j9luJnsDn2oI7n/e7XDl2AbMJIxaKS+a62z8eYbdM6ggdQf4vmp3k23gCgVaignnadYaxA5jFvdOmZl6DGt0GDIHMdRh+9SjIMIPx9e4tVh5TrVyiWu1KfLztnc9Jk8rkJ9g4Z/v1C285pqNC46Y5aJf7uKkp9OgEe/e61AyqGL/ZSF8EJmuhh5MnqzspJ8C+1n8luWOPJ+2CWG7UZw04/EFckT/eRQvy+3/wuRmSuJC27LiH6GdRwQ1de4oInMAzJeA9otdyR78+iujM1BwT8Co0/jW5a2mfKsGuVP3dPZQ== 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=liWHwPRdGU8DDVJtlWXzwG2YYiIYgUIIRadpFmnZTS12uzikL7fqXYbOzn2+bbOuwh9IZ56G603teTaNflsunduJX9Sdbwndp5zePPNmebl/8Tb4AYY13khI5N2eH0zWVoA5WSwfGdmj1dAeCX7QY2y4x9FDVcpA9UGt53V8YxtExAKSxWMD1ku4hR0h3JkdUej21F+pfFsoqo8OE7VP7WkfzoEjgB9fwk5k/AiHGEMKAgKs+BICeAhTRScXqpFFYhaW1q9SNVcffUNgpq1crzgDDlXqjvxwNtsQx5NGW3uYBzJKYO4/htnB5Bll8/nd73sQuTzZx9D48D2StnQ9Aw== 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 HE1PR0402MB3354.eurprd04.prod.outlook.com (2603:10a6:7:85::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5123.31; Thu, 7 Apr 2022 04:10:37 +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; Thu, 7 Apr 2022 04:10:37 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v3 4/4] selftests: bpf: add bpf_rr test Date: Thu, 7 Apr 2022 12:10:11 +0800 Message-ID: <23532823f88c24c7549e4e0bc19099e91c3bba83.1649304364.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYCPR01CA0030.jpnprd01.prod.outlook.com (2603:1096:405:1::18) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 84fd21e6-e6c5-4f2d-ca93-08da184c920a X-MS-TrafficTypeDiagnostic: HE1PR0402MB3354: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: VkMOO/er7yTCr9VIsciK6ziki6JK8WHRwGTd1GVcIzZcBja7JupTABKxNN1D/HQZRchuMUc8MKlXyijirD9OZ2uuIVqORLDi3ale5DB3PpTs1puBSNRh46VO6SK9Yj+mUWirCtWtEwuyptkCW6BsnAeW0SEtembWh4UpWwkObo/yGt9hnWOZmV664Slz92uhx1WS9Ti6eo2pa2PhUIji4fcMiOCdLnexDF70RmPw0c6GkqAt5OaaOfyvxEmu0/phIZ6hKMJ5gtV95DA+6pi2IvmrmI3xGiIj12qm8v2uHo3ElKtlOoKHo8aSxLKHSq5fqoi2W7s4UmpYuOt5vWMVcUWqjz3EsXaZ7XtR/JqDqFJKQ7gGKaIYiyt7ikyP0HVZJ75mUbFicYklKrxj/HKcx/xp/p0/1+5U7qZzdqZMa0k3/8rwoT0f14OMLfGxx6Ta4ollWMIMt9dBrKMfBBuZDV8aABtQKnNJHHQ7eY0FWTZMw8Lk3fHz7kFXoh0O4nmIqFZ0UgbvyZ5o8FRQnPnLbrBrUHBdjJktAxcUquYl9xG3NmCIcoKAhOADhnasYaE6Kvuwa/xSYBk1BmBN9gDLLV4b1SRU+JmGxf0MRVdvtfayEj/HkeyuZ6Z1xR6cLH2OxPC/hUeG252iE1v0rRi6H+wSgE+rtWouCi94lGKgaxVv+HQw61VD63oplmmPYWuE 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)(6512007)(6916009)(107886003)(186003)(66946007)(8676002)(66476007)(83380400001)(2616005)(6666004)(6506007)(86362001)(316002)(4326008)(66556008)(26005)(38100700002)(2906002)(5660300002)(508600001)(8936002)(6486002)(36756003)(44832011)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?aevbrlpMluHLofK3raS6t61h68VklQjSJbiDbFjBG+5aR83lRn8Xg3aGHmxh?= =?us-ascii?Q?tr1WWELFa9UMS6YQN//uEDUtlQda7xQdqJZCH5gkZCvYzS/RJihGt7DsHxcl?= =?us-ascii?Q?2MiZbszbN5TKAjB7e8eBPp97IlFquDR4pNjPfTcdW9zLfmdHjm4F8oSGDcH4?= =?us-ascii?Q?aS9xpavqA405s4r0XOyfdp0i/qWuWd5ulqfsRhtGuGkX4ps9Y4X9vPSpwCiz?= =?us-ascii?Q?CNEGiKFc+JTqOk4JwxACy+kaMxigxwmfDaba1B9NYDsqBn18StC0ZMKkwoKe?= =?us-ascii?Q?YKU4D44YDUtTWxA9AUWMqDTzpFqMwmhTG5jbFTJCNxUSLh4cgOigOPDUwQc3?= =?us-ascii?Q?whZYJ1AhjtrJ+fozMKqIjSzcuPp4cvgCFDmGGhAxbd7wbVddAQszO+HAJ4s2?= =?us-ascii?Q?bPQkZ1JqqkSDFHOZ/bDA3VwUaad5O39NoujnvUDeZB8htvqabJeCs6sfivns?= =?us-ascii?Q?ElmTvueoMVMCZkBsvBV+uo6EynIpq6c8FWbxTiNBlgadalSOusNxzPUp+cMV?= =?us-ascii?Q?FJ/BMlLuWemW7dJR5mhnWsQ10G6FUlRj7LRJ1DUm4N7bB3kB4T3i9b3DN+hJ?= =?us-ascii?Q?w4uT6Y3+cUMzDLo8HAsW1P2lL0jaeRBwgGrjVf9DXs5QY6hVFcF9cGvx9Ap2?= =?us-ascii?Q?I+UaYQgTmftC5ySu7ohdbpFXp/hniavDNeM3HOZuEoiVrhdaNA0osjQepvYP?= =?us-ascii?Q?xnxY1p53kMHD6eN02nftugcdXkUBUF8kj9SqDD5tnCktn4WGcSihMSrRJd/W?= =?us-ascii?Q?Q7cnKvCsuMqBSXX+DkTvf7mX9RMf+6YQXccFwGq2dO9qtzR2JCunstLqCAF1?= =?us-ascii?Q?9W9HxZAKzS2sh2SFC6vi0U/YENN4GqCe54dWsWpZlhUajzHla73VRG1fbPvx?= =?us-ascii?Q?Mrxz6fdynojLE6Gi4FcJ3Z3a2Zsr2E5gIvv5sxRtZj/cB55c2NAvH8lX3wVj?= =?us-ascii?Q?oLvqUDavnuhNUa6DAr93Y2pMMG0axt1PWQaGa7oOuXDvL9T2xLnBVtNMBznh?= =?us-ascii?Q?zL8dV7DV0hN1J6SBtHPHAcMXF3eU3S2W0tgRR5/8uFfK8lIjPj1uyqNctOnc?= =?us-ascii?Q?NTMmbUw3ERjGoZrJoadf/VHOe4b5mE5RSFWMKL3AZklqLGsJs3J8PWuPIJ41?= =?us-ascii?Q?JVIsH21I+GoUiqgBM4fuw/kJ0cyJCNBcff+VlAIAcT6gAAEhffc/4rqHTL91?= =?us-ascii?Q?/zMBemEprY7gHFP697ul8upR2rtHcMjaNTgNRsnnx0K1N5hEU7Zq++GTaeeA?= =?us-ascii?Q?aJhk1/aTm2IgYE5L/zrong73M+sOaSrmiA7gSBKwAEnCWHj4soCROcTSjq2R?= =?us-ascii?Q?E1umxhdQS7p6JcAf6MOCk65QNAJVTFsmy0IUSzty0cBAjI01HEG6YzSYgMEB?= =?us-ascii?Q?Lfb9sWZxzEba+hFhJIY4fpqy+Xx5pQiVwgr5nyLoW7wErOvttoYvp8454dsb?= =?us-ascii?Q?pMXK3DAtbeED6Bk/cKiVHfUMWP+E6qxxAef0FP4H4zxOpv4vQzoQiVwCeHYJ?= =?us-ascii?Q?kUcyMBimJ/X3sSzmVv1KjGBRNIlavsdC5uI1F+yqGVT7G+yNdnwgr6QKxC8W?= =?us-ascii?Q?zoLB6EPxIvVqAWYaoq9XSaSjZ6NHAnY6BgMvLHE32T6o5/9c0nLkIS/RJwxZ?= =?us-ascii?Q?btnocTIUYl8SPlZaZdLHpC2RyQHlWkyPEmfUBwNqT/HXwib2ljDE+rkwkQxe?= =?us-ascii?Q?jkgwXWuayQnFCoanclJ6QUeMTqKlb/lYtGpVaux46hgLN5a/2xzdS71eutN3?= =?us-ascii?Q?1tjnb57pCROZdoKh8bnnfJvJaQeu0zI=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 84fd21e6-e6c5-4f2d-ca93-08da184c920a X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Apr 2022 04:10:37.6233 (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: VPC0Xb607G6dDT9X5RYSbZmXjnV6lxV7JxWqWGq5qasWYvnOm1wHtnDG9cjcD0q6qLWmvE2g9Dy78V2NFql/eg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0402MB3354 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