From nobody Fri May 3 23:40:57 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a05:6402:358d:0:0:0:0 with SMTP id y13csp1083753edc; Tue, 8 Mar 2022 02:47:56 -0800 (PST) X-Google-Smtp-Source: ABdhPJyr30iWFV/4YttKn7DjlR2OogPIUE0OeLptbp/k+OUSOwyVa+E+E7FEtCOPY+CNb4h+5PJs X-Received: by 2002:a81:f47:0:b0:2dc:49c0:9185 with SMTP id 68-20020a810f47000000b002dc49c09185mr12421471ywp.242.1646736476330; Tue, 08 Mar 2022 02:47:56 -0800 (PST) Return-Path: Received: from ewr.edge.kernel.org (ewr.edge.kernel.org. [147.75.197.195]) by mx.google.com with ESMTPS id a13-20020a25804d000000b00628d6f5686dsi8086544ybn.53.2022.03.08.02.47.56 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 08 Mar 2022 02:47:56 -0800 (PST) Received-SPF: pass (google.com: domain of mptcp+bounces-4149-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.197.195 as permitted sender) client-ip=147.75.197.195; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.com header.s=mimecast20200619 header.b=JhzkINpx; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4149-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.197.195 as permitted sender) smtp.mailfrom="mptcp+bounces-4149-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 B4B001C0A95 for ; Tue, 8 Mar 2022 10:47:55 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 2C7F93D98; Tue, 8 Mar 2022 10:47:54 +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 B8DB27C for ; Tue, 8 Mar 2022 10:47:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1646736470; 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=JhzkINpxdCXU2EkYrc7FUuqK/Ow/teBNiuEHE4gZU1YuRAF+g3mE+n5i1i4LYQXA+VON84 E7+/5V2fNBSRDUM+a1mMROIOf+dZn6rF81BL7TGIKNQyuXuXOCdwOHOf+cYqp7yWQQzMW8 0JTxzCh3Jm2NNrXbtTiVuP6VDwwqjSw= Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-db3eur04lp2056.outbound.protection.outlook.com [104.47.12.56]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-23-4Y5BfxhPPsqnDDgLigedZg-1; Tue, 08 Mar 2022 11:47:49 +0100 X-MC-Unique: 4Y5BfxhPPsqnDDgLigedZg-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=kQr0/96X4PGjSB+EZxZYUc9DugsI0To5j+o7QLBVP/DyZgu63DMaRMCXXjYJ49ljOuaYAMgLr2oEcKa2LGccfVO9pF5pxE6GHaGrqlJTRqut5gj+9eaRtdnFVBTIsBKJ6Pv2fSOQOKTpylFQ1DMOFI+jya9QZgrYwNLpcek5hcHoFCi2+2/lNDnVMmVI56UhZfdDW0mhtscWYk3S2c+zwuYpIGIgFR9n3OFK/rkdpnkVa7wZQGjmOZhyLkfwiOV+wgS2F990c7GOVxwfsB8rMLspMHtmqzkNzizSGaWc3VMWD8u1z6xVRcFXzZypXCOLDWrpI2xFOzWnlS39+hBEtg== 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=HNGtEI7axNhDvuUrtRk+CpGQcfbkjgJJoVUjfgqYM6SSnIaJmdbCktzf7ypeX8RRrWD1NqPVji87KBse/X+IE1sX+kon7yzrFfOuR98MrAt9cz1JDjQ6/ZcRc2BkN78i1EyoZm2qirTOZclglJTyd3mVIESLGzjXwC26VXHXrJ7P3Qp9hb4GTKxvfnGWaJYWamivU7TDIcA1XN6gPwmuM+wvg3gMAfFdUZjOznqBkHjbRjSC1aLfU5MOsJP2Y5d4mQb9kPZ3mlq+Hbi1n25FCtFYHinqJLXq86ufvqnnvu/32Tik2/fiCfMpOaakqMsETwhCPJl5T9ZaHQKWGHW04Q== 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 DBBPR04MB7929.eurprd04.prod.outlook.com (2603:10a6:10:1ec::21) 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 10:47:48 +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 10:47:48 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v8 1/5] Revert "selftests: bpf: add bpf_mptcp_sock() verifier tests" Date: Tue, 8 Mar 2022 18:47:28 +0800 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HK0PR01CA0060.apcprd01.prod.exchangelabs.com (2603:1096:203:a6::24) 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: ab664c67-f69a-4ebb-d765-08da00f11635 X-MS-TrafficTypeDiagnostic: DBBPR04MB7929: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: 6926vL2WNrEy0EbAKOWLKs7TQZYIQ/wP3JWZHZHnO0i/k/UlgCL8RBXVhq3Kqj+2OFfGeUzZmQCmy4R2/x+vlpHJw9KXhQw3Vg3AW6p6uufN23LPVMeVVdke4Otoa1vJXZvSY4jrcYrVyGqiloTF7LeHPWj081O4jEjNehBH57coqrxJ+6SyeK94R48beXB6rWSKbW+j7mlJ6Id1DJu+Kr6JPY2zvEyWSdnM5u+7HbG6oOwQ41MK85fa273+RqPhm1cjeisQ1Rw+CRGt9Y3hc1qKNDZ6078mRIr+0kfpF2wOCd+31r/lrfO/RvpzF/Zg4TCPIclqaol8pQQeE5JY4/sSvlTwY7XfJ22jNi1FPHZ+zEUG3pNodtYhdsc0EBWRMvE/79CkrjZbPjiZ5pbpZRScyry/swtcCnKduNr0988pKT4ShePZtkRv0DOLZImpy3/Th5w5NR8paI1FULnkagq2+/sh/htJh2KqPaNGKip9jn85/wr5QA1+i+Ro8n9nY+PNm29saPbGXQ659b9whUwadEE0DqAG2objoVs9/OfwxNVY0I0hv/bcVhmFbIudUqryay3gL3daBT790CBH2esb0PReHdDQpG/j0nFOf7gKKc84UF4/lYlm1Cpwt7WHS/1cPMa9maDPkfa4YuuIoR5oBwGzMUFumjQu6/6MFP5K5akz39wewy9YRT2qpP/v1K6Bf+4d4yR8gtBx8voX6g== 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)(26005)(107886003)(186003)(6666004)(6506007)(2616005)(38100700002)(83380400001)(4326008)(66946007)(44832011)(66476007)(8936002)(8676002)(5660300002)(6512007)(66556008)(36756003)(2906002)(508600001)(6916009)(6486002)(316002)(86362001)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?h2ZWztqxfZENBNxZItYPAi0DXbovwx7iCl4Ns1lx4dHUOl9nyXLb1K+D+iSa?= =?us-ascii?Q?WIBr7TkMH1Co3d++Rmu7iIBIbIpfOsGPHM2z0U9Ioo71SqlP0EEX7/uTQIW8?= =?us-ascii?Q?I1GejMErm+ho/iR1HQl79R70H5kunbjcDF6T67848Ek2nOgiX8Oh69dKiNLu?= =?us-ascii?Q?0RY+nZ/QGQH90y2MPTNSyjZARA0uRLqcFrfRuA0cchXvP+bWfDp1hkN3weFl?= =?us-ascii?Q?LUs3uCIrcuAvgr6+PvW9GpUUpJxnj1wjb7A4OEVuNC0XPXKKaraFMawL4N2m?= =?us-ascii?Q?7YS0ORukkb0e9lA/toHTwFcXiWcW6V2PBmZtlaDzAfoRat1UNqlEmGMEMJ2u?= =?us-ascii?Q?XcwKpFsddGBt2CoCO0PQK9CTdUihhyip3rHcSppx1073YGgIUomgE57F1h70?= =?us-ascii?Q?Za1oQWAKoTdYOTmHnuXihkRWKCXbo9bpy9d93oK54NerHmbAsGuqRioqQllP?= =?us-ascii?Q?q0s2oVjU8OA6zJOiolqUwI0OaOf9Je7B1F6h5bQnXOMFOsZ0KwkNrIYIeokB?= =?us-ascii?Q?rny/l+nat3Hpzs4K8GFcTivHHy2VSKtuZbGpA59xhYPZFQfIZtxl3dB9cepG?= =?us-ascii?Q?3SYBU/OZjhxKsSSLeskNelveojb2kfmNg4uHUDoicrsLS7BlMZhOIR5BP3nV?= =?us-ascii?Q?LN4nwMnaRqEjemnk6JnD4nIdP6G07q0JGxcYZow1AabXW9v9pH384nBUAtT3?= =?us-ascii?Q?/Sd11bNJdCHWN3XdCClJJbf+D823kmGBXinxzgHlQ+fuvbtN/AqQmVrAJJRh?= =?us-ascii?Q?PvZi1ZRfZlc+0SUVKMs/KMzMzQSa/wIeo+lxvm2+Lr8XQaEMb8lMiADY5oDX?= =?us-ascii?Q?0DrupDyBJr49lsNvq8sUe9qkfdTvkSC1nR5isqUkOVPQrx9yrfVAt93RQXNd?= =?us-ascii?Q?u8sNdmkKWpGFZF0xvaNhM+LJ8dAB5Ig6q6jvcRowYAcUkP4UzAGXKs6PSFfh?= =?us-ascii?Q?oukEvVMcZnKm2gopBRyCJdJBeeegO4uLDc2ZtrcoIrQeI50d8Gynb7w1BzXS?= =?us-ascii?Q?iwe33aZ3pl4HPoaJqrF4CB7fphsSlyc+/e8xbCYjFs9Lu/V2zFRn6KbGME0C?= =?us-ascii?Q?4bEuPYjMkYdrclTLc93pmJdeSj5cRZqR4Ox/vKST5aJ7zu9kw7NrQtT9zcW7?= =?us-ascii?Q?ph+GEy+HFjVcXWWGzWD3h5iCzQeQhYXetjPwO8P0REYCv/ql6O32ASwh6IqZ?= =?us-ascii?Q?vkpGIeQuhrXOv8BHpp/iI/tFlYErlW2kmI/Hc4Wx1WvZHAA416ofjyJn6eDr?= =?us-ascii?Q?eAjvPCg8XpfcBw/ZOyiUd6WFBgiPmgg360pDh37J/CLlABGOjsijAgcHzXsH?= =?us-ascii?Q?XpnECmNFZKGoUA7f+UjaKIJ5XjxfvPIftT9Kq6Df1bfFBg1ofgZ4fLi7knz+?= =?us-ascii?Q?52nlZYdzxwWcn/eYlamn6XYe3n6H5YKi1sTA8z6HmaZ/5EjEguBlP12Svoex?= =?us-ascii?Q?Sf+fRIXJBOV3WwCQIc0kCsdPtb85Udt4ruuql3rA3q4KHeE1mfOz2nuqW2ip?= =?us-ascii?Q?56Klt9lRdfxCp7IxXLPwz3r8sj1u+Fb7+xoi1S3qmmMq7GfPzNv15lEEEauN?= =?us-ascii?Q?OSBAAtb7PQ1EjPR5n25Apwl3tg3sxDivw3m3YAGAqBFZ3A4fsIIgfXcutikU?= =?us-ascii?Q?3Qy8K5BMEC/NvLMHLFFFsis=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: ab664c67-f69a-4ebb-d765-08da00f11635 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Mar 2022 10:47:48.7185 (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: OjCLFf501wTV2WUBbZQ4KdXRerEXkPvh289BUIkfwTdRW/zmXDJ4ALE5+YBzCZw4oVp+ZxOM4ZpVIP2MkVl8ng== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR04MB7929 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 Fri May 3 23:40:57 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a05:6402:358d:0:0:0:0 with SMTP id y13csp1083779edc; Tue, 8 Mar 2022 02:48:03 -0800 (PST) X-Google-Smtp-Source: ABdhPJwphH+PZcz5SNMSDGKJol5AYzo/eyBk1VH0EbKneIsSD6ObXPzHMp8kM4N5+MgHngunY7LR X-Received: by 2002:a25:ae49:0:b0:628:a41d:81e with SMTP id g9-20020a25ae49000000b00628a41d081emr11643527ybe.650.1646736483663; Tue, 08 Mar 2022 02:48:03 -0800 (PST) Return-Path: Received: from ewr.edge.kernel.org (ewr.edge.kernel.org. [147.75.197.195]) by mx.google.com with ESMTPS id k4-20020a819304000000b002d035ccfb29si10727747ywg.461.2022.03.08.02.48.03 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 08 Mar 2022 02:48:03 -0800 (PST) Received-SPF: pass (google.com: domain of mptcp+bounces-4150-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.197.195 as permitted sender) client-ip=147.75.197.195; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.com header.s=mimecast20200619 header.b=StlvOb+b; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4150-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.197.195 as permitted sender) smtp.mailfrom="mptcp+bounces-4150-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 F40DC1C0A68 for ; Tue, 8 Mar 2022 10:48:02 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id D3D203D98; Tue, 8 Mar 2022 10:48:01 +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 2BBF67C for ; Tue, 8 Mar 2022 10:47:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1646736477; 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=StlvOb+bqkRUkBhJYdZI6CfPqCQVYUaq6CmIBTPv9GV3ENHzyZxVyn+JECrls7bd2byUTI qo4CEinavX89N5isqf/pX6SQAUjTad+sbKAXcBaGUzNqoe+NKnQn/T64Sm44Cke0B184kN AFJVF1A5lG+7H81VxGB85s5p+scJwkg= Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-db3eur04lp2058.outbound.protection.outlook.com [104.47.12.58]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-32-ih68IfTHMRqRMFxYenX_lA-1; Tue, 08 Mar 2022 11:47:56 +0100 X-MC-Unique: ih68IfTHMRqRMFxYenX_lA-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=g+oGzTcjFGNaJYYOzl9JshdaQO3f8w0Ovug9mQDhWOtw+9030M1FbSRD1uMJFzjBB1tHKUPABszKocwkq1N0yWdGhJH6YZd4p1FqyPU+8/289XynqYzxeCrOb+jmRuWmblO054+hOsfzKLgnekmkKFoBsCyYQBfhYPs+Q7XGF4Ik0L6AaKSESjmHqxk4GkawkeK4txoW02TbyZLUlvR4FAXrthr/TYb2rk0pTS+MheRfhabZKHba9sov3d11TPPATFOqzWLgmPNSMHasa53pvik49h69MA1kB/7/dCQeYbmp+8RpRpCaOb3VvrJ6NHXjCJsqGu4Gxv77PNCNmeyvuw== 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=gX7EkKX3Z0/qVLDSQlOWqG3qTHecxA+FLraIVHYqwWtAP0KxpmUtEOMWSkKrJU7AKoGP54xM8/gRfL4Uk/FY1znHZ5xDyAtKlz4hAU5+X7uIP0lYjgrEqV6LyTOTussZBrkkPzPQA/dMQE2nIHTst7gNhZd/izQMvADXxdS16EzaNivl907JoGwYLn/yS33xpdd1GWdXtzJnh0axisB9ljlNB1QmvseVnpeHBP9/bi7JzXUIMGFSVvOsi3ioUQbEZ+NQ/0rxUmAWKMoXbxqzbNkMNnVeCfRQm4eK6H9cbcshlhZNVquPuq3mri3SFOkvwPs6VJWYI+DPHtC5l2X/1w== 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 DBBPR04MB7929.eurprd04.prod.outlook.com (2603:10a6:10:1ec::21) 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 10:47:55 +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 10:47:55 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v8 2/5] Revert "bpf: add 'bpf_mptcp_sock' structure and helper" Date: Tue, 8 Mar 2022 18:47:29 +0800 Message-ID: <5d0f38a0fb220bae4f170f2debf5a8b8a031ba7e.1646736285.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HK0PR03CA0097.apcprd03.prod.outlook.com (2603:1096:203:b0::13) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: db10927a-eaee-40e3-9591-08da00f11a15 X-MS-TrafficTypeDiagnostic: DBBPR04MB7929: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: dJpKLUdS+Bg0sZGPtwkz/QlniV8bUg0vUGa+7H3WeQgI9yj0mzIZWGd+XK0gCUalTV3M6STNVgoTZdx+oEZYnGQ0idjGd2Pjz7EnB5SFm6zgH08K9Wg0IInSApLeKr05jWpcHD9FBJ/jWIfm5dqK5Il4+VI3iv3CjIkpw/thkIUpv5m9dFygNB93DRvGxGiY1rlDMCSkGegLrNqGmlKuGBwVqkU/OlFadZb1DUNKyMk/GwYB4d4QmEuWs215klJ+JQm3iYN0KVPIYTgZ+qBteuKxiVQc8RhIS2kqwRE8y5k48WDoTHIgxYaOEIr3Cvv+9nj2/tYmCQPwZJ5dAnPkich2VTBmavok2l69NZtA2NASzgFRUIgJgW5qX7krTfED9BYOmFSJtFP/mdITVvK0klcpMAfyHlvziigTDMieiFdIb7z6ZZLJ5p7mAbWi16d4rB6/gxRLxolbO0/uFXJluQC6/dHMNI/p84ugdSNGGgzgQBoyagr2PQ0+TOGV4Y3ounZxUZ5NJjeUKUwag4hTD6YUV6rCZARjcST9c95s3IxHVzBfY1rUcANxES4a6b/3Xnxfo573tjBtsBVJR7+9DdCvT5aDQmQGlZTTCAEQun/6VyO8HfeMzzjOotu2j7LEGzsA7MRbJ1fH4CeHcF2Rk9n9Cnm+mpNMEqOw/0X4rmzBwNGtwWZMlIa0ukOqiTVi17uZqa8y30Pe+TGAkgt10g== 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)(26005)(107886003)(186003)(6666004)(6506007)(2616005)(38100700002)(83380400001)(4326008)(66946007)(44832011)(30864003)(66476007)(8936002)(8676002)(5660300002)(6512007)(66556008)(36756003)(2906002)(508600001)(6916009)(6486002)(316002)(86362001)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?iWVc99yyao3Eb0j7RjA8JMt9Dz1Z0n/5ISepMZh73xgm4Q9N5UVy5T+ihCtC?= =?us-ascii?Q?PkwSzCRwHxRQyI9fS5onTBsRQVt4J53BczCp5z3fDtZfpVtu7MGr9v6Nx1b5?= =?us-ascii?Q?MowjAPpnMcx8zEI78kR09AdDQnS2wutEfHvFSL/9gKuOn+MiNh14C13midqH?= =?us-ascii?Q?Mldx+r6vMaw2ij+JJmN+LO2Hrt1QryiUhtLPPHqvNH5/E5zX8k2koFxg4e4J?= =?us-ascii?Q?Xix6s79F1HdTRPP36mFJ90ZdO90+nf4ptLsE6CRBnlAhMvJnuyXEdeWGAeIa?= =?us-ascii?Q?rAhnwNEVny9PEaicLV9QCLnkT1bBdH7BgLfDv1LBy1309mnDiR9YujYhpJe0?= =?us-ascii?Q?z0mbcyv1f+SSmCxD7at648GBEkVg0seAc62OGEjnc6BCqlNUtQc4Xigb4j40?= =?us-ascii?Q?C40DOkM4ZIHT8IwkuuiOuhRjZCxP8QVJ+1P6Cp8rdd4+q64MxVQ9f5Kyzvm0?= =?us-ascii?Q?nDwJu/LUzOHKrB9yyQF4tjfyjhd4pOyP0qnAcvjRyGsxp7hQ//qtvx3URCK0?= =?us-ascii?Q?YvQxLVfYZTb0uVElmMd7mWCOonBWLi0dI/b7zcaKldnNUDkz5bfz+w1WeLpk?= =?us-ascii?Q?FCjOh2CwZ6Hb6gAVt/7fJpbUSSpOUzdAabxoW9wSTHqokbbmvtVReq+i+Lfn?= =?us-ascii?Q?4Rza14QbRIHC67qnBIkbrPpD4wBrvBJuoPSaaGY+Z3tph9oQRfbDGBIVne5k?= =?us-ascii?Q?7pMA5rqPPlDmFzgU1eUFAbKuaLt8WMB8lhBKO2hTxWFNOrltD/dHsoEf5Hxv?= =?us-ascii?Q?TUGU1qRnE5hFvExpLRx8e9F85h/bHR7sYQTjnMbeRp/C+44OhMiLy1Mx+mHi?= =?us-ascii?Q?kgPwYmnJbMT9/8Lmo+YOppmHGt7naOydNBdtmuA+m9isfazv/UMAq5R6zFAw?= =?us-ascii?Q?kjdYiZvT2yTE9x8FBHjvboqMr3GeinOK+yJyLXOabhdj87aHmfDpKwW5Nm3L?= =?us-ascii?Q?HsZ8jGcANpCfsqS6yuMLLE/cq3LbJjMxe+xrK3gOae5fevGJTDBtu9Ja83c0?= =?us-ascii?Q?H1srWbXseyFs/0brxf73Tbp2Mlr3OE8PozMh77ur3DBwbo8Xj/aZYZ/vYigE?= =?us-ascii?Q?J2NWtQsxWE9j2tnUBr1tCmjA0+PGiCovUmSfq70cdS+WTBm24+j2YIHcIH/I?= =?us-ascii?Q?wL/OXGffVjiT9ZgTz7tllxC3fnLMryQptj67cuC96/D8fogYTVaC81g5xLYr?= =?us-ascii?Q?6CQTlib5jBf5sVM+CQuc6gdFJz8NDBub3oTUAN797PFq5ysD0VDZztMglIW0?= =?us-ascii?Q?fEjUK6Cy8laREqSDKkuIrayBI3sFYQ9O3cTOELs3n95nW/sAq/O2AGdWSX6c?= =?us-ascii?Q?r338DtjugZUx9wGlLgBASQPauQjTFh+n8VSb+uDAdmXjr72MfTnf9OxLPCMV?= =?us-ascii?Q?3Ds7LVNbGVgrluNNm2NOMK2iBt2DLHDhiyF4QqdCj0NSTeNEhQbUIBDSkLGO?= =?us-ascii?Q?wF/YJvF/hA+iqZnyhpXS7HidT2Ikjk7BrXulOfqkM73j22qiTqNj8GnJmQ6u?= =?us-ascii?Q?A5yHahxDitwYHBk0R1pcoXhzwZ7Q9OpkGo+FVNGi/rGR2Xo+/IkjkFABX/tC?= =?us-ascii?Q?uzCoAD8kpICBMPmLZ4Qv5Y2wyI/3HkILNSXwDOnbGCVtJnuo+AMnI9IRLyO+?= =?us-ascii?Q?GQT+ngdPYgsSuHajZ7mNCrM=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: db10927a-eaee-40e3-9591-08da00f11a15 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Mar 2022 10:47:55.2649 (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: jB16h0MUfZpokU5EaJExUooYYbxrfhxWPmzMqARvlkJoay0LIYIAJ6pTRr08jhrNYWYBVDeoGS2MCH9nN8SlWQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR04MB7929 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 Fri May 3 23:40:57 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a05:6402:358d:0:0:0:0 with SMTP id y13csp1083814edc; Tue, 8 Mar 2022 02:48:10 -0800 (PST) X-Google-Smtp-Source: ABdhPJwOzMSY8BGQWcLgS22/xsTMZptyDEEz+FODj6Wd1kqZqz+5/mowdsuv8QdrEen8rTKvCBoQ X-Received: by 2002:aa7:859a:0:b0:4f6:aaa1:832f with SMTP id w26-20020aa7859a000000b004f6aaa1832fmr17778801pfn.9.1646736490007; Tue, 08 Mar 2022 02:48:10 -0800 (PST) Return-Path: Received: from sjc.edge.kernel.org (sjc.edge.kernel.org. [2604:1380:1000:8100::1]) by mx.google.com with ESMTPS id z2-20020a630a42000000b0037628b82df3si16089883pgk.108.2022.03.08.02.48.09 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 08 Mar 2022 02:48:09 -0800 (PST) Received-SPF: pass (google.com: domain of mptcp+bounces-4151-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=WRvmLoba; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4151-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1000:8100::1 as permitted sender) smtp.mailfrom="mptcp+bounces-4151-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 81BDC3E0E89 for ; Tue, 8 Mar 2022 10:48:09 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 84E2C3D98; Tue, 8 Mar 2022 10:48:08 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.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 1DA597C for ; Tue, 8 Mar 2022 10:48:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1646736484; 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=WRvmLobaUT25EUt1Mn+NlyXfSPWVV9cJ5nQXrB0nKVjevZqkiKOY13T7+D/zayW0Y/3fqP POsyfg8GxOCRuCHNKAb24KUTueEhIW22TVz/TFh/HwLoZ3FDwaJ5VhHaM2UZOYj8D/Sk7v P957fQxbH6ShdVGBGbgdno0eFOeaW1A= Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-vi1eur04lp2056.outbound.protection.outlook.com [104.47.14.56]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-20-AGIo2QTwNdiYHnOb7XUilQ-1; Tue, 08 Mar 2022 11:48:03 +0100 X-MC-Unique: AGIo2QTwNdiYHnOb7XUilQ-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Hj5pNahpIEwHKAJqFC+Zz16EK6rSvogz/HOnLiVS30lIH4jdFztWSpQwhE5Cfbo850DBr9Tif87ZEZ7RhANsxmuC2ysIV5PFwac4iN/I4GHvlSdxl1FHx5wDyM935FaujZM3uZ54fp5pxRQYvcFaBSZFmPf4ePgBBh4vkBiZPcfg6JZd3ttl1afdkG4wMKas2UP5AS+1v6QLioS0VD/LJLykUKCSw0QAZPKib1i54YscmSurvoDY+RoBH1vwY3m9BmAgFtlhbapLJ78Fv7M1DuOwDq67R64U7sU8lGwDUDxVQZ6Jtde+rSumNaGmUoJFgO1MX6RNlQ72fQhvNmOQAg== 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=QUHFN9ikgOmNCE1Q2y15WtyeLQswczxvr+auNRtqBliPlpjcKAADGEHfEyFSQsCFoFGaeXHTiOR41ySqMDqENnVdkkPLHVcPcaaq7w7P3SSxeMqHBeQd/BFvmJBtjSFuR5BcFv0l+zvgTetkFDMBX8dlddcm4MNrAXweywgs9pj7vnZGuRzEJSf7dPaIPq90+p2t4NSXfeDRmhOeF5iKEr+O3Y29ds5gZdwRytROoG3ybn1SBeLa2e5sD7Pi/IQTy/10dVTCJFcDyD4M7TWhYbkSm9xnWeCCKOYLACA7ggH79B6d7bMz/AVmTAskFul78Ad5KQcYPgy/VkvHe+AcCQ== 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 DBBPR04MB7929.eurprd04.prod.outlook.com (2603:10a6:10:1ec::21) 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 10:48:02 +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 10:48:01 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang , Nicolas Rybowski , Matthieu Baerts Subject: [PATCH mptcp-next v8 3/5] bpf: add skc_to_mptcp_sock helper Date: Tue, 8 Mar 2022 18:47:30 +0800 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HK0PR01CA0052.apcprd01.prod.exchangelabs.com (2603:1096:203:a6::16) 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: c1cede60-9a6b-40ef-2cc1-08da00f11dee X-MS-TrafficTypeDiagnostic: DBBPR04MB7929: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: 8Q0UxrDjQnhja1inx4BYIN4qsh8aZIknEE0nCsJIq4p+TiwlTIOKN4m0fxAOtH6b5L6CX98vpj8KwIVCnNPuciC9zm8oFgDCNwzf/qsd2Yq9ft761YzqQwWx7JhIA7WGHH6BAhZzvrMGwlFtoyhDqE8762ufvJQk+Lw8IC4AC25nlr4TUJkLQz1SbJIdw6XroiIOPIs7dnJF1MFid49/D41iutfwHHktuFGioeoAnx0YcAnyHvdYWaTPrDRjEBhzVWdREM+xAjjNHrRentszHWn1LExTWPAvCXSDPDhcXrZfGidHywFPKj/GVmZ87LmGskLO3tcM7gmPSYriNnXJDqKTAUDxyuY5sooF5DLz0ayx4bUjLKuYoP6ayXI8pfL8cdGQ5Vs+ZLaHqrF0EMgFkXwFLyAvZiKY44MX9hVWWYWXvjn4g7wennsKzWhFW+iztTQjTlqKUnYnFjcJsAIjWvZSgM/LOl2b6+NyvIkyGBvCg617ffZ2Xphb/GDuMGLWqiESC53Y2F1Q6D45Yh8cfoyuC4oGM1Y9HCqmabRINPi3pBrgqOUuYjNnBiFiXTaZTqTN2r8vIEDmQhKsFOXQTvPj/6zyMQvhHpM3KXwORbHoMH1vikP09vMvuvLY4V8681JZJ8yqzGoWJCK8P/P2kJFSonK+xF9l1RcrFjo45f3JvUcv/xiEscUdsdnPHPipT6KmZBSba4xRadPp7IQ5gg== 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)(26005)(186003)(6666004)(6506007)(2616005)(38100700002)(83380400001)(4326008)(66946007)(44832011)(66476007)(8936002)(8676002)(5660300002)(6512007)(66556008)(36756003)(2906002)(508600001)(6916009)(6486002)(54906003)(316002)(86362001)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?DZBvNAjF9GyX6EYOlmzq/EKpsFI3JhpozuJokT//c2UAnZAyIPKMpA05cRF9?= =?us-ascii?Q?PN6+rREGkGE3HAYXYTFSjNPKfNBC62R5FEW64OWWb3TPd+stdsmCxCy+2pcD?= =?us-ascii?Q?sT7gvDBbGxCHqdt5uTD70NdMxegYRjSgoh9bBIKQrv812BDiySr+fAswln8/?= =?us-ascii?Q?rp2pJLcAz21rsBW1GA9100BOMf5/eXNP7LKtZAHwpylRyMI0Fr90UINBT93m?= =?us-ascii?Q?KDfcV/Z8cuX4vYcgb5IPhHuwume6ez4sVWfSGOBLWhAlW0ZW/JN1sxK9D4pR?= =?us-ascii?Q?hBq/b/dQ1Nlz6FRfZXX1nesjaF6e31+3juAYZLsWwHXpjGE+QrgWQ+x/WEEX?= =?us-ascii?Q?IY2K6I16Ot81vOvcHwriG1r9uJwzAi9bhKKCNmqPWRGC/SGof/EW0saXTDyL?= =?us-ascii?Q?aQxtCUx9JbVIA6Y/tWIrtgz3+Yh5CfGdstlb02upTQgiXhFcM4BZicymyfaq?= =?us-ascii?Q?0JABWLt6ARqQSUIZQstEFvBJ0xadCXvn/WAjYK85TGRysWOyd2j0SeDN7GLT?= =?us-ascii?Q?NSWiHc4NKGpA0xXXNeMUbMT4KuQk/ZHjQZn/H40+ND9iWiHx/fZrc/J1TW2Y?= =?us-ascii?Q?S3efZtHTPoRNHNnpgls64J80iQksS1FKRFDnFga32kxmB/LH7DmnPJI6HlbC?= =?us-ascii?Q?Ieddu+9OAmic2zHYOKYvQFJRM29JiivMv5iLe5WpEjvz1pLtCZNrbbUJNAl6?= =?us-ascii?Q?ohJaQDWeh2lPapTPM4YAGZM4jEPoHg6eiYc3FZQP+kAQdXY0InjLBrJNdizo?= =?us-ascii?Q?x1CtFZ3EQ3lwoGD/KfFv/Gd3qmwZ9vuXDwc/FyOW0BsfCYIq+Bmj7dLSwmz/?= =?us-ascii?Q?+AJ5kLSS294afX4GckSOoqkI5EyLcXrhtqlhM9otTy8H9tjlZ9Ywb45BYq7v?= =?us-ascii?Q?uuqCIqC4FrodU2H44ZxC/bp9q3AEpQY0/xTN6AE5xd5yu5P8yDaLwtlWRqoH?= =?us-ascii?Q?mb9rw+1ODtXVsBoJimTRGlvEWi4jTgSVG/9mQ/qvaB/vHAK6wO83fudS1ilR?= =?us-ascii?Q?dqGm9vScPiUqBk/18x8ynXZticAG5l/hpnYs7mgn8SQdMwbWWjXjgj2crYzf?= =?us-ascii?Q?+ZPEtw3GFA9P/OFHKkBrzPawaL5YV6pjIh+Q4fPSz8ePSJXghPUkFI/jLu2r?= =?us-ascii?Q?Ps3Jo8Jl9qCNTulfS3I/5RjflCG98xw1bUsDUm+7UvrvqbjOBb+C+PBTTUhE?= =?us-ascii?Q?jAjHkGMlnBu3aMvmi1MwGAbTjqedQzFMuYSsxHVLW73SAXD1OYw6sT6C2PId?= =?us-ascii?Q?xMNwT72wdXDt2x+Hjq50yqcK8i1sCTvyRFwtIuCyeSRryulSJDZdJtnYY7j7?= =?us-ascii?Q?wgOhZ3blWCUZyYiZ9/Jzj3jLUE/fZdDRab64HTfRAK8jCwZ3hI4C2T6FR89Q?= =?us-ascii?Q?JH6xS38eZXVp9cA02zSmZhYtMUZSONiOHjszckWQ2u3oWOYyU30rCSaBh0WZ?= =?us-ascii?Q?h/30uMycTgKsb1xPOU2sfyRVOU96f+ZnurwN3mNh9p8oggAkozfnB1tfHYRt?= =?us-ascii?Q?+MtQWcnNBlPf7pn/MPge6/Bo+1TW7Bqddmu+SxYEVgwGm8b1bjNu6wicDr9r?= =?us-ascii?Q?+klSg7nT6TnJTxYQo90mToXemXNqc4rpujGlZ4SR6zBSXguM5QALvxyJGygI?= =?us-ascii?Q?iN8Jp8yhe1YLU2npBNEGkbE=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: c1cede60-9a6b-40ef-2cc1-08da00f11dee X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Mar 2022 10:48:01.8581 (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: S40fQPNlDi18gh9uIQ+BthXtb6rOi4425aFPZhxSW3zHV0fy+qMSFCY3RfKpj2/LRM7ztopHxMzxbM8JiScDEA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR04MB7929 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 Fri May 3 23:40:57 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a05:6402:358d:0:0:0:0 with SMTP id y13csp1083845edc; Tue, 8 Mar 2022 02:48:15 -0800 (PST) X-Google-Smtp-Source: ABdhPJyj1gD+yJCAv4l1m1lQWbKd+0slCNu0c7OyXkFEuoFsaBO3jSJqIJ8g2PseuhU8wQE25bqk X-Received: by 2002:a25:af02:0:b0:612:9f5e:de2e with SMTP id a2-20020a25af02000000b006129f5ede2emr11394225ybh.116.1646736495460; Tue, 08 Mar 2022 02:48:15 -0800 (PST) Return-Path: Received: from ewr.edge.kernel.org (ewr.edge.kernel.org. [147.75.197.195]) by mx.google.com with ESMTPS id 12-20020a25050c000000b00628fbd78af4si7627707ybf.333.2022.03.08.02.48.15 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 08 Mar 2022 02:48:15 -0800 (PST) Received-SPF: pass (google.com: domain of mptcp+bounces-4152-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.197.195 as permitted sender) client-ip=147.75.197.195; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.com header.s=mimecast20200619 header.b=N7xFcCBP; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4152-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.197.195 as permitted sender) smtp.mailfrom="mptcp+bounces-4152-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 0BEA71C0AF3 for ; Tue, 8 Mar 2022 10:48:15 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id BC0D43D98; Tue, 8 Mar 2022 10:48:13 +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 22A8E7C for ; Tue, 8 Mar 2022 10:48:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1646736490; 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=7BGizHph/YhE1zNm7kEajUC7f1Y7h8Wgg45i61M3+mM=; b=N7xFcCBPCZbnduZaJcEMC1BP1OkPU346xPi948Q7rnmfwL1shLmG0VEnthqMOlsBfQUvYF HmOpabwFCgfVxOCBklorpFyf65CqqddSrroofwRcBgVnf8W30VciSIoJMzIbGSifF7CLk5 ogkakdkl1bLWss6vyu+bpYuiOkFRh98= Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-db3eur04lp2057.outbound.protection.outlook.com [104.47.12.57]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-25-iNjNmazsOBaAXH18NJbugg-1; Tue, 08 Mar 2022 11:48:09 +0100 X-MC-Unique: iNjNmazsOBaAXH18NJbugg-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ih+Ix7V2m6zDkHNiKRrodmBblAT2xCnDhL8aeFAB4d4zRe5nZy+9/3OQwuv5WTcx08oSxUP9VCGA2mZgvGPguB7V19dM4BfC6Z4ZHdhSwx3YtHc3+DmKiN8JczCW+08r8cwLBMe0uAnjbvFHg7LHKqT5oZFXWwcmBtMZROHT3ubZOCK4fvuPUVev2j6vrEdzgTLlwGCrvzEGPLYbQ0dlT8XCD6F9Os+CZVUcGgGlN3cpbp8QtaugNCtZ3dDHPRQxincq1sefOQVHgexBz5Nf73pZyQLb6rCQXZCWkVVZZf5wDwDd+fOXux5o9+oxeJ52KQdBa6VAR57psO69xitZsw== 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=fjnDMohe2FOflGtxTte4BkLYIa7pLRnYn/vQK9dPLuI=; b=CvDJyep06cS4kmoC4y0LWLOTGQybxkPl0CNZBZ5cagKRUYvGpzbHYLrFxMqwRQO0Xbd20zcgVOZRzdYRfy8Zz3tHLdQ1lvk/2qUPAAR5TbwuKWXCcU+tl6HfP+GriZ7mXt/baORt1TyaNph6qVIq1KN95VqlmFgzNDqRK3nvqBcxZw+kICbs81oY5/XwFXZ43F1n3kc2dUXto7k9yThZyP9nYwwOxzKW1LbUJMEG48EfMTccPaVYMsZN0kpxhhZwAeSuGtsnBJwrJp2nJH6U5yg2tANdptc3j5uOy27bbzcTaJ5LxVLa6UsZXGaJ42CcZIIkgThsTyoC9W4vyEltSw== 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 DBBPR04MB7929.eurprd04.prod.outlook.com (2603:10a6:10:1ec::21) 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 10:48:08 +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 10:48:08 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v8 4/5] Squash to "selftests: bpf: add MPTCP test base" Date: Tue, 8 Mar 2022 18:47:31 +0800 Message-ID: <4c1507d948172d1ba3c26f453313db7385a41eb8.1646736285.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HK0PR01CA0064.apcprd01.prod.exchangelabs.com (2603:1096:203:a6::28) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: d9aff0f7-1282-4a75-e8d9-08da00f121ec X-MS-TrafficTypeDiagnostic: DBBPR04MB7929: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: Fczim1VyUUIYIMv1cVw+PAegyrBvk8RK+rOVKmXDRluM6kqys+chfIYMbImcHJ35NpBEITb5UVP+dZfItOEiq72lT4eE5raUs9uuo/jcPXcfThvMuEH4oiiK4qeJiCKwAj/g0sZAI5nDxJo7uEOFO19Gth0sBifciI5BvW0uhqGNfpEvea5PlTCFxO1pz3M0f54aidGfGo8KOPqknn9o4v/TQ4iWOlwAI05RHvQOGpA8/Rx8Qg3IMkylWR55LirTP6jTeWfvhciObqi7lkVrQ1+4lk20hdtlHep5GWN+xyhC1cBeH7zhryjt42ShOmjB6SCtH62p30QiWMoKs5n7QVoEzx12eQZwzJbdn2DPxtqZGGymwXL3M977cBWhsnwqfWGQwp54pj9WCgHJ5onKh3lFluuYVmVp9JfMxlTNWE57OAY2I/RZtnvuaumcgXxeVY7waLtD6B7fnwGFwEhgnhOfNTweE+fnm35e/EPUaibpXrmOJh0KEixVY07hpYuJWtoH4lwi2vCehbzT0HDla5I0TXxqySWXgRSAtKQ0t00Z7j4XSQBcEyVL5Sp8WzKWxkRT+UPon6OpWem0imTC58Rg3DjuEqLdv0PWEHZ15L9Fz6TcuYVexRVVpC4OMk/ZWgcq8h5gzE7fiz/MaMyQriC5q/Ibzs08e2xO82prtRsG0pW4vFgtZEu1s4UWjW9O8TmSM8Ms7aPCg+4M9zC/1A== 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)(26005)(107886003)(186003)(6666004)(6506007)(2616005)(38100700002)(83380400001)(4326008)(66946007)(44832011)(66476007)(8936002)(8676002)(5660300002)(6512007)(66556008)(36756003)(2906002)(508600001)(6916009)(6486002)(316002)(86362001)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?vB5LlqJ7VYEmQOoGzypNTNOx+GY6LL9cu+0gKuqpcAaieGxLBPCp/YwIwV4w?= =?us-ascii?Q?rVT2YFzE4fQwn8ik1OqnRaSfuFnU/QVVQV6RtNQJT9xXg4O6+F+hjSU51uL/?= =?us-ascii?Q?Cej7bHuyTZuKp01zy7RZYTI6e2ZaIaN2a1rcBuRcbs6IEfa9+jG9Nmo0j8s2?= =?us-ascii?Q?jKpJ/YS8xWqmazLL91yj5HxYDHXFeGlHdwvebMkUgll2hRWHnmEQh2Lw8+ml?= =?us-ascii?Q?bterDFDu8AOnWWqg7Z9MXbsDH+C0f+/gTiebX+dPLU6hz9SGGyaZIDCjQzwI?= =?us-ascii?Q?HEqGmw3Kwk48Lbff0R56rMs4LRjzpkihk9s1QVqJCUXNCS2jxkWFVRQP3apX?= =?us-ascii?Q?7N/3y6oxt4YgApV8wo2rmIQdq9w6X0DqRcG2DlCumPkhYuSmBQxhcLj6vonY?= =?us-ascii?Q?PU/41oYnJlvGl7r5VSa3+zSLrTST1ts99XcjBgwPCmBCLalqkSw7RtY+O9/m?= =?us-ascii?Q?GnB2CnfClKIlbw6qch/ZeoZaEpVOg6QP+T+8n5xdNouY2+phn3hsvB3u3AnF?= =?us-ascii?Q?ku+F31PiIa+UMf4BxJiv4AhnZLCXbzIINjyEggisWNtanoyst5ifMhujrw4C?= =?us-ascii?Q?9GAlMVjiU70ulVu0Z0wukNWG20E36yxKCz/VvTaD+WTv57rSJGwKW6SKkh1U?= =?us-ascii?Q?SnuypI9foeXapG+GCZBn1jqCzRcmRAect6BFd7g2aE8SLkpmH2WgWHajwcNB?= =?us-ascii?Q?ZAiuNBg8WbvOCMEK8/FGcwXAjVGLk/yZ8sQudpDdXwvQA+qQhLqeSStMi7i3?= =?us-ascii?Q?zGVTb/ySSBRRRfl9vaifGIm69CEZ2drMzCyPMbSSoOQb9tB1uZafmmML73A8?= =?us-ascii?Q?KZeoKb1kGEWKt63bk5WPckDRSu+2VUy9JkSSCbWsdhn5HT8QD7IVoFg3lOoR?= =?us-ascii?Q?SRV0GXKIauCbOMbHLC4IX3WeSI57vVOSZXpuh7zee9L7kXZJEyvDcNEA0xOM?= =?us-ascii?Q?ic8F1tNkElouUBelh+NrL0fkSpr633R2uBhFYEeq/zxHA+W2snyBOjb1oEn9?= =?us-ascii?Q?nrCx80I92b0YpuWapAYAKj1hjoA4Z9LqdvDXKFrUV2kztaTdY7WiHC+5lZsx?= =?us-ascii?Q?svYQ1lgNKazQvU7KvY9y69qqZwKlsEbWQrphtdskuDPRVDwuqFOqsIeDP93v?= =?us-ascii?Q?zBv9p8N5sXutpQPq14E0Qs8wkd6dChQIxceCGaOMI9lCIKBj1A94mqtFz3nc?= =?us-ascii?Q?8V7WJh5s/YGhWdRxYfX4uOH73+f8hH2F95Mh5k7qNLkBW1WpGQxvRgGygIU5?= =?us-ascii?Q?X0BIeO/7HW/j2fVYmhx5f95u8T1v3UP6Opc6NMphX9YlP0BUK7Tmj/y2d+nw?= =?us-ascii?Q?6w9JW9QacSqQs77fC5pwF+/W8Y0qqApLi0IBrvtz51tlWugeH0EBRMf3MU9e?= =?us-ascii?Q?IwrnuTSPF4kc5X7vrWA9I8nGO+/J+Q2O0qRrKnjw9hCBqNzKtOu0zhYd+mXD?= =?us-ascii?Q?1N34qPnM1DF5FA/L2U9EA0hKq65y9m3NSSR0TJdcNUh8f0NIUZPCBvWgVG27?= =?us-ascii?Q?d/8cwU5iCPlBOT6Q8ztRiDzFIJaOefsKbIDgUbl7L3h36dWECQmnIrMkuyoL?= =?us-ascii?Q?UqbBZUixh1rEYSiKnRL/+s/pJvZAqoaROfz6zJiXH97Y0eGMzE8GWr6zXJMF?= =?us-ascii?Q?oAduJd8AGWHiRPafG5xMImo=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: d9aff0f7-1282-4a75-e8d9-08da00f121ec X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Mar 2022 10:48:08.3576 (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: aDuMxjDwL9KEpVU9vYOrmRxI2wEWrF45Gxh4kq0eBRCD131fNOYFbzl49ffv/BLsatbxJFFaP6zkC8R39axT9A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR04MB7929 Content-Type: text/plain; charset="utf-8" Some cleanups. Signed-off-by: Geliang Tang --- tools/testing/selftests/bpf/prog_tests/mptcp.c | 16 +++++----------- 1 file changed, 5 insertions(+), 11 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 --=20 2.34.1 From nobody Fri May 3 23:40:57 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a05:6402:358d:0:0:0:0 with SMTP id y13csp1083878edc; Tue, 8 Mar 2022 02:48:22 -0800 (PST) X-Google-Smtp-Source: ABdhPJwlFBGtD3IZSDNgVyonQq29rj9JM1bm8+VdNBBk/OyxGGRMhFpivcjOawUC0VIMbx8dmdGu X-Received: by 2002:a17:902:ea09:b0:151:f547:653e with SMTP id s9-20020a170902ea0900b00151f547653emr6521481plg.24.1646736502320; Tue, 08 Mar 2022 02:48:22 -0800 (PST) Return-Path: Received: from sjc.edge.kernel.org (sjc.edge.kernel.org. [2604:1380:1000:8100::1]) by mx.google.com with ESMTPS id h4-20020a636c04000000b0038007eee74fsi8483324pgc.164.2022.03.08.02.48.22 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 08 Mar 2022 02:48:22 -0800 (PST) Received-SPF: pass (google.com: domain of mptcp+bounces-4153-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=hYbl8hIg; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4153-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1000:8100::1 as permitted sender) smtp.mailfrom="mptcp+bounces-4153-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 BBAB33E0F00 for ; Tue, 8 Mar 2022 10:48:21 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 067943D98; Tue, 8 Mar 2022 10:48:21 +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 EC6067C for ; Tue, 8 Mar 2022 10:48:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1646736497; 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=eFR1AzaJkdyrX6hIUeR7EzmTE+/JyLex4P+J9MrCAEA=; b=hYbl8hIgd9us0WNfWRYqkAo9eQaqByrJZ6VmrGITgdyTRA/HNfr4cOXVvjdqGCHx2p1z38 /I/qAvXYoFNYATMivc2xuV4FI8snFN8M9TUKU9MRE1xdn0q5b2FFxv3CdN/+TdeCPnHfhT qJ9PWg0kpYppbYahVYFK0V4XusyFwVQ= 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-7-yFuXeKODOt2lZqpIYt0COg-1; Tue, 08 Mar 2022 11:48:16 +0100 X-MC-Unique: yFuXeKODOt2lZqpIYt0COg-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=b65HuXCfm3pCrZSr4UpDqm7zNpXfN8s1go+OZg4deorhZg9znlj3yH1iK+K8W22LcC8eMdcKn5fWVJkc42voD//FIqXghXoxKF8T1ohAlaXQu8/DRi0x/Ygk2ekoKzozKQq7RIP3DwYdwRYwEUTyYn4Bw44Y1I3bRVhhiGw4Yu/bsazz5U149eY3jPLCW9qXhN8VF4SKnx3bIxjXM+wFsuDSFNh1nwCXWWC2XFtsP8b6J5L/XTKLYrS0Fl777CTN5HmNlVQi1Q+aajIj4DMg1sNNbJixHYyHQPG3+e2+LxPNFthm5ZuvTMxmmHkjan9HetQKo19wUcgrGRjlwdoP2g== 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=C8Ik+yu4hfb2dNb+3xUwXYCW53CcuzHlJQD86QDLtWo=; b=BgPizzBFrI+8aXaJnR5m9pv6Pei0zisGxbKCEbgXQ2rsyVlKnHlCF62lwX2pYL4d682L896TDz4+KUbIaqvVLeK6mkgj7v0dFIVraZg7wqt9Ha4XCL3BOTD/MKgLJtZkhw3CoqtmunIZb3x3zvvxQtWoRi9rG2OU3yNAIm4hloDsuLJ0dRmx41sNKT/MuqxRCELSmusZxouJk5pfZhbaR53wbttMyKP3/LtLYLlz+rfKJCFuh+e7DDsL8MOcvh+Fz+/7FZKDsZbJ9iG18kZMQdfuKHnKNp8cQ6nGpnqXozwqKDeqLV6eTxr+YrL7v2+dkrbaQDRuM05ReW0jYQZB2g== 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 DBBPR04MB7929.eurprd04.prod.outlook.com (2603:10a6:10:1ec::21) 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 10:48:15 +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 10:48:15 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang , Nicolas Rybowski , Matthieu Baerts Subject: [PATCH mptcp-next v8 5/5] selftests: bpf: add skc_to_mptcp_sock test Date: Tue, 8 Mar 2022 18:47:32 +0800 Message-ID: <9241878dc92e1768e5fdf917049a27fb2898b8fd.1646736285.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HK2PR02CA0200.apcprd02.prod.outlook.com (2603:1096:201:20::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: 8c8babc2-8217-4d16-a6ed-08da00f125cc X-MS-TrafficTypeDiagnostic: DBBPR04MB7929: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: FN+cFUghYsAqn9JLJSXQmDgi0I6E9g2h4MHuBVwNdk1WgiJDFyuaA4+5l5y1A3sgO4pruBGFYYPt6CL10YdLQDlxYYQ8KMfRc9taYgGeVBWC+L+gAb9uAQAKsa8kl9/hHNySCIBzAHj8K3ykwwkDVtAl9/wgltLhrIs3J/02rk+GvyTqpv1POpTU/h3mhHR97kE+27uHefH06TNOOTUYwInnsTMeQbHYLQpvawPxh+4m8yqIMQAz/xpnRuVq9HjyHHxng80j8zICDwAbJ7eIDnKx2SHrZFRLU3b4Bxjf+vPfIpy75weVtFtFuwwGmL6iVIIOVRWNNqW9juNRZPsnzok2wfc2vOCO1F+t3RGddF9K24nSU4vawmG0/S7bPes+B+H3XqE871eBRZJ7juUOT6GooLmYSjotBlT0W8TbmAwbCaIr8sk/xTOhbsx/0OXzV0cr8jnYS5TmDHj9GUfCAXUgXgzkOOUitewmvY5ES5P7qKo9RiRcUr2dMmuzBadDHt1CfgFJh3rnWkI0eCFGDiZq7VLuyrEl9DjUVMMI7NEJeDZaF5wMyYEo4bzQs4hGxsajMifQpt89gckeYzNopJBcsNoMVXDzeG5xnGoqR77vRj7ZjiQ6FFuZ6OSn7aqmi5RVxuSp/MezDCtNwjY6A0N0S6CGYrnuhtLklxzyNrH4cQdGhlF7vYKRRypxwOEZPAMCobHlBZpeK6CUv32iBjt0F9enBBAHE2AujRFhfbU1IE7VsTjd8BXkyU/K+ZLQ1z+ga9qeDVRMSj0funlXpA== 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)(26005)(186003)(6666004)(6506007)(2616005)(38100700002)(83380400001)(4326008)(66946007)(44832011)(66476007)(8936002)(8676002)(5660300002)(6512007)(66556008)(36756003)(2906002)(508600001)(6916009)(966005)(6486002)(54906003)(316002)(86362001)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?7jlha6WVq4zX34/DDiEEJlfCIWCPnSIumQx7PV6DyZwXCZpwNgeiPuzgkpKZ?= =?us-ascii?Q?3A0aCo35WeGDkFhWcnkaiE3AkXcf2DnFg/jxnCZAeAc5kOiLXhPnOhIF622U?= =?us-ascii?Q?GMVUsCrl6MqvCNxHqGuBk/dVob7TR5FTpl3008wA4DodzSsMzqldJDlcjLaT?= =?us-ascii?Q?gp8+Aq4R/GYVTI3zorv7YFwSG9D45xXEUpgZf6UroTeZ50ShDoZjhhzP/zgX?= =?us-ascii?Q?pGLukES6Hzqoy9QI5ogDl76ybt8WYDAwUf0IxIavF9hNuWXfcGD2+RzA9WAb?= =?us-ascii?Q?JtSg0Nhng+RShgdOjOI1+IvxoiueMXo01PH0Y9PjdGXNdDZ2RpInOz1phlbL?= =?us-ascii?Q?rqRoYojHmPGfGETSM/qKp/KtnZdZCwGbzgnJPZy1ljZEMC00ER2eFwBimw8n?= =?us-ascii?Q?d0mo960EAs1sPeG9BoM5JVYQHpLBX0TKNJ1D6C5gFiH+2O2GqT1O1WlRWyYH?= =?us-ascii?Q?KdGj3NdLFCa/BgkHfyVj1p4bFYgpG1BB4WgKu3aUAx2VbHycU3pDiQGw4s4b?= =?us-ascii?Q?AQAKNCrJE3TsYE5VoLg1UPd6Al5mn1sE8e1UdZ9PXDjCN5+0aA4s98uGRXtU?= =?us-ascii?Q?h3MpihPNVzmp7/RmRdd6olEnb3yOYI/KMGmOxscRESS4DwlnAEKcIHR2p8/f?= =?us-ascii?Q?mlAcq8FFdC+KM4aTcb66hWZjfBU/q4ZI8QRqVTqLdiM2vcgrVVkgNScoZUlZ?= =?us-ascii?Q?pUyeALHyzGBYYbImud095v7bLsn649ZAXDB3k3yaxQImcKGlYvLyugFMfFND?= =?us-ascii?Q?Amabq4W6ilwhd91C1OXmAjAwFrYLwOoyH7Nt+Bx0tbaGLUpiE50Thxu7rVg+?= =?us-ascii?Q?OjE2bzar3Uy543yRLKUb14B3LVbzOWuNkN1pFUTGTx8kVJmOfcOjYz/N8s6i?= =?us-ascii?Q?26OwhDfjvBWa1lLuQM9VPGiRgc9LEXng3Rbyi2yuaISTMSi4TEDsdzFGS2+k?= =?us-ascii?Q?3KVFu+1wHsB58DpTg+SPV6w3LbNLhZprOl7nhXWWPGawlMG1Ebjp3SSpRCGP?= =?us-ascii?Q?DdpW+mg76EfZaAeMFJCYgjqFK1h2Y0O706BQ2jPlViq7aBnUWWoZuAHclu3q?= =?us-ascii?Q?DEn3JuoJS790DquotRjm5BUcYxTIXTt1kG60av7gVZqaitJjbXPebk+70O0z?= =?us-ascii?Q?pWn/3v9lRA2Ur+qh2VGOg2M/NAdCX1AVFJr8MdvYTIUl/K5wguKWVwI20rtP?= =?us-ascii?Q?N3djA6VvhRooELNw4d/B8NYg5haxyDHtFe+yPSXKwvd8kYp+GhXcu4mxId0N?= =?us-ascii?Q?X+71pNgGOSs3GZlITNtxvW5JUwZQtTzW4iqnT7BUIZgBvilRzt7jiyoNzrW3?= =?us-ascii?Q?j7RKh3YI12pfH1yiy+RSUUY3AUVyzZICJ5HUlUTQ3QODqcyI0YZci7a78Myj?= =?us-ascii?Q?Ju648Jq67Xg9+oplDhCRws0a1IqfQrw/tE2Z1yR92KYDN/gKC/nPGob4uoKI?= =?us-ascii?Q?ACpbC1hFdJ66xpa3i2smVaY1eLztvAAV8xLKE/ufSuD5uW4SCXih4rJtGVpk?= =?us-ascii?Q?S/qpmdu3AmBrQ4xDQiXbSl38nA1s/Ltll+x1U/fXsZ9sob6Ky8xGEiLoHvkG?= =?us-ascii?Q?eJNvL2ZzjZun/fArX7O0MHLWfa8ViroCdHwoCcaSyH564PlCzACCmz9Pf/md?= =?us-ascii?Q?lsrMmuj2ITAzwXPoCk0Ob8Q=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8c8babc2-8217-4d16-a6ed-08da00f125cc X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Mar 2022 10:48:14.9665 (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: HWPg7dv8Hg+ytG6CI9+x5xaQIpMZaZekaef+5LCFkF/6+88mlAvvP2A7l4mmDHhELaiWYoQMzGRjf40nrBJ4sQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR04MB7929 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 --- tools/testing/selftests/bpf/bpf_tcp_helpers.h | 6 ++ .../testing/selftests/bpf/prog_tests/mptcp.c | 94 +++++++++++++++++-- tools/testing/selftests/bpf/progs/mptcp.c | 22 +++++ 3 files changed, 116 insertions(+), 6 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 be5ee8dac2b3..bb0a9ec534b0 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 { @@ -43,6 +45,26 @@ int _sockops(struct bpf_sock_ops *ctx) =20 storage->invoked++; storage->is_mptcp =3D tcp_sk->is_mptcp; + storage->token =3D 0; + + if (tcp_sk->is_mptcp) { + char fmt[] =3D "msk=3D%p token=3D%x\n"; + struct mptcp_sock *msk; + + 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; + + storage->invoked++; + storage->is_mptcp =3D 1; + storage->token =3D msk->token; + bpf_trace_printk(fmt, sizeof(fmt), msk, storage->token); + } =20 return 1; } --=20 2.34.1