From nobody Tue May 7 18:30:22 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a17:907:7811:b0:6d8:2910:9a8 with SMTP id la17csp1655105ejc; Wed, 23 Mar 2022 02:09:52 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyqb0/iVxpSeYxdc3gTDDwSpaWg4Ou93IE9zq8/vJqThNtgVEWKeEzTtg1CMpAdJrP4MOqL X-Received: by 2002:a05:6214:4017:b0:440:f708:bd39 with SMTP id kd23-20020a056214401700b00440f708bd39mr19789755qvb.31.1648026592610; Wed, 23 Mar 2022 02:09:52 -0700 (PDT) Return-Path: Received: from ewr.edge.kernel.org (ewr.edge.kernel.org. [147.75.197.195]) by mx.google.com with ESMTPS id z11-20020a0cfc0b000000b00440e46a7c8fsi3487265qvo.301.2022.03.23.02.09.52 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 23 Mar 2022 02:09:52 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4361-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=VZ7MUBhT; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4361-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.197.195 as permitted sender) smtp.mailfrom="mptcp+bounces-4361-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 49D771C0A9D for ; Wed, 23 Mar 2022 09:09:52 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 0EC931392; Wed, 23 Mar 2022 09:09:51 +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 57D341391 for ; Wed, 23 Mar 2022 09:09:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1648026587; 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=9ocC7a2S5GjYeZZhxr7NH9UJEySwnCVxXQj0PHXMgEg=; b=VZ7MUBhTqBZ9M3ubO6CrF1qKhFWTfpVwgb4YVoJeYRh0uX8KxAWVdu2gTNRcA2AA1YhseY HBc3VQRZknNw2GdQnxxCEYVo4yIQ1TPG8Jz6pSJY/ghM4BY0eiFPb1ny321yw9ePXp8CTq TYQxcIDppi1CKKkvNwMx4CMztl+1acE= Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05lp2113.outbound.protection.outlook.com [104.47.17.113]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-13-ClM7tWPOPC2ghQkK_UFGUg-1; Wed, 23 Mar 2022 10:09:46 +0100 X-MC-Unique: ClM7tWPOPC2ghQkK_UFGUg-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bXJV1Sm3go7fOLudXKkyAgIhF4XS2dka3vRHlJ4gmUvRjQtYwWmihY2NtoQMDpLtDQMMEukLvkveabnww1LHNCgmU4TTEpCxoszMO9TIZVDnb9fmqFX6qB8Typdtd9SYObJIAirCHQXvGn/ASC+nh0ipQsvnJhNnGQjfsGgbpukLT/Ab2u72HJQNHn9Oni5ewl8DEmdyhH8XYbdo9qv1CARoe7P72vPNvrIJMH9bze2nTcDfxekt8DHuzHKPWhlOXzNCbpV0815fJqTJJcUBB425QxQXJZwG8NqDAGQnCPVBX80H7uIsqLHFo9WOoXMcYdLbWZPbXdPpUOaGEL/oWQ== 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=1vtLp1HtJyFNADn8T+RzLASgu7kdcBQbJ5zK70gBK18=; b=JnCb0V92Ht9AnsGahRrkt0631i7o57ac8o88qiafw4XYshoBLHZqz9UZY+Vq8e2HgO//ox8e0BwP69RyB6X2ngpMp0PDrwe6FNtcfU0Lv9Tv4hCj8RyksLggl/LonQGPkE82fZJueBUMXUVHcG9DIuBla6xDO+5Y7/vULlWHLq0DR16HA9BV0aDk+MbXWnadKBJW91VFzBQ1I3SFkKzQNDmpMFS5NVWYrDYZu/52lDbyFvKgY7hP3misSSvZ1Ug2ImFy1fbiIjrreGTQ+XwvhaNPeUPP2av4VaRxkkWl5bl8ourW83bkavedTdvd5IQEui+dH1n1rF8DBe5Ea8WnYQ== 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 DBBPR04MB7740.eurprd04.prod.outlook.com (2603:10a6:10:1ee::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5102.17; Wed, 23 Mar 2022 09:09:45 +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.5102.016; Wed, 23 Mar 2022 09:09:45 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v11 1/7] Revert "selftests: bpf: add bpf_mptcp_sock() verifier tests" Date: Wed, 23 Mar 2022 17:09:30 +0800 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HK2PR02CA0182.apcprd02.prod.outlook.com (2603:1096:201:21::18) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: bb3bcde8-2d92-4945-0cd0-08da0cacdf68 X-MS-TrafficTypeDiagnostic: DBBPR04MB7740: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: aj1a6hje9dwxQQkEen8mDPdu7o0FW8ysLK7AsGweVPfHe4+Rq4VyFQF2JMuieSNTfTq5rlwJy+E2VI5DM3sPNsSiTfLlbOWMPbbyi9+ChoBs+aW1Ep+Qbs9o9LXT6plMeWZki2FMfMMSPHrTcQEbB2iyAzMXVN5jklje3T8+kSJ9ZuynivFd+hlC5i2/xOZqDE4vYMEEHuCoEGL5ol9wY66yvvJNL5BBYYIkahRVKPUNy+GmIMg23qoEZ6Lt6KiApvSgpM9AF8oDarUk6ABkPDwrtwqXZRd93hH6F/pIHWEmJmAkKDDagIgWzPdh6Sd7x/High2dOdTXnONvKx8QdZ2hVi5Jy0/JIfaw/QA2wkR/1GSJcf6KhzZfTUqS6o5wEToS3rRSK9aZkpFqdcFEzgmXxWgI0Ivs7WfnH4ckZTVLC/RR7AGHPW9msn1FBx2ihodglvEVgz+jTgagkhoSG1ytYKmsWAA8g3UPMt3lConG/914zGjV5MICpfxUromXwwsN5b9lgOFbie4eVqS8wdM7fr7WWCAonlmOG4xXzLgwLJ6lbO019QzLDbdKNXBb/k6xG6+0gRUxZ2uqxxkC0F7yCoG445xZtcoZ1YYU2zJ6utUhKFAKoRamrfUDrHBIG9E4IoToei2tgPQODsTNeOlUeDYqEvq1b4C4E8aHVs+bU9PLjjQfZRQy8xHxAUG7L/607u6RDhwTKM9Od+nhwA== 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)(2906002)(6506007)(8676002)(66476007)(4326008)(66946007)(26005)(186003)(107886003)(44832011)(2616005)(8936002)(6512007)(5660300002)(66556008)(38100700002)(86362001)(83380400001)(6486002)(36756003)(508600001)(6666004)(6916009)(316002)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?YPru5MtblxGyf24zTQs5ALyMgDRV1a6pajgyzBEmAPWgHsq1kmN7ZQU4G/e0?= =?us-ascii?Q?RT5sKTGKho3OAjvYG47I4YLcbgGb+a+EU00RiftUMJsgH0yITY/VOgaMjo62?= =?us-ascii?Q?5guEb8dYnyFA3j+ND3o79ubfX4mAAG8/R1ISgjMoVC3sNi/3HxsqWvT/qPr9?= =?us-ascii?Q?mC8vsXDUPaxw9xnQyuYGoJUWVzBry1/yAYGl89hTGZQIAgaAwYWmoloWw5n2?= =?us-ascii?Q?8Z0Flb9D4DYmyKGtfSl4VPbG2Lal3A2nTcNeFoWC0QoU4gkiATkJb6dwz46J?= =?us-ascii?Q?+kE+AGH37Dh+mRSDBkkkdLEctTvX7ViI1HP8BZciz0eaESNT3zf1zkg76LC1?= =?us-ascii?Q?llTaeGrZW9uBZcv+IZ0WgqQoeOkgH7eS8ZS1ClT9+8Lpi6FNlnAdqD8F1GoV?= =?us-ascii?Q?U1RjvET1k6jt8N0zfGbGD6n1CRO1IqJQIadIlFv8y2+CEorzXuudoAcNYkP4?= =?us-ascii?Q?gsApqv5soCfJmmc5I33jA1fFjc3nYwDo38OAEtFxjXeNXtggaKpWJuXggz1E?= =?us-ascii?Q?P1Ibda2fjaE9BPbMiwyujO4t/kl4krIIB00GRfAt8z+PxNO4t8wdwRNbRItx?= =?us-ascii?Q?p04WsES6ANoF9Ms/AqYaGnQJpI3pGbCmL/oegQOHOEXANM6b7fF9aYLYf3vK?= =?us-ascii?Q?KIc8HZzaZmwK0rZvoLJyN4+bW7YtMntACTLUk/i+Y9g5wIWLeHZLtwV5ouWD?= =?us-ascii?Q?BMO5O0wG394gFf8+pySzELtQ7cgFkns9iDE4DK7e32CUQvcjeFH7ge9m3rlb?= =?us-ascii?Q?VhqIG3YukU/9Sf9m/3jlTYBa3AKRFmNJI9fTGSbMj8DwHHYJhysYFEZQNk9z?= =?us-ascii?Q?L3tqUNDxkUefgRuLJcN22Gp3Ad5Z4VTzIIYV5qhuwYA89QXWImsj+8SHEzvf?= =?us-ascii?Q?W4qSv55MDuzKahUNWlRWyi6OWVn2/oSc1Pa5rlW4qNNThHXAh6Ikrwmt3ljm?= =?us-ascii?Q?We7UsQgsqaKgt7ZeEF+aUlQcF0uCJZVL7GJaFOF9E5kP4k6fp2CTd1x4/uEp?= =?us-ascii?Q?6PYoyE0zh3JrtNOWMZr4qFJ16YYw+wcAZJzTTvzGq+cVlmanh+qwK6N6m442?= =?us-ascii?Q?QjbKN8m+beYWAX9qH96Rm89xOsmlpLAiVuQmCgKQpRCjMbIeUy7aSiy3XMPC?= =?us-ascii?Q?jBwt83sGTfZI4lJ2sYKLSuY3SivjNqr4tgyquolhpDZskxiyfkN2zKxE1ZzT?= =?us-ascii?Q?cfecdRKKQiXEgq6Gj9Aa3E5jhcPfqiclT6rITjBsl7PCqTYE52h3pkKOtjRD?= =?us-ascii?Q?2cWqg/ss/cQntt0L5yS6gW0ZmTDSYotQN2hQzlnjemZ6ilI3pqAAqASoeKPf?= =?us-ascii?Q?SMbp/ZC1PHxIyVlU/6Zv3+rCNRcpPrQFpzwilhU1UVtmuUwRoSpN81UjM328?= =?us-ascii?Q?oFkx/7P8N4NImRBJBmNS8aEhAZbOhoTV26oN0Nc6t43nnjU+jxbDleiWkgU3?= =?us-ascii?Q?AHwx+ZhYKpB/IMRVPIfS1aOMjD50gfFm3B+vB/5Tmr7HuoEi1abKkw=3D=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: bb3bcde8-2d92-4945-0cd0-08da0cacdf68 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Mar 2022 09:09:45.1361 (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: L6p3QYTjMNZX++gLZzNDeuvNBLh9QcSN0fUdYwji08/32Mp01vKZerq8JGDIG0I18GkFPrhkpLLlGajbZ220Mw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR04MB7740 Content-Type: text/plain; charset="utf-8" This reverts commit f48f0143286db0d8dbded9542d9a2535533dd3b9. Acked-by: Matthieu Baerts --- 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 6fd622cc38d0..86b24cad27a7 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 Tue May 7 18:30:22 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a17:907:7811:b0:6d8:2910:9a8 with SMTP id la17csp1655153ejc; Wed, 23 Mar 2022 02:10:00 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwwkz/V7eZGn/Ixm85P+Bz834DvW3pX3QwAnXvI5gEMYmyT+McS/QzgLm1N/FiU2R6lMTIQ X-Received: by 2002:ad4:4d44:0:b0:440:f857:c9d with SMTP id m4-20020ad44d44000000b00440f8570c9dmr19489202qvm.81.1648026600483; Wed, 23 Mar 2022 02:10:00 -0700 (PDT) Return-Path: Received: from ewr.edge.kernel.org (ewr.edge.kernel.org. [2604:1380:1:3600::1]) by mx.google.com with ESMTPS id h7-20020ac87767000000b002e1fbf3c042si3483852qtu.563.2022.03.23.02.10.00 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 23 Mar 2022 02:10:00 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4362-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=e1DWNC8A; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4362-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1:3600::1 as permitted sender) smtp.mailfrom="mptcp+bounces-4362-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 EEE1A1C0AD3 for ; Wed, 23 Mar 2022 09:09:59 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 69C6C1392; Wed, 23 Mar 2022 09:09:58 +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 EF1161391 for ; Wed, 23 Mar 2022 09:09:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1648026594; 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=KJYyGSsWj0wodwpQT60HtMeFh2A7sFxXkUVmALFFzsg=; b=e1DWNC8APcPZmbHmLPpITpJAxarAZxmmePE97s+PoHM+Mr0EIAbO8o2yk+Nq9HNjAI65op fsB2rdEJ/4w3cbCsyvlfBtZHErNgKwiKcW/Atnu7vT4a1kt5vtbMeX2xbOZ5AIoirteQ3M no0ADLnty3gYPDUrN0noUTT3q3poxUc= Received: from EUR03-AM5-obe.outbound.protection.outlook.com (mail-am5eur03lp2051.outbound.protection.outlook.com [104.47.8.51]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-5-QY-euDxoOiKa442F5h5KRQ-1; Wed, 23 Mar 2022 10:09:53 +0100 X-MC-Unique: QY-euDxoOiKa442F5h5KRQ-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=a5GvdteUboy4t06BqGfu5H4Z3E6kUPUqCicCECXesWNKzc/etsV6YaeBc3ArkhWVSfza6M1bmHX2Ps4FE0irE0YPSk4mDFW9GJZHDcl3hoQiQBU3g91VxhZfbYh0BsJ7hPVr7b4MQAJmXNecdlR8pJjcKq+MGkomGEx21xEMciCjYe/81q3XwZxtTii0sgV43OC+WbZY70xcWpQLtZQfL+ziCiZdL+PP/hQrDUye/3Ig9LCXD7B2DBUxpohB/NvIpBxepwYXyV/csyP0/DXHRkPQRlgGFm3TMxwe7aEE6ZscEn3WdghtKLbXQw0XylayEjGPDmPVHArKwmT6KYGwyg== 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=FlL8awy2RJfx7Q/FKuwlRux/DDNlPWAmzwh9Zyg3HZg=; b=AVyCNT3FgJVZoVzPyoaIrx98XTUIPmvka66pDh95crHkmZQwT02ign0AS7hjGMSf3Vb8BKnNX9C5N3vLbZQdf7VsdeAhBpSUQni+JitPwtvCFmFKwr7GT1c+ClSinjVg0C6PWs6Lgk9lEJ6yQSEzLjwtBN8bj3RQLZwa8JfX55zMQOtVQUiTMm+JJpKwAgjNiOP2SvBGCIZYkEKXlWUf7MMk+UJbMc6efkkocXLeiuCsI8J/YmhbqMPqI5x64BcA+IE/CcmUpz54QJLo1ZQpLHs3XCJwY2hUXCgjVu/eSZ3i0Jahhev9jbONwaQvqrWUgsyIu/x/UMEMqCnL8ZWlNQ== 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 AM0PR04MB5988.eurprd04.prod.outlook.com (2603:10a6:208:11b::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5102.16; Wed, 23 Mar 2022 09:09:51 +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.5102.016; Wed, 23 Mar 2022 09:09:51 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v11 2/7] Revert "bpf: add 'bpf_mptcp_sock' structure and helper" Date: Wed, 23 Mar 2022 17:09:31 +0800 Message-ID: <3aeb872bf754791a944b2b6ac221d58dee53a8cb.1648025308.git.geliang.tang@suse.com> 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: 763b473a-ff09-4215-4184-08da0cace33e X-MS-TrafficTypeDiagnostic: AM0PR04MB5988: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: 1/VCO67L/xdLfjR4iOFX7lRIH7sj10qp5ujY6o5dDRNqmoCuiZQKb1K6K3gIP+H/ijIzbcdv/6XKi0SLViuir4mP387/IrzOjlUQI2B1HstA93gI1uelTv3SmmINUyVeKrOJQCITypR/6EIPGQJk3Eaug/u29rFE2nZhuHRWrtqqxMkw/hSgtgNixVFKOOv17LCQ6HMR6rkzg3uQzilzocHd3xlN7YQ4e01FhX56nLEImRWZN6LflOAThcrGUa0BENMgxdkiXkpdP2+DK3ai+LBiNKK1zD8VO/Z9CHDdCVrxtOyKwP0XJXOp7hnF7D3QsO4Ueuo3xp9UdI8P633iwEsWtAm3CcZ4vTT7rISfh9gPi0IoYB6rCJNgBMecnyTAo2KRXhd6dooXwCMtUJEpIK92z2XgL+08QSYPPyldueWzLl8Hu3HaKptLQTKIXU7I9LzDWz7n6IxFl5DpW4+nljsAKRVV7sqH5ExUekrzH+WMNzstPG1Vx6jVBW7mzTxThyhDNYdP7oAyOblxe6QLRUTjB9vobx6c3JgeftO7J/Kd+NdAeq24vkXh/wtlCG0nFFUtutvtFQyDIEgjDL/W65AaVj79Qn8Pw44EsmT6fFPPy4tn2X5pEun6EtGryI/R6GFQUUHcvs5eVv3kr5fvO1RrQbrsNb7lm7d0LeR6LiIuBM0gs8+s0lxvEYCwcgrKiJe49KtezDwwmUoW/EBpnQ== 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)(4326008)(2906002)(66476007)(8676002)(66946007)(186003)(26005)(2616005)(107886003)(5660300002)(44832011)(66556008)(8936002)(30864003)(83380400001)(86362001)(6916009)(6486002)(316002)(6666004)(36756003)(38100700002)(508600001)(6512007)(6506007)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?mMI9O3LuNP9w44mmRP/W+/GI0X/2tfOoPt5xMZwMakJd1oGl5u3aCitcdCKA?= =?us-ascii?Q?424jhUa2BKuq+I9ntIGIrWFAdkC9N1VDE6Haj50WbvCfPU5zf9VxJPFsNE+S?= =?us-ascii?Q?wKBpSyA+GZHvYU7v354lxLE5NeCnsvW+6YPw0Z8gvfLZJOruePDfVUpQINUP?= =?us-ascii?Q?AOLY/UA5y8vuUL1bsPXSF+XqfPartccnPYxHFDzvqkdoEZdB8nG7r6ZzAULL?= =?us-ascii?Q?G1bZxeEI6cebkwtXxHXjJ06QY3MEZzxolFJTtATCqavH5wPrS1cjnPpZtvA9?= =?us-ascii?Q?rTq/DF/NtrbDNBv52u2SaQkocrVGQWmxaftRf3aT8OaCW09rbOhu8IU2/os3?= =?us-ascii?Q?4twucPVfVStOr45ca2dDRrDMvTu4SYK78aWjOpeaYXrx2uW5vz34eX6xRLi8?= =?us-ascii?Q?jM+tQHu+kgygARGcGU758vqmRfCMSmqA7Kp1giYsfpmldp3mB7cCSkPEv7ZL?= =?us-ascii?Q?WLu9thTlpexW0R7hRUXZn/aZ9/RqX4Ev0adzHaNqdtT/aATOcJL6xgSb+2bS?= =?us-ascii?Q?QQyWJ7T7wtnpMsGGHDl7PC8LraGnmfOH7W/KCIPSEnx7T8Hk5fVd8YzalrMb?= =?us-ascii?Q?MM9q+mFQ3qYvA2VWLJkx35Tow/ZE+3s+Y/ywL+SQQ3CMLAnE7eegMnGrar8x?= =?us-ascii?Q?ghLNB3WCQWNKl6ym39n48FoEML8TfiRyctwJYxIGcB87BEFJVv1VYXPSZyXk?= =?us-ascii?Q?v/TEvhXMBx+C/3KNWpn/QeLuEWMQsi9LkhtLNGsReIcyzNL5CMVmvHcIYZEQ?= =?us-ascii?Q?NbPLB434ftevyqQVwwPsA+HnhVF8KrsAUETPRN3cXUeRINMiXoJw3r17s1a9?= =?us-ascii?Q?vxOND9PII0CyElBJ+1YBZih3mUdQicKZJrqG62BUgaxqJJcKS2Js4Gnu6puD?= =?us-ascii?Q?48RDHnlnzU4yHJDNlr6QQ4b3jqUDNn36yd1m47aR1qRw7unpxPsXQoQJg/vW?= =?us-ascii?Q?szCg1yreOJbLPqy4GrSMQ069m2WinvxBH756ybw1lvwCYgeaAyov7dBkZDpp?= =?us-ascii?Q?f6G83yDOxzwThonw4MzN4nSoSKW+HxYTa2hbKLxYcecVNMj8T6+MRN7A/VWY?= =?us-ascii?Q?bSqIdSAMw8S9qcTPhkrNTwzqR/aOgWXvN85CtwsNE3jIJlvzxVGlxA/osTVP?= =?us-ascii?Q?+39y62dvXQDpr9htlnFUVf/9YMkKZ8D+2LRd0ADGtxyVtiGmDgIgf1hBv4CA?= =?us-ascii?Q?aM+nysmmg12KQGUPrq5tVCLFPDMS6l/sbZBV5/U4M8d6T2lGoivHSxyaLG68?= =?us-ascii?Q?v8JE+Lu3IZAg5CAHMjen3HUt0YSg/c+5iDyZE/Y+K7GwCcv6QB1XMsMPoRud?= =?us-ascii?Q?Vuy3zuSwMNPRQ8/j+Hkd/6qz2TWyUW7vdlXfISzndMIL2hN7b7YhJw5SvxTB?= =?us-ascii?Q?FlIzJUifis6PKljyr/L4bZ3Co0H0C1F/nfkRW/GODnb+jjMgd98InDcTkP9V?= =?us-ascii?Q?iWF9Wtg83KKKsweenNrn7TPVUbj4Y01TQ/Td4ZOA0MBotxvL5s8zIw=3D=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 763b473a-ff09-4215-4184-08da0cace33e X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Mar 2022 09:09:51.7918 (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: ho67hgbc/3WfvTE1+6nlvWT+ntiHDFjgp3tCTuSZmImvmE63+KEO3gI8v5l6huVej9j37XUt7iGRS0V2z66CQw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR04MB5988 Content-Type: text/plain; charset="utf-8" This reverts commit 8738c0bc4122c4d2390d2f1e8305e8bebf199f14. Acked-by: Matthieu Baerts --- 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 3f368c8b7e48..57cb6af3177a 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 @@ -2232,7 +2228,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; @@ -2320,7 +2315,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 @@ -2371,34 +2365,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 2a82b9353bab..4ae3cac94fb2 100644 --- a/include/uapi/linux/bpf.h +++ b/include/uapi/linux/bpf.h @@ -5117,14 +5117,6 @@ union bpf_attr { * 0 on success. * **-EINVAL** for invalid input * **-EOPNOTSUPP** for unsupported delivery_time_type and protocol - * - * 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), \ @@ -5320,7 +5312,6 @@ union bpf_attr { FN(xdp_store_bytes), \ FN(copy_from_user_task), \ FN(skb_set_delivery_time), \ - FN(mptcp_sock), \ /* */ =20 /* integer value in 'imm' field of BPF_CALL instruction selects which help= er @@ -5676,10 +5667,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 d40982ddd255..a57db4b2803c 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_", @@ -2784,7 +2780,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: @@ -3677,9 +3672,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; @@ -3836,9 +3828,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; @@ -6768,9 +6757,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; @@ -7485,7 +7471,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)); @@ -10860,7 +10845,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 @@ -11391,7 +11375,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; @@ -12816,9 +12799,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 7c177f247d0e..f195cf034e43 100644 --- a/net/core/filter.c +++ b/net/core/filter.c @@ -7889,10 +7889,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 2a82b9353bab..4ae3cac94fb2 100644 --- a/tools/include/uapi/linux/bpf.h +++ b/tools/include/uapi/linux/bpf.h @@ -5117,14 +5117,6 @@ union bpf_attr { * 0 on success. * **-EINVAL** for invalid input * **-EOPNOTSUPP** for unsupported delivery_time_type and protocol - * - * 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), \ @@ -5320,7 +5312,6 @@ union bpf_attr { FN(xdp_store_bytes), \ FN(copy_from_user_task), \ FN(skb_set_delivery_time), \ - FN(mptcp_sock), \ /* */ =20 /* integer value in 'imm' field of BPF_CALL instruction selects which help= er @@ -5676,10 +5667,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 Tue May 7 18:30:22 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a17:907:7811:b0:6d8:2910:9a8 with SMTP id la17csp1655183ejc; Wed, 23 Mar 2022 02:10:06 -0700 (PDT) X-Google-Smtp-Source: ABdhPJydPsAB6YVuBGPtqUR/qrYK6sJ+74fJpt1XEHYF+KOav61F2YNqUXxESv3VaktUnzWnLZS5 X-Received: by 2002:a17:90a:6405:b0:1c6:5605:cd1c with SMTP id g5-20020a17090a640500b001c65605cd1cmr10411815pjj.80.1648026606503; Wed, 23 Mar 2022 02:10:06 -0700 (PDT) Return-Path: Received: from sjc.edge.kernel.org (sjc.edge.kernel.org. [2604:1380:1000:8100::1]) by mx.google.com with ESMTPS id l3-20020a654c43000000b003816043f071si19831472pgr.614.2022.03.23.02.10.06 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 23 Mar 2022 02:10:06 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4363-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=hCP+aaPd; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4363-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1000:8100::1 as permitted sender) smtp.mailfrom="mptcp+bounces-4363-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 D2EB73E0F0D for ; Wed, 23 Mar 2022 09:10:05 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id E6CEB1392; Wed, 23 Mar 2022 09:10:04 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.109.102]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0E81A1391 for ; Wed, 23 Mar 2022 09:10:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1648026600; 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=2DrvO5rip/hgUotrahdyxlwfws1Y0zx4omMtVPiwjto=; b=hCP+aaPdrL7avFU97ER+rU49yKc/s3cj/wXt7l+r281IX7Zz0MynJ1nP5aRtXICkYc/WPz h754hQUx/Du1LbsyPbnY6OQgHyM7gbvgxsxeaDV+RPFzAEHJR4jPsWIxB+UYJVN+K2H3gq jfhE4K0vzkXd8OURlwG7G7iHAOANC/o= Received: from EUR03-AM5-obe.outbound.protection.outlook.com (mail-am5eur03lp2056.outbound.protection.outlook.com [104.47.8.56]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-31-xrca57glNOKPhswlafIlmQ-1; Wed, 23 Mar 2022 10:09:59 +0100 X-MC-Unique: xrca57glNOKPhswlafIlmQ-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=XDeCJ0o7JgKWkuq6/EjdC7cRiHNl1aZtFe7pmllCpkfG94f38x4Np/FJwyjEhI7bBdd0DkOOmpB17Q8NmcVEgqVOSQ9Yinc0GJ+Y5wBtExWDIOBeQKffbBjTO4xt1ecYNT3EQUGsfDrJ4q7iURDIqSmi7PtJz6Co2AInJ/Q5VsPlugb0XTRoaKvk/gsZicMm6vDkRqNQ4uA/veec7cbpOA0RE0pZorg2I2p1FAKf1N/lWfRWyIGEfALDEU2G6ZHjQ32TrHNWZ1FPQN8sdBef1MKksg6WOLyiPexrQoFs/n0g0Q+K/KTJT6ox0WZCdOQgbbUwhUuAamJdSqsUolAKOQ== 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=ilCdS1i9TAx1QsDfZ2ZkaMsndyzSVf2mCIk2dBWFCIw=; b=TrovhPJXNG2bXD9iCG6vWfdSbnFSG7tdQeEtHhJN7Zt78DU6wwE7yEwMFP/whrMLEc3Ui9hsIoKGOsIn1mPzGeXixT9ZAZ6XVXtDjEuJEEgp5OX4rm+PEjAoUDLn6brfzBOTiqTueP8WpJ6xSwDMw7DGsj4xvPTfDs2ONezDcS8Cz+ZJfZui73IhNzEwn4YtYfikOr7t7WEUJkbwFzJ7jQGzvvhFu0wT+kIpBDIMDVpCZhNawmAlTfkyjsRQWGxuD4ggeCdy8iDZDFXUXZ5mAJpl0yXcUi8WPDhBSHl84k3MCPdt/4i+M57ySMgg0wtuTJ739lpxDM1XLVn75ZeGIg== 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 AM0PR04MB5988.eurprd04.prod.outlook.com (2603:10a6:208:11b::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5102.16; Wed, 23 Mar 2022 09:09:58 +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.5102.016; Wed, 23 Mar 2022 09:09:58 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang , Nicolas Rybowski , Matthieu Baerts , Mat Martineau Subject: [PATCH mptcp-next v11 3/7] bpf: add bpf_skc_to_mptcp_sock_proto Date: Wed, 23 Mar 2022 17:09:32 +0800 Message-ID: <8083614a3a2b867f5838f8cbee2106d1169f3fca.1648025308.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HK2PR02CA0198.apcprd02.prod.outlook.com (2603:1096:201:21::34) 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: 58dacd19-c90d-414e-9b07-08da0cace73a X-MS-TrafficTypeDiagnostic: AM0PR04MB5988: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: 6eWVT1KtBA2ya10qbelLgYxRyCQsoitYZdUYUIbDLNJlUziPThI/UB8a9Xyn/2fUrZQGiE3Yg2r5erV/47U1FBMClFHlL35IwGI0uqI+2khWmWw3inTuMKl8gmt/sZV1ac05FgGDWMNxqD/xLXquPfheZKzb1jYv8S5CTVGTAXHw8WWEtSa5lUnb8xImJchDA8UzJjItuy7BOixRqqkG8DSPV8cyqNYOGQYE4L9S8g1/oo6HmFVXF8gSWnpcXDEqd0uwzLEIgzUP8+9ibSqOEEAntbKYIVC1SoLMqAKRrQJysxCOzF1Sm7Ig5AUKDkl32cBVoF6nwzWVQ162XkpBguNUCH7FU8ggLJ+v1oBJYBIUPBM0wRUr+modIWVEvSuueeQWa9K9/mkuaIFrCCzARBLPDSngAQh7ve73nlhHem0Svkgy0y7dzgbWHkLaXUGlWve8m3JVG92udtbZE05j58ri/3t0Q94nvkRm1Dql7TWdWHBgIUEHgmmn+OqHuALWIwItH5Aez2jRAmRid2Sl3MqHsY1xRqqZ+p4SSCpMiK7O695/2wTQRWgHavNWoaY8QrenICsbvGJ9aAxHzjgVj5eayRstavNTuK6NCHrM4lKuPzf0j2SavfHvxZmeuVRftQRHYjSk3uRnXWV2L2XyaCWEulT1lv3StWt8ujjdBOhnky+dgCHyFp07KCEh4pcFevCNIIfDEwavHqMtEokU7Q== 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)(4326008)(2906002)(66476007)(8676002)(66946007)(186003)(26005)(2616005)(5660300002)(44832011)(66556008)(8936002)(83380400001)(86362001)(6916009)(6486002)(316002)(54906003)(6666004)(36756003)(38100700002)(508600001)(6512007)(6506007)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Dg1PEbppnVt2xEMnu5HtTMZikxRMsEu24z+kkVQB8fRNNigOYMfZzVoiuu9e?= =?us-ascii?Q?9CGpOXYAlEYYG4o3iZNbaTClClFU0OvxbQsU8kuubB3A7yYevD2iu0293TKh?= =?us-ascii?Q?/J2RL2rw6KBA22fqn/+oLgJdf2Tumh5cZ84ePROQMzxsXfPwGO9EvCu9xSF/?= =?us-ascii?Q?UZ6xrPMrwHisS+FZA4WvryuzWLD09ZwD8LHWw7C91VRZjxatxkxsZtOdgBXY?= =?us-ascii?Q?bmQhU7M8tw0kElzUc5rXAcDvYujL2ZS9jMYqx9eRGnOAdrFH6Z2ksGsBzMYe?= =?us-ascii?Q?wczo3foxpmFVBByk8vgBNi/NP6S5eLVdSxY4wbib1WnPIbIoNeybNklGNrZJ?= =?us-ascii?Q?C+0axHJzcRFy70YjhSARTT8OxpqxxPTe88/BlGAA7pWWaL/AuEqCMbKj3kOk?= =?us-ascii?Q?3la4eNz1qWLpY0rFY8e1j+Bdr4nJSJjWyewXr3taNCLyQh9xeeIKnF0+17BE?= =?us-ascii?Q?F21vcn5QmwqBb8YA05ylWMQiBAaLCyHk1NLYmhNStdG2raj2O0ZD4ycBi5ol?= =?us-ascii?Q?+ps51Cdcw+N1S3cYMWqLktswPquGGvm4Pph86wbhKFZ+X9W7GOPAaUxvsQte?= =?us-ascii?Q?ugYEPZX+StfytJxvo5NyPiUw7gpf0fmo+aj6E0/6rev9wJh9ExprJ2Td74yu?= =?us-ascii?Q?NXQuLOe+QvE/4qxgtaffFvQp+jb49yW6hBnvgPShH6vxeX0q0t6jCXRBVnsI?= =?us-ascii?Q?nFeq8JU/15ssPJtLp3e286/Z2xevbLIosSNJva4DywKgepyxU0le8T36dkYd?= =?us-ascii?Q?L4Bnp6OqWzwrsmPYESBFRoNZDddtP5r89UjQQwIcFVAXBwW2XGuBhCRSdboM?= =?us-ascii?Q?kjsmGCVPHcjpaFJQFzA9ZwBnhyAAoZ6TYIi3kJIVJCwpn9g29XX1U1zrnzxa?= =?us-ascii?Q?S6tEyE4E4lNOY2yuWMczBqGVXMawh8uDuSbCIDCpb+okhVNlpV42+nBPiiuY?= =?us-ascii?Q?8d3i7hLvxSEgTKQ5ogtvIiXztxq2V365eY+ZNZy4Fm7JJR+ZTY7PpFO280dX?= =?us-ascii?Q?k9VQb6Z79t7yGEKC4HB9Cn42wc6+lduBsb8JkXLjQDqRTMKW2CIWkGKcZ9ZF?= =?us-ascii?Q?QMpT0rJpOhOnj6rmFUEa9YmRy7MQGa/pPURG2rsGojEyitfusok20cyeg1xL?= =?us-ascii?Q?PQdDpd9oc9dTaL+zEPZrqUR5s6Z/f0X6KEJ7gXLmggA/zLpvpse/VVbSvHNq?= =?us-ascii?Q?gL8/KyTJ2utrzaSa4xIaK/ENOV87TmZbKt6aLRxEggH4jdP+QT8ngi80XlGE?= =?us-ascii?Q?57mIrwGRpFf7Ugv+uBzUaY8JhV8LIN4gQByIt1RSFoBMnvDalGXovjjAdwou?= =?us-ascii?Q?J03Lh86edG1qKAoK0qPIqJewTjo1QAYgEjOrDp5NJnEVAN5zMCLbnV+/HmUK?= =?us-ascii?Q?phfze+NJnKVWMZeQ8WZH5+68b3UBnxNtl8uJJfgg1+DjhhHeJ9Ni1wFQPRC7?= =?us-ascii?Q?Fy23S+XCs8xI8WvS7tCsQPREFS+g9n6CCyRQc1DFGeNsl2mUEoHD7w=3D=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 58dacd19-c90d-414e-9b07-08da0cace73a X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Mar 2022 09:09:58.0882 (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: VenpMTxiqXi8b9yPsF6o04kPkqucj9ObV95qK92Pu1IN741GLD7NJauXjwjpLwv7Qe06M6ttHmkObpKZkQO0vA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR04MB5988 Content-Type: text/plain; charset="utf-8" This patch implemented a new bpf_func_proto bpf_skc_to_mptcp_sock_proto. Defined a new bpf_id BTF_SOCK_TYPE_MPTCP, implemented the helper bpf_skc_to_mptcp_sock, and added a new helper bpf_mptcp_sock_from_subflow to get struct 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 Acked-by: Mat Martineau Signed-off-by: Geliang Tang Acked-by: Matthieu Baerts --- include/linux/bpf.h | 9 +++++++++ include/linux/btf_ids.h | 3 ++- include/uapi/linux/bpf.h | 7 +++++++ net/core/filter.c | 18 ++++++++++++++++++ net/mptcp/Makefile | 2 ++ net/mptcp/bpf.c | 20 ++++++++++++++++++++ scripts/bpf_doc.py | 2 ++ tools/include/uapi/linux/bpf.h | 7 +++++++ 8 files changed, 67 insertions(+), 1 deletion(-) create mode 100644 net/mptcp/bpf.c diff --git a/include/linux/bpf.h b/include/linux/bpf.h index 57cb6af3177a..fdf4d2285588 100644 --- a/include/linux/bpf.h +++ b/include/linux/bpf.h @@ -2365,6 +2365,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 4ae3cac94fb2..f02357cbdcbe 100644 --- a/include/uapi/linux/bpf.h +++ b/include/uapi/linux/bpf.h @@ -5117,6 +5117,12 @@ union bpf_attr { * 0 on success. * **-EINVAL** for invalid input * **-EOPNOTSUPP** for unsupported delivery_time_type and protocol + * + * 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), \ @@ -5312,6 +5318,7 @@ union bpf_attr { FN(xdp_store_bytes), \ FN(copy_from_user_task), \ FN(skb_set_delivery_time), \ + 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 f195cf034e43..b87370e77926 100644 --- a/net/core/filter.c +++ b/net/core/filter.c @@ -11271,6 +11271,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); @@ -11313,6 +11326,11 @@ 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: + func =3D &bpf_skc_to_mptcp_sock_proto; + break; +#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..c3b6f94f033f --- /dev/null +++ b/net/mptcp/bpf.c @@ -0,0 +1,20 @@ +// SPDX-License-Identifier: GPL-2.0 +/* Multipath TCP + * + * Copyright (c) 2020, Tessares SA. + * Copyright (c) 2022, SUSE. + * + * 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 4ae3cac94fb2..f02357cbdcbe 100644 --- a/tools/include/uapi/linux/bpf.h +++ b/tools/include/uapi/linux/bpf.h @@ -5117,6 +5117,12 @@ union bpf_attr { * 0 on success. * **-EINVAL** for invalid input * **-EOPNOTSUPP** for unsupported delivery_time_type and protocol + * + * 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), \ @@ -5312,6 +5318,7 @@ union bpf_attr { FN(xdp_store_bytes), \ FN(copy_from_user_task), \ FN(skb_set_delivery_time), \ + 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 Tue May 7 18:30:22 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a17:907:7811:b0:6d8:2910:9a8 with SMTP id la17csp1655224ejc; Wed, 23 Mar 2022 02:10:13 -0700 (PDT) X-Google-Smtp-Source: ABdhPJybGjj6Hw4Hgcu/dpI0wJepsDbatzB/uGNc4hhwC60pYuuYWmwwtzIb5i2vhrYvI2KphqDV X-Received: by 2002:a05:6214:1c49:b0:441:2efc:e097 with SMTP id if9-20020a0562141c4900b004412efce097mr8788606qvb.43.1648026613616; Wed, 23 Mar 2022 02:10:13 -0700 (PDT) Return-Path: Received: from ewr.edge.kernel.org (ewr.edge.kernel.org. [147.75.197.195]) by mx.google.com with ESMTPS id jq13-20020ad45fcd000000b0044133f5ea95si2587321qvb.463.2022.03.23.02.10.13 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 23 Mar 2022 02:10:13 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4364-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=g+1kGdA3; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4364-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.197.195 as permitted sender) smtp.mailfrom="mptcp+bounces-4364-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 4EBFC1C0B42 for ; Wed, 23 Mar 2022 09:10:13 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id DBFA21392; Wed, 23 Mar 2022 09:10:11 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.111.102]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 273CF1391 for ; Wed, 23 Mar 2022 09:10:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1648026608; 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=uhWWPtoNNW5ijMqp4CS5WIg4Rwerv6jageCTLWEqmxw=; b=g+1kGdA3Fi5pYmAjpJttaCce5hDBkzB125OnuGob9C4IlIbmyB7LZxMlKXzqP+uuAJtKzn w7E2KCckB6/MdOR51bY+ADWRdEju+edDtoOtWNr/Kq4Nxn2wxTeoyZ9IGZxx33gX0yhxdm 87iIMQ2J9ZfO+AbMbyjZ8kaTIKGhOyE= Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05lp2173.outbound.protection.outlook.com [104.47.17.173]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-22-3VZw8nBHN7WUsbPH6RYJaQ-1; Wed, 23 Mar 2022 10:10:06 +0100 X-MC-Unique: 3VZw8nBHN7WUsbPH6RYJaQ-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=PCnVGh31k2NgB6UQls5RwpfL0DD/28Y9ZmTFyhUym5+EUCOt/WcxNn3+72qDoxHmpQyoC5t/XqJrR7HJTH+2SlEEzN9ExMoied8yWbmDa48LXqdHdagHWsF7c0/6d7ibt1srIjA9NZ5PYK3Q51zqoIUEc0yrsn1oDAtDtDjOiraAG9fTqHebz/miUr4P8tDy7+KnxYiqHLFBmgbBelOrtw/7MCQrFVResWVw/Cs2zlzZ0h+OzG/5TzzJEU1KK6hn7hKtIkdtJjW6zIg38Cw853Ne1SGty0S+qZpS0b11xRnHrfBuRcXpOOgZ0+kiKutuvGkrCuDfLvnwOJv+lgTNUw== 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=mWKnck8ZELk/ERQWZmBoeazpPOZzmXpwf5oGttD13Ow=; b=LrwfGbJp158dTxP2WmAGAjBJNe2/5IKZJe9as+jVeHncmdjI6LqR1Ifr8Im9Ha2AjsTwW8I75wO+Lm686MuR7HmiOr3W3eGahqx86Ew1aYnkWo0IwEsMEnpVUy4bKaKQyRxPUBA1Jh2Ku9fywVV87QTh1l80sDlBEaqryPYvZkvH+m7BqN0mewS9vAn9KhFfyWYRdVm4K78L49EcvL6ZWmTTZ1apfr5fSbdibtdWRD+qxuwB2V2158nHfWjJ81M3Tv9vPGUt8L/xA1G/yYuSTMDYvzd9GBgZuraxYtMTJ7N4dgQZXcCCmO4QiGbbo3ZNL8BZ2UjrK2WCcrx4e6swGA== 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 AM0PR04MB5988.eurprd04.prod.outlook.com (2603:10a6:208:11b::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5102.16; Wed, 23 Mar 2022 09:10:04 +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.5102.016; Wed, 23 Mar 2022 09:10:04 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang , Matthieu Baerts , Mat Martineau Subject: [PATCH mptcp-next v11 4/7] Squash to "selftests: bpf: add MPTCP test base" Date: Wed, 23 Mar 2022 17:09:33 +0800 Message-ID: <115c3eb0e04f8ee0cc223ae81bbb5fedcd8f2aee.1648025308.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HK2PR02CA0190.apcprd02.prod.outlook.com (2603:1096:201:21::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: ded237e8-6760-4339-aae1-08da0caceaea X-MS-TrafficTypeDiagnostic: AM0PR04MB5988: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: xOXFSYJiRqG8NS3/GrxIpbFTrwKjQ71iXEJh5lUD+IXKo+H2O/vOwSH3vmaIASqf+1Opi5zhZb3gvlh/FpUZoGSV9NgAKaqLSASld+cKPdhBPO4h9sziDI9+MYRuo3y3Qe3nT9Jlg/fooTdffEf7yG/LfG4p/LfaBOhEF6lr67bsyYtP2SoQuQUPU5/wkQt4eXifHvbZnY/A6GDOOaAcemMDXklzipBIA4K9wcGYGQT5MPnNdRzXQ2gmMLVxAikf+wPUKUcUrhoiuSMTBmC8TtNFGqkszhIGLZwUv6j0ra6b+bE2tRhcGPlv+3CyjtsAN5wNw5SdF323V+FHpvQGGje++o18y581jqiv+us5j3c38RkM+05bW0Xh0KZLJW5hRldDgaIcVYXLF/upnSwzmaqu3Mrmv+036AT3DHDIXclHtQgrF+3D0/nOBiyHpx0MgxcAY39clidpQm2OYdV6DKB9BpGgX65OSGoAzimciR4S6f5Wpaq8rgRFrvgZpY/xWgcJeBm9ufY8phufEH/i8K/I23V999gm50bORW1ksQQKGyJaSKtaO/li7Q0VscE2npLu0LhF0/70tFYUvJzT/bwEYqSvhekxw/bM+WE4pSA4iZSNcC4LGBBdrg6Fg1XqyCG+jztRLEVIN0P3nebrbCigS7+P4P237CSFmBDY23o+luZFzs1lRGEyUhzDSxAV 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)(4326008)(2906002)(66476007)(8676002)(66946007)(186003)(26005)(2616005)(5660300002)(44832011)(66556008)(8936002)(83380400001)(86362001)(6916009)(6486002)(316002)(54906003)(6666004)(36756003)(38100700002)(508600001)(6512007)(6506007)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?htaPwew8ubjOEK5C/08CnWJKUBlaJgp41ANodJtfOjAIOm/q5WOdLXadPfhm?= =?us-ascii?Q?lac6iFFOZwQb4/sISRMxauJ/S1UeuVR90ZGDz5F9najgA4sQ+yRP3JvW9g8U?= =?us-ascii?Q?C+W/o59Zo8ai/w/bhch6UELFq9+ZqgIY9SmHoOBGg382lroAtWnevmm5zEAM?= =?us-ascii?Q?7j1QSepXpD0CE/uCQ8f8RrRIWy96gDKo956Fv5Mkm60z7Nv314VYUvBk8aFT?= =?us-ascii?Q?zkyZA7BVSE+gkh5bsln472g+qVLjA5x3bGYuM+JtvTNAHGt1T0yxR5q29tMi?= =?us-ascii?Q?2sdTrGiuZUKX5Np4w/Lr8Ii/Ln2gUysJ86wgKytaDRay2DdlGFIm8aJu1UWu?= =?us-ascii?Q?gUJ4uLn/pyrWcQnLE+ylWvCJ7oDUTk4uq9GNO7aR2OLYjpgfzD9tZYEBwjo3?= =?us-ascii?Q?Cto6LZccS4P+2TaUSa7GurU3KbwA7Qt44tH5LuSJiTgR3buNqjp0XYgkK9EO?= =?us-ascii?Q?qoKzCSRGrAYZheP4Ms7xhSDf9HSqa7oGkpNZvxra65sJ7RegffBGG1WjoZxA?= =?us-ascii?Q?jziQwgRVb3TTsHjOYKedqRXgL7LK0s4HjbApDDZITnSPeB2l1JMUiwqkzV21?= =?us-ascii?Q?HKUXRo7RmutWn2pVCOTp7TgWcmsE5L7tqkU4Nup1s0BpwbTzlUtM4tk35GHO?= =?us-ascii?Q?m3+PcL6xeDE0lYSxl3DdVrzxLdsXPGVC+0LATqMNxaMVejT92pWdCQIRUmR7?= =?us-ascii?Q?DTTu1vE1zNRI8AyjNj0uaKuLhfGZGgqXZHceytg8sd6MAMnmn8NSYZz3ryCf?= =?us-ascii?Q?E9MNtxohZWFZThlOYjKKyLAy16RN0iWF33Y5vVgmqDGnhO3imUsYM18wkzZt?= =?us-ascii?Q?zUr5ztq1M2tf2BlIfzcX05TzhIkybWJmUFVglexVOh44QiCbQAsonvHKA385?= =?us-ascii?Q?ONg4NxEvgvqXArhpcl0rikR8yunIIV9T11acEfRIKOY9TBNqYjyUZCy1jz8v?= =?us-ascii?Q?KEKfz9d7FnlighJU3UnI2TXcgJtHRVXOsXM1m6aBvdhC33HKzRfbSGvZmBNg?= =?us-ascii?Q?A/B9CIA3kpUcXsNOIa9aQftVJwELwI8DhLBMHOByImcY5fRFDjTOb/Wy1zbV?= =?us-ascii?Q?Ek++mpOe4o9jQUd00xPJ+z6lgpS+u61+OTYUA4VklyU3VLOvgpFiw0pqnQ7/?= =?us-ascii?Q?Jkt/lZOvLCTdvLRiEe4AW3jUD5h9w4TKrEV+BbNx5MRWbz3vpkJTFdanlKb9?= =?us-ascii?Q?HDAKyaNTekiPr3SvJ45MbQaTa/xH7oaKGPsaHpDbIvedmTBTaLknS9c7ggi4?= =?us-ascii?Q?oa5MaYMwspWWeSRmTJ0Izf8ffqMLtuy2lhuWdc+SdCmvMkjT1Sbm0fnZYua4?= =?us-ascii?Q?84kIde/tAkjH4z73M0UEyMakqJmTHSIpod9wafelbN5ubLAYSjqmvlByb8ze?= =?us-ascii?Q?ZnnA0Juu4dJGV7F1HOeoRe66+1mG0KBRoiBKY9Sc7kflZkNY5DnwGWD/cTeh?= =?us-ascii?Q?HeH61vLlqXPQjPUOOt9G23DrKeXF8F412ib8kXn442Zy5KInVQ7pgA=3D=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: ded237e8-6760-4339-aae1-08da0caceaea X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Mar 2022 09:10:04.7439 (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: bwZKVffxCurSOoCXpwrOER7N2oCa9TrfEBveqygtjUuRMMyjAVPsemlO/yrGORBY7VRgMfdh3DfwgNyaW8Nd4A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR04MB5988 Content-Type: text/plain; charset="utf-8" Some cleanups. Acked-by: Matthieu Baerts Acked-by: Mat Martineau Signed-off-by: Geliang Tang --- .../testing/selftests/bpf/prog_tests/mptcp.c | 26 ++++++++++--------- tools/testing/selftests/bpf/progs/mptcp.c | 16 +++++++----- 2 files changed, 23 insertions(+), 19 deletions(-) diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing= /selftests/bpf/prog_tests/mptcp.c index 04aef0f147dc..24d82b19efbc 100644 --- a/tools/testing/selftests/bpf/prog_tests/mptcp.c +++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c @@ -1,4 +1,6 @@ // SPDX-License-Identifier: GPL-2.0 +/* Copyright (c) 2020, Tessares SA. */ + #include #include "cgroup_helpers.h" #include "network_helpers.h" @@ -13,12 +15,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 +24,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 @@ -87,7 +83,7 @@ static int run_test(int cgroup_fd, int server_fd, bool is= _mptcp) return err; } =20 -void test_mptcp(void) +void test_base(void) { int server_fd, cgroup_fd; =20 @@ -117,3 +113,9 @@ void test_mptcp(void) close_cgroup_fd: close(cgroup_fd); } + +void test_mptcp(void) +{ + if (test__start_subtest("base")) + test_base(); +} diff --git a/tools/testing/selftests/bpf/progs/mptcp.c b/tools/testing/self= tests/bpf/progs/mptcp.c index be5ee8dac2b3..0d65fb889d03 100644 --- a/tools/testing/selftests/bpf/progs/mptcp.c +++ b/tools/testing/selftests/bpf/progs/mptcp.c @@ -1,4 +1,6 @@ // SPDX-License-Identifier: GPL-2.0 +/* Copyright (c) 2020, Tessares SA. */ + #include #include =20 @@ -25,22 +27,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 Tue May 7 18:30:22 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a17:907:7811:b0:6d8:2910:9a8 with SMTP id la17csp1655247ejc; Wed, 23 Mar 2022 02:10:18 -0700 (PDT) X-Google-Smtp-Source: ABdhPJw2DiuMzx+1n5bDNcqK9hk+LykARU1RgzBKsRtd5ZJE/ELhYRKr/DYHkGaRKVPHVYmtmRa2 X-Received: by 2002:a17:902:c213:b0:154:882c:fac0 with SMTP id 19-20020a170902c21300b00154882cfac0mr7348708pll.151.1648026618419; Wed, 23 Mar 2022 02:10:18 -0700 (PDT) Return-Path: Received: from sjc.edge.kernel.org (sjc.edge.kernel.org. [147.75.69.165]) by mx.google.com with ESMTPS id l3-20020a170903120300b00153b2d16589si14964906plh.401.2022.03.23.02.10.18 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 23 Mar 2022 02:10:18 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4365-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=muEZEe1G; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4365-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.69.165 as permitted sender) smtp.mailfrom="mptcp+bounces-4365-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 E336B3E0F31 for ; Wed, 23 Mar 2022 09:10:17 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id EC1131392; Wed, 23 Mar 2022 09:10:16 +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 EC9851391 for ; Wed, 23 Mar 2022 09:10:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1648026613; 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=n33vDTXgFtTLTjX0yjY8jn+qaqLUCn6G5P/M1LctMBU=; b=muEZEe1GsSTiJFDe4AoTMcGiLuhEb5ebH6CVbx7GmzJeutvFNfN5WOgosaD64JQu866a1D LFDkspk93vBDlBVMbmQqmWJ+gNz53nV6TfUaLWrSigNsfENVKxW5vSe57hlbNgQsyEsj6l ZoLFvT/f5h3pAXCJnVsRIJsSVZMFFA0= Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05lp2170.outbound.protection.outlook.com [104.47.17.170]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-36-eMUecBh3MJWPkmpRpDiPHQ-1; Wed, 23 Mar 2022 10:10:12 +0100 X-MC-Unique: eMUecBh3MJWPkmpRpDiPHQ-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=NDfnvTMUP3S8cA3kZmnN08nZ3xM0vOQoatT81cKcDlbdfvCImMQZKl0GJblWs2LohHFOtBHj3665HfyRTO83VJ5CopD78ZSBeM/c+QIjuuqGk+px1ujSQxqOkM9JfcbwM4yKvHYbHr7Y5OfGkL2XFxPxXEP6sjQGDOSBSvqoRQBDt1cGeFM9OkY//eO1RJaoZ8Sb9xDiU+gze0Az7mPu9IeVeUhYiQup+ryjeG4w47z0xlx2IrjI1nvRcBfYgArPa4zQ1xo2giTVdLKxFp/Isw8P2SqxsSvjxOQt3DT9AVzuQM37BwS/yMPs2WoC5BYW8RzA6x9IuYOEPQ2xilc9AQ== 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=ZbVULEfoETovXT1J2HuCSzdv5On/MMhw47xe4gf6/go=; b=jgHQKYyUfgXDZDC/qNZ24R9D7FhsiSdjrbYpYmMuVXxiyotbGEhR5g5XBRiqhzc3VeinEFrGG1hBstntGrgIWQvz7OtxNkY/wJc/2C8mXunlSt8UiEaIOfc1QtjlkEtPQS3Y+mF1h5Soapg6px0ySHaDtLQOmg7D918bFAd9hQquQjDHkYfzu6wratdPsgiVtIh+J7l/nslvw2buaELqfsj5WHflh5TnksOyZ4W+xYlg2L9qu9B2/ubEl5D1dM69EawPL96o16rolHcqkti2feoQ1Z1+7/M1Hzlqo2wrLF4XeQF3ffwt03bjUH84UwYeL5XzVoC3XqDnqSEMP7eREw== 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 AM0PR04MB5988.eurprd04.prod.outlook.com (2603:10a6:208:11b::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5102.16; Wed, 23 Mar 2022 09:10:11 +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.5102.016; Wed, 23 Mar 2022 09:10:11 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang , Matthieu Baerts , Mat Martineau Subject: [PATCH mptcp-next v11 5/7] selftests: bpf: test bpf_skc_to_mptcp_sock Date: Wed, 23 Mar 2022 17:09:34 +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: ef30d434-e0b8-49bd-3fc9-08da0caceee2 X-MS-TrafficTypeDiagnostic: AM0PR04MB5988: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: 1saGJAZ5Jz+V2sWGKYyH5N8utuQ9n0Jvgs4ph50TWYlJ8uonD9yFnjhSUE3zixArPJot+R8faMhMcZTL5yrA8+nUbz8k2omb+u5o7WdD7qyyA76D5yKN+CPbSFcsvmUbbPiuazq8D+j5imBWUKJ0V314dJKU9loexC1fDaBxJk3foNQBF7RPebuHzBA7Li7jJ+3gn0xMtWLDbMVw8TAWOnZqkXnP+hhi0sICigZlt+IZtatwHowEyRerNdRfUQo75STk07E/ohOodHXdRZsOGCo5RFTliQDbN8YneLin45TRqOjcmiNCM29bipIUZkK4J39AdxOg3O+wizuR2seHbIJ5xJa2s9u1o0VL3cUAnmsFEEBlRRztLEz7hvVSVRTd3Kx4VaMt9pJxetwPYX1lZntqzFSWswpIJBaRCETLO5rHEQdJry9gKNeN2NzR3fqqNbWNfh1DH7kTXS2GA8r62knv2/AQxK3rDjiFvvfgEkETsZA41BfdvWwm0ITB1dis3UXUPBAw7S0GgK/xoAx2oqzP5dCquz+S8kV9sfwSP1tLZ8CPjIppyKTA6Hc+015aU8wmoTPCnuemvGwCQ85hwixg1eIZzXHJbluF19xgewhySsRj2TgwS1uXicTGj6lQ4s79ZFjZvHcbGS/m89XpcCr4HXVkUW4mS8394BQNDXPMwvMWsZrDSQefEfyCIs9+ 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)(83380400001)(6666004)(6512007)(6506007)(508600001)(36756003)(38100700002)(6916009)(86362001)(6486002)(54906003)(316002)(66946007)(26005)(186003)(4326008)(2906002)(66476007)(8676002)(2616005)(5660300002)(44832011)(8936002)(66556008)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?qvkz6DXMA8KnZU6metMBN87IXhei50ryspOIDfeFM8PFm8vTznrFo6vaDC76?= =?us-ascii?Q?FuXBtS3L6tEbGrFHuQE0Foj6c3HNL3vnBPzNG6p2geyC+XsH1ckX+9Y/6Bwd?= =?us-ascii?Q?fwvAzfrupK88z+xlI4PUPM2E0GiAniGJdUs5p/JKP9dFUGYbJULLCf1oaz/h?= =?us-ascii?Q?rmLQcXShDEV4C27ienfcKy6YnSnRLoBoxdWXVQizA8/tb7XW1CyK2OuUYj3U?= =?us-ascii?Q?0CzbNvD00mq1OekUuWztlA4jkqODPzJ+UALdcMTPH7nqNzLVaAMSvn7el37B?= =?us-ascii?Q?r+tsbjPPnL85qgkJ/S5mXvbFVZWhQQPrLvjKO2BBawYrehHfZABU/1zuCfiw?= =?us-ascii?Q?z/BEqLAUwjWoCFRYjKKHBNF0qXzMF/O7fuoxydhjsvUQiLp0V6epnUDsVvu7?= =?us-ascii?Q?QcgNVM+a/5vNFjcMjb4kMYS9IUKmpdsBt/ihdC72gqV2VxDE3sCfNsFeeOMy?= =?us-ascii?Q?Bb34nRoKNbml2duLVtGmB0ZS4ayjU6oAMWx74K8eQUAqbU1AUZfMDZIMrzJI?= =?us-ascii?Q?LURX1nPKox30S7jDjms3I6It3hcrirF6mtQFN+u4GFj+OPAh9uU+uzLMmMTm?= =?us-ascii?Q?lj9Zz7dK33sWrlu8kxmAMh29WKf2V/KmzwBpD96qrJ1fn1JrU3uZ80QXJHsO?= =?us-ascii?Q?Ue7mBw8UxFoQ78qvWwunXehd1vhfB90CEW459JoyOBZ2R1C5jAYNU11mJH/W?= =?us-ascii?Q?KwCuPBLAEuoc9g0ewcp4al3kFxklq+xnx0pR8vpTnPgES2PpHBZCHpWeK+at?= =?us-ascii?Q?7+9jl+vQEB06/S1C9YPQizjtJSN8NtR9MObYDsIss3a095LEmHukFLFZFG9w?= =?us-ascii?Q?l/yidua2ayxmocNLVJ66BHljsrPTwU73Eq+dnjay4H/c64cf8/boXX8fR73n?= =?us-ascii?Q?cQqP0v6+hLVSV+5egEFYJpZv0QQPq3FS9iYmXVvSYnr5lEqCDdXL2gULqM8n?= =?us-ascii?Q?QCw+RtM0OX472ibo8q5CkOCek3yj6Q36NyrCI6wb28Yja7oHaH4bzI5TSQE2?= =?us-ascii?Q?8HdFuplLWLmjZRzrOyoGoORJu8XcAg0/Br6F/T4ld4Tmci7V2hqN10MeP2vJ?= =?us-ascii?Q?akZBVcKb0cgx+XvA1wlYB95L/Cx5GBVFVSJe2dm/J34jydDp7AW8CuQhbGPB?= =?us-ascii?Q?Hi4YdB98sX1xE73+U+gDge3+Uas04h3tOY8TsRWA+qq6BQMOHaoU3FSisJ3+?= =?us-ascii?Q?AYl1+b49gte6T0Y2Cvg8zESr+T99xxqB3Zi5J4mkObsrI+ZsvfF6HTLN5968?= =?us-ascii?Q?EPoKnfQrDmLEDjlyrgmWGBLnT95Wi16V2cRiM7bVw/zmY2m7C1y9vWY/pm62?= =?us-ascii?Q?vl3NscKZSZdUZeYlUdRbPW3pCNKeVsp7/I0EzOMchux2i5mDM2Vw6450vU/m?= =?us-ascii?Q?16j3khV60wDfa3zOhNzqQ80A7yKUa54czJ9zmFTHev/EGTbPQzl9cKtXVXNJ?= =?us-ascii?Q?kh5CCW9AbVsV56g416moXoAJr5PzdVOoQyLl66xSjA1pfue/gnxJsA=3D=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: ef30d434-e0b8-49bd-3fc9-08da0caceee2 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Mar 2022 09:10:10.9778 (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: SSo0P+KcU9pjL5kydLM4h48mEiyPT3LMf5kKykUV5c9CLpKMSkR+02eKXZsRGY6V479iTeX3Pg/TaEOts3W4JA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR04MB5988 Content-Type: text/plain; charset="utf-8" This patch extended the MPTCP test base, to test the new helper bpf_skc_to_mptcp_sock(). 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'. Acked-by: Matthieu Baerts Acked-by: Mat Martineau Signed-off-by: Geliang Tang --- tools/testing/selftests/bpf/bpf_tcp_helpers.h | 6 ++ .../testing/selftests/bpf/prog_tests/mptcp.c | 102 ++++++++++++++++-- tools/testing/selftests/bpf/progs/mptcp.c | 25 ++++- 3 files changed, 123 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..9ea6687c8f4d 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 24d82b19efbc..80e57ca1ea4d 100644 --- a/tools/testing/selftests/bpf/prog_tests/mptcp.c +++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c @@ -8,16 +8,17 @@ 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 char monitor_log_path[64]; + +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; @@ -38,6 +39,85 @@ static int verify_sk(int map_fd, int client_fd, const ch= ar *msg, __u32 is_mptcp) return err; } =20 +/* + * Parse the token from the output of 'ip mptcp monitor': + * + * [ CREATED] token=3D3ca933d3 remid=3D0 locid=3D0 saddr4=3D127.0.0.= 1 ... + * [ CREATED] token=3D2ab57040 remid=3D0 locid=3D0 saddr4=3D127.0.0.= 1 ... + */ +static __u32 get_msk_token(void) +{ + char *prefix =3D "[ CREATED] token=3D"; + char buf[BUFSIZ] =3D {}; + __u32 token =3D 0; + ssize_t len; + int fd; + + sync(); + + fd =3D open(monitor_log_path, O_RDONLY); + if (CHECK_FAIL(fd < 0)) { + log_err("Failed to open %s", monitor_log_path); + return token; + } + + 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; @@ -72,8 +152,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); @@ -85,6 +165,7 @@ static int run_test(int cgroup_fd, int server_fd, bool i= s_mptcp) =20 void test_base(void) { + char cmd[256], tmp_dir[] =3D "/tmp/XXXXXX"; int server_fd, cgroup_fd; =20 cgroup_fd =3D test__join_cgroup("/mptcp"); @@ -102,6 +183,13 @@ void test_base(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; @@ -109,6 +197,8 @@ void test_base(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 0d65fb889d03..afacea5ad9ca 100644 --- a/tools/testing/selftests/bpf/progs/mptcp.c +++ b/tools/testing/selftests/bpf/progs/mptcp.c @@ -3,6 +3,7 @@ =20 #include #include +#include "bpf_tcp_helpers.h" =20 char _license[] SEC("license") =3D "GPL"; __u32 _version SEC("version") =3D 1; @@ -10,6 +11,7 @@ __u32 _version SEC("version") =3D 1; struct mptcp_storage { __u32 invoked; __u32 is_mptcp; + __u32 token; }; =20 struct { @@ -24,6 +26,7 @@ int _sockops(struct bpf_sock_ops *ctx) { 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 @@ -38,11 +41,25 @@ 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; =20 --=20 2.34.1 From nobody Tue May 7 18:30:22 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a17:907:7811:b0:6d8:2910:9a8 with SMTP id la17csp1655282ejc; Wed, 23 Mar 2022 02:10:24 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxeQbU6EoIfyiCMtfOULIxqLtyYaNUXp087CxDpVYOYAUmREXCCRFlY0j3k/L8Xna8HqsVa X-Received: by 2002:ac8:57d0:0:b0:2e2:77b:98fb with SMTP id w16-20020ac857d0000000b002e2077b98fbmr15674749qta.108.1648026624655; Wed, 23 Mar 2022 02:10:24 -0700 (PDT) Return-Path: Received: from ewr.edge.kernel.org (ewr.edge.kernel.org. [147.75.197.195]) by mx.google.com with ESMTPS id t184-20020a372dc1000000b0067e4be238ccsi3442071qkh.273.2022.03.23.02.10.24 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 23 Mar 2022 02:10:24 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4366-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=Nt64cEhy; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4366-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.197.195 as permitted sender) smtp.mailfrom="mptcp+bounces-4366-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 549BA1C0B62 for ; Wed, 23 Mar 2022 09:10:24 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 1AEAE1392; Wed, 23 Mar 2022 09:10:23 +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 706921391 for ; Wed, 23 Mar 2022 09:10:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1648026619; 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=2k8nmweHy0v24jiv6g5uW9Bf7pMCDlGzpz4ok+v5S7w=; b=Nt64cEhyGBbElEob3HTXtZtSJuO07HQiKw+57Ea3ZO3/vTmsDKZ2ER25PSHldmmm4B76CI 9U++CKmHuV2CH/FblVwBbIaBbpzdrhy/XctU23JP//KI4fLJZXH3fgAnyKEI3f/IbXVqia PoWlV6g1qQEYdXMdmofBaToWJGoxCHw= Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05lp2174.outbound.protection.outlook.com [104.47.17.174]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-22-DoRDR-lbNwypWtGPO20DEw-1; Wed, 23 Mar 2022 10:10:18 +0100 X-MC-Unique: DoRDR-lbNwypWtGPO20DEw-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=kIUwqsZjG9Zq5yOHeKOl2oGFtgkL84IVuCofoWf7DbhdaW2DAxq2KxFDrozri5Cnh+MSqV2qK3XfRjuiKG10Hum228hLcuWVZfdOSRLW/3IzDvc9e6VOvtDsIOaMLZRYC/qd6rAU1pL4zzE4ljQTBShAQXcWDgX6FkgOvjepZ2gaXRVRCOciwtZudIcYqNIUB+C+zTYZqy8KnTluyYU4DVBMnF1YIBgm7r9JU3JOIZxt8Hll6OwGvLwQEbnWpEE/cRg5HLl3YWtc5QzaPxfIR3t1KbChNyf2TU1cfQCRoff5iWwSUOTq8GrCrtNHCQ2u5pPjUbSuhVpQf2nkcRpIog== 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=dahY6Mv8Hzt+n+f11O7lPW1pCxQ7p4KJvoQKSqVtcfA=; b=nmujoudsfYLn6WUBx5hHa4w8xoAdclF47RwPXtz2DW2SYXFa8g1PUGR/WMtGjWGjJ0vrf/RZyas5DgFdS4nPVmd8xtqrZXdOGqaToOHw1jnjaDIdT5uwFqF2Kwn3R+vBHvZwfuZ+kr6L8lknzBG/y/PYpYfUbPJTvhqdaG/YEqfAt1gKyN/GxhgcLPUe90NbKn0RTbZuhq8+IiRLMazeyxJcmw/n2CVJpnD+qCeoD/x3XC0Z7aKELNUMYRZ/QD4RIfNZO8zVN9W7MfGyuzmxMjv7bL+eKiJ42OJ2QJ5HUpaaKTBPnLzG0Aq45RPV1h6t3f14TV4gbXf/fWMZ9PkhXg== 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 AM0PR04MB5988.eurprd04.prod.outlook.com (2603:10a6:208:11b::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5102.16; Wed, 23 Mar 2022 09:10:17 +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.5102.016; Wed, 23 Mar 2022 09:10:17 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v11 6/7] selftests: bpf: verify ca_name of struct mptcp_sock Date: Wed, 23 Mar 2022 17:09:35 +0800 Message-ID: <42bf5ab5eda469d54c3e00d0d13523b815f31554.1648025308.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HK2PR02CA0181.apcprd02.prod.outlook.com (2603:1096:201:21::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: 865aae99-0022-4a1d-391a-08da0cacf2bd X-MS-TrafficTypeDiagnostic: AM0PR04MB5988: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: kKhnsJ6Fjb5nVKb3q99IL0mhzCFpsH5n/d74qp9B6itXDI0DXHBERL8X+LpD7VSNS2MNtMDCJqyzwxtGA27D/LsB6F/KWoQVl8Rm4qEBBJ4M+94w2Ac5JTGRCe3p/REntsgMMI7fiCW533h6B7H80Y+maYhosxkJewwAHMzxUwZ4swwJgd8bD7aHrJPhn5i/fWsYdkGgarYgTMAXK4cny9xk4ilNClN9t7L7bP2wwGDnBAuVKeQDmdNf+5r5gEtNhgSucNDsda40XcfJnvjqBYcqj7FVe4vYlNX2YYqd31T2BfrQ9ftiwJoGvd3y7MA3Rs8bWaTUrEvn6ucEhdZ2cZQjIou7w+bVXxs3qZ0McFXCmnbCdPGEeDbGZajAE69It7pOdEyrABTdpdxl+vv/96f565TNauLICzt/tJv90JaUuEWNibhONtWB9valbu1YHkTq4bB9SCG8JYzX2nBb0rQmpDMZJMWqbYVJ6uab/Qo5z00FcApY71u11IuuNK2BeSyEqKhKEMVxjFl8g99iWe/fw0nNtWg3Sk8zLK65qD6O/F6DRX9WLR6z81Hi8kbnHp62ybP89zHO2gK/CBoQ36WgQII9B/YC4LjGyGkBc5laOSIa2owlTdEMNbPpZ8wnIcoLXEF/MIXujDmuCIZET8VlSz6ddnfh5AMCGqg/5p+FoM05X816sLp+mMpf8E3Okf1bQqStSmiZNStYBz5FGA== 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)(83380400001)(6666004)(6512007)(6506007)(508600001)(36756003)(38100700002)(6916009)(86362001)(6486002)(316002)(66946007)(15650500001)(26005)(186003)(4326008)(2906002)(66476007)(8676002)(2616005)(107886003)(5660300002)(44832011)(8936002)(66556008)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?PtdL0BprH8Y3c5a2Q+Ia9ZfA/3BFF62jvO5DSMSl88kRx7DMvBmt46JmeWrC?= =?us-ascii?Q?63Gy/VIfdLqn4yflLkqkJ+6BfRotqb5B7sbn1QTgX/8v64U//tZw06QO55MJ?= =?us-ascii?Q?J5dfUfvH7noHpNuEjRsjErSvVeG8PPyF5t/yoibuXSZ//F97DW6+f1+/g1iA?= =?us-ascii?Q?RhPmgcZfEUOc0HYRrr4yRg2BHtcJa7/PzWbolMpmYhwG++BSmHMP5saKBplY?= =?us-ascii?Q?kcI6ZaPUXpGkhtUvAcV4/GrG+5seLOhM5JUtONQiElDPomz9d73g1CqCvTlQ?= =?us-ascii?Q?p50K5278fD/9wKkujZ0KGWxTLGbtTpdXJHI66TDuh77tVYBaytbaeq6Esedu?= =?us-ascii?Q?23t11eXx84aOLYJx63CUMEQL72XQ9mQiaAXvJ/QotRBsXuZBwpfvHr6hHQ+F?= =?us-ascii?Q?q3U/bqovPLdYKWDjP3iWTl9G3PZLjHvmNqj7e8SR1WxDVC9T3rT1MAZkyK6Y?= =?us-ascii?Q?wXAIvXOFMqh15K/Kzp9wmQUUA8i8kSdJ1I30wYMcqpKvBUwQU2izssf8Sqdc?= =?us-ascii?Q?7ghTyhCBjrtWn4M7DCQzY30YXuB3VVhHKzah64SqfUVC9VvkYTMSU5hHVC10?= =?us-ascii?Q?xcSyD4ubUddQLAgKvYCnDk/8YTfs3949PNC3uql+HJxiA5RHBgjqJPJGbetT?= =?us-ascii?Q?UObSMMqEieIYH9XkPyX55qPi7YIpjLWug0Qoi1AKIGikg1PFYVy8toJTCgij?= =?us-ascii?Q?yq92P1t+tNoFI9wXTy9KxQoKUpHPPMA7Yh5bfW09scfuS8BLDd0RmxQlFzEZ?= =?us-ascii?Q?aezgxF5vpimS7t8AwpL6EwRihseOIHs7bnahZ3Fy007CrnBc3LW4KzRSsoOL?= =?us-ascii?Q?Mojm1Sw02uRgHr4Xmo8EJHQCShIhPY9x2IxEVVfcVzUqx1hk94vKRWAtXBBQ?= =?us-ascii?Q?M4bcvYW0N9Tk0H1MEZhEcCdauJNOkT43ZLCG3Y1xCHS3s7Dhn3JfSIdoIU0g?= =?us-ascii?Q?XDlTzbWht+yaIxa8WPRomt3HVDkwNFUv32mqTfcxtWRcgslZbZRzlrz7Emnj?= =?us-ascii?Q?V1J5UZyRTpZx2KQDOJGcid8wHhd4pH3IbXclNhLAqaPKaN82PZ+pjvdF6cBb?= =?us-ascii?Q?kOALrULAvn0y+UEIwJpWvcMSmLV9OxaE3hKOGFelYddB7DKLexECANR9ALeO?= =?us-ascii?Q?X8CxejFsj2WiCa6JOtrWdqw2gjCOmqnZXzLZrPWZAty0tDUbcKDbqLQcqYab?= =?us-ascii?Q?f2RYGydxe9ePOAznm2LxpICXtc2Es3RJliat8ujh8Fj++xLiWj7sEkAle7QF?= =?us-ascii?Q?b9rojFd63P7pqaEzc+HaUVZwqyQvu9UHhTMtgS7a+FFcfKUH99F3to8sF+/t?= =?us-ascii?Q?QYxupdCPG344TJbO3Z6142DGygu2gETfLlVc4YKGMjE8GKfDYNs0uuQ+stbG?= =?us-ascii?Q?bDrh8PiM7idAwQKM4begw4KnSCxt+jebxwJcRdFdpJIF3/jX4kWaGksgTVWV?= =?us-ascii?Q?geMauMwsArs4pQIaJQx4r5OJuAzRUukbB8NLYYQfxXonI/croK9+/Q=3D=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 865aae99-0022-4a1d-391a-08da0cacf2bd X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Mar 2022 09:10:17.5554 (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: P4WXzWrpsTAj2457bGNaQc+e9DKkq2lFmbVqLpx0jatrnANyfg433Ghjla3Dc3xGR1Lc8gco8wMhvjAHSshHzw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR04MB5988 Content-Type: text/plain; charset="utf-8" This patch verified another member of struct mptcp_sock, ca_name. Added a new function get_msk_ca_name() to read the sysctl tcp_congestion_control and verified it in verify_msk(). Signed-off-by: Geliang Tang Acked-by: Matthieu Baerts --- tools/testing/selftests/bpf/bpf_tcp_helpers.h | 5 ++++ .../testing/selftests/bpf/prog_tests/mptcp.c | 25 +++++++++++++++++++ tools/testing/selftests/bpf/progs/mptcp.c | 4 +++ 3 files changed, 34 insertions(+) diff --git a/tools/testing/selftests/bpf/bpf_tcp_helpers.h b/tools/testing/= selftests/bpf/bpf_tcp_helpers.h index 9ea6687c8f4d..bebe382bcc7a 100644 --- a/tools/testing/selftests/bpf/bpf_tcp_helpers.h +++ b/tools/testing/selftests/bpf/bpf_tcp_helpers.h @@ -16,6 +16,10 @@ BPF_PROG(name, args) #define SOL_TCP 6 #endif =20 +#ifndef TCP_CA_NAME_MAX +#define TCP_CA_NAME_MAX 16 +#endif + #define tcp_jiffies32 ((__u32)bpf_jiffies64()) =20 struct sock_common { @@ -87,6 +91,7 @@ struct mptcp_sock { struct inet_connection_sock sk; =20 __u32 token; + char ca_name[TCP_CA_NAME_MAX]; } __attribute__((preserve_access_index)); =20 static __always_inline struct inet_connection_sock *inet_csk(const struct = sock *sk) diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing= /selftests/bpf/prog_tests/mptcp.c index 80e57ca1ea4d..0f8ced3845c9 100644 --- a/tools/testing/selftests/bpf/prog_tests/mptcp.c +++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c @@ -5,10 +5,15 @@ #include "cgroup_helpers.h" #include "network_helpers.h" =20 +#ifndef TCP_CA_NAME_MAX +#define TCP_CA_NAME_MAX 16 +#endif + struct mptcp_storage { __u32 invoked; __u32 is_mptcp; __u32 token; + char ca_name[TCP_CA_NAME_MAX]; }; =20 static char monitor_log_path[64]; @@ -79,14 +84,28 @@ static __u32 get_msk_token(void) return token; } =20 +void get_msk_ca_name(char ca_name[]) +{ + FILE *stream =3D popen("sysctl -b net.ipv4.tcp_congestion_control", "r"); + ssize_t len; + + len =3D fread(ca_name, TCP_CA_NAME_MAX, 1, stream); + if (CHECK_FAIL(len < 0)) + log_err("Failed to read ca_name"); + + pclose(stream); +} + 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; + char ca_name[TCP_CA_NAME_MAX]; __u32 token; =20 token =3D get_msk_token(); + get_msk_ca_name(ca_name); if (token <=3D 0) { log_err("Unexpected token %x", token); return -1; @@ -115,6 +134,12 @@ static int verify_msk(int map_fd, int client_fd) err++; } =20 + if (strncmp(val.ca_name, ca_name, TCP_CA_NAME_MAX)) { + log_err("Unexpected mptcp_sock.ca_name %s !=3D %s", + val.ca_name, ca_name); + err++; + } + return err; } =20 diff --git a/tools/testing/selftests/bpf/progs/mptcp.c b/tools/testing/self= tests/bpf/progs/mptcp.c index afacea5ad9ca..6e7d2abf6ce3 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 /* Copyright (c) 2020, Tessares SA. */ =20 +#include #include #include #include "bpf_tcp_helpers.h" @@ -12,6 +13,7 @@ struct mptcp_storage { __u32 invoked; __u32 is_mptcp; __u32 token; + char ca_name[TCP_CA_NAME_MAX]; }; =20 struct { @@ -48,6 +50,7 @@ int _sockops(struct bpf_sock_ops *ctx) return 1; =20 storage->token =3D 0; + bzero(storage->ca_name, TCP_CA_NAME_MAX); } else { msk =3D bpf_skc_to_mptcp_sock(sk); if (!msk) @@ -59,6 +62,7 @@ int _sockops(struct bpf_sock_ops *ctx) return 1; =20 storage->token =3D msk->token; + memcpy(storage->ca_name, msk->ca_name, TCP_CA_NAME_MAX); } storage->invoked++; storage->is_mptcp =3D tcp_sk->is_mptcp; --=20 2.34.1 From nobody Tue May 7 18:30:22 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a17:907:7811:b0:6d8:2910:9a8 with SMTP id la17csp1655322ejc; Wed, 23 Mar 2022 02:10:31 -0700 (PDT) X-Google-Smtp-Source: ABdhPJy5UcGukAzyNjhdzbq28C2gmqXqYZQ7SSTwBzjGByxdFJoT8sL06luB1fb+Q3pk2HIzSpiH X-Received: by 2002:ae9:e607:0:b0:67b:1209:afbb with SMTP id z7-20020ae9e607000000b0067b1209afbbmr17832546qkf.584.1648026631651; Wed, 23 Mar 2022 02:10:31 -0700 (PDT) Return-Path: Received: from ewr.edge.kernel.org (ewr.edge.kernel.org. [147.75.197.195]) by mx.google.com with ESMTPS id cr7-20020a05622a428700b002e1fbf3bfd4si3652318qtb.453.2022.03.23.02.10.31 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 23 Mar 2022 02:10:31 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4367-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=IyejDQi1; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4367-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.197.195 as permitted sender) smtp.mailfrom="mptcp+bounces-4367-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 45BC11C0BB1 for ; Wed, 23 Mar 2022 09:10:31 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id CBA8F1392; Wed, 23 Mar 2022 09:10:29 +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 2FF741391 for ; Wed, 23 Mar 2022 09:10:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1648026626; 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=5J+JFDW3WmFk98WOz0b7CH7PthXG0CMVIbFQUIdGG8s=; b=IyejDQi1xyYspPoDpj5hRbMTytlnH6DvDt1EMAdPmKJW0/Zx7tCYh0o+Q0Cb5t/GX8wwy5 O2by/3DD5gpDedny+PLJTXuBLeDygFzrcx4BiFx5bbDvc6LZ/PS94mnL7HD3uC7FgFTOpf A5L7Xod+Y+a5ldrUv0fa9H4ouBD4zhw= Received: from EUR03-AM5-obe.outbound.protection.outlook.com (mail-am5eur03lp2051.outbound.protection.outlook.com [104.47.8.51]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-5-t_Xp6qgHMbuHvxXKsgDG5A-2; Wed, 23 Mar 2022 10:10:25 +0100 X-MC-Unique: t_Xp6qgHMbuHvxXKsgDG5A-2 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=l5r9ZY90BV74x/keEUzajfrIpyGYei7TYqRtzbnNSbfEwcu9CtCFdVEtKyQ2YQcRRRxB6MH8o7TFmIUMU5s5kRfxiekmzyy64Iki9jNEQTYvHr50mqGmOvwBFf1q4z/4mzF5/gro+NauPKKQU3JuMooErbuOu7+PaypIbo28+tNWznE50VhTiRwpQt7bCSlv1C8c8JKad4f8cpbaQgKSXb8wdR2qlTuUTELOzrBrvm//DdCHLVklToCXJss36UBI3RhSExhqdKrZPGUOcLgFut+mpVNF04kCSFEPRYzwMtKXWEOeWhCyx0xT/RavzO83DrEEA3nQAgP5bf0MUGjeGA== 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=83wldo4NvyFFdfuIqxXUODeEETaJzNgry/zifs9EHgI=; b=QXw2Cn8iZkoJ8ItIlUt+qvlo0LDAs9rYB+4x1K0X9nSZ+Wg3tl6iB8yW5JxBWsi0aDAUZ3IO/MJ7tbo2I1TCh8jRuFq5C4kOrlAgPkO9sonBPVOq8YPLknKxwU3DhTMng9bP0ELzOxuHnpfAB139h/727cSAz5wGXvOWvuPrC1UzN29qjcXbjAfyuIjzwKcBJsLx4hseWQFELN5df2CBDm8qtzAwl6A23ooGrzIx0ZkjEtV73NXmnLnzk3yxXURe2LntktLFSFH5+DpyHr6k90kGR/vpsR3JCmbI8iGh3qI7LSf2MaZiDr/qqGblBbqoXCfrXsLA666FvsV4DUUCPQ== 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 AM0PR04MB5988.eurprd04.prod.outlook.com (2603:10a6:208:11b::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5102.16; Wed, 23 Mar 2022 09:10:24 +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.5102.016; Wed, 23 Mar 2022 09:10:24 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v11 7/7] selftests: bpf: verify first subflow of mptcp_sock Date: Wed, 23 Mar 2022 17:09:36 +0800 Message-ID: <7cf799d1eb99a9e552fc337ab2791f1c64ef00c3.1648025308.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HK2PR02CA0178.apcprd02.prod.outlook.com (2603:1096:201:21::14) 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: e3a99024-5c64-4bb8-5314-08da0cacf6fc X-MS-TrafficTypeDiagnostic: AM0PR04MB5988: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: Quc/t/ob9SED/DlYAECOwBizZpI58KuphbhCl9DrToXAatOrv/gDYAsP+VTzaF9xIxl7u6k7dxbql2McFxjhyWaiJE42VjyCxAYxIwLmBTix1baOsR3irI56Z9lNHwPupZLqxlfV20LelCxoUSsb8F03FZhLuErW37ijvjs0Vo9lVYqsdf+Ke73CHnYALchVpHqSknOpqO7gtU1Y5d+RisV8buFVc2mT2o9+9PrBjCMAsGtc1JNJXIm8UQkVT5UdWtq7XwPmRQhUcTDBmM2QTSwuxMDtc+GKfrJQ1QTavQfczfK05WoQlGsJag2s8fF0s6tgIgk4sICc6cMYCiW7OTpVi8ig92CWnets7FsFa/w7eZJd3YZXAp/dQrEEzK/nVfkrEfh68hTF+RBYC0QL5T7q5aNuYnCw9aW5Rhr6nIxwXxudM2tcswnBH/v0uaFEWj9bKIjCI5fVGwWVegi7UyKmuTgO+FmCZRIQSXh6VfRRqj15WrYXLAAc6DjZYYDCPB0YihmLz/vEXa0OWB1QZ7lIXBaUaf5xk6WcmIeRhXmdotfcWkssjHDJ67bwNerbrEF13SMIpv4dDvF44kx/R5rrSpVPYLfB6YoEnzz4dCpAQYKOeL51oKeeczdhnKLWLIyUN8znE2RzCe1Ie4B6W2+pv4ZwLYMGuHTh5rfapcw1FasoB+ABTucA1mmgAxkYEl+f85FKtYK9NJmheu6jcQ== 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)(83380400001)(6666004)(6512007)(6506007)(508600001)(36756003)(38100700002)(6916009)(86362001)(6486002)(316002)(66946007)(15650500001)(26005)(186003)(4326008)(2906002)(66476007)(8676002)(2616005)(107886003)(5660300002)(44832011)(8936002)(66556008)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?7gK7odQfjM9FOGB9ffkGPTSstVszhJ/9z8Zv9qJmog30NlP417kCXvm2AxMn?= =?us-ascii?Q?Yz5ljl0WBSaXmI6QHXo5ZsC/NMTpMihw6bypzrCzBcRS9eUpVwVJCtOnTg1Y?= =?us-ascii?Q?hS9Q9rVwvfF20QRNlmgmvkLJ3g/Rkvxan3Ord6cj4i+U1SvOUNfTU0io16Og?= =?us-ascii?Q?BSvHNTSeOQkmEiy/Q0Y/dRuoeH11gOLtORo1YidhblvTbNO/nwb+t9I2m4k7?= =?us-ascii?Q?DarERRKD77ZhCf1wZUzV1VoVr/WQ/tYtAH3CVR0kQFWvVS7DCFQ3BmXwbMxB?= =?us-ascii?Q?maYUT6HtvMLcUq7vKrCg+lxywM54phIFdggrt+MJ/yA4tjDxMft3vFd78P8P?= =?us-ascii?Q?S832Al5SryW+alJWHRtyp2CQRmyIUz7VC+duGWDof5YrneJmXOolEXi3Yyns?= =?us-ascii?Q?NUW0M9aQBDUfv1lD8p7E81l70RsKJ14hRPKp/7MBEXIPVQ3ur/ELHNTxmp6R?= =?us-ascii?Q?zcIffYOscEf45CvZTUTY8i2tdad3XopCPe/Fd58UOVhrBqqGftYJpUYTl2LX?= =?us-ascii?Q?nnpdEesH08uDLW/JAzthssFCp7w/Qt7NXXWyKpV/8kSo3C+SbhWFHV4g4LLi?= =?us-ascii?Q?4aIo+Y2J1ai5CVIE3tY8f+X5S/DwoBPulW05LEg3xkWRDYZNGyoPklt+Nq9C?= =?us-ascii?Q?e/eImVqJy52YkAKre1Dvz4NG5HCBPgJkc5VRDP+j5Q2sCf7rKpvIjvwEyZkY?= =?us-ascii?Q?WXacBCYfjwcicBE2XMmwVfusmzG8rhfmLBmihfwnHA08oNTSsT5Ue34BrQrj?= =?us-ascii?Q?68yOMkPsmh6T/igqOx9wGxuEadknlTw87nvHSaacsqdvhXIfh+JnZIaC7THu?= =?us-ascii?Q?fcjonMcL1hK5xocfawWHgbbS3JktOiZ10BbfMNZg4+6u+C97ZlpV5W2FC6CU?= =?us-ascii?Q?SdZ6rHYjncscZnZ6tJ88NI4vuX1g1ZfPepUZB7IIYQguX0NY1Q56VZ+Y6L5o?= =?us-ascii?Q?tXLwgEg8Tzc3nYjycbxnrYuSlGoGEoLu9RS7XseLru5IllPdP+zhLSOkyyL5?= =?us-ascii?Q?FUK0JxWwKodtuBSI/JC1tswPRLlzlCxh9FRA668K+BYL6lSlgQoVgRmo9iC2?= =?us-ascii?Q?CAhxMAFoCwbGGjw4megAXSM0r5hwx8kZgsQN1q0RGx9Wb5tR536Rts5DgZmw?= =?us-ascii?Q?OSyB7rULnYDpAS5XziCunu6JZR9Ol/sjTcYx+GvBEHly4NuvT0hjDLRqNU+y?= =?us-ascii?Q?NSumR0OCtJYC7NgVql4sVPEbvUZKLe88Ar01r6yRJflGXg5wKjG+evY0GRTU?= =?us-ascii?Q?E+UE+JP9P7zU6FNcfgG7Gv4gw89MPvFNmVt/e3t5f5H8aalXgHCG+aQs0cN3?= =?us-ascii?Q?Ctn8FePfSoF/J3HxDxwTTwJI0AIJxwLyy7DlJ/QUZvwU9L7xNItOjYJbIXgE?= =?us-ascii?Q?0IcyVQ9oJUKLa8Oejq4FtZp3r/i7zcRm9rZVN9FqIEa7y+rVERj3iv9ojE6l?= =?us-ascii?Q?36CQHIHuTrNN8lrpWksW/QuHGbiKQ9vJOBzMHhwik/qUip0Jv4ucjg=3D=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: e3a99024-5c64-4bb8-5314-08da0cacf6fc X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Mar 2022 09:10:24.6642 (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: SLrT+UlEhlptvxfOI+XOfp6QO7AoYnxoqVs1VwJiHt5wCGKf2d50rb9ur/IRe96FHGKVLy/bzCIRCGOmikcCGA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR04MB5988 Content-Type: text/plain; charset="utf-8" This patch verified the 'first' struct member of struct mptcp_sock, which pointed to the first subflow of msk. Saved 'sk' in mptcp_storage, and verified it with 'first' in verify_msk(). Signed-off-by: Geliang Tang Acked-by: Matthieu Baerts --- tools/testing/selftests/bpf/bpf_tcp_helpers.h | 1 + tools/testing/selftests/bpf/prog_tests/mptcp.c | 8 ++++++++ tools/testing/selftests/bpf/progs/mptcp.c | 5 +++++ 3 files changed, 14 insertions(+) diff --git a/tools/testing/selftests/bpf/bpf_tcp_helpers.h b/tools/testing/= selftests/bpf/bpf_tcp_helpers.h index bebe382bcc7a..f92357597e63 100644 --- a/tools/testing/selftests/bpf/bpf_tcp_helpers.h +++ b/tools/testing/selftests/bpf/bpf_tcp_helpers.h @@ -91,6 +91,7 @@ struct mptcp_sock { struct inet_connection_sock sk; =20 __u32 token; + struct sock *first; char ca_name[TCP_CA_NAME_MAX]; } __attribute__((preserve_access_index)); =20 diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing= /selftests/bpf/prog_tests/mptcp.c index 0f8ced3845c9..325f8b51f621 100644 --- a/tools/testing/selftests/bpf/prog_tests/mptcp.c +++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c @@ -12,7 +12,9 @@ struct mptcp_storage { __u32 invoked; __u32 is_mptcp; + struct sock *sk; __u32 token; + struct sock *first; char ca_name[TCP_CA_NAME_MAX]; }; =20 @@ -134,6 +136,12 @@ static int verify_msk(int map_fd, int client_fd) err++; } =20 + if (val.first !=3D val.sk) { + log_err("Unexpected mptcp_sock.first %p !=3D %p", + val.first, val.sk); + err++; + } + if (strncmp(val.ca_name, ca_name, TCP_CA_NAME_MAX)) { log_err("Unexpected mptcp_sock.ca_name %s !=3D %s", val.ca_name, ca_name); diff --git a/tools/testing/selftests/bpf/progs/mptcp.c b/tools/testing/self= tests/bpf/progs/mptcp.c index 6e7d2abf6ce3..16055f553f29 100644 --- a/tools/testing/selftests/bpf/progs/mptcp.c +++ b/tools/testing/selftests/bpf/progs/mptcp.c @@ -12,7 +12,9 @@ __u32 _version SEC("version") =3D 1; struct mptcp_storage { __u32 invoked; __u32 is_mptcp; + struct sock *sk; __u32 token; + struct sock *first; char ca_name[TCP_CA_NAME_MAX]; }; =20 @@ -51,6 +53,7 @@ int _sockops(struct bpf_sock_ops *ctx) =20 storage->token =3D 0; bzero(storage->ca_name, TCP_CA_NAME_MAX); + storage->first =3D NULL; } else { msk =3D bpf_skc_to_mptcp_sock(sk); if (!msk) @@ -63,9 +66,11 @@ int _sockops(struct bpf_sock_ops *ctx) =20 storage->token =3D msk->token; memcpy(storage->ca_name, msk->ca_name, TCP_CA_NAME_MAX); + storage->first =3D msk->first; } storage->invoked++; storage->is_mptcp =3D tcp_sk->is_mptcp; + storage->sk =3D (struct sock *)sk; =20 return 1; } --=20 2.34.1