From nobody Mon May 6 04:08:43 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a05:6402:358d:0:0:0:0 with SMTP id y13csp1149911edc; Tue, 8 Mar 2022 05:17:20 -0800 (PST) X-Google-Smtp-Source: ABdhPJx32wayRYGLBtl7fxyFrwile30UyfuNb6WCGAqaiTgkI3xSr/vmGtBkzrVWRagtXbqbWNhm X-Received: by 2002:a5b:a4c:0:b0:628:b143:5bd with SMTP id z12-20020a5b0a4c000000b00628b14305bdmr12727790ybq.212.1646745440141; Tue, 08 Mar 2022 05:17:20 -0800 (PST) Return-Path: Received: from ewr.edge.kernel.org (ewr.edge.kernel.org. [2604:1380:1:3600::1]) by mx.google.com with ESMTPS id i3-20020a25bc03000000b00628a6d0cb9csi12931873ybh.82.2022.03.08.05.17.19 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 08 Mar 2022 05:17:20 -0800 (PST) Received-SPF: pass (google.com: domain of mptcp+bounces-4156-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=XP4TzrA8; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4156-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1:3600::1 as permitted sender) smtp.mailfrom="mptcp+bounces-4156-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 B0B3B1C0A18 for ; Tue, 8 Mar 2022 13:17:19 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 71F3748DB; Tue, 8 Mar 2022 13:17: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.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 BC86248D0 for ; Tue, 8 Mar 2022 13:17:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1646745435; 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=QczyTf36WLF6RiwPjZcEUbZdKCp4RFvJhvgbWA4SnIA=; b=XP4TzrA8Lq33PrreE2vbuQ7qzINLdxDjoRypGqjLI+4Ki/HwpGccbxT9jsbmmfSe57o6bi TEiai0DeBvlUbkUc/B5W5v1/UED8WwQGYMD6v3Ky8tJD0oXDI+M//haFCV8LYTnd4xVwbM i1cNbmFDFwXxyncoQ05C5Sh4EkmB+BY= Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-db3eur04lp2054.outbound.protection.outlook.com [104.47.12.54]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-6-EubEZLF3N5C_Tc32ygGUfw-1; Tue, 08 Mar 2022 14:17:14 +0100 X-MC-Unique: EubEZLF3N5C_Tc32ygGUfw-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Z/TRNQkplciUxn0hs7f77a7JvvCw4TXrKazL4bSttYRra+e67rH9aItT8Ojd5EAGPwUOFJAhK9HRgtZObEvR4a1Noq2AAJBkqDSlAAYi7Fb7hicA89Pl5q13acJwlZm5HiIWZIMsS1mjrm33kWHHL177N3tctfDAVA1JhAR24KE9S0frkCNJCtz7zckJETSXUpk0P8IAI+AfII9fYF0TyQ8pXprJtBnEld8j4AQH0kpoj5NS0SnXbicB/kBJYqU/sCCtNmeEZ4WZKIxYLFoLBvYOOS6nle5DI1gJMDH5hzGb4c+kIsN/SnubnZc8EG/K2ctHyG2LChGPF5SsD/Pd8A== 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=gZ0l557PIJKHti6t23iVEEtFuxpn33BRZk+pmmHRMtM=; b=iaWP54zvemo+VsaluWf4MRmwX0aEwzOIHk1XifC1GRNxRZroH3ejkTxl2yzL5RB4iRlTrkyGKm99tYkTNMpSZ464Ld2xL8DrekeoTsnL4ysH0f9sBB+vknzPmJqAKq5/ujHZmxZQdWG2kp+PsbRQqs3XK24LRo28trVUfgqwsjtv/0oSmlSRLYK69qiTN06uQr5rhKj4NverTxPHey7VPCNEdVHNmaTuD79rwGon+MO7Re3o/W014hvW3VK0St4ROJlVOrySOoSIEeB8A/mi2v0aLhaARbEV4/whx81FpmzikW/GqilpyWE7WGthmfpiHwR+crPtHSmudr2Ii5P+2Q== 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 PAXPR04MB8142.eurprd04.prod.outlook.com (2603:10a6:102:1ce::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5038.15; Tue, 8 Mar 2022 13:17:13 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05%6]) with mapi id 15.20.5038.027; Tue, 8 Mar 2022 13:17:13 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v9 1/5] Revert "selftests: bpf: add bpf_mptcp_sock() verifier tests" Date: Tue, 8 Mar 2022 21:16:54 +0800 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HK2PR02CA0185.apcprd02.prod.outlook.com (2603:1096:201:21::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: f4fd4bf6-012e-4b6c-11e0-08da0105f541 X-MS-TrafficTypeDiagnostic: PAXPR04MB8142: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: RYNV8OjlNIJYP46VvZjffSaZGAMTPcQ/4Elomr0Hv+sPMECzav8/mNEtMCwJ2PY36G1di9EQoaYvpGoCaiY8uyCS4+UfECa2Z57PaXNmRZKqm5D5qW0uZMABSICNzYOlLoM5cJohBxvYVQB1KpOiqBWntOhuMtBuyoLsRh2UHr6zQ4zeE5JaXYVuejDH/XayQIcA+cHdBFBzgKfuI1y0GzGi1GnhrO4w3W6jxd8quvF0TG6Qy1eMhC7eSL4vKvOMpIGDqTM5NPQ+LO4CabtXK7bUSNrHaN5ZJ+lxeL6mIhWvNZSiFSvDh/xfS9VlNE7k1CNu6GzFE3BFS2nvzbt9u1uWAvB8d7bwMzj6i0IUw1gtmo+YJsTpnUAj3i9Qfl7aODJwY1QVHa9XeUQURO99rNHPtmisrPl6hQt7Uju5XolzYn1R89NZCNsQobq28SWzlObjFfJkph47r1KV7O6yXFUqq+D+hywnzizkagfYTBJiwhUab/wmrFWCgqmTvPTwRhUgxd5tKfDrTFfafim4HWXXH5sH27iPcPzEYoEEZmjs4If3McVtkp1wWtQJT4cNMW4yElclfMGrwvDrfzNpn9dQ5wHzuMBCkwGgX4/9+RVDuUE1NqF0H9Y+I8bSVpPq4iSZnizaCxNDOzE0C3O0+4Tq+FOsCCMsqFBmmBXo2zL49sLiwRxg1t1bCjIg9RK6Jm531ITRVOmexDw34Yyh4Q== 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)(186003)(316002)(6916009)(2616005)(6512007)(107886003)(44832011)(36756003)(2906002)(8936002)(5660300002)(26005)(4326008)(66476007)(66556008)(508600001)(6666004)(66946007)(38100700002)(86362001)(6506007)(6486002)(83380400001)(8676002)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?pUpTbncoqpQmwvno7grTCTcUr9/uFUa3m1O7jQKnl/wmVgL3kacSZ3j7repl?= =?us-ascii?Q?HwJ9pmzacm74LsziBk0kdnPKttBH8E2dFveu/rZ6WB9PWcEfVKsYowYmLcRy?= =?us-ascii?Q?vm5fXPU88gXW+fCwVjnnKZbegtU6rrIRIJGtNKcKWQvZMQf2xurp9Se4+vGr?= =?us-ascii?Q?czPoRe+Tw15GQWMwsdMw0d+igodh03LwzkNzmdKcYZdyipUjqv6ymm6t5GyG?= =?us-ascii?Q?yGLOWTWW2hXjc/je4VFaPyzjPRUCS/8yxtT1xXBsGQSYDTZJIDU/BRBEF5cb?= =?us-ascii?Q?lqlkISO/NWeV2zwCOEJnjLdFxfL1J19huMpwsvLfgcV5Vq2zCjfQdkK8KLEa?= =?us-ascii?Q?cFX2zoRraKHAYntrqYddo1i57bolX/41BNDcPR531iUBsrnhnvM617KSbMa3?= =?us-ascii?Q?wdU63JcJR6bkoiF35h1rmgMN6pc24ahkhqf5tePJANfjlzmNRSDPYf130W1c?= =?us-ascii?Q?XHcFWswdVQmozz/gssPfbTkQJEQdXX7qA0HWRsmc/MXRWwkxbBdMRWsdDMYK?= =?us-ascii?Q?XMPbAQi1zYYjQGCZWeUfZ41HzEPL1GW3IOc7RAvxn03NaWwKvv45AcxkOFBp?= =?us-ascii?Q?7x+3tvbmAgCeqMfmJfEl6DpY+wk7wuJd2U3+WMF/SVprnTtlhijW27t41Yf5?= =?us-ascii?Q?+1FhannUzYeUyNZXdOlGoq5cMYTGhfAV8QAyuoUmJ2UY2Fh+rH1jTrffwgFS?= =?us-ascii?Q?/9AkIqDHwO7oxcHgmzRuldQ6ftszxWN9Zxgz8B34eOQqCh8Kd3nV/v9JmKdv?= =?us-ascii?Q?WpSn8v5eMpQXMD9rchnJ80QA6uGPDSR6etLHDTU5BMflsCXioo3fMcsTYeaF?= =?us-ascii?Q?xIqAZM7ZHgDYWfs/6z/b091IZ58c4iFtK04SXc0tvjkfu/iY9lh5Kq1QkrUa?= =?us-ascii?Q?+2KToxx7caxYRt624H+4I4J1PIDxuXn9ggF9IV9tTFqu/N4Owq3Zc+KzZ+qe?= =?us-ascii?Q?u6UiMPjSWUqSo/X5VuhH5leTR7X2PrG0Mf6HBPGFLcvs+avuGvjH01jrDGa4?= =?us-ascii?Q?wTL/W5LetyjRJh+zFWPHIQMzhgh+MSI9O5m/6nZaCgVaxNi+RFEvDscWIve2?= =?us-ascii?Q?icaHy+dJz8mSFgdfzUmXVVKKT0DG9Wv0SXfrm42RhOmPOzMmN6S39TNgdXf2?= =?us-ascii?Q?hoBGJnqoewOV0JPkzPRBWOFTIoZ8rcQUakb5XGhvXeVX/I4Z4xV2p4c3eEdZ?= =?us-ascii?Q?ZyORBrDaIUppQta4QMTVdgeAfm4FSjCD3TMlR7RkhGGq/CnhXWutAyBQCSJT?= =?us-ascii?Q?35v3PJ826OvUh3o/+iLfeYFXbE8MniMyOI97602oQketiI6sr72LdNxx6N+g?= =?us-ascii?Q?a7TL0PPiHcNmTFLRAy0njsJcb11CNzGRDrApulAW3dIeEGN0qnjYhWrAX+Y/?= =?us-ascii?Q?zEgKXx6L4tNQ0TtTmGDn7wdVtZBbwdnVo0jj2Iy+Gn618n4zyDlq3IuERFum?= =?us-ascii?Q?CrwYrXLh4Ts2qJoCpo2tZo77yfIjgLCc/6Z2jScZfGjzLERjZKbpMa/Hvb4K?= =?us-ascii?Q?8Qi8JrqpOOAVfXhkP7tkHlUrcsdEm4AQupgTZrEU8FvXVMGJPcqd2N+XmDON?= =?us-ascii?Q?Dfv4a2zWZwgKFvG/qa3aelu1vqq4de/tqp2vybrf6Mk2HZZtTe30Cz/yeuKL?= =?us-ascii?Q?hz+AjXNFstwquq4aOAWyczI=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: f4fd4bf6-012e-4b6c-11e0-08da0105f541 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Mar 2022 13:17:13.0774 (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: e6xcta+Z/EBBRF2xtEXUJvgDg/FFmo07MCMLvBxYbHGeHcHcJtTJgs2sVt5zrLDKoYCmSK6lchothMKvrlEjzA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR04MB8142 Content-Type: text/plain; charset="utf-8" This reverts commit f48f0143286db0d8dbded9542d9a2535533dd3b9. --- tools/testing/selftests/bpf/verifier/sock.c | 63 --------------------- 1 file changed, 63 deletions(-) diff --git a/tools/testing/selftests/bpf/verifier/sock.c b/tools/testing/se= lftests/bpf/verifier/sock.c index 1f85588091ab..8c224eac93df 100644 --- a/tools/testing/selftests/bpf/verifier/sock.c +++ b/tools/testing/selftests/bpf/verifier/sock.c @@ -731,66 +731,3 @@ .result_unpriv =3D REJECT, .errstr_unpriv =3D "unknown func", }, -{ - "bpf_mptcp_sock(skops->sk): no !skops->sk check", - .insns =3D { - BPF_LDX_MEM(BPF_DW, BPF_REG_1, BPF_REG_1, offsetof(struct bpf_sock_ops, s= k)), - BPF_EMIT_CALL(BPF_FUNC_mptcp_sock), - BPF_MOV64_IMM(BPF_REG_0, 0), - BPF_EXIT_INSN(), - }, - .prog_type =3D BPF_PROG_TYPE_SOCK_OPS, - .result =3D REJECT, - .errstr =3D "type=3Dsock_or_null expected=3Dsock_common", -}, -{ - "bpf_mptcp_sock(skops->sk): no NULL check on ret", - .insns =3D { - BPF_LDX_MEM(BPF_DW, BPF_REG_1, BPF_REG_1, offsetof(struct bpf_sock_ops, s= k)), - BPF_JMP_IMM(BPF_JNE, BPF_REG_1, 0, 2), - BPF_MOV64_IMM(BPF_REG_0, 0), - BPF_EXIT_INSN(), - BPF_EMIT_CALL(BPF_FUNC_mptcp_sock), - BPF_LDX_MEM(BPF_W, BPF_REG_0, BPF_REG_0, offsetof(struct bpf_mptcp_sock, = token)), - BPF_MOV64_IMM(BPF_REG_0, 0), - BPF_EXIT_INSN(), - }, - .prog_type =3D BPF_PROG_TYPE_SOCK_OPS, - .result =3D REJECT, - .errstr =3D "invalid mem access 'mptcp_sock_or_null'", -}, -{ - "bpf_mptcp_sock(skops->sk): msk->token", - .insns =3D { - BPF_LDX_MEM(BPF_DW, BPF_REG_1, BPF_REG_1, offsetof(struct bpf_sock_ops, s= k)), - BPF_JMP_IMM(BPF_JNE, BPF_REG_1, 0, 2), - BPF_MOV64_IMM(BPF_REG_0, 0), - BPF_EXIT_INSN(), - BPF_EMIT_CALL(BPF_FUNC_mptcp_sock), - BPF_JMP_IMM(BPF_JNE, BPF_REG_0, 0, 1), - BPF_EXIT_INSN(), - BPF_LDX_MEM(BPF_W, BPF_REG_0, BPF_REG_0, offsetof(struct bpf_mptcp_sock, = token)), - BPF_MOV64_IMM(BPF_REG_0, 0), - BPF_EXIT_INSN(), - }, - .prog_type =3D BPF_PROG_TYPE_SOCK_OPS, - .result =3D ACCEPT, -}, -{ - "bpf_mptcp_sock(skops->sk): msk->token cannot be modified", - .insns =3D { - BPF_LDX_MEM(BPF_DW, BPF_REG_1, BPF_REG_1, offsetof(struct bpf_sock_ops, s= k)), - BPF_JMP_IMM(BPF_JNE, BPF_REG_1, 0, 2), - BPF_MOV64_IMM(BPF_REG_0, 0), - BPF_EXIT_INSN(), - BPF_EMIT_CALL(BPF_FUNC_mptcp_sock), - BPF_JMP_IMM(BPF_JNE, BPF_REG_0, 0, 1), - BPF_EXIT_INSN(), - BPF_ST_MEM(BPF_W, BPF_REG_0, offsetof(struct bpf_mptcp_sock, token), 0x2a= ), - BPF_MOV64_IMM(BPF_REG_0, 0), - BPF_EXIT_INSN(), - }, - .prog_type =3D BPF_PROG_TYPE_SOCK_OPS, - .result =3D REJECT, - .errstr =3D "cannot write into mptcp_sock", -}, --=20 2.34.1 From nobody Mon May 6 04:08:43 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a05:6402:358d:0:0:0:0 with SMTP id y13csp1149983edc; Tue, 8 Mar 2022 05:17:27 -0800 (PST) X-Google-Smtp-Source: ABdhPJwDIXYOKg6MjOaWtT4hAGKmgEakAVypkFhnfelp5yqH3u1lU4oNEDE2ZdfiZA9p/2wtjwYi X-Received: by 2002:a81:718b:0:b0:2d6:16d6:8e54 with SMTP id m133-20020a81718b000000b002d616d68e54mr12980964ywc.377.1646745447742; Tue, 08 Mar 2022 05:17:27 -0800 (PST) Return-Path: Received: from ewr.edge.kernel.org (ewr.edge.kernel.org. [2604:1380:1:3600::1]) by mx.google.com with ESMTPS id k22-20020a25c616000000b00628ad500718si11036377ybf.546.2022.03.08.05.17.27 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 08 Mar 2022 05:17:27 -0800 (PST) Received-SPF: pass (google.com: domain of mptcp+bounces-4157-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=czqAgxhz; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4157-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1:3600::1 as permitted sender) smtp.mailfrom="mptcp+bounces-4157-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 41C4D1C0A47 for ; Tue, 8 Mar 2022 13:17:27 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id AC2EF48DB; Tue, 8 Mar 2022 13:17:25 +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 85A8348D0 for ; Tue, 8 Mar 2022 13:17:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1646745441; 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=z0MPY+WSQNwWOyp5VgV0CTw/sHdvnUiJvFilkADeg70=; b=czqAgxhzDPcRVAQUjYUjaont1vIsx1ezD/wywgZ/Nev1WyD+gA34zRXWtR5TCsr1ely7+C nrIOo2bN6U5Zf3ib6B6hVD5OjjXGCk8/wJ3CBKf88o/FPq2ceYVf4gna0aLxybUdiubD6K /xTk0qEXow+BOQLUgbh0j1vdu1cIaTQ= Received: from EUR03-VE1-obe.outbound.protection.outlook.com (mail-ve1eur03lp2053.outbound.protection.outlook.com [104.47.9.53]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-23-H5s5UxB4Mjm5ShU0166EMQ-1; Tue, 08 Mar 2022 14:17:20 +0100 X-MC-Unique: H5s5UxB4Mjm5ShU0166EMQ-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=UNHLOu3o1cOd0EsSc2VcSPE+pU1tIluq95LHovIPdorYE/SZRiwvWQ22zMNFRFu9SSSXBTRWznziog21yk3OBjd0LrMEwuqBjgpqjAnC7jrFpa3xmMs8hfvs0Dg1K5xhAhsQnDQfKkWCmtxQDk1g5M/8jv7ltz8ZNrqoCJUBVL20yxK534wjcNETGekTb7h4ljDV+mP+Zws+96H7SU6wdRlrWXF+CZXpd1ePtVJqTO0E7X9wYD/oKZEPC7ri5anMtNy+RbOdMWWJwMk1O+u3ZjtS2VG5fqmvdWw0IPrWj/GV/ONwaPFlfZjRlxvUp7UyRyl3cxpwI/biUUYW+hkFfA== 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=3V/CJY3nSxaI4fRpLm5g7E3duE0JKWPCKp+lNt1FwUQ=; b=N57a5DdGWjL4Hc1b6w0ktDQjIPqjT0Sp6HvesKuvFzYFuaP+9zpZMguJ828ioH78eWQstWgewmw1Q57730HTNnjCMU9lRlUUlFaj382Ed8ANeFRSFl9DJvRvfpRSz7qy7mjrCBwg+JE/tHm9UPU/Ts+FsCA3mpPf9GjG9bvIRLiKr2c29xNxK1PK7OqkXYS6kGdB0/2xi+aUWEiRsNoS6uN1qOY5j8bgLUu6oaVqLSEMeYTuK/jIHEJSqvHkliYt/ZMplxJwAhJLkcvc635KlNbb3VCR9BMYpoyoXFuxzG8vOjt+ffzoSIVbFB3uTSXEpLI62DM5J2g3ApgDtjVwkg== 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 PAXPR04MB8142.eurprd04.prod.outlook.com (2603:10a6:102:1ce::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5038.15; Tue, 8 Mar 2022 13:17:19 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05%6]) with mapi id 15.20.5038.027; Tue, 8 Mar 2022 13:17:19 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v9 2/5] Revert "bpf: add 'bpf_mptcp_sock' structure and helper" Date: Tue, 8 Mar 2022 21:16:55 +0800 Message-ID: <5d0f38a0fb220bae4f170f2debf5a8b8a031ba7e.1646745228.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HKAPR04CA0007.apcprd04.prod.outlook.com (2603:1096:203:d0::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: 4a76dadb-8c8a-4ad5-7ff7-08da0105f931 X-MS-TrafficTypeDiagnostic: PAXPR04MB8142: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: pHiuaZF45Nhor6pDzszMbKB7BXd6pSIuP77IsXiOHuVsWCw9rY0PJA3140fKBQT3EH+PEqLGKaLF211NTb6qzC6L7wFYRfcbVBXagbOGlsCTlH+XM5VqSCQEqZkcubs8HQ3xCU/1GHZROAj4NpFhwomynqE4d89vx8GfoF8qVNJgXckiMPvIGSK8d2carjgpzUxGuZ1i1DZXUqUvvvece2VYs3AuHn3pdSIkfzJGoVPV8BjdHS5jVwcn21JsgFS/CU33mvv9VvYyuFL9/dzlgcERV7Ze5JyszjcX6Xs6BkQk+Uloo5gnCrol5/iOCRKYCqSA3kcbz2JGhEp9BXHjH205/1Z3EJkw1f6+148/Q8UKYuRRBZqdi9r/ZZxUGo/6qaWD6YIFNCgIPbrUltDUw81QXGQq40xigG1itnpwtdgnXrIPwgwId5sPvxSu+fRfW+rpAXmQOsfQ8BheagFfm+n60LMK7AdyI9TNI2rUo80/jhqOnWZoj/REwZ4/VjUBLkHky8oZ3uRkAeotNeDwLr/XHu9JT/dD6l7fNAWs1j0Z4a8CAY4to9jrmbt0iozz+L+E1nR2jE7unv/0QJOTJUhNfBuRphQ9QlYxAn8PRXvj9sSBfbX8o1TFGsDFGN0VHVyuJuKJ1ys25WCpt2ROY0i+xIW/3LJrn/RlVEOC+gEB1gqyl1udfvVH4A3lyIy/gH4NaaY3juwGcqmGr+231A== 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)(186003)(316002)(6916009)(2616005)(6512007)(107886003)(44832011)(30864003)(36756003)(2906002)(8936002)(5660300002)(26005)(4326008)(66476007)(66556008)(508600001)(6666004)(66946007)(38100700002)(86362001)(6506007)(6486002)(83380400001)(8676002)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?SGrGksL6Pv5Eg6XhwKM57bCxgUe05WilIl9e24IiznZfmQAhS+uvziChsT3P?= =?us-ascii?Q?ZLBpQzfF7P9btIQzdAqFw1cFo6kVGCt8WU8IeBeuYlQDJiqxCWXcLRetJWH8?= =?us-ascii?Q?lCKLyCJWGIOCh1MdHu2noyGfZ7TSyvkLZK7ihOm4ZcstPFMMjrDzRUBSpZSP?= =?us-ascii?Q?YNU2p6IfOe911Pkx30nsQC/Z4m7ZvL+aTvnbZGVFm5i/GCDnjMqtUpyCgFv+?= =?us-ascii?Q?vXVuwznI51TKN947w4okxFqwKrHTqQsqmhPPD6iBbXm2UIHiMmIhGOmuXK2q?= =?us-ascii?Q?wQgFkO37M+r2mA27kjKp8rGDba1fbRIkz9Q9yQxTanYiEUGKb9LIxzexBsvt?= =?us-ascii?Q?pBKvmdlq4YZgRrOPXW+XpmKTHuIkoYhy/DDDfaet7wa0hfPPuwaNzkSm2vVz?= =?us-ascii?Q?T2gyWRf4TIdNn/H2FfMMAy1w5T4C7WSyo6OQVL8hNrZcKBC8bUe8SBlmgcTC?= =?us-ascii?Q?isY61RBY8ndy4PVh/pGvB+NLJUHcXhkiV6qh8Iyun9VA7o+aILSNTmx6Fvui?= =?us-ascii?Q?CmlB+Vo8fS210LcC6qMXYKiAigglhFkQEVDqU18eQRLUiYzYyK4IlMOqOrXc?= =?us-ascii?Q?WCY4wjyAlLTj4j1gLwcH1OrMX/i9wDittgJG2NDOpZEJpiS33n9hlFUR8iyh?= =?us-ascii?Q?ct4+Yazak86A3MoNsMzWTYEZQCMUE9wMK64kueU+PoBXm2FkA7HOk+GupRQO?= =?us-ascii?Q?ycHasRQ8SUZ6ZlJWFZx0vfN+gLmA44y+v6c4Nn/hkmtHKGSfIgy3Ez5EmO1k?= =?us-ascii?Q?Xcd8CWCGbUs4ulnFWJyQWzePq8GhPFmx3Q0IGNBRMuCvZ82OneBsV7egpMeC?= =?us-ascii?Q?g+J1q5SSVA9dXcFaomh22iYk4CREZyAqAXYSJJCC0/cqN+ZTPaGEcVOYkuZ5?= =?us-ascii?Q?eMW1XenMv7b16qt1RYiSmCZXVrYb+KiAH8f+EA0trliMIZLR9Y0FIxs5Lxvn?= =?us-ascii?Q?gRVUHiPBoiTcIAzhI7hhnGlDFq8XTJCpv83ORGvLa1gAK3BvIV029qFm/tC0?= =?us-ascii?Q?ccmd2otbFkK9WwOaj/iWf0w55EqXQXq+0aInPydwtm8KcM7GQzPwDRU3JtQn?= =?us-ascii?Q?jv9SW1t/9L/O3SV7SQnDfmRxi9kN+3aXHNgFkQoum7UEM2eDzCSXYH9bejHK?= =?us-ascii?Q?9WIJGKTj+0sGvSul/L95ZL5rxx732XwIIsNmiPIBmuqzcdKmBOW8vS4iAY6q?= =?us-ascii?Q?Fq6DxiYkftKx5t2fMWeognJx4wIDATKTHj4kobnByUhRFBbVb7UQOVUs2mjN?= =?us-ascii?Q?98H+4i4np+IVB/GioTFkXNV/azH0SgB2hiEbT0KNoYc/sgcNFkj8JfraNdim?= =?us-ascii?Q?VzcKJmClIBDA7AXjPFxwClJogpFXEVqUUAnh7wZJzBx3sogAPqf+GgMFDaG5?= =?us-ascii?Q?KCKV2Fk+9EnW4vlJAmpESq/fFhS0JgPt7JHwNvVUwo7ZBvJjfYVeK4Dif4Ba?= =?us-ascii?Q?ciDC3mDMJ8bTeEbtxa28AesX2yfYFpn0a7MzFgV2sHfZWlYsC/JyDkzTyEwf?= =?us-ascii?Q?vLq1/O2mpTFXOdto9lbHl01VgUS9J69W1Dag72W3VAuoEdMqsC/UCRzXaoAo?= =?us-ascii?Q?P59s9R/SVOtyMZjoA2oq/bI0LkVuAEqYFnlJh+H1LOj4EmM/rvwQ45/PpmYn?= =?us-ascii?Q?73i0kYjdq1jHkbAofl27V2I=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4a76dadb-8c8a-4ad5-7ff7-08da0105f931 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Mar 2022 13:17:19.5456 (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: 5Ru7McW9oy6gkiTocKkI0IEnJScMBMiDxtGXGtDrBeSGw/uqlsQxLscRoQ8r3RO09i4e2/DIjo3geoQNWW7Fcw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR04MB8142 Content-Type: text/plain; charset="utf-8" This reverts commit 2ee22ce38ed4c7a416ce887eb6379aaf157634f9. --- include/linux/bpf.h | 34 ---------------- include/uapi/linux/bpf.h | 13 ------ kernel/bpf/verifier.c | 20 ---------- net/core/filter.c | 4 -- net/mptcp/Makefile | 2 - net/mptcp/bpf.c | 72 ---------------------------------- scripts/bpf_doc.py | 2 - tools/include/uapi/linux/bpf.h | 13 ------ 8 files changed, 160 deletions(-) delete mode 100644 net/mptcp/bpf.c diff --git a/include/linux/bpf.h b/include/linux/bpf.h index 5a17c1e3a6bc..f19abc59b6cd 100644 --- a/include/linux/bpf.h +++ b/include/linux/bpf.h @@ -407,7 +407,6 @@ enum bpf_return_type { RET_PTR_TO_MAP_VALUE, /* returns a pointer to map elem value */ RET_PTR_TO_SOCKET, /* returns a pointer to a socket */ RET_PTR_TO_TCP_SOCK, /* returns a pointer to a tcp_sock */ - RET_PTR_TO_MPTCP_SOCK, /* returns a pointer to mptcp_sock */ RET_PTR_TO_SOCK_COMMON, /* returns a pointer to a sock_common */ RET_PTR_TO_ALLOC_MEM, /* returns a pointer to dynamically allocated memo= ry */ RET_PTR_TO_MEM_OR_BTF_ID, /* returns a pointer to a valid memory or a btf= _id */ @@ -418,7 +417,6 @@ enum bpf_return_type { RET_PTR_TO_MAP_VALUE_OR_NULL =3D PTR_MAYBE_NULL | RET_PTR_TO_MAP_VALUE, RET_PTR_TO_SOCKET_OR_NULL =3D PTR_MAYBE_NULL | RET_PTR_TO_SOCKET, RET_PTR_TO_TCP_SOCK_OR_NULL =3D PTR_MAYBE_NULL | RET_PTR_TO_TCP_SOCK, - RET_PTR_TO_MPTCP_SOCK_OR_NULL =3D PTR_MAYBE_NULL | RET_PTR_TO_MPTCP_SOCK, RET_PTR_TO_SOCK_COMMON_OR_NULL =3D PTR_MAYBE_NULL | RET_PTR_TO_SOCK_COMMO= N, RET_PTR_TO_ALLOC_MEM_OR_NULL =3D PTR_MAYBE_NULL | MEM_ALLOC | RET_PTR_TO_= ALLOC_MEM, RET_PTR_TO_BTF_ID_OR_NULL =3D PTR_MAYBE_NULL | RET_PTR_TO_BTF_ID, @@ -499,7 +497,6 @@ enum bpf_reg_type { PTR_TO_SOCKET, /* reg points to struct bpf_sock */ PTR_TO_SOCK_COMMON, /* reg points to sock_common */ PTR_TO_TCP_SOCK, /* reg points to struct tcp_sock */ - PTR_TO_MPTCP_SOCK, /* reg points to struct mptcp_sock */ PTR_TO_TP_BUFFER, /* reg points to a writable raw tp's buffer */ PTR_TO_XDP_SOCK, /* reg points to struct xdp_sock */ /* PTR_TO_BTF_ID points to a kernel struct that does not need @@ -528,7 +525,6 @@ enum bpf_reg_type { PTR_TO_SOCKET_OR_NULL =3D PTR_MAYBE_NULL | PTR_TO_SOCKET, PTR_TO_SOCK_COMMON_OR_NULL =3D PTR_MAYBE_NULL | PTR_TO_SOCK_COMMON, PTR_TO_TCP_SOCK_OR_NULL =3D PTR_MAYBE_NULL | PTR_TO_TCP_SOCK, - PTR_TO_MPTCP_SOCK_OR_NULL =3D PTR_MAYBE_NULL | PTR_TO_MPTCP_SOCK, PTR_TO_BTF_ID_OR_NULL =3D PTR_MAYBE_NULL | PTR_TO_BTF_ID, =20 /* This must be the last entry. Its purpose is to ensure the enum is @@ -2221,7 +2217,6 @@ extern const struct bpf_func_proto bpf_get_local_stor= age_proto; extern const struct bpf_func_proto bpf_strtol_proto; extern const struct bpf_func_proto bpf_strtoul_proto; extern const struct bpf_func_proto bpf_tcp_sock_proto; -extern const struct bpf_func_proto bpf_mptcp_sock_proto; extern const struct bpf_func_proto bpf_jiffies64_proto; extern const struct bpf_func_proto bpf_get_ns_current_pid_tgid_proto; extern const struct bpf_func_proto bpf_event_output_data_proto; @@ -2309,7 +2304,6 @@ struct sk_reuseport_kern { u32 reuseport_id; bool bind_inany; }; - bool bpf_tcp_sock_is_valid_access(int off, int size, enum bpf_access_type = type, struct bpf_insn_access_aux *info); =20 @@ -2360,34 +2354,6 @@ static inline u32 bpf_xdp_sock_convert_ctx_access(en= um bpf_access_type type, } #endif /* CONFIG_INET */ =20 -#ifdef CONFIG_MPTCP -bool bpf_mptcp_sock_is_valid_access(int off, int size, - enum bpf_access_type type, - struct bpf_insn_access_aux *info); - -u32 bpf_mptcp_sock_convert_ctx_access(enum bpf_access_type type, - const struct bpf_insn *si, - struct bpf_insn *insn_buf, - struct bpf_prog *prog, - u32 *target_size); -#else /* CONFIG_MPTCP */ -static inline bool bpf_mptcp_sock_is_valid_access(int off, int size, - enum bpf_access_type type, - struct bpf_insn_access_aux *info) -{ - return false; -} - -static inline u32 bpf_mptcp_sock_convert_ctx_access(enum bpf_access_type t= ype, - const struct bpf_insn *si, - struct bpf_insn *insn_buf, - struct bpf_prog *prog, - u32 *target_size) -{ - return 0; -} -#endif /* CONFIG_MPTCP */ - enum bpf_text_poke_type { BPF_MOD_CALL, BPF_MOD_JUMP, diff --git a/include/uapi/linux/bpf.h b/include/uapi/linux/bpf.h index f2e5c7bd4f10..3f6dcdf4b915 100644 --- a/include/uapi/linux/bpf.h +++ b/include/uapi/linux/bpf.h @@ -5086,14 +5086,6 @@ union bpf_attr { * Return * 0 on success, or a negative error in case of failure. On error * *dst* buffer is zeroed out. - * - * struct bpf_mptcp_sock *bpf_mptcp_sock(struct bpf_sock *sk) - * Description - * This helper gets a **struct bpf_mptcp_sock** pointer from a - * **struct bpf_sock** pointer. - * Return - * A **struct bpf_mptcp_sock** pointer on success, or **NULL** in - * case of failure. */ #define __BPF_FUNC_MAPPER(FN) \ FN(unspec), \ @@ -5288,7 +5280,6 @@ union bpf_attr { FN(xdp_load_bytes), \ FN(xdp_store_bytes), \ FN(copy_from_user_task), \ - FN(mptcp_sock), \ /* */ =20 /* integer value in 'imm' field of BPF_CALL instruction selects which help= er @@ -5637,10 +5628,6 @@ struct bpf_tcp_sock { __u32 is_mptcp; /* Is MPTCP subflow? */ }; =20 -struct bpf_mptcp_sock { - __u32 token; /* msk token */ -}; - struct bpf_sock_tuple { union { struct { diff --git a/kernel/bpf/verifier.c b/kernel/bpf/verifier.c index 1bb1b5d0419d..d7473fee247c 100644 --- a/kernel/bpf/verifier.c +++ b/kernel/bpf/verifier.c @@ -430,7 +430,6 @@ static bool type_is_sk_pointer(enum bpf_reg_type type) return type =3D=3D PTR_TO_SOCKET || type =3D=3D PTR_TO_SOCK_COMMON || type =3D=3D PTR_TO_TCP_SOCK || - type =3D=3D PTR_TO_MPTCP_SOCK || type =3D=3D PTR_TO_XDP_SOCK; } =20 @@ -438,7 +437,6 @@ static bool reg_type_not_null(enum bpf_reg_type type) { return type =3D=3D PTR_TO_SOCKET || type =3D=3D PTR_TO_TCP_SOCK || - type =3D=3D PTR_TO_MPTCP_SOCK || type =3D=3D PTR_TO_MAP_VALUE || type =3D=3D PTR_TO_MAP_KEY || type =3D=3D PTR_TO_SOCK_COMMON; @@ -454,7 +452,6 @@ static bool reg_type_may_be_refcounted_or_null(enum bpf= _reg_type type) { return base_type(type) =3D=3D PTR_TO_SOCKET || base_type(type) =3D=3D PTR_TO_TCP_SOCK || - base_type(type) =3D=3D PTR_TO_MPTCP_SOCK || base_type(type) =3D=3D PTR_TO_MEM || base_type(type) =3D=3D PTR_TO_BTF_ID; } @@ -554,7 +551,6 @@ static const char *reg_type_str(struct bpf_verifier_env= *env, [PTR_TO_SOCKET] =3D "sock", [PTR_TO_SOCK_COMMON] =3D "sock_common", [PTR_TO_TCP_SOCK] =3D "tcp_sock", - [PTR_TO_MPTCP_SOCK] =3D "mptcp_sock", [PTR_TO_TP_BUFFER] =3D "tp_buffer", [PTR_TO_XDP_SOCK] =3D "xdp_sock", [PTR_TO_BTF_ID] =3D "ptr_", @@ -2778,7 +2774,6 @@ static bool is_spillable_regtype(enum bpf_reg_type ty= pe) case PTR_TO_SOCKET: case PTR_TO_SOCK_COMMON: case PTR_TO_TCP_SOCK: - case PTR_TO_MPTCP_SOCK: case PTR_TO_XDP_SOCK: case PTR_TO_BTF_ID: case PTR_TO_BUF: @@ -3671,9 +3666,6 @@ static int check_sock_access(struct bpf_verifier_env = *env, int insn_idx, case PTR_TO_TCP_SOCK: valid =3D bpf_tcp_sock_is_valid_access(off, size, t, &info); break; - case PTR_TO_MPTCP_SOCK: - valid =3D bpf_mptcp_sock_is_valid_access(off, size, t, &info); - break; case PTR_TO_XDP_SOCK: valid =3D bpf_xdp_sock_is_valid_access(off, size, t, &info); break; @@ -3830,9 +3822,6 @@ static int check_ptr_alignment(struct bpf_verifier_en= v *env, case PTR_TO_TCP_SOCK: pointer_desc =3D "tcp_sock "; break; - case PTR_TO_MPTCP_SOCK: - pointer_desc =3D "mptcp_sock "; - break; case PTR_TO_XDP_SOCK: pointer_desc =3D "xdp_sock "; break; @@ -6762,9 +6751,6 @@ static int check_helper_call(struct bpf_verifier_env = *env, struct bpf_insn *insn } else if (base_type(ret_type) =3D=3D RET_PTR_TO_TCP_SOCK) { mark_reg_known_zero(env, regs, BPF_REG_0); regs[BPF_REG_0].type =3D PTR_TO_TCP_SOCK | ret_flag; - } else if (base_type(ret_type) =3D=3D RET_PTR_TO_MPTCP_SOCK) { - mark_reg_known_zero(env, regs, BPF_REG_0); - regs[BPF_REG_0].type =3D PTR_TO_MPTCP_SOCK | ret_flag; } else if (base_type(ret_type) =3D=3D RET_PTR_TO_ALLOC_MEM) { mark_reg_known_zero(env, regs, BPF_REG_0); regs[BPF_REG_0].type =3D PTR_TO_MEM | ret_flag; @@ -7479,7 +7465,6 @@ static int adjust_ptr_min_max_vals(struct bpf_verifie= r_env *env, case PTR_TO_SOCKET: case PTR_TO_SOCK_COMMON: case PTR_TO_TCP_SOCK: - case PTR_TO_MPTCP_SOCK: case PTR_TO_XDP_SOCK: verbose(env, "R%d pointer arithmetic on %s prohibited\n", dst, reg_type_str(env, ptr_reg->type)); @@ -10854,7 +10839,6 @@ static bool regsafe(struct bpf_verifier_env *env, s= truct bpf_reg_state *rold, case PTR_TO_SOCKET: case PTR_TO_SOCK_COMMON: case PTR_TO_TCP_SOCK: - case PTR_TO_MPTCP_SOCK: case PTR_TO_XDP_SOCK: /* Only valid matches are exact, which memcmp() above * would have accepted @@ -11385,7 +11369,6 @@ static bool reg_type_mismatch_ok(enum bpf_reg_type = type) case PTR_TO_SOCKET: case PTR_TO_SOCK_COMMON: case PTR_TO_TCP_SOCK: - case PTR_TO_MPTCP_SOCK: case PTR_TO_XDP_SOCK: case PTR_TO_BTF_ID: return false; @@ -12810,9 +12793,6 @@ static int convert_ctx_accesses(struct bpf_verifier= _env *env) case PTR_TO_TCP_SOCK: convert_ctx_access =3D bpf_tcp_sock_convert_ctx_access; break; - case PTR_TO_MPTCP_SOCK: - convert_ctx_access =3D bpf_mptcp_sock_convert_ctx_access; - break; case PTR_TO_XDP_SOCK: convert_ctx_access =3D bpf_xdp_sock_convert_ctx_access; break; diff --git a/net/core/filter.c b/net/core/filter.c index a07b28997ad3..f64454722a7e 100644 --- a/net/core/filter.c +++ b/net/core/filter.c @@ -7850,10 +7850,6 @@ sock_ops_func_proto(enum bpf_func_id func_id, const = struct bpf_prog *prog) case BPF_FUNC_tcp_sock: return &bpf_tcp_sock_proto; #endif /* CONFIG_INET */ -#ifdef CONFIG_MPTCP - case BPF_FUNC_mptcp_sock: - return &bpf_mptcp_sock_proto; -#endif /* CONFIG_MPTCP */ default: return bpf_sk_base_func_proto(func_id); } diff --git a/net/mptcp/Makefile b/net/mptcp/Makefile index 0a0608b6b4b4..48a9d978aaeb 100644 --- a/net/mptcp/Makefile +++ b/net/mptcp/Makefile @@ -11,5 +11,3 @@ obj-$(CONFIG_INET_MPTCP_DIAG) +=3D mptcp_diag.o mptcp_crypto_test-objs :=3D crypto_test.o mptcp_token_test-objs :=3D token_test.o obj-$(CONFIG_MPTCP_KUNIT_TEST) +=3D mptcp_crypto_test.o mptcp_token_test.o - -obj-$(CONFIG_BPF) +=3D bpf.o diff --git a/net/mptcp/bpf.c b/net/mptcp/bpf.c deleted file mode 100644 index 5332469fbb28..000000000000 --- a/net/mptcp/bpf.c +++ /dev/null @@ -1,72 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0 -/* Multipath TCP - * - * Copyright (c) 2020, Tessares SA. - * - * Author: Nicolas Rybowski - * - */ - -#include - -#include "protocol.h" - -bool bpf_mptcp_sock_is_valid_access(int off, int size, enum bpf_access_typ= e type, - struct bpf_insn_access_aux *info) -{ - if (off < 0 || off >=3D offsetofend(struct bpf_mptcp_sock, token)) - return false; - - if (off % size !=3D 0) - return false; - - switch (off) { - default: - return size =3D=3D sizeof(__u32); - } -} - -u32 bpf_mptcp_sock_convert_ctx_access(enum bpf_access_type type, - const struct bpf_insn *si, - struct bpf_insn *insn_buf, - struct bpf_prog *prog, u32 *target_size) -{ - struct bpf_insn *insn =3D insn_buf; - -#define BPF_MPTCP_SOCK_GET_COMMON(FIELD) \ - do { \ - BUILD_BUG_ON(sizeof_field(struct mptcp_sock, FIELD) > \ - sizeof_field(struct bpf_mptcp_sock, FIELD)); \ - *insn++ =3D BPF_LDX_MEM(BPF_FIELD_SIZEOF(struct mptcp_sock, FIELD), \ - si->dst_reg, si->src_reg, \ - offsetof(struct mptcp_sock, FIELD)); \ - } while (0) - - if (insn > insn_buf) - return insn - insn_buf; - - switch (si->off) { - case offsetof(struct bpf_mptcp_sock, token): - BPF_MPTCP_SOCK_GET_COMMON(token); - break; - } - - return insn - insn_buf; -} - -BPF_CALL_1(bpf_mptcp_sock, struct sock *, sk) -{ - if (sk_fullsock(sk) && sk->sk_protocol =3D=3D IPPROTO_TCP && sk_is_mptcp(= sk)) { - struct mptcp_subflow_context *mptcp_sfc =3D mptcp_subflow_ctx(sk); - - return (unsigned long)mptcp_sfc->conn; - } - return (unsigned long)NULL; -} - -const struct bpf_func_proto bpf_mptcp_sock_proto =3D { - .func =3D bpf_mptcp_sock, - .gpl_only =3D false, - .ret_type =3D RET_PTR_TO_MPTCP_SOCK_OR_NULL, - .arg1_type =3D ARG_PTR_TO_SOCK_COMMON, -}; diff --git a/scripts/bpf_doc.py b/scripts/bpf_doc.py index 6ef5c44a2a9e..096625242475 100755 --- a/scripts/bpf_doc.py +++ b/scripts/bpf_doc.py @@ -623,7 +623,6 @@ class PrinterHelpers(Printer): 'struct udp6_sock', 'struct unix_sock', 'struct task_struct', - 'struct bpf_mptcp_sock', =20 'struct __sk_buff', 'struct sk_msg_md', @@ -683,7 +682,6 @@ class PrinterHelpers(Printer): 'struct socket', 'struct file', 'struct bpf_timer', - 'struct bpf_mptcp_sock', } mapped_types =3D { 'u8': '__u8', diff --git a/tools/include/uapi/linux/bpf.h b/tools/include/uapi/linux/bpf.h index f2e5c7bd4f10..3f6dcdf4b915 100644 --- a/tools/include/uapi/linux/bpf.h +++ b/tools/include/uapi/linux/bpf.h @@ -5086,14 +5086,6 @@ union bpf_attr { * Return * 0 on success, or a negative error in case of failure. On error * *dst* buffer is zeroed out. - * - * struct bpf_mptcp_sock *bpf_mptcp_sock(struct bpf_sock *sk) - * Description - * This helper gets a **struct bpf_mptcp_sock** pointer from a - * **struct bpf_sock** pointer. - * Return - * A **struct bpf_mptcp_sock** pointer on success, or **NULL** in - * case of failure. */ #define __BPF_FUNC_MAPPER(FN) \ FN(unspec), \ @@ -5288,7 +5280,6 @@ union bpf_attr { FN(xdp_load_bytes), \ FN(xdp_store_bytes), \ FN(copy_from_user_task), \ - FN(mptcp_sock), \ /* */ =20 /* integer value in 'imm' field of BPF_CALL instruction selects which help= er @@ -5637,10 +5628,6 @@ struct bpf_tcp_sock { __u32 is_mptcp; /* Is MPTCP subflow? */ }; =20 -struct bpf_mptcp_sock { - __u32 token; /* msk token */ -}; - struct bpf_sock_tuple { union { struct { --=20 2.34.1 From nobody Mon May 6 04:08:43 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a05:6402:358d:0:0:0:0 with SMTP id y13csp1150049edc; Tue, 8 Mar 2022 05:17:33 -0800 (PST) X-Google-Smtp-Source: ABdhPJwHUs0k565mJ+srrwT3Q1G59C9i625LyzImChDVlI/yvnKAjiUXZM2zhUEmfHtRa5uCzPwm X-Received: by 2002:a17:90a:a382:b0:1bc:202a:28e8 with SMTP id x2-20020a17090aa38200b001bc202a28e8mr4630526pjp.131.1646745453420; Tue, 08 Mar 2022 05:17:33 -0800 (PST) Return-Path: Received: from sjc.edge.kernel.org (sjc.edge.kernel.org. [147.75.69.165]) by mx.google.com with ESMTPS id c1-20020a6566c1000000b00378dd95c40fsi15730796pgw.333.2022.03.08.05.17.33 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 08 Mar 2022 05:17:33 -0800 (PST) Received-SPF: pass (google.com: domain of mptcp+bounces-4158-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.69.165 as permitted sender) client-ip=147.75.69.165; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.com header.s=mimecast20200619 header.b=Ra1JXUTw; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4158-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.69.165 as permitted sender) smtp.mailfrom="mptcp+bounces-4158-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 DDAA93E0E7A for ; Tue, 8 Mar 2022 13:17:32 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id EC95948DB; Tue, 8 Mar 2022 13:17:31 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.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 1E3E648D0 for ; Tue, 8 Mar 2022 13:17:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1646745448; 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=362WZUzmVE200dFQmnEnopUwKgSMAI+IU3fj7/NionM=; b=Ra1JXUTwEGYDxy8OwTCXd9VdaMybfP++7hhhnrouQZKEw9Dy5EVkSb0s2M0QniDBA7fHgV 0swrBAR4uT1mTU1k8WKH8ciVn7Cz3lwod4hNJ+rvcr/fN56fiUJIALnmjVcO14U0B8s7As 26ePgvqEcClFmSKzTehPTttY8Dfz1h8= Received: from EUR03-VE1-obe.outbound.protection.outlook.com (mail-ve1eur03lp2055.outbound.protection.outlook.com [104.47.9.55]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-2-qveuI56mN16fWg1lcJRhNw-1; Tue, 08 Mar 2022 14:17:27 +0100 X-MC-Unique: qveuI56mN16fWg1lcJRhNw-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=i2FRII4O7P91Bl/6C5E+cGASRVr2q8YzYYgRgJGFI04J/412lErmFSMQoApWRikkcTDRbe4OInkvZTB+Ux42UZRYAF4ZJCZBW8lOPBk++GZwBTUXqNAqLwqtLgm1Cx/bHAP0jL0qTD3VM0DzDjN2AQiiA4avlB68Kmf0yDMhshIfg/eWowXRlIJlfnZu8P0SHFklGdJhYJhH+6D8ymXuZpUniauesjMh2uWWBKBM4egw+ncQuLqSAWP/5M5/0cumERAAAKdW1iUC3j5F5rEhjSsYQCgjhiIzvJE2+pb6VqEyv4Oa4EiHXmR23/gTaAKd8uTxgnwnO65CawiMivDeeQ== 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=4cTG0orl1M2YPlxQmqgjFLA6PYZxQl1ZAYMHpAOFUrg=; b=AhOnpDiz4UJ59hnwiGrXLMKoIp2SwabKMoDdZz374aWqucpdpFcHQx51Yuonfqm3wIs62hnVtWd1bGsugA1cChBDLn4fgyygOxGViIi5TCNH997pkZkASaeaGa4bFdgFRbgkEmYt6NN6qe9EiW8nJvXtNjdEQKL487NTm49+VPafTlrwLbkMPa7KN22AAZmVOnuulzNKPsBv49fV4w76ixc8QZdWfS1wunncolERMXDUR/HqRgOUQTOKetKt4AUWfdqIz1gVESn/nH2XL448QJijfgHs21xrfbhFIWrnophDFFlXwXJopa3lfymXegianHs8Z23sHtVUu4Tvtf1QSw== 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 PAXPR04MB8142.eurprd04.prod.outlook.com (2603:10a6:102:1ce::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5038.15; Tue, 8 Mar 2022 13:17:26 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05%6]) with mapi id 15.20.5038.027; Tue, 8 Mar 2022 13:17:26 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang , Nicolas Rybowski , Matthieu Baerts Subject: [PATCH mptcp-next v9 3/5] bpf: add skc_to_mptcp_sock helper Date: Tue, 8 Mar 2022 21:16:56 +0800 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HK2PR04CA0058.apcprd04.prod.outlook.com (2603:1096:202:14::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: ba206a66-097f-4e42-3be0-08da0105fd30 X-MS-TrafficTypeDiagnostic: PAXPR04MB8142: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: J5ioqhvIiHvPPVxk7ovYkDGf121JcZVhVkTmvvW0HxhlVMGrFx4WlzT9iSPySD7O67xIsyJQlGM/3gsyHZxKk9o9F/dy5iy7oLBthEDQSqMXhxaVMkHdm5u01KjRFteXw+/YSzbfxI6DqCwUaV68yirwu10aUD+LJKeXDhIcTLu6Z+Gw+6mKsVsrYBwmtuxkCs1uWPl/WDa7wk0tqUnmcE7HRaU962S8XH7SNdkQFOHl7XYQ7JwEXwRRim3MDZ8ltEFAKI67w3V+Gnuu3eXAMDFAzKVW1I+oLrKgUeg5sdETe9deFFetUmPGZjSq7BuQvI+j1hZ5+t7ah1PIQ7LUam/KO24rvnGbgbEKKEFNQ4Hrm9/n8kxGaAiUj5drGkoC2mY2bmBHBPGG+44bFyV8NQAjwEJSP7X6RHH0w5n96bmNr2accHbyLGVyvOXteI/0MLr3P6PTpw2ocQWl0n7qfFpzCKz13qX+JvZ/CasXvGi0BBdVzSZthQ9+hSTYBN0OL9vs36rZT7A0Xxkfz+3ZHUpfEzAW6gt82FrHvOctkIgb0wSmxzEbQohVEIG64qWWKgVRfPh8p9DTLv6EO58l3HceTTZSvIFFf8Zu/syvewazsrOB7dmVxSUv+NVGaLbp7CCMqffsIFMm94QVVzuoy1pIFeeJT1KClJAeXRniRmkuP/ouplQYnV22kTtVoT/x52y3oYwOAfz9L8/+xsDUSQ== 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)(186003)(316002)(6916009)(2616005)(6512007)(44832011)(54906003)(36756003)(2906002)(8936002)(5660300002)(26005)(4326008)(66476007)(66556008)(508600001)(6666004)(66946007)(38100700002)(86362001)(6506007)(6486002)(83380400001)(8676002)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?kP8A40A3xkmQTSjoxh+2cmZNBT58jiEbNzWXNHbDpqh3Ur+corJHlqYEl0Bs?= =?us-ascii?Q?aJq+XzfCSjGCQvOMYgy3CmLDcuuPRqalnsGAQDucHo6905tlROyoJryitLYS?= =?us-ascii?Q?tJDtvG3mqM8x/vWPyVDzspPkbFQIM+jTa90soAD8itX59Q8Wf67UPTt4JAzL?= =?us-ascii?Q?1IbjXleoLRG+aNH09t0zHhdxmJSLJg1GPqpepeqXCN4R3c0Evx7tl/itsMeV?= =?us-ascii?Q?UYqqJKuusVbKjRJ2mVCYcYi/qWmPClLLGeYm4KIioPnKuaDsP55Jp7lVgNEo?= =?us-ascii?Q?b7TdpN/OmWpX71BPB2pdI6OVxCB6HbI2wf3PWtXVfzTDbMJTaxbr64GrMcoa?= =?us-ascii?Q?xErpXqZIEJrIjfKcbgonfUe5eqt8XfMx87hxzU61wV+qdIv4argu8VtISRp5?= =?us-ascii?Q?7tql7bm/ddyhyj/bwOlZs5ZNL2+SI5S+SyRDifs1owYmkX4Uy1/tvmvDM8xI?= =?us-ascii?Q?18deoU0w3+jA1rOcSSLmtD1aCRHn+Ky4ymaOaWNnoSPlX1XkR6MaGc+tipAE?= =?us-ascii?Q?gLnDHk04InoLvlZzXHPdAH6+d3f0txxs+suysG9xtIaZ+yux0214GN31n/u6?= =?us-ascii?Q?zT6E4IzZ3nE5i58W2vq1sJpF83/zltlI4xnTki2GdtQE3tXEBnNLE7huIGEQ?= =?us-ascii?Q?gvClu2eYdIdQ85PrXQKWkVs8Tqe3uZgocLVorokbPTyqZ5zn2SgIE/4AizaD?= =?us-ascii?Q?TI1Byoedeg15l9Apb2ZKzHxmNcHDLB5k2bkl008Oh69fStF2/DksDwitxHXz?= =?us-ascii?Q?tW3Zh4mm1dz5ZwCohNd9e8g7Rb6C7ZDyhxtkmDdGaQar2e91bH+SIgXVlIfN?= =?us-ascii?Q?q3gANgvfTy06IUdNB9qj+rngDck6MuDrEOKibf7mkMjO77DurhICEBcJNQmR?= =?us-ascii?Q?VRm+t95aynvvX85jkjocoQ9zPRaGf9N85IQPzWQu9dwe1VDCdX0iS/8ca0Rg?= =?us-ascii?Q?/j9j8Fek03j2W22NQrGYjAvYv40MZ6bPXnKfVtTMuVA6lYcJVJcpVsN7cBg8?= =?us-ascii?Q?tsyoawTBAGdmOlLxqSZKLKp2OdOwcfzD2i6s3isp7YL/gVO91zLaCGi/v14l?= =?us-ascii?Q?1tIZBvRH0wUfAqhAojZH7vrXi7DaywaVavqGNleZ0xj1glq2W8SqFahYW9Ig?= =?us-ascii?Q?UhSM1SEhHwuVGSnEdMjo+Wi88jF0i9c6mZMZiHqlmhowlTQdBCSjneUrYy1S?= =?us-ascii?Q?UePsCTWZc//WCpxCQ8pEcdHhAFDTqZ1DEMyuuI30JAVkn6B6E8NZUBtL1TFQ?= =?us-ascii?Q?HAKYnpBopoQzjLx6N5+8pFzbzBQ08i7HOXY9kdGkZIKNx7xnbMFmYEerbgqm?= =?us-ascii?Q?EY+WFEfyOTHX3F5JOnCY1+pFRrwjEj94pYbDp72nmEVY0O9K8WoBg49h8HgA?= =?us-ascii?Q?bZrLDla5nUacdL1aRigYRm2+2qv282hfFLC3Y9G8Du/F2vklSv4/C9AIHeGS?= =?us-ascii?Q?0XckDvq7qCYX8nnBZRiqvABpTpReoJJLpMIPBZVan6x7b+ENxdYOgzRRu904?= =?us-ascii?Q?3QeVBXuY4fpmim21am7wFVAVLnfjAp78dX5xJNfKfl2kcLkKg/3EOPhw+xAD?= =?us-ascii?Q?0vCp8sQOg5KOn0ieffrkk/0hJLu7mZd4HmwedraklZKbat/d65hbnzsYDn7C?= =?us-ascii?Q?I1arE9mhQmy/hERcxiEj/NI=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: ba206a66-097f-4e42-3be0-08da0105fd30 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Mar 2022 13:17:26.2638 (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: t0zsMhtn5yr5zFQuU9TQ7ZsDwh2wrcv+jJiTVTeGaq27lXI9fj7OPYDw6z327TL+Kdu5NialQLugW032sUDH6A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR04MB8142 Content-Type: text/plain; charset="utf-8" This patch implemented bpf_skc_to_mptcp_sock helper. Defined a new bpf_id BTF_SOCK_TYPE_MPTCP, and added a new helper bpf_mptcp_sock_from_subflow() to get struct bpf_mptcp_sock from a given subflow socket. Co-developed-by: Nicolas Rybowski Signed-off-by: Nicolas Rybowski Co-developed-by: Matthieu Baerts Signed-off-by: Matthieu Baerts Signed-off-by: Geliang Tang --- include/linux/bpf.h | 9 +++++++++ include/linux/btf_ids.h | 3 ++- include/uapi/linux/bpf.h | 7 +++++++ net/core/filter.c | 17 +++++++++++++++++ net/mptcp/Makefile | 2 ++ net/mptcp/bpf.c | 20 ++++++++++++++++++++ scripts/bpf_doc.py | 2 ++ tools/include/uapi/linux/bpf.h | 7 +++++++ 8 files changed, 66 insertions(+), 1 deletion(-) create mode 100644 net/mptcp/bpf.c diff --git a/include/linux/bpf.h b/include/linux/bpf.h index f19abc59b6cd..b28b3d8c3df2 100644 --- a/include/linux/bpf.h +++ b/include/linux/bpf.h @@ -2354,6 +2354,15 @@ static inline u32 bpf_xdp_sock_convert_ctx_access(en= um bpf_access_type type, } #endif /* CONFIG_INET */ =20 +#ifdef CONFIG_MPTCP +struct mptcp_sock *bpf_mptcp_sock_from_subflow(struct sock *sk); +#else /* CONFIG_MPTCP */ +static inline struct mptcp_sock *bpf_mptcp_sock_from_subflow(struct sock *= sk) +{ + return NULL; +} +#endif /* CONFIG_MPTCP */ + enum bpf_text_poke_type { BPF_MOD_CALL, BPF_MOD_JUMP, diff --git a/include/linux/btf_ids.h b/include/linux/btf_ids.h index bc5d9cc34e4c..335a19092368 100644 --- a/include/linux/btf_ids.h +++ b/include/linux/btf_ids.h @@ -178,7 +178,8 @@ extern struct btf_id_set name; BTF_SOCK_TYPE(BTF_SOCK_TYPE_TCP6, tcp6_sock) \ BTF_SOCK_TYPE(BTF_SOCK_TYPE_UDP, udp_sock) \ BTF_SOCK_TYPE(BTF_SOCK_TYPE_UDP6, udp6_sock) \ - BTF_SOCK_TYPE(BTF_SOCK_TYPE_UNIX, unix_sock) + BTF_SOCK_TYPE(BTF_SOCK_TYPE_UNIX, unix_sock) \ + BTF_SOCK_TYPE(BTF_SOCK_TYPE_MPTCP, mptcp_sock) =20 enum { #define BTF_SOCK_TYPE(name, str) name, diff --git a/include/uapi/linux/bpf.h b/include/uapi/linux/bpf.h index 3f6dcdf4b915..a88aac4457a9 100644 --- a/include/uapi/linux/bpf.h +++ b/include/uapi/linux/bpf.h @@ -5086,6 +5086,12 @@ union bpf_attr { * Return * 0 on success, or a negative error in case of failure. On error * *dst* buffer is zeroed out. + * + * struct mptcp_sock *bpf_skc_to_mptcp_sock(void *sk) + * Description + * Dynamically cast a *sk* pointer to a *mptcp_sock* pointer. + * Return + * *sk* if casting is valid, or **NULL** otherwise. */ #define __BPF_FUNC_MAPPER(FN) \ FN(unspec), \ @@ -5280,6 +5286,7 @@ union bpf_attr { FN(xdp_load_bytes), \ FN(xdp_store_bytes), \ FN(copy_from_user_task), \ + FN(skc_to_mptcp_sock), \ /* */ =20 /* integer value in 'imm' field of BPF_CALL instruction selects which help= er diff --git a/net/core/filter.c b/net/core/filter.c index f64454722a7e..538b6db4fd76 100644 --- a/net/core/filter.c +++ b/net/core/filter.c @@ -11121,6 +11121,19 @@ const struct bpf_func_proto bpf_skc_to_unix_sock_p= roto =3D { .ret_btf_id =3D &btf_sock_ids[BTF_SOCK_TYPE_UNIX], }; =20 +BPF_CALL_1(bpf_skc_to_mptcp_sock, struct sock *, sk) +{ + return (unsigned long)bpf_mptcp_sock_from_subflow(sk); +} + +static const struct bpf_func_proto bpf_skc_to_mptcp_sock_proto =3D { + .func =3D bpf_skc_to_mptcp_sock, + .gpl_only =3D false, + .ret_type =3D RET_PTR_TO_BTF_ID_OR_NULL, + .arg1_type =3D ARG_PTR_TO_SOCK_COMMON, + .ret_btf_id =3D &btf_sock_ids[BTF_SOCK_TYPE_MPTCP], +}; + BPF_CALL_1(bpf_sock_from_file, struct file *, file) { return (unsigned long)sock_from_file(file); @@ -11163,6 +11176,10 @@ bpf_sk_base_func_proto(enum bpf_func_id func_id) case BPF_FUNC_skc_to_unix_sock: func =3D &bpf_skc_to_unix_sock_proto; break; +#ifdef CONFIG_MPTCP + case BPF_FUNC_skc_to_mptcp_sock: + return &bpf_skc_to_mptcp_sock_proto; +#endif /* CONFIG_MPTCP */ case BPF_FUNC_ktime_get_coarse_ns: return &bpf_ktime_get_coarse_ns_proto; default: diff --git a/net/mptcp/Makefile b/net/mptcp/Makefile index 48a9d978aaeb..0a0608b6b4b4 100644 --- a/net/mptcp/Makefile +++ b/net/mptcp/Makefile @@ -11,3 +11,5 @@ obj-$(CONFIG_INET_MPTCP_DIAG) +=3D mptcp_diag.o mptcp_crypto_test-objs :=3D crypto_test.o mptcp_token_test-objs :=3D token_test.o obj-$(CONFIG_MPTCP_KUNIT_TEST) +=3D mptcp_crypto_test.o mptcp_token_test.o + +obj-$(CONFIG_BPF) +=3D bpf.o diff --git a/net/mptcp/bpf.c b/net/mptcp/bpf.c new file mode 100644 index 000000000000..da79dae559b2 --- /dev/null +++ b/net/mptcp/bpf.c @@ -0,0 +1,20 @@ +// SPDX-License-Identifier: GPL-2.0 +/* Multipath TCP + * + * Copyright (c) 2020, Tessares SA. + * + * Author: Nicolas Rybowski + * + */ + +#include +#include "protocol.h" + +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)) + return mptcp_sk(mptcp_subflow_ctx(sk)->conn); + + return NULL; +} +EXPORT_SYMBOL(bpf_mptcp_sock_from_subflow); diff --git a/scripts/bpf_doc.py b/scripts/bpf_doc.py index 096625242475..0e5a9e69ae59 100755 --- a/scripts/bpf_doc.py +++ b/scripts/bpf_doc.py @@ -623,6 +623,7 @@ class PrinterHelpers(Printer): 'struct udp6_sock', 'struct unix_sock', 'struct task_struct', + 'struct mptcp_sock', =20 'struct __sk_buff', 'struct sk_msg_md', @@ -682,6 +683,7 @@ class PrinterHelpers(Printer): 'struct socket', 'struct file', 'struct bpf_timer', + 'struct mptcp_sock', } mapped_types =3D { 'u8': '__u8', diff --git a/tools/include/uapi/linux/bpf.h b/tools/include/uapi/linux/bpf.h index 3f6dcdf4b915..a88aac4457a9 100644 --- a/tools/include/uapi/linux/bpf.h +++ b/tools/include/uapi/linux/bpf.h @@ -5086,6 +5086,12 @@ union bpf_attr { * Return * 0 on success, or a negative error in case of failure. On error * *dst* buffer is zeroed out. + * + * struct mptcp_sock *bpf_skc_to_mptcp_sock(void *sk) + * Description + * Dynamically cast a *sk* pointer to a *mptcp_sock* pointer. + * Return + * *sk* if casting is valid, or **NULL** otherwise. */ #define __BPF_FUNC_MAPPER(FN) \ FN(unspec), \ @@ -5280,6 +5286,7 @@ union bpf_attr { FN(xdp_load_bytes), \ FN(xdp_store_bytes), \ FN(copy_from_user_task), \ + FN(skc_to_mptcp_sock), \ /* */ =20 /* integer value in 'imm' field of BPF_CALL instruction selects which help= er --=20 2.34.1 From nobody Mon May 6 04:08:43 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a05:6402:358d:0:0:0:0 with SMTP id y13csp1150120edc; Tue, 8 Mar 2022 05:17:41 -0800 (PST) X-Google-Smtp-Source: ABdhPJzQYVlbY9+iYisiNdsbmJpY33xj+fw1qLj9FSIPxyyaJVd2G81IRP4GVWZ+Sigs6dsFsPgr X-Received: by 2002:a81:a1c2:0:b0:2db:e00a:8393 with SMTP id y185-20020a81a1c2000000b002dbe00a8393mr12968107ywg.175.1646745461238; Tue, 08 Mar 2022 05:17:41 -0800 (PST) Return-Path: Received: from ewr.edge.kernel.org (ewr.edge.kernel.org. [2604:1380:1:3600::1]) by mx.google.com with ESMTPS id t84-20020a817857000000b002dbd6aadcaasi10362928ywc.480.2022.03.08.05.17.41 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 08 Mar 2022 05:17:41 -0800 (PST) Received-SPF: pass (google.com: domain of mptcp+bounces-4159-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="JfFSJ6/7"; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4159-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1:3600::1 as permitted sender) smtp.mailfrom="mptcp+bounces-4159-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 577731C0A77 for ; Tue, 8 Mar 2022 13:17:40 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id D73AE48DB; Tue, 8 Mar 2022 13:17:38 +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 EF9D448D0 for ; Tue, 8 Mar 2022 13:17:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1646745455; 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=XYPDNfmCVnLrOz0gyGkmvgagnx1AJDI1jDzFUgxZUnA=; b=JfFSJ6/7ZdWql6gm5z+QCGyS9bcPJc3C15eX4sJp9RcHngatiwcl6CCAwDKw8otNYNLeZw esv21Pd63XWfbHNNJUtw6mXZvigK1zktZJGcScdUfKLW3+NumG4SnrWVPW59UahCUkVhB/ spaKGVmniNxo/+YOJCsF8gcs/LYNVL8= Received: from EUR03-VE1-obe.outbound.protection.outlook.com (mail-ve1eur03lp2055.outbound.protection.outlook.com [104.47.9.55]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-38-jgUr4z-XPBaBOKyvGbrUfQ-1; Tue, 08 Mar 2022 14:17:34 +0100 X-MC-Unique: jgUr4z-XPBaBOKyvGbrUfQ-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WhhIPTwvxXQXmgEOSYCldw1WEbYA2Us0/yHNHXf0AlhEodv3tzdLaHzq7wP2Tjorpm5sb/NoV2fZ+W9SjqJ3ZqsIJFZ6CZ7rRcB1eockA6R537Ps8N/0KRrhV4QEFEum+Lc/tUEMIdkRpf2713DQNCiBngVDfwt8ZwpI7HU2pciBs7WcUhci8bXuYMDpmPtn4EPR3WPcPAE4pa00pZkzKoWvkZy9V7PrRh0YCgKYlUaUoSRW+vXEghotm+w0xDcXkHK6daFR/y+eKM/kaYu9YEbWQ6Cp8Tf1MzKggnHQLSQXkblILhIqAeR+lQusPpsVjCUuUar9y+xUQQH9Sn3qRQ== 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=9y1xhUxGzM6BOcEEjmOFfBjPfuJRwEJdeGFCk8YardA=; b=jcxU1G6jlXQ9SQSsIub6XmTEN1MXXL5E7yDY4g8AkIRKDNTeRFpJPPYOGJ0RugKCQGk+6nVsT2RMrA4Aft+XspSF/c2l6+KvEPX4Xu3pJTihPF6i33Qa/C7UX/fHSnndYniZZ9++Dun6laj6BECj1Xwgf1vrrG80DG86edsE+HhcA4oML2DTZqYqErV1TA++gijNr1UH2Ae3dNlStxMswsWGIB8G31Hs1HtkHbcZ5B1RUEWpYac96IkopfIvNB/PhOj7TZnrwWqkxGUN/Ke/0kAPyHufLp63oXyM0H+pv/8ugVDHjYJWpNOo4RKrlUxiA98vuJKs4QOdJ4r5d/fu4A== 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 PAXPR04MB8142.eurprd04.prod.outlook.com (2603:10a6:102:1ce::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5038.15; Tue, 8 Mar 2022 13:17:33 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05%6]) with mapi id 15.20.5038.027; Tue, 8 Mar 2022 13:17:33 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v9 4/5] Squash to "selftests: bpf: add MPTCP test base" Date: Tue, 8 Mar 2022 21:16:57 +0800 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HK2PR02CA0195.apcprd02.prod.outlook.com (2603:1096:201:21::31) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 4df1ccb3-d7c4-4f89-ccbc-08da01060165 X-MS-TrafficTypeDiagnostic: PAXPR04MB8142: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: lvdb7ckUSJkTuoiAtdHcqpwHlLiW0J39yOuG4BvpnTYdWLNyzNerrAx6KSWY4l5eyjYmbnblFMlDYevqXHotF7aQkGsR30cgOzikHj1r5VtPRXeXD5DcFX3Fn/y9qEdP1MN0POiIPg8XcA4FCEINl0Fqr0yvttlcMM9x7oEP22F2et59h/lnTluY+dz71CRPzkLCZL+e+WT31msqMpIpBPzvAtvyCcSizbPGYGO/miVqjlxVIiRvSeE98UqEnlw39/88Yu2Y01XJOXhOstMrnTrkz37ReWfjJNpXjGr5Mj89EFEv1E9Izjmcw7lA4jQYSaZhot+sEId9LDS7mZj2n26hxaM00x4tkZkCLNxTt69lrjrzEDsr/qspyNqp2yXGUPTAT+PwnYBTG1Y/XaniRH7A2YtsUJre0WgRVZcNyErCBTWCnTXro8gT5wuzhlFzRUq4L8xRekpHMRFdPf/2pOPV3crqzwQ8A/kDRnde54JQ3fx5bowL1WWrjHGGBZYAK5n4NmoMm33hkXAElOWVug9QI0bDLaLLvlL0mGS1+FWPACQkfjm71wNqh8hZNMEBqHbY7+9DHIe1xy/sRJsEQ7Fp1IT9d3k7tgsFK/f+L/0JKJuOuUgCJyJouQY1It0rJH8ubIMsNaWsVPbh8bujVxBymiCRAqx9uNjkngSqsfloVOs1eetbQ61/TGJJFP5iy78TvGE/WLJ2xuGmtVflew== 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)(186003)(316002)(6916009)(2616005)(6512007)(107886003)(44832011)(36756003)(2906002)(8936002)(5660300002)(26005)(4326008)(66476007)(66556008)(508600001)(6666004)(66946007)(38100700002)(86362001)(6506007)(6486002)(83380400001)(8676002)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?KxfQGQcj/s21L1QNGiGbb9d0XSxM4h2NXh1/Vw5YqaK13BD1N89YIPER6RD7?= =?us-ascii?Q?Lg/XsObtjsR7GXnVcSxmzV5WDiBxy2or1Tgqrq8qN66EAolLau1tnaNDBBbi?= =?us-ascii?Q?G+isX2F7InzR1J59DBpbYkIpQsBxFeZL+0/heVpJfMY9tv3+EM7GfXNzxqrv?= =?us-ascii?Q?y0EGcWLRqPaj/7voxITW95NSvJFxnW0QROZDysDp56JE47kpUxRrYPibSA9K?= =?us-ascii?Q?rxeZ4gNYgqUwEcQZg1re9ACizGqAeg92CnuWXobuEct5WcvbQX/HOKLX+wCI?= =?us-ascii?Q?Kow81f/y06g/piPuEO5niE5SCrTNPHlNZN8wjxLYGB4joCe4+YtzT14mW2Nj?= =?us-ascii?Q?SfebnX1l4DAvEr0y0fnvJkp/5O0K2aCDoLup4wi3TKR5R6dHORAKsq7IdCXc?= =?us-ascii?Q?c8Nvz6RyGrHcLBx/pTJIvJP/wBx6H1qPtRS4zfr4LpbcLcdMRPz9eCsjeLG2?= =?us-ascii?Q?LthWdrQoHp8QLueASvelGfm9TEKt90iYbiTN1J421u7vlTeRbs2jeDrQlBac?= =?us-ascii?Q?ugE8MGfSJJMNUeiVFSJIc7hdbyJyH4GKwA57nAZIz1NIcUpwxkmiULC1B0dp?= =?us-ascii?Q?4YIgwNvdqoj3NeUnYLXlU70GI/2a6GYpWjwW+OHWUyor8E9BB1s9HrEwjJvj?= =?us-ascii?Q?TNm87hMbde6mPIgd15m0xv/sGZw+BxtXNqJMIs/EfR24rM2KL4oTfEMJ3ACH?= =?us-ascii?Q?LrnfYJGXqeCELr6Suu3JxYMDatw2XhyL4NNE0hhpKsz91F1XNYoubiBn8hBR?= =?us-ascii?Q?3IjPRAQv1nMeBOQYYsvhXXYjyXSpcKFO23XuHzI2F13G4UbrOeZ0BIjnl4Io?= =?us-ascii?Q?uZ3NKtOqOCIrOiuhf6Fyi/3fi37dCIkRxYSF8FwIjZxNLRSTzJyILxUuSF5T?= =?us-ascii?Q?vaXkQeY8EhMNCcXlf+TcBZIvczgMh0C/+MmoWaVtoAoKWofWQPUUM91OWzyI?= =?us-ascii?Q?OaGSmSPx9teIJbTcJiJ8GMmJCtkCxNY+jrAl8GRrFobt8MM6gn7YpNzEmMfp?= =?us-ascii?Q?Z+8445BxOgn52SxU7DwlmkIMOkGlFcAbg8YHYQTF9liAo00/aipQajQ445GG?= =?us-ascii?Q?6bMSXYdS6qT95OWCZcthU+H8UojL9V9kA7DH82csbio2P7y1pEqbYkvP8iCr?= =?us-ascii?Q?CWErFdqVwPRiEjzQ9qySlubRr2xfTM0yDmFFNRluNukgOm/hD3iftoQbyQcW?= =?us-ascii?Q?fWOsCTqdFSUk3LZEb4ybIsih96hXl7CUcUNjfOnKHUIrVM1dfGRjB1KPp/5y?= =?us-ascii?Q?Nwq7V4PrDKCTD8mqPrdiKeRcmJVihyNUzExP0lHGC+c4l0c+pJRQmFknpIz1?= =?us-ascii?Q?L1kNugOQsJZctwG84k9xzjYU00bi73wdiFS3lzOqQehjH/m+OKivs8giQZmN?= =?us-ascii?Q?1xT6OX+jNwAgBR9mjYhr/Hi0hGBIndKPQTtWjrLTyczvbPFGabu4HtH5vJdY?= =?us-ascii?Q?xMMHmXFDEh5ZMPjeL+fvS1JQovuvXG0TgXKlZHVWjKziAcB5GfHVi43Uxqbg?= =?us-ascii?Q?/zbJCIOrp2RGDoljYRzoNey2wcT6Pc56yvUxIkquhitBLrJb22JU5HuYIbo/?= =?us-ascii?Q?+Br1U5oyxlkAcUxDIOOzNqP0C+LX4THm63UTREqbNHaxtR5tWpDOoYGN65n2?= =?us-ascii?Q?Y+nkxwqpniuPJR3DKoQeyCM=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4df1ccb3-d7c4-4f89-ccbc-08da01060165 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Mar 2022 13:17:33.4507 (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: ApcLFiBR5AGPVSSjGpnLP+JR4NhPKwFYMGfmzBPkDmGevtouyXgC6+3bjKylafmXNYFd7sQoZ6R1WICvgBP+sA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR04MB8142 Content-Type: text/plain; charset="utf-8" Some cleanups. Signed-off-by: Geliang Tang --- tools/testing/selftests/bpf/prog_tests/mptcp.c | 16 +++++----------- tools/testing/selftests/bpf/progs/mptcp.c | 14 +++++++------- 2 files changed, 12 insertions(+), 18 deletions(-) diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing= /selftests/bpf/prog_tests/mptcp.c index 04aef0f147dc..87ee7bd8a689 100644 --- a/tools/testing/selftests/bpf/prog_tests/mptcp.c +++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c @@ -13,12 +13,6 @@ static int verify_sk(int map_fd, int client_fd, const ch= ar *msg, __u32 is_mptcp) int err =3D 0, cfd =3D client_fd; struct mptcp_storage val; =20 - /* Currently there is no easy way to get back the subflow sk from the MPT= CP - * sk, thus we cannot access here the sk_storage associated to the subflow - * sk. Also, there is no sk_storage associated with the MPTCP sk since it - * does not trigger sockops events. - * We silently pass this situation at the moment. - */ if (is_mptcp =3D=3D 1) return 0; =20 @@ -28,14 +22,14 @@ static int verify_sk(int map_fd, int client_fd, const c= har *msg, __u32 is_mptcp) } =20 if (val.invoked !=3D 1) { - log_err("%s: unexpected invoked count %d !=3D %d", - msg, val.invoked, 1); + log_err("%s: unexpected invoked count %d !=3D 1", + msg, val.invoked); err++; } =20 - if (val.is_mptcp !=3D is_mptcp) { - log_err("%s: unexpected bpf_tcp_sock.is_mptcp %d !=3D %d", - msg, val.is_mptcp, is_mptcp); + if (val.is_mptcp !=3D 0) { + log_err("%s: unexpected bpf_tcp_sock.is_mptcp %d !=3D 0", + msg, val.is_mptcp); err++; } =20 diff --git a/tools/testing/selftests/bpf/progs/mptcp.c b/tools/testing/self= tests/bpf/progs/mptcp.c index be5ee8dac2b3..a14ed1b66da8 100644 --- a/tools/testing/selftests/bpf/progs/mptcp.c +++ b/tools/testing/selftests/bpf/progs/mptcp.c @@ -25,22 +25,22 @@ int _sockops(struct bpf_sock_ops *ctx) int op =3D (int)ctx->op; struct bpf_sock *sk; =20 + if (op !=3D BPF_SOCK_OPS_TCP_CONNECT_CB) + return 1; + sk =3D ctx->sk; if (!sk) return 1; =20 + tcp_sk =3D bpf_tcp_sock(sk); + if (!tcp_sk) + return 1; + storage =3D bpf_sk_storage_get(&socket_storage_map, sk, 0, BPF_SK_STORAGE_GET_F_CREATE); if (!storage) return 1; =20 - if (op !=3D BPF_SOCK_OPS_TCP_CONNECT_CB) - return 1; - - tcp_sk =3D bpf_tcp_sock(sk); - if (!tcp_sk) - return 1; - storage->invoked++; storage->is_mptcp =3D tcp_sk->is_mptcp; =20 --=20 2.34.1 From nobody Mon May 6 04:08:43 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a05:6402:358d:0:0:0:0 with SMTP id y13csp1150204edc; Tue, 8 Mar 2022 05:17:51 -0800 (PST) X-Google-Smtp-Source: ABdhPJzTXzGBlj5hqqqZTVuIrmCpoysrjNahLYr+I/3HR93u24yHozUvGoY0Ofi5ypQscEC5cwzf X-Received: by 2002:a81:92ce:0:b0:2dc:72a:b624 with SMTP id j197-20020a8192ce000000b002dc072ab624mr12354908ywg.264.1646745471550; Tue, 08 Mar 2022 05:17:51 -0800 (PST) Return-Path: Received: from ewr.edge.kernel.org (ewr.edge.kernel.org. [2604:1380:1:3600::1]) by mx.google.com with ESMTPS id i3-20020a253b03000000b00629553fb32dsi2978079yba.649.2022.03.08.05.17.51 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 08 Mar 2022 05:17:51 -0800 (PST) Received-SPF: pass (google.com: domain of mptcp+bounces-4160-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=d4mUS8IF; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4160-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1:3600::1 as permitted sender) smtp.mailfrom="mptcp+bounces-4160-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 1249F1C0A79 for ; Tue, 8 Mar 2022 13:17:51 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id C00A748DB; Tue, 8 Mar 2022 13:17:49 +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 25E2B48D0 for ; Tue, 8 Mar 2022 13:17:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1646745465; 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=yRx4Oxn0ZfItTIvSTEh1fDCulEXmsBGkEMP3HH9xuHk=; b=d4mUS8IFHt/zlKN0r6qqC6K5B2kmuKlgRk6O2oWdIFRU9v2KPt9PR6E5eFj+j/oETNCL0A n7c9pq+vzUTfTPNHwoiL9OnFgtQuKG40m7cu64v8nIkdgu+NLGG53d0sM27HHX/SneklXy VxZbDSLiKyRBaJqy2/pev0GY4qmEzXg= Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05lp2105.outbound.protection.outlook.com [104.47.18.105]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-8-Q3XBtItnPmSrfj6yl5Yh1w-1; Tue, 08 Mar 2022 14:17:44 +0100 X-MC-Unique: Q3XBtItnPmSrfj6yl5Yh1w-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=CDvhHd8u4iHZm0+sSCNKErXUD8egXzCPCZBjZ08+gzNeeEvu/Ibelp0IeOgn2jjpUMH5+B4Uo4+/V5189+xkzJRVeVz1iC5wUFrh+b4HnBKPDwNqoulyJKZbLU3DK+K5fUTJ6vuy8t/AY5uCVP0ZbJ4Cr84XHCOEd8hcucz8IllpEn7r6xSYrFQZ+uccNDS6DJ8erO3B9jyWY5l/wsfz8CizBJcWryym6BBAxjKjhNAudbFVADtqIVVUXLJWW/d/HSb+UPYyq6TZLD6V6yRqiqOyjn5OyuGrhhylWBrinYdCzBZKJiIjffZ46OnPQJDg4D9+pfALmuDx1RjIiVuLUQ== 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=k1hF89g2iDSVxNYhpJveLTsC1tqPlS6ENYT+rK341aU=; b=l7xhJECuBd1mABsLzWSqexQZGZ3alEo21nOCZbiQ1PblkCPTuVj3d5iQqo+3S688SfbxomGJu0VmmbhumqSRqiZ7fctxwVshF1gAu4t/XbgtWUnjRwiOPoua4i4JbxJD3iCBbqYYnx8HkuHqITHtVxfY7wNTTZcoT9PLr3n0veV4I3LThRMXGIAL/aNSoITgoStemErrnGZ7AWO+ZGr9YimoTbQacvWBHFbtxZ52AyWMf0y6Srs1/nSo+iT9z5P+jeczKGeJTCbj73Y+nU9k7gdnSQ2RiDnzk86Ok/3KgHiCWdsRSP97lTQC5EjXa17eapZnbsaqHLvJLsi9H0aZyg== 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 AS8PR04MB8514.eurprd04.prod.outlook.com (2603:10a6:20b:341::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5038.14; Tue, 8 Mar 2022 13:17:42 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05%6]) with mapi id 15.20.5038.027; Tue, 8 Mar 2022 13:17:42 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang , Nicolas Rybowski , Matthieu Baerts Subject: [PATCH mptcp-next v9 5/5] selftests: bpf: add skc_to_mptcp_sock test Date: Tue, 8 Mar 2022 21:16:58 +0800 Message-ID: <72ffef207bb0a4cdbce2c1bb5bf9c892b2d9a1cb.1646745228.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HK2PR02CA0176.apcprd02.prod.outlook.com (2603:1096:201:21::12) 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: 88d560e2-adf3-46b7-fd3b-08da010606a3 X-MS-TrafficTypeDiagnostic: AS8PR04MB8514: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: 3trF9QqM2KE1dSzxabOVhDOuainBbtVXVWfkg8cn8gbXHK3DNzo9fdZEFP+JJVPzX3rpFnvDpyLbYrZWWCYhygRVS16Nh+4T36NMWtrtqXtVNP5cS+vCBpHpS5sah7B0McztshkXH/9VvV/SHswzSM3reE1GMqNcrYXp7XwJtNpImzictn3XySyPESl37vLb1ElaV0qqkHkco/UYgb399W3bD9HCwBAln1Zu+Sjb/0doXRENHERS9rDnQBHnP4l8IFvyLhlKKLZFmhQTeeCNYJrNKQ0aysJz9JXPDqwuJyXDu1rKFqj4rKwAgA4xHQEoA1UBOpSFx+lcfTphor79tJmg2eAudtH04WnPas00sBqwrHT/UgB9SDZxlZbuRYkPBoi4SGhrWm1np9EtIFEcNEKxfv1TWEQ+ux6p6WsdB60YZYHL6xBnrHmdMPPHEaXKStfGouq7p3xxUlIYYWnzz4r6CoWlEjuBuubEEGRN19x8YrspZH/MsF5usG161YVTb4nj1AuNT35kxIoWYdmNLoem6QNXCzqbJ5+sp11aUHu+M1w11sPUiXoPkTOjTcNFHMTQTlz8qs8iV3ivXW5xfV7n7Lb0tHtbM8cO40Z3FWGjcwOJtH0vu1x/CWL7kY8+1pRYINu083rTdut3nTZc3e186znkV3uxmSmbmNRE2yqLlODUaX3X3OX7pcmxc41vjTzUeKdEQR26CL9gi/ueyn0WmkvOGefF++rNsuwin5DlgqFPBpwgGGu5FnuxvkHwq13c7Lrpbstg2D3Q1XcA5Q== 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)(6486002)(86362001)(38100700002)(316002)(6916009)(54906003)(2906002)(508600001)(5660300002)(8676002)(44832011)(4326008)(8936002)(66556008)(66476007)(6512007)(66946007)(6506007)(6666004)(36756003)(83380400001)(2616005)(186003)(26005)(966005)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?dCUd2ZkrwRX6Nglk3OS7IwoYiHNGQD8hlwAJ2YOhX9g/UjbpngmXNXi8z+z6?= =?us-ascii?Q?Y4RKvZ8+bSYVCm/eH1pLWzGlCMHYHQa9RZ/xGiiI9e/u27Dm7+8OhtXt2EXJ?= =?us-ascii?Q?nLQD31jDTz6EV1wq3XIIRAMt8JT0c30LmG8VMAgzNSlhFXBGariDzEIbj+su?= =?us-ascii?Q?Ua1ApErhZgyKS8VV7VzXuI04bB3cRUzm3CRoUVXF5vemCxpXMzP+p8dGeGYt?= =?us-ascii?Q?VhfHcuXtNpkJYRQmtdb9AdkX9uNMrGRAdlqNmhaATHNcwVgCBlpGtS/8Wdym?= =?us-ascii?Q?+1u5Jj7ZwgWkRPv8E0YeP9mdODgug65+ClPnFnpjAfxg24rBN7g6KcxzTEV1?= =?us-ascii?Q?fKZncRWz26sVAWZYqmYKPFPONhnICNWmY8p64FwVxC4JRsP03kchnGYvYlj/?= =?us-ascii?Q?BJHvqV5gA/5VsejuTiHKgptr0nh+iXaVfaDR9sBR+E3Spxkha4mMLR7bYczi?= =?us-ascii?Q?8rtP7xWIFGQIrvzZ/kbIBIovkIIVXiScw9J0W11YvQLpYsDkPcHiHn9WRiOB?= =?us-ascii?Q?x3bcc+N3ghuNOEMhgtkOW6Op3ipGVbglq9jPqGRG9PJaAPRBaznTlxEbwbQc?= =?us-ascii?Q?Jx+laQoOTDLv41QMJYcQjpHGUGOsnE5yTfIVeS7X3f8SRkhsg7yC56vwT0H1?= =?us-ascii?Q?mLcDogRo48Ypq+WGxNNiAbU/HpcmF3wgw4RZa3jrhNtt9fblZ3WBtSTIE1I0?= =?us-ascii?Q?KYkXAlpwqlHG34hzrQSnczn7xXoNPptpeQ5v3TtCSwelh+y9+Wbp8bqJHT4q?= =?us-ascii?Q?fYdHH0XS1Rtv17syehnzetmxq/GAgbTmoedXvXnLrSsJ76Q5Ykh4RmR1+pFa?= =?us-ascii?Q?1AUib3K7GeYCGOPpV730XTK8BF2owtgbvPRjlZ9tB+HrndW1fcy4NhYaSr5p?= =?us-ascii?Q?xkLsxf6lMG2wC+pqWMd8agmV9ES5zsNahClfFhRcLZGhafTJTY7O9nRL/q8Y?= =?us-ascii?Q?RkLhm39PFtPRRY9M8fUB0f0mpnbTdQz3Xzd2eHb+grUWVOHHfh7kEeSmGJUV?= =?us-ascii?Q?37S0MM8AjqHD7qP1TGU6uWDw3mbJeHEMSF94kuMZl1pCa7TodcfAYzri97Nd?= =?us-ascii?Q?Sa7jlG21JHzRYHEjTk4ELFcqXG8HyFMp1gmHayMYBrrbG2AX/auhhABz/dAS?= =?us-ascii?Q?r4Rh88aApaG3JS30oghYo5rcLbG0hdoy7/UgnLOEahCvjW4uAKs0M2Zs/oTE?= =?us-ascii?Q?YSXTBgqu1LmMzhohgwzeBz7grt4ourGRXW34JFmpcUbz7jqVfWs/Flodqy3o?= =?us-ascii?Q?MlkJR64sH/zyAq1EOPjjDwxIHWhl8TPfO6JsEoO+ZT07X6EYnXv8hdOaEuO/?= =?us-ascii?Q?+wh0NgFK/ojdgvPQxW8+tMuCZjaYqi7WP6O32AZ3llJ2CIw9ZV3HLK3fPDoF?= =?us-ascii?Q?aD/fmMGz2JBB0L7C+48J/nyJF1yhjYszhLronYdCgg8tPgpBTzr4xucZqb4K?= =?us-ascii?Q?vGHF44SmIwO6AhYeQKvOsZ0c1gh+A9p7BMUgXT0m1mUIT87XvOu2AdFcZwrj?= =?us-ascii?Q?yX1PnXFUMuURBmqPv/q5qFdI5/gv5QpXt2r+Xc+8KXZuhPW4EEqV2B6X7D9h?= =?us-ascii?Q?xnYsVhFZaWriZ4U1LWLHNXDBXPTqAdd2YoY2c3cfIwN+EeoQJk4lq1fOyWI2?= =?us-ascii?Q?zzfoZA0kAwRppt8UV7Eq00A=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 88d560e2-adf3-46b7-fd3b-08da010606a3 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Mar 2022 13:17:42.1375 (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: eQFZ+Dbz3EUd1dsnQoxQVUnJLROv5rt9xnMP2VdBL3h2bcrQs92516/MJHlBUDuXsb1Yl6qwQZIzsg4FMZZojw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB8514 Content-Type: text/plain; charset="utf-8" This patch extended the MPTCP test base, to exercise the new helper bpf_skc_to_mptcp_sock() from C test as Alexei suggested in [1]. Added a new function verify_msk() to verify the msk token, and a new function get_msk_token() to parse the msk token from the output of the command 'ip mptcp monitor'. [1] https://lore.kernel.org/netdev/20200922040830.3iis6xiavhvpfq3v@ast-mbp.dhcp= .thefacebook.com/ Co-developed-by: Nicolas Rybowski Signed-off-by: Nicolas Rybowski Co-developed-by: Matthieu Baerts Signed-off-by: Matthieu Baerts Signed-off-by: Geliang Tang Acked-by: Matthieu Baerts --- tools/testing/selftests/bpf/bpf_tcp_helpers.h | 6 ++ .../testing/selftests/bpf/prog_tests/mptcp.c | 94 +++++++++++++++++-- tools/testing/selftests/bpf/progs/mptcp.c | 28 +++++- 3 files changed, 118 insertions(+), 10 deletions(-) diff --git a/tools/testing/selftests/bpf/bpf_tcp_helpers.h b/tools/testing/= selftests/bpf/bpf_tcp_helpers.h index b1ede6f0b821..05f62f81cc4d 100644 --- a/tools/testing/selftests/bpf/bpf_tcp_helpers.h +++ b/tools/testing/selftests/bpf/bpf_tcp_helpers.h @@ -83,6 +83,12 @@ struct tcp_sock { __u64 tcp_mstamp; /* most recent packet received/sent */ } __attribute__((preserve_access_index)); =20 +struct mptcp_sock { + struct inet_connection_sock sk; + + __u32 token; +} __attribute__((preserve_access_index)); + static __always_inline struct inet_connection_sock *inet_csk(const struct = sock *sk) { return (struct inet_connection_sock *)sk; diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing= /selftests/bpf/prog_tests/mptcp.c index 87ee7bd8a689..3dce2431fdf3 100644 --- a/tools/testing/selftests/bpf/prog_tests/mptcp.c +++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c @@ -3,19 +3,20 @@ #include "cgroup_helpers.h" #include "network_helpers.h" =20 +char monitor_log_path[64]; + struct mptcp_storage { __u32 invoked; __u32 is_mptcp; + __u32 token; }; =20 -static int verify_sk(int map_fd, int client_fd, const char *msg, __u32 is_= mptcp) +static int verify_tsk(int map_fd, int client_fd) { + char *msg =3D "plain TCP socket"; int err =3D 0, cfd =3D client_fd; struct mptcp_storage val; =20 - if (is_mptcp =3D=3D 1) - return 0; - if (CHECK_FAIL(bpf_map_lookup_elem(map_fd, &cfd, &val) < 0)) { perror("Failed to read socket storage"); return -1; @@ -36,6 +37,77 @@ static int verify_sk(int map_fd, int client_fd, const ch= ar *msg, __u32 is_mptcp) return err; } =20 +static __u32 get_msk_token(void) +{ + char *prefix =3D "[ CREATED] token=3D"; + char buf[64] =3D {}; + __u32 token =3D 0; + ssize_t len; + int fd; + + fd =3D open(monitor_log_path, O_RDONLY); + if (CHECK_FAIL(fd < 0)) { + log_err("Failed to open %s", monitor_log_path); + goto err; + } + + len =3D read(fd, buf, sizeof(buf)); + if (CHECK_FAIL(len < 0)) { + log_err("Failed to read %s", monitor_log_path); + goto err; + } + + if (strncmp(buf, prefix, strlen(prefix))) { + log_err("Invalid prefix %s", buf); + goto err; + } + + token =3D strtol(buf + strlen(prefix), NULL, 16); + +err: + close(fd); + return token; +} + +static int verify_msk(int map_fd, int client_fd) +{ + char *msg =3D "MPTCP subflow socket"; + int err =3D 0, cfd =3D client_fd; + struct mptcp_storage val; + __u32 token; + + token =3D get_msk_token(); + if (token <=3D 0) { + log_err("Unexpected token %x", token); + return -1; + } + + if (CHECK_FAIL(bpf_map_lookup_elem(map_fd, &cfd, &val) < 0)) { + perror("Failed to read socket storage"); + return -1; + } + + if (val.invoked !=3D 1) { + log_err("%s: unexpected invoked count %d !=3D 1", + msg, val.invoked); + err++; + } + + if (val.is_mptcp !=3D 1) { + log_err("%s: unexpected bpf_tcp_sock.is_mptcp %d !=3D 1", + msg, val.is_mptcp); + err++; + } + + if (val.token !=3D token) { + log_err("Unexpected mptcp_sock.token %x !=3D %x", + val.token, token); + err++; + } + + return err; +} + static int run_test(int cgroup_fd, int server_fd, bool is_mptcp) { int client_fd, prog_fd, map_fd, err; @@ -70,8 +142,8 @@ static int run_test(int cgroup_fd, int server_fd, bool i= s_mptcp) goto close_client_fd; } =20 - err +=3D is_mptcp ? verify_sk(map_fd, client_fd, "MPTCP subflow socket", = 1) : - verify_sk(map_fd, client_fd, "plain TCP socket", 0); + err +=3D is_mptcp ? verify_msk(map_fd, client_fd) : + verify_tsk(map_fd, client_fd); =20 close_client_fd: close(client_fd); @@ -83,6 +155,7 @@ static int run_test(int cgroup_fd, int server_fd, bool i= s_mptcp) =20 void test_mptcp(void) { + char cmd[256], tmp_dir[] =3D "/tmp/XXXXXX"; int server_fd, cgroup_fd; =20 cgroup_fd =3D test__join_cgroup("/mptcp"); @@ -100,6 +173,13 @@ void test_mptcp(void) =20 with_mptcp: /* with MPTCP */ + if (CHECK_FAIL(!mkdtemp(tmp_dir))) + goto close_cgroup_fd; + snprintf(monitor_log_path, sizeof(monitor_log_path), + "%s/ip_mptcp_monitor", tmp_dir); + snprintf(cmd, sizeof(cmd), "ip mptcp monitor > %s &", monitor_log_path); + if (CHECK_FAIL(system(cmd))) + goto close_cgroup_fd; server_fd =3D start_mptcp_server(AF_INET, NULL, 0, 0); if (CHECK_FAIL(server_fd < 0)) goto close_cgroup_fd; @@ -107,6 +187,8 @@ void test_mptcp(void) CHECK_FAIL(run_test(cgroup_fd, server_fd, true)); =20 close(server_fd); + snprintf(cmd, sizeof(cmd), "rm -rf %s", tmp_dir); + system(cmd); =20 close_cgroup_fd: close(cgroup_fd); diff --git a/tools/testing/selftests/bpf/progs/mptcp.c b/tools/testing/self= tests/bpf/progs/mptcp.c index a14ed1b66da8..c429b6088832 100644 --- a/tools/testing/selftests/bpf/progs/mptcp.c +++ b/tools/testing/selftests/bpf/progs/mptcp.c @@ -1,6 +1,7 @@ // SPDX-License-Identifier: GPL-2.0 #include #include +#include "bpf_tcp_helpers.h" =20 char _license[] SEC("license") =3D "GPL"; __u32 _version SEC("version") =3D 1; @@ -8,6 +9,7 @@ __u32 _version SEC("version") =3D 1; struct mptcp_storage { __u32 invoked; __u32 is_mptcp; + __u32 token; }; =20 struct { @@ -20,8 +22,10 @@ struct { SEC("sockops") int _sockops(struct bpf_sock_ops *ctx) { + char fmt[] =3D "invoked=3D%u is_mptcp=3D%u token=3D%x\n"; struct mptcp_storage *storage; struct bpf_tcp_sock *tcp_sk; + struct mptcp_sock *msk; int op =3D (int)ctx->op; struct bpf_sock *sk; =20 @@ -36,13 +40,29 @@ int _sockops(struct bpf_sock_ops *ctx) if (!tcp_sk) return 1; =20 - storage =3D bpf_sk_storage_get(&socket_storage_map, sk, 0, - BPF_SK_STORAGE_GET_F_CREATE); - if (!storage) - return 1; + if (!tcp_sk->is_mptcp) { + storage =3D bpf_sk_storage_get(&socket_storage_map, sk, 0, + BPF_SK_STORAGE_GET_F_CREATE); + if (!storage) + return 1; + + storage->token =3D 0; + } else { + msk =3D bpf_skc_to_mptcp_sock(sk); + if (!msk) + return 1; + + storage =3D bpf_sk_storage_get(&socket_storage_map, msk, 0, + BPF_SK_STORAGE_GET_F_CREATE); + if (!storage) + return 1; =20 + storage->token =3D msk->token; + } storage->invoked++; storage->is_mptcp =3D tcp_sk->is_mptcp; + bpf_trace_printk(fmt, sizeof(fmt), + storage->invoked, storage->is_mptcp, storage->token); =20 return 1; } --=20 2.34.1