From patchwork Thu Jan 5 13:02:54 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Erez Shitrit X-Patchwork-Id: 121614 X-Patchwork-Delegate: rasland@nvidia.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 7D943A00C2; Thu, 5 Jan 2023 14:03:50 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id A6BFF42D23; Thu, 5 Jan 2023 14:03:45 +0100 (CET) Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on2088.outbound.protection.outlook.com [40.107.237.88]) by mails.dpdk.org (Postfix) with ESMTP id B160B42D22 for ; Thu, 5 Jan 2023 14:03:44 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hDLc09m5QR7oFzOKEll3vz+fqvBbIuSuMA1d69b7Mx3B7AvQ8VsTqMVEkCKaebk/+hwPCiIRW3XwITrE2YKhRkUbEpjb6HlUNB6eE+OjgrFH6d9i1yHHkLoqMFrAkgXJ6kr1nDJBPXpiJyr2CVzTkLGtFrbI4G3aiLX4PHuyK2jTJ6ND/SHKi6o8zyOIxFwTb3HNai3Syg9UjdXuR0BaAlHuYDnUzmaM07HUUysroQbAXvBrfymC1qdgQin9QzhQYBZFgeoGSwanZSsvioaGDiF5i6P88k/ZTVAZBF2LkHdhvuERkMF92kPjEdnzN28mmkcb+R4geX2+h+Gr/yF6xg== 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=DULHTqGDALsSP2Dt8Tl/tHXFJpFeocUZHCR1sPmRPj4=; b=YI93B1HmtDsy8zh46GDQ3qs5nEOgPOpNhbfBCEAR3bs9QhwPeZXwckxiJYArLbsxFvPwsqebWbn6RnBG97q5zVytu5f3Mc4Rk7lPnBEsGoK3yY72yopLBh++5s921AGe1EycmXIL5Sn0zj0xT1aO892nZphjKZxp95sAoeIhp0pxJyLumBkNGbyN+Cy6RDbZSUq9qGCE6bfZZFrgfMWS3WPQjqwe6RfjUZMVwOjr3CX8KvUlnVWjo2dr0ZxHPIhZTOVz/EdTeOYugO2malOyxeBQbOXi8VmFK8mxDDRJU+3f/EBGoB+pZ1sD5V/16bnY1sUgMLRFWtywgzPyXRCwHQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.160) smtp.rcpttodomain=dpdk.org smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=DULHTqGDALsSP2Dt8Tl/tHXFJpFeocUZHCR1sPmRPj4=; b=I24k5m78QwPYodjGWSTL5lM12I5x7XfSzWM0bNCxSZPwkEV9j+vuwJ3PDueWt71hChbtIqdW7KK436ScyILLFHKsXbO4lUXFqZzxMpR3BbMnYUeX3ty+QKZtq9TICYMYJCCFOmL7kFxPbwvVtYdpAFTlWTlBWq4Uwz9cCAP4gWZkuZQckkSNPy/N6S05pWBSishkGETgAJDzaLoOe8kA6YJlfqM+9s1dSpI4fhoL4NHbZHmzd6wGe7FoJEkCl5Jes1P0YDbvphcwLgHeVl3P1oKdSpJhKZZKjEKXkxsCUAOMq+ucIiIPIlkGx0VvkYKQRAfWPzNav9A9H6wATC9ybA== Received: from BN1PR13CA0023.namprd13.prod.outlook.com (2603:10b6:408:e2::28) by DS0PR12MB8366.namprd12.prod.outlook.com (2603:10b6:8:f9::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.19; Thu, 5 Jan 2023 13:03:43 +0000 Received: from BN8NAM11FT038.eop-nam11.prod.protection.outlook.com (2603:10b6:408:e2:cafe::9f) by BN1PR13CA0023.outlook.office365.com (2603:10b6:408:e2::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5986.14 via Frontend Transport; Thu, 5 Jan 2023 13:03:43 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.160) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.160 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.160; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.160) by BN8NAM11FT038.mail.protection.outlook.com (10.13.176.246) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5986.14 via Frontend Transport; Thu, 5 Jan 2023 13:03:42 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.66) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.36; Thu, 5 Jan 2023 05:03:28 -0800 Received: from nvidia.com (10.126.231.37) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.36; Thu, 5 Jan 2023 05:03:26 -0800 From: Erez Shitrit To: CC: , , Matan Azrad , Viacheslav Ovsiienko Subject: [PATCH v2 01/10] net/mlx5/hws: add capabilities fields for vhca access Date: Thu, 5 Jan 2023 15:02:54 +0200 Message-ID: <20230105130304.537205-2-erezsh@nvidia.com> X-Mailer: git-send-email 2.18.2 In-Reply-To: <20230105130304.537205-1-erezsh@nvidia.com> References: <20221219082416.2223812-3-erezsh@nvidia.com> <20230105130304.537205-1-erezsh@nvidia.com> MIME-Version: 1.0 X-Originating-IP: [10.126.231.37] X-ClientProxiedBy: rnnvmail202.nvidia.com (10.129.68.7) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN8NAM11FT038:EE_|DS0PR12MB8366:EE_ X-MS-Office365-Filtering-Correlation-Id: e24942e3-e491-4325-5d46-08daef1d45e0 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: yRiwxJafaolHhEef+6Uas81L0RBhSsP9WrWvNf7oLXzqNthgwXsAp8UirCr81gEmD01yQjR1VRrUrNNZZdqC6tIfWLANIRCddKBoczNL0gWrJseCRO6C4rMHU/6IGizdSVBj2NdRSR9QYeg5lXP4Ui5Utghaaso6TqPk8s0iwn+d9o+ILiEvroCKkSojigMf9spH6JlwmHDcIGXGYe9Zoi/d3+JhitWs+5QAXhiiaeARgAshQqjvX+0uTV/vJieplKcPXky4EokSS6rq7co8vxBzdkBfGFKVoIdLJ//0Gz+hlgo7B2MoitASb1VrmA9Dyr/HBqxb0THAqUb864TMGGjCFoMCrv1trlo/OpHsk8tGSruUhmJxTRiqpeVvs90D9+s63QpRbjjsSGzr7b6AJYdYZ4vCFITe6S3lcZb3fwmbdW8MJPJ9UwsW2cRVZleJXf5qw2bGlC1S+w+JnnNvuKrCVyaWfnJ9QsGB8XqHEWmjKAtVEB67N/V/a09oRdHbHGNUhj42D5I5G0Y06RNNNDR5NG3tDvHorTSfHzP4D4OalWth/X/s22ZqVe9/Me0BPiyCqEePe9T4+3HoLJuRCW3rGMLbHAo9psknqcPX9uJ4bFMMYm8hkTxsi8DKT0VN3hXPTnWVLZiBll8+PyZRI3v4Z0yLZ2xxp6XJC363mk3Bd1LMSs4/LJAQOFVHIlF9ODPhYUlPmxR3ndxo+vSVFw== X-Forefront-Antispam-Report: CIP:216.228.117.160; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc6edge1.nvidia.com; CAT:NONE; SFS:(13230022)(4636009)(396003)(39860400002)(346002)(376002)(136003)(451199015)(40470700004)(36840700001)(46966006)(47076005)(426003)(83380400001)(2616005)(26005)(16526019)(186003)(82310400005)(6286002)(40480700001)(336012)(6666004)(107886003)(55016003)(7696005)(40460700003)(86362001)(36756003)(36860700001)(356005)(82740400003)(7636003)(1076003)(41300700001)(4326008)(8676002)(5660300002)(2906002)(8936002)(316002)(478600001)(70206006)(54906003)(70586007)(6916009); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jan 2023 13:03:42.9737 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: e24942e3-e491-4325-5d46-08daef1d45e0 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.117.160]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: BN8NAM11FT038.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB8366 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org The new fields define the ability to access from one vhca to other one. Signed-off-by: Erez Shitrit Reviewed-by: Alex Vesker Acked-by: Viacheslav Ovsiienko --- drivers/common/mlx5/mlx5_prm.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/common/mlx5/mlx5_prm.h b/drivers/common/mlx5/mlx5_prm.h index 2b5c43ee6e..19c00ad913 100644 --- a/drivers/common/mlx5/mlx5_prm.h +++ b/drivers/common/mlx5/mlx5_prm.h @@ -2115,8 +2115,10 @@ struct mlx5_ifc_cmd_hca_cap_2_bits { u8 log_conn_track_max_alloc[0x5]; u8 reserved_at_d8[0x3]; u8 log_max_conn_track_offload[0x5]; - u8 reserved_at_e0[0x20]; /* End of DW7. */ - u8 reserved_at_100[0x60]; + u8 cross_vhca_object_to_object_supported[0x20]; /* End of DW7. */ + u8 allowed_object_for_other_vhca_access_high[0x20]; + u8 allowed_object_for_other_vhca_access[0x20]; + u8 reserved_at_140[0x20]; u8 reserved_at_160[0x3]; u8 hairpin_sq_wqe_bb_size[0x5]; u8 hairpin_sq_wq_in_host_mem[0x1]; From patchwork Thu Jan 5 13:02:55 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Erez Shitrit X-Patchwork-Id: 121613 X-Patchwork-Delegate: rasland@nvidia.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 802D9A00C2; Thu, 5 Jan 2023 14:03:44 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id AE22142D0E; Thu, 5 Jan 2023 14:03:43 +0100 (CET) Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2061.outbound.protection.outlook.com [40.107.94.61]) by mails.dpdk.org (Postfix) with ESMTP id D6A9640041 for ; Thu, 5 Jan 2023 14:03:42 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Lu2XoiYqUzUM5SJ90AtN26wVBUmm1lgd4GV0277cz9bPeBMBfbIkaE1uCCBRCYga5x14rXjlq+BhPGwogNpDzyikwhLy8xz/UVEQFiYQU9L2jSRo6D+nMwnLA+ztYmdmvNZAOI5G2U/Ld7xLkpQK8zrlqKKkmTxjcg/YuB48Bvyzh5bfSnn9u7L5PeF+PBNRZUBUgwPBFZNK4PfwdvaF+pe5Z9bBrCwF1X4cBwAbCZw9lIqkXEYVAtGQsGbiyN74K4fLZp769g4UaSIn/laMGUYwFFj1pVfWgVIWQcQcpI0y8bfbZq0PyMzbF3suXXrWwf/QAm43DYTJ+3qei2LNUQ== 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=mGLi5vSYX50ndVcYG/8wbtNm54OkQZPbKIyTcBTMcMQ=; b=jl4OX5NZcar7i9eFutxwPV3YpzLHaBfQ07XuOg/rsTJpC4iHR/ECjTuDj+iQcVp7FLr/9de/KYF6cfE+CbNaA4It2YoGJkAIvy8x7Hdk/h/vo7NCweKdADOhvSRymBPjfwhjrOa1o5CgX+u6VxZB628ug4nemJt69skRgYHo8WG9Rsm17nabOieJIWCPQXRdLp4ps03/Iy/tjkDAWFBEu/7Jql+OfKzjA0MAn2Vl+W1hDRlKoV1gX4b8eQMuowcLhQMpdxSFTPoHJ8BP3ua9aYrZuSLPvyEgAe98C+UBbTfP/RMdCMoyuD8aC/Gxx5tr4vKFkxk3IFE/koVdmPSxCg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=dpdk.org smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=mGLi5vSYX50ndVcYG/8wbtNm54OkQZPbKIyTcBTMcMQ=; b=kTwqzkit3JbM1vMmoJ0CxqHrxMYGvCpK2KdM7nA3wEIh4+2pWyLuz6zVTIL537q8S7uTCjiIblnHZo2Q/olWnaW9f//hQhkyN7bwpC1zvkZsxw/2gIEGlpaSocnbhPo335yB5bEZnu0CZUnXn/lhtq8+6Bnz7oKr6M0+0ifwaita7mbCH6HFGgNyeF+oZTb5tXMgj3Q/09UP+9whLCU0rs04L2HEAde4By2+6OnJ1j4r8Gb2qChZvrlW322OFc58xt92ePo/l+VltANbSFqj8Tii93s5L8KVXcCSwQmaYgIjMZ+2LDOq6Bx/xThPtZssBHa5wMgmLw9sgg/QLOwTbQ== Received: from DS7PR03CA0119.namprd03.prod.outlook.com (2603:10b6:5:3b7::34) by IA1PR12MB6481.namprd12.prod.outlook.com (2603:10b6:208:3aa::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.19; Thu, 5 Jan 2023 13:03:41 +0000 Received: from DM6NAM11FT003.eop-nam11.prod.protection.outlook.com (2603:10b6:5:3b7:cafe::cd) by DS7PR03CA0119.outlook.office365.com (2603:10b6:5:3b7::34) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5986.15 via Frontend Transport; Thu, 5 Jan 2023 13:03:40 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.161) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.161 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.161) by DM6NAM11FT003.mail.protection.outlook.com (10.13.173.162) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5986.14 via Frontend Transport; Thu, 5 Jan 2023 13:03:40 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.36; Thu, 5 Jan 2023 05:03:32 -0800 Received: from nvidia.com (10.126.231.37) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.36; Thu, 5 Jan 2023 05:03:29 -0800 From: Erez Shitrit To: CC: , , Yevgeny Kliteynik , Matan Azrad , Viacheslav Ovsiienko Subject: [PATCH v2 02/10] net/mlx5/hws: remove wrong PRM capability macros Date: Thu, 5 Jan 2023 15:02:55 +0200 Message-ID: <20230105130304.537205-3-erezsh@nvidia.com> X-Mailer: git-send-email 2.18.2 In-Reply-To: <20230105130304.537205-1-erezsh@nvidia.com> References: <20221219082416.2223812-3-erezsh@nvidia.com> <20230105130304.537205-1-erezsh@nvidia.com> MIME-Version: 1.0 X-Originating-IP: [10.126.231.37] X-ClientProxiedBy: rnnvmail202.nvidia.com (10.129.68.7) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM6NAM11FT003:EE_|IA1PR12MB6481:EE_ X-MS-Office365-Filtering-Correlation-Id: e6c8f91c-b2d2-483d-c0cd-08daef1d4488 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: OTBKxQ3w09ULb9J7A9L9cNnUKMDbY6F07AXCWFn02g04fFM62NvRTCmseEkkFf3vZgljIVdOwtFu+crMpmC4/LHFEuK98OfnGkjCAmWOlCzPp+pn4E5XMFC6cd9hgvpAyVoPgs0hpxOrYsUWlka3yXjnHwbkaEYv4ydOHyrm5ZrmU0mZbDDEU9zt7rwekqD6qbt4PbOcNjbCpSvJM5cPdriZhGW9AbVTVM+WFRYwWW09+bVbJUnnHhKY7XyiJMx7vIMBKMoUNdySOdA1hJpGsW6qkQm8Q5zUm/3GB2DUoEc93KyrCQ2lKyXVXQA4Wr3K/36PmJSnwHuxWZL+qSw/UgXdH3G1TRMGBUDUqecdNy+wZiYouvVsvbbELX7im6szPAKbPxpNsWDVznVgSvkwqAoeDAkil8T9PW/NF6peeZ4Zm3iLSBwq8GXQocYrgsc8o2A7bKUQIyxzJHR3tDe4SpjOEvWTQNCIj4zRFOW0pODYOBbE9tp8UnHEzxzRdmz9KsoVCqKAeq0P+ZD/SHMtnAJRBecgaleMFgFy/LODG67EQLQanpDsadVMVgj9FXu5cSxNlBXGjgXO4zhyZRiHH+mHPadA2I0MQZhmnastEvFajCx1fdFyrYL1C17sQTgpKdmj9XQUALlpyeFC6rMgE9opq7fwHu+B1UsyWfHdT5G9MuWv+H0OhrwevVmOy55GD4jsy2EadtUwKm10P6EYBA== X-Forefront-Antispam-Report: CIP:216.228.117.161; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc6edge2.nvidia.com; CAT:NONE; SFS:(13230022)(4636009)(136003)(39860400002)(376002)(346002)(396003)(451199015)(36840700001)(46966006)(40470700004)(83380400001)(2616005)(36860700001)(336012)(426003)(47076005)(316002)(55016003)(40480700001)(86362001)(40460700003)(82310400005)(356005)(82740400003)(7636003)(1076003)(36756003)(6916009)(2906002)(4326008)(54906003)(8936002)(5660300002)(41300700001)(8676002)(70206006)(70586007)(26005)(6286002)(186003)(478600001)(16526019)(107886003)(6666004)(7696005); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jan 2023 13:03:40.7687 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: e6c8f91c-b2d2-483d-c0cd-08daef1d4488 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.117.161]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: DM6NAM11FT003.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB6481 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org From: Yevgeny Kliteynik Removing macros for wrong capability checks. Signed-off-by: Yevgeny Kliteynik Reviewed-by: Alex Vesker Acked-by: Viacheslav Ovsiienko --- drivers/common/mlx5/mlx5_prm.h | 6 ------ 1 file changed, 6 deletions(-) diff --git a/drivers/common/mlx5/mlx5_prm.h b/drivers/common/mlx5/mlx5_prm.h index 19c00ad913..3d9d69d9cf 100644 --- a/drivers/common/mlx5/mlx5_prm.h +++ b/drivers/common/mlx5/mlx5_prm.h @@ -1332,12 +1332,6 @@ enum { (1ULL << MLX5_GENERAL_OBJ_TYPE_GENEVE_TLV_OPT) #define MLX5_GENERAL_OBJ_TYPES_CAP_CONN_TRACK_OFFLOAD \ (1ULL << MLX5_GENERAL_OBJ_TYPE_CONN_TRACK_OFFLOAD) -#define MLX5_GENERAL_OBJ_TYPES_CAP_RTC \ - (1ULL << MLX5_GENERAL_OBJ_TYPE_RTC) -#define MLX5_GENERAL_OBJ_TYPES_CAP_STC \ - (1ULL << MLX5_GENERAL_OBJ_TYPE_STC) -#define MLX5_GENERAL_OBJ_TYPES_CAP_STE \ - (1ULL << MLX5_GENERAL_OBJ_TYPE_STE) #define MLX5_GENERAL_OBJ_TYPES_CAP_DEFINER \ (1ULL << MLX5_GENERAL_OBJ_TYPE_DEFINER) #define MLX5_GENERAL_OBJ_TYPES_CAP_DEK \ From patchwork Thu Jan 5 13:02:56 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Erez Shitrit X-Patchwork-Id: 121615 X-Patchwork-Delegate: rasland@nvidia.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id EAF68A00C2; Thu, 5 Jan 2023 14:03:56 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id BAF8D42D27; Thu, 5 Jan 2023 14:03:46 +0100 (CET) Received: from NAM02-DM3-obe.outbound.protection.outlook.com (mail-dm3nam02on2070.outbound.protection.outlook.com [40.107.95.70]) by mails.dpdk.org (Postfix) with ESMTP id 7AF3A4282D for ; Thu, 5 Jan 2023 14:03:45 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bN9gEpCE1RV5nbdHZdMpIJH9OFOUlhl8AfKmBDQ2ELz5jRDzM5nDM155zom0k3PcvXd810ndyh4XHTOuFD9GqhPjnj+uI7yoRgi5hgy1Res/qO/tbjQ/7LQyzgnrmhaResIJkCh6KusMuoN7JiQLcq3OaQNZ2YprYtBQuJzsT1lGoQxYPAx1SYgazGWxLv3oMW9HVVqm0l2o3yCyd5/1fODLhtxpK5R6OIUWdiJJP8i9VRGyb0HZXDB8ULLGw59bf6IPEjnCGpoGegrG8h9UR8QSHP1HwCkFnVr/cJzsz0GvqToitG8CpOuJkukVSeaq5BSQ300a207D+4w2WvNydw== 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=9voqDJxZrSbFXhjNS5nNUFSTWIwwhPO9xOT5ZJAnKZA=; b=OD9scFzYwm/kItBIGu4Nb6Wv9xY+UPG7LlbXKoBIqOB6h5Ze+56OQR7/Mzh2rqqWhfTNhLVTlp3BRL4tNuz9Gcbvz12TfAmVr33f8QYRg6TvomgyjSlGCfZIlVrPN2PTxg5Mpp4CjSxS4q3gtkoWp97n8QRuXs1KsOTOiJ9yt62S5FfXb6I9ImRrvrxI5dQxfY74m5X1Yu7kqzH/LDVSaldZv70XICeKHbyxLoQ7QQJt23Hyzxjtu9XAoku6F6E0tsJoB75FjkJkTGlJ8vgWx8OhjkLon741hbpsx2Lwuf+oB1jOjpzy/vY0FpRtiYEPkfznYMyUYWRbwJPy9CTJtQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=dpdk.org smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=9voqDJxZrSbFXhjNS5nNUFSTWIwwhPO9xOT5ZJAnKZA=; b=CxL9rlBKfphcBfpd+q/lU+qCdIN97o+fhvyriCcRA6hA2KuyUnwmNUHYnom9szkVO+9o6uUWvxHSep36vDWCPKvxrW+/5PdAvAGMe1TybqxX77hdKGJxhmgz149WjKgUU/FrQaxOZagfXWWoww+zmlGwtwtIa3n3BlXNtE7privb8DqM0bVELkLXej3Vzm3nJ9IdyERcCHsqWMmW3R6+vbYRbutSZYoSi4aPs7Uqi7CfCT2cKYiHKXRZa8COQoQQPYp0VZDuB+/iqZSsxlNnUgy9oNBpq6/u3u1QgtgNh9qcjnKzRzT76OvW3LkNO+W5rvgxNRu0Yt9erQn2Y83Fng== Received: from DS7PR03CA0095.namprd03.prod.outlook.com (2603:10b6:5:3b7::10) by DM4PR12MB6181.namprd12.prod.outlook.com (2603:10b6:8:a9::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.19; Thu, 5 Jan 2023 13:03:44 +0000 Received: from DM6NAM11FT003.eop-nam11.prod.protection.outlook.com (2603:10b6:5:3b7:cafe::9) by DS7PR03CA0095.outlook.office365.com (2603:10b6:5:3b7::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5986.15 via Frontend Transport; Thu, 5 Jan 2023 13:03:43 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.161) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.161 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.161) by DM6NAM11FT003.mail.protection.outlook.com (10.13.173.162) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5986.14 via Frontend Transport; Thu, 5 Jan 2023 13:03:43 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.36; Thu, 5 Jan 2023 05:03:36 -0800 Received: from nvidia.com (10.126.231.37) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.36; Thu, 5 Jan 2023 05:03:33 -0800 From: Erez Shitrit To: CC: , , Yevgeny Kliteynik , Matan Azrad , Viacheslav Ovsiienko Subject: [PATCH v2 03/10] net/mlx5/hws: add PRM definitions for cross-vhca capabilities Date: Thu, 5 Jan 2023 15:02:56 +0200 Message-ID: <20230105130304.537205-4-erezsh@nvidia.com> X-Mailer: git-send-email 2.18.2 In-Reply-To: <20230105130304.537205-1-erezsh@nvidia.com> References: <20221219082416.2223812-3-erezsh@nvidia.com> <20230105130304.537205-1-erezsh@nvidia.com> MIME-Version: 1.0 X-Originating-IP: [10.126.231.37] X-ClientProxiedBy: rnnvmail202.nvidia.com (10.129.68.7) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM6NAM11FT003:EE_|DM4PR12MB6181:EE_ X-MS-Office365-Filtering-Correlation-Id: 9b3a298a-5c41-4fc7-0682-08daef1d465c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: JFPs3L9VBJZ2g4M6JIZa6tTjf1Ctgn44RNmr9F/rr+/v3H9/gXu92Fd4HjgoBYELu8TLY2lUde0zyMjnRPJEUqqxy5AI7Fy/5cxEaFNt/e3IEsoqnTxQwuCP3oQ74hFhm7cbMBbQJC4qog/FmgVD+TfUrISEZn/kywQ/TlgQSkZhIA4lmVvvKWAkLLUa7V6EvFc2intX+9WTBPQtDV3/LDZx5+jzQRH9ez94ANO5cry7Uldj+tyK7I7KiHfTobq3tea0GLl6haPQe55pQzd7q4ANXiaVP4XdNIau+qPvhxvRfTJalVokplYCKzQAMqxdlUXeHBq3A6Pg9vX05zLTt9rvRJ+0lZo7iw3nwll5MMfLLt8w4rty1HUxQ8ai+BEkjB0EUp05lFAu/nKreIE9xY5GFRrP/cUMmo+g37/p3WzYX9vySr0SdXSiYI4YsBRiUVvTsZbHEGPO5SCvTVLaAI75+fzOoHLkgR0/aMjPlzCWjr9U3/dq8oBMhK8orcQiSsh7vhbj2u/RDA3nbE8seYbpsDpDuEFCt83zXSVAO7jzk7yvvTV8RJsF7yLnDXxYsNOYAt3SJ03YQAP3lIG17kLhucQcjjoGZY4BAnmhH7d5wnpEeGLfzT6c5OGikOXu4+NvK8KAz4e5z+tikqTtww2HmM2oEtMBZKcnaBvOuVoqdrXNTSMWyqrTbOARlPBKaddENlm88yjl2yWCW+GjvA== X-Forefront-Antispam-Report: CIP:216.228.117.161; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc6edge2.nvidia.com; CAT:NONE; SFS:(13230022)(4636009)(346002)(136003)(396003)(39860400002)(376002)(451199015)(40470700004)(46966006)(36840700001)(54906003)(186003)(107886003)(1076003)(26005)(6286002)(6666004)(70206006)(478600001)(2616005)(16526019)(83380400001)(336012)(8676002)(426003)(8936002)(47076005)(5660300002)(41300700001)(4326008)(2906002)(316002)(70586007)(36860700001)(40480700001)(82740400003)(55016003)(356005)(7636003)(86362001)(40460700003)(7696005)(6916009)(36756003)(82310400005); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jan 2023 13:03:43.8153 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 9b3a298a-5c41-4fc7-0682-08daef1d465c X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.117.161]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: DM6NAM11FT003.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB6181 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org From: Yevgeny Kliteynik Each new cap was defined. Signed-off-by: Yevgeny Kliteynik Reviewed-by: Alex Vesker Acked-by: Viacheslav Ovsiienko --- drivers/common/mlx5/mlx5_prm.h | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/drivers/common/mlx5/mlx5_prm.h b/drivers/common/mlx5/mlx5_prm.h index 3d9d69d9cf..dfa25c2b49 100644 --- a/drivers/common/mlx5/mlx5_prm.h +++ b/drivers/common/mlx5/mlx5_prm.h @@ -1930,7 +1930,9 @@ struct mlx5_ifc_flow_table_prop_layout_bits { u8 metadata_reg_a_width[0x8]; u8 reserved_at_60[0xa]; u8 reparse[0x1]; - u8 reserved_at_6b[0xd]; + u8 reserved_at_6b[0x1]; + u8 cross_vhca_object[0x1]; + u8 reserved_at_6d[0xb]; u8 log_max_ft_num[0x8]; u8 reserved_at_80[0x10]; u8 log_max_flow_counter[0x8]; @@ -2084,6 +2086,19 @@ struct mlx5_ifc_flow_table_esw_cap_bits { u8 reserved_at_C00[0x7400]; }; +enum mlx5_ifc_cross_vhca_object_to_object_supported_types { + MLX5_CROSS_VHCA_OBJ_TO_OBJ_TYPE_STC_TO_TIR = 1 << 10, + MLX5_CROSS_VHCA_OBJ_TO_OBJ_TYPE_STC_TO_FT = 1 << 11, + MLX5_CROSS_VHCA_OBJ_TO_OBJ_TYPE_FT_TO_FT = 1 << 12, + MLX5_CROSS_VHCA_OBJ_TO_OBJ_TYPE_FT_TO_RTC = 1 << 13, +}; + +enum mlx5_ifc_cross_vhca_allowed_objects_types { + MLX5_CROSS_VHCA_ALLOWED_OBJS_TIR = 1 << 0x8, + MLX5_CROSS_VHCA_ALLOWED_OBJS_FT = 1 << 0x9, + MLX5_CROSS_VHCA_ALLOWED_OBJS_RTC = 1 << 0xa, +}; + /* * HCA Capabilities 2 */ @@ -3108,6 +3123,8 @@ enum { MLX5_GENERAL_OBJ_TYPE_RTC = 0x0041, MLX5_GENERAL_OBJ_TYPE_STE = 0x0042, MLX5_GENERAL_OBJ_TYPE_MODIFY_HEADER_PATTERN = 0x0043, + MLX5_GENERAL_OBJ_TYPE_FT_ALIAS = 0xff15, + MLX5_GENERAL_OBJ_TYPE_TIR_ALIAS = 0xff16, }; struct mlx5_ifc_general_obj_in_cmd_hdr_bits { From patchwork Thu Jan 5 13:02:57 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Erez Shitrit X-Patchwork-Id: 121616 X-Patchwork-Delegate: rasland@nvidia.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 6247BA00C2; Thu, 5 Jan 2023 14:04:03 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id DDD3A42D2C; Thu, 5 Jan 2023 14:03:51 +0100 (CET) Received: from NAM04-DM6-obe.outbound.protection.outlook.com (mail-dm6nam04on2087.outbound.protection.outlook.com [40.107.102.87]) by mails.dpdk.org (Postfix) with ESMTP id F3C4942D29 for ; Thu, 5 Jan 2023 14:03:50 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=SahW7Stn9fUUOSZINoVonjpxeu3T5a94zdjb9iHVoAQCW0s4yuGpx5cSQftAscAzNnAVUhthLVxGeXeoR85VQ9nJ9FLeNyVxBU6Y265hqCXJmY6iLbnEZmh3zU0ccv7SYQUx+0gQqp1WDYVUfK7h1flhlGYCurJqPKTLk0WouN5PvZxMDyQuBXyybUkpTZwo9/4uEYG+XV6jtNNrH5xbj6S6Px/bPpFcrxJiYBXU0Gj68TfYDZtzpJO5eihhlw1DOIMputLtRbcTcRUA8xgom2Uhpz3Hgg0jvWUS86C7rWtfyh3MhlKvt6iP3ag79VO3+JCAPIWaPx7oA8GrqVdJhg== 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=89GGPT2e9wYkeD1qdiyElXNfEZFgfxkP++BfsSnqSRg=; b=KsBu6ZE6ukQxfwVw3BRZ0MFguVcOvfNlTxpzG8LPI3OfhD9Gvw7/B+rdn4H7gE68fmyMpGFq4A33CSeCj0tLu8aM5Iz95quGbYJ3/LPMQ245V0uZiwhDvI4FoGzR6QmQO92eoKAflQdVNQaFJazm1nuvOcEVoPY69s4Ae5R5PaIENNStbzewPYCEYyr8WchlHNZMOQapttHHKcmtYIsK4b4/iv8UuzcDDGWro4bqclBu2VwvivvB1V7OQ3furygK00wSk1xyQ38HysVwIBH+rEuBedSErIkUy8v61kzpfOuOq+Bx6AsXpsmZEcSZVnyzYrotkac4caXwDl2uSTIzwg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=dpdk.org smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=89GGPT2e9wYkeD1qdiyElXNfEZFgfxkP++BfsSnqSRg=; b=YZpEjs+ronHJuBy+v+/35fdA0XcabQ/07Hy4FHgf5j7n5v3amabiWvIkg1lv/AyrohNaPVHmrpOQwXWCgWn7vWQQHkX8FYKwgWsU6hdKgTCVr0hcq0lgFoBAjvngf8X7JYMuSn97vln7ofvI3mK++VSfvx9XIaFpfd4n8y2Z+4k33MPCdKb+KcEmOfj0zHPw8CVEVPiAc9MARaazc+mrlxSyBq7hXcDYXJhOuoT57X2oTUYkxtcHTF3KRDXpW5dYYAuVXiA29tXlmtRrHu5R3Q713o4qfYHP2auNbc68swNsme/gz/yXkX8jVL3cFTYhH1AliwCxvNeybzy88F9rGA== Received: from DM6PR06CA0080.namprd06.prod.outlook.com (2603:10b6:5:336::13) by DS7PR12MB5719.namprd12.prod.outlook.com (2603:10b6:8:72::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.19; Thu, 5 Jan 2023 13:03:49 +0000 Received: from DM6NAM11FT099.eop-nam11.prod.protection.outlook.com (2603:10b6:5:336:cafe::c6) by DM6PR06CA0080.outlook.office365.com (2603:10b6:5:336::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5986.15 via Frontend Transport; Thu, 5 Jan 2023 13:03:49 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.161) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.161 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.161) by DM6NAM11FT099.mail.protection.outlook.com (10.13.172.241) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5966.18 via Frontend Transport; Thu, 5 Jan 2023 13:03:49 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.36; Thu, 5 Jan 2023 05:03:40 -0800 Received: from nvidia.com (10.126.231.37) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.36; Thu, 5 Jan 2023 05:03:37 -0800 From: Erez Shitrit To: CC: , , Yevgeny Kliteynik , Matan Azrad , Viacheslav Ovsiienko Subject: [PATCH v2 04/10] net/mlx5/hws: read cross-vhca capabilities Date: Thu, 5 Jan 2023 15:02:57 +0200 Message-ID: <20230105130304.537205-5-erezsh@nvidia.com> X-Mailer: git-send-email 2.18.2 In-Reply-To: <20230105130304.537205-1-erezsh@nvidia.com> References: <20221219082416.2223812-3-erezsh@nvidia.com> <20230105130304.537205-1-erezsh@nvidia.com> MIME-Version: 1.0 X-Originating-IP: [10.126.231.37] X-ClientProxiedBy: rnnvmail202.nvidia.com (10.129.68.7) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM6NAM11FT099:EE_|DS7PR12MB5719:EE_ X-MS-Office365-Filtering-Correlation-Id: 6160dee6-8c6b-4ca7-cd26-08daef1d4992 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: HBJBZx2SHAQpL5j6txiDJBLDmBsOpTinoE+YewfDdNB2I+Ou2fgttYT2/Wk0ORTRAYc8wO2fE5Yxp4nF6+TpLoYx/j/MjqhcUcG2vkwuMrGcISlBkfvAvETEvfnbJm8vI7lbeNP5CN+lbOyCgBqutjzgKSMD+1GVv/k8sEj8OvHcMdCfh/PF+9g4PC/jqkUwokNM5lmgtrPWkkNachnOWcEQ0JdvHwjie/z/I5yD1HhUSKnydEM0rJofS+m+iH5t78PE0s81VpjPUDmFGdC59ieKoOUT2J6ImuH8vX9rTjupjRL/kPkOdKhgoNEGjqCaXVeoajgm0UjCvLbRYQ42QTV2QsCqrGnr6Kl+cYtA8g9cT0JXQSOhl9x1kfFt/Gc8JYZzZL0VVEKQztObj2kcqpkd1iIazPnJxK1kLruBrgHLbfQCUz0MQe9mPxCqHaXk/YyoRVYRNB+cmi0ZvPko6D32INKy2psB313Jkl3e6g6xBJq+SfuRcacsoO8NerG7J8V/GZhlWdkYz0P0Df2r1r0cNZ/9K2Mn7ogGdALQO+iiz7RJd0EHX4gUW2S+XLZjwd0bEyVAKFch9cV3rG9tztOG1NtSWhGDw6RWPQMOW1BmKC+qIOuCAxTv0e9jya3HdsiKUJRJk073h3PyeekZWkl4NuQspM6Dlj9u9eiWED14erq9/rQmggbEnN2yposIrvILAVeqzD+xPsLKEWs+Yg== X-Forefront-Antispam-Report: CIP:216.228.117.161; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc6edge2.nvidia.com; CAT:NONE; SFS:(13230022)(4636009)(136003)(346002)(376002)(39860400002)(396003)(451199015)(46966006)(36840700001)(40470700004)(41300700001)(70586007)(4326008)(6916009)(8676002)(5660300002)(70206006)(2906002)(54906003)(8936002)(316002)(7696005)(6286002)(478600001)(16526019)(6666004)(107886003)(186003)(26005)(336012)(55016003)(86362001)(40480700001)(83380400001)(1076003)(36860700001)(2616005)(426003)(47076005)(82740400003)(7636003)(356005)(36756003)(82310400005)(40460700003); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jan 2023 13:03:49.2075 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 6160dee6-8c6b-4ca7-cd26-08daef1d4992 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.117.161]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: DM6NAM11FT099.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB5719 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org From: Yevgeny Kliteynik And keep them for future processing. Signed-off-by: Yevgeny Kliteynik Reviewed-by: Alex Vesker Acked-by: Viacheslav Ovsiienko --- drivers/net/mlx5/hws/mlx5dr_cmd.c | 24 ++++++++++++++++++++++++ drivers/net/mlx5/hws/mlx5dr_cmd.h | 1 + 2 files changed, 25 insertions(+) diff --git a/drivers/net/mlx5/hws/mlx5dr_cmd.c b/drivers/net/mlx5/hws/mlx5dr_cmd.c index 721376b8da..2156fd6643 100644 --- a/drivers/net/mlx5/hws/mlx5dr_cmd.c +++ b/drivers/net/mlx5/hws/mlx5dr_cmd.c @@ -723,6 +723,7 @@ int mlx5dr_cmd_query_caps(struct ibv_context *ctx, uint32_t in[MLX5_ST_SZ_DW(query_hca_cap_in)] = {0}; const struct flow_hw_port_info *port_info; struct ibv_device_attr_ex attr_ex; + u32 res; int ret; MLX5_SET(query_hca_cap_in, in, opcode, MLX5_CMD_OP_QUERY_HCA_CAP); @@ -798,6 +799,23 @@ int mlx5dr_cmd_query_caps(struct ibv_context *ctx, capability.cmd_hca_cap_2. format_select_dw_gtpu_first_ext_dw_0); + /* check cross-VHCA support in cap2 */ + res = + MLX5_GET(query_hca_cap_out, out, + capability.cmd_hca_cap_2.cross_vhca_object_to_object_supported); + + caps->cross_vhca_resources = (res & MLX5_CROSS_VHCA_OBJ_TO_OBJ_TYPE_STC_TO_TIR) && + (res & MLX5_CROSS_VHCA_OBJ_TO_OBJ_TYPE_STC_TO_FT) && + (res & MLX5_CROSS_VHCA_OBJ_TO_OBJ_TYPE_FT_TO_RTC); + + res = + MLX5_GET(query_hca_cap_out, out, + capability.cmd_hca_cap_2.allowed_object_for_other_vhca_access); + + caps->cross_vhca_resources &= (res & MLX5_CROSS_VHCA_ALLOWED_OBJS_TIR) && + (res & MLX5_CROSS_VHCA_ALLOWED_OBJS_FT) && + (res & MLX5_CROSS_VHCA_ALLOWED_OBJS_RTC); + MLX5_SET(query_hca_cap_in, in, op_mod, MLX5_GET_HCA_CAP_OP_MOD_NIC_FLOW_TABLE | MLX5_HCA_CAP_OPMOD_GET_CUR); @@ -817,6 +835,12 @@ int mlx5dr_cmd_query_caps(struct ibv_context *ctx, capability.flow_table_nic_cap. flow_table_properties_nic_receive.reparse); + /* check cross-VHCA support in flow table properties */ + res = + MLX5_GET(query_hca_cap_out, out, + capability.flow_table_nic_cap.flow_table_properties_nic_receive.cross_vhca_object); + caps->cross_vhca_resources &= res; + if (caps->wqe_based_update) { MLX5_SET(query_hca_cap_in, in, op_mod, MLX5_GET_HCA_CAP_OP_MOD_WQE_BASED_FLOW_TABLE | diff --git a/drivers/net/mlx5/hws/mlx5dr_cmd.h b/drivers/net/mlx5/hws/mlx5dr_cmd.h index 2b3b47f473..ab61e27fd8 100644 --- a/drivers/net/mlx5/hws/mlx5dr_cmd.h +++ b/drivers/net/mlx5/hws/mlx5dr_cmd.h @@ -163,6 +163,7 @@ struct mlx5dr_cmd_query_caps { uint8_t sq_ts_format; uint64_t definer_format_sup; uint32_t trivial_match_definer; + bool cross_vhca_resources; char fw_ver[64]; }; From patchwork Thu Jan 5 13:02:58 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Erez Shitrit X-Patchwork-Id: 121617 X-Patchwork-Delegate: rasland@nvidia.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id F15F4A00C2; Thu, 5 Jan 2023 14:04:12 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 75F7A42D2E; Thu, 5 Jan 2023 14:03:59 +0100 (CET) Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2077.outbound.protection.outlook.com [40.107.244.77]) by mails.dpdk.org (Postfix) with ESMTP id BF60240A8A for ; Thu, 5 Jan 2023 14:03:57 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Tv3BY8wHDeIvKBEALGOowsNW320j/dD0YP2QNFWV1gtmGlPJkos7C+xINQBchyo3jxmq4MCItrzd8s0s+pRPerrHJ1Na4e9BLo4TuFhyba6O5+YQF+Cpg0J0E/ydliTPy+SmPVXdaiyZ/NKAQgl7zW6iDfM5QdtOdQsbpaFPhw9h7AEcy0IC54oHo+SyjacaeqVB+PeUCfbxPelyZJnw0ye4O5pwPPLLwopXlZFAfgJTC6jsU/y5mPaprKcq9Vv0Fbj3OrCEKUY/xJcD84LsUrHyR57a4wS/iGJEtM0FPUi3Xfk5o15C8eWHqCEqm9NMmVNQNQEJ4YMYs0k5n4DHwg== 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=bozj4YlSdCh8SpQbUcWh4WQYvAEKu0eds3gLer3U3To=; b=WiHZ8KxxUT17AbbMvCJfl7VWREGCLXYv5q95hYFjKf5xqckl7qIQT5rzcIbhDHg3wSNEuhukqXOWdSfHxE5Ll1iyJ7cUoBPlzQ9g/Z7xBPpxr+PpVDQpV0BofEsbXRgFLLjQTtilnV00f+R9ug8aFT+ySpESKTPTLPL/fgPRfYw04nPsMgTclIzZPt76ls75f7417AhxuLkqTABwFeh47KXW9s4JeULsfGV7E9wIeEbPWTuiq9vw4yHtkuGdKrrdQdRRzRx/0F8Zj8cniossTIJvyIlqpnlFu/1X20Ohjj35wrHk4cgT0J3bzrpWmI4mFBLIpmGppwMZ8Kw1qMwQmw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=dpdk.org smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=bozj4YlSdCh8SpQbUcWh4WQYvAEKu0eds3gLer3U3To=; b=Fx0VWJiEvUFYJxDHdUJ/dI7JVCpOD6uD/JMFVm4ntpOUnYngn4yhFQLVmfJt+c2VBQ47WfwezbvtSIfftXCqmAWDh4GsjEGcfGMapGTGwDyn4bxEszv5kxqi9Imo/HM1YoZIalanjxr4SDN6d0ZEpRJyqh6On6RdQCsf38qLrI7R/rvBnJhuJQPIB9lilT1J0vcaj5sYApNarGLN1mGOpeH9C8wWKMkrkmWjxtKJyNlERMZOmNuMur/LprPPFhHB/biIWfgoFvkrvGLiT6XAMlAXDREjaCdsemncTmWk+rVPFd3vDefMnzIpE74N2ZjUdS/jgU2TydX2Ls8Amkt1GA== Received: from DM6PR08CA0028.namprd08.prod.outlook.com (2603:10b6:5:80::41) by MN6PR12MB8544.namprd12.prod.outlook.com (2603:10b6:208:47f::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.19; Thu, 5 Jan 2023 13:03:54 +0000 Received: from DM6NAM11FT073.eop-nam11.prod.protection.outlook.com (2603:10b6:5:80:cafe::dd) by DM6PR08CA0028.outlook.office365.com (2603:10b6:5:80::41) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5986.15 via Frontend Transport; Thu, 5 Jan 2023 13:03:54 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.161) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.161 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.161) by DM6NAM11FT073.mail.protection.outlook.com (10.13.173.152) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5966.17 via Frontend Transport; Thu, 5 Jan 2023 13:03:54 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.36; Thu, 5 Jan 2023 05:03:44 -0800 Received: from nvidia.com (10.126.231.37) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.36; Thu, 5 Jan 2023 05:03:41 -0800 From: Erez Shitrit To: CC: , , Yevgeny Kliteynik , Matan Azrad , Viacheslav Ovsiienko Subject: [PATCH v2 05/10] net/mlx5/hws: added allow-other-vhca-access command Date: Thu, 5 Jan 2023 15:02:58 +0200 Message-ID: <20230105130304.537205-6-erezsh@nvidia.com> X-Mailer: git-send-email 2.18.2 In-Reply-To: <20230105130304.537205-1-erezsh@nvidia.com> References: <20221219082416.2223812-3-erezsh@nvidia.com> <20230105130304.537205-1-erezsh@nvidia.com> MIME-Version: 1.0 X-Originating-IP: [10.126.231.37] X-ClientProxiedBy: rnnvmail202.nvidia.com (10.129.68.7) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM6NAM11FT073:EE_|MN6PR12MB8544:EE_ X-MS-Office365-Filtering-Correlation-Id: 3559bfb6-3e7b-4cd4-5f68-08daef1d4c87 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: z/VNMIpPI/XPrIc2KwBPUpjnxK8yqnevxZpEWOioyeWLByRwJ5l8vqMh3EFAyjM+Sb917bZJjrc/EX0oL0hFTli5XDrtYbznG8x6J8BJFG4RdqAvqrXqdJjKCvaW4/0dHoEeR07tfh48MebWKvfGlCa1klHewyD7B9buLLcU+kyE/+6klzqQPLm4FaHpO+caMEz2rzpwBIO8NaxFw9vRFhjX2L8yiLkTf8XXG7QMmeXtkqq85ElcT60D4B0AabCgrFU35d0MEh2ozvKumaIHrD/vEryIrV9HtPQEpNSADjOVPovjuSpADvyAVuAyRRecSqc+r74oRCzOUSY/Giu6zHPgz3JwT9s76koReu24yHBjoAlGgGxiautX8g+N+oQp8LnGagt1ABZZvp/e3pxQxsKeyICjesDwpK260d1DOG7o2kYgEuqiTtEBc7y55kXoNPXpfVjzRnsCp/c7GHEF/i8sKFHdoETJXTDsFcnGtBwh7lMw39wBkghhRwbWFq08vKfrv5JcU8TRAXh7CADRNJBqPLqkIeRa+Lgz+z74lBWM+iCFS0hM6soOLiNLiqPuYg8L0sBBUvwBr4YxMJVp60oFTIKGOvNOrj81RutIvtL318yubn9FNBuyyMmCX/suT0u1MPOYxWBopw26qXqxSY/MV1XpbkD6P2uBUpEzYpL8VSPopggNlo0XjdOTpsswglCqJY5alw8Xt6FE6kYNOg== X-Forefront-Antispam-Report: CIP:216.228.117.161; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc6edge2.nvidia.com; CAT:NONE; SFS:(13230022)(4636009)(346002)(396003)(376002)(39860400002)(136003)(451199015)(36840700001)(46966006)(40470700004)(316002)(16526019)(54906003)(186003)(26005)(36860700001)(107886003)(2616005)(6286002)(6916009)(1076003)(4326008)(6666004)(70206006)(478600001)(426003)(41300700001)(47076005)(8936002)(5660300002)(83380400001)(2906002)(8676002)(336012)(70586007)(55016003)(40480700001)(82740400003)(356005)(86362001)(7636003)(7696005)(36756003)(40460700003)(82310400005); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jan 2023 13:03:54.1814 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 3559bfb6-3e7b-4cd4-5f68-08daef1d4c87 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.117.161]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: DM6NAM11FT073.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN6PR12MB8544 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org From: Yevgeny Kliteynik Added FW command to allow creation of alias objects. Signed-off-by: Yevgeny Kliteynik Reviewed-by: Alex Vesker Acked-by: Viacheslav Ovsiienko --- drivers/common/mlx5/mlx5_prm.h | 23 +++++++++++++++++++++++ drivers/net/mlx5/hws/mlx5dr_cmd.c | 28 ++++++++++++++++++++++++++++ drivers/net/mlx5/hws/mlx5dr_cmd.h | 9 +++++++++ 3 files changed, 60 insertions(+) diff --git a/drivers/common/mlx5/mlx5_prm.h b/drivers/common/mlx5/mlx5_prm.h index dfa25c2b49..9d36645949 100644 --- a/drivers/common/mlx5/mlx5_prm.h +++ b/drivers/common/mlx5/mlx5_prm.h @@ -1133,6 +1133,7 @@ enum { MLX5_CMD_SET_REGEX_REGISTERS = 0xb06, MLX5_CMD_QUERY_REGEX_REGISTERS = 0xb07, MLX5_CMD_OP_ACCESS_REGISTER_USER = 0xb0c, + MLX5_CMD_OP_ALLOW_OTHER_VHCA_ACCESS = 0xb16, }; enum { @@ -3150,6 +3151,28 @@ struct mlx5_ifc_general_obj_out_cmd_hdr_bits { u8 reserved_at_60[0x20]; }; +struct mlx5_ifc_allow_other_vhca_access_in_bits { + u8 opcode[0x10]; + u8 uid[0x10]; + u8 reserved_at_20[0x10]; + u8 op_mod[0x10]; + u8 reserved_at_40[0x50]; + u8 object_type_to_be_accessed[0x10]; + u8 object_id_to_be_accessed[0x20]; + u8 reserved_at_c0[0x40]; + union { + u8 access_key_raw[0x100]; + u8 access_key[8][0x20]; + }; +}; + +struct mlx5_ifc_allow_other_vhca_access_out_bits { + u8 status[0x8]; + u8 reserved_at_8[0x18]; + u8 syndrome[0x20]; + u8 reserved_at_40[0x40]; +}; + struct mlx5_ifc_virtio_q_counters_bits { u8 modify_field_select[0x40]; u8 reserved_at_40[0x40]; diff --git a/drivers/net/mlx5/hws/mlx5dr_cmd.c b/drivers/net/mlx5/hws/mlx5dr_cmd.c index 2156fd6643..b120be2d88 100644 --- a/drivers/net/mlx5/hws/mlx5dr_cmd.c +++ b/drivers/net/mlx5/hws/mlx5dr_cmd.c @@ -716,6 +716,34 @@ int mlx5dr_cmd_sq_modify_rdy(struct mlx5dr_devx_obj *devx_obj) return ret; } +int mlx5dr_cmd_allow_other_vhca_access(struct ibv_context *ctx, + struct mlx5dr_cmd_allow_other_vhca_access_attr *attr) +{ + uint32_t out[MLX5_ST_SZ_DW(allow_other_vhca_access_out)] = {0}; + uint32_t in[MLX5_ST_SZ_DW(allow_other_vhca_access_in)] = {0}; + void *key; + int ret; + + MLX5_SET(allow_other_vhca_access_in, + in, opcode, MLX5_CMD_OP_ALLOW_OTHER_VHCA_ACCESS); + MLX5_SET(allow_other_vhca_access_in, + in, object_type_to_be_accessed, attr->obj_type); + MLX5_SET(allow_other_vhca_access_in, + in, object_id_to_be_accessed, attr->obj_id); + + key = MLX5_ADDR_OF(allow_other_vhca_access_in, in, access_key); + memcpy(key, attr->access_key, sizeof(attr->access_key)); + + ret = mlx5_glue->devx_general_cmd(ctx, in, sizeof(in), out, sizeof(out)); + if (ret) { + DR_LOG(ERR, "Failed to execute ALLOW_OTHER_VHCA_ACCESS command"); + rte_errno = errno; + return rte_errno; + } + + return 0; +} + int mlx5dr_cmd_query_caps(struct ibv_context *ctx, struct mlx5dr_cmd_query_caps *caps) { diff --git a/drivers/net/mlx5/hws/mlx5dr_cmd.h b/drivers/net/mlx5/hws/mlx5dr_cmd.h index ab61e27fd8..ea6ced9d27 100644 --- a/drivers/net/mlx5/hws/mlx5dr_cmd.h +++ b/drivers/net/mlx5/hws/mlx5dr_cmd.h @@ -124,6 +124,12 @@ struct mlx5dr_cmd_sq_create_attr { uint32_t ts_format; }; +struct mlx5dr_cmd_allow_other_vhca_access_attr { + uint16_t obj_type; + uint32_t obj_id; + uint8_t access_key[32]; +}; + struct mlx5dr_cmd_query_ft_caps { uint8_t max_level; uint8_t reparse; @@ -230,4 +236,7 @@ void mlx5dr_cmd_set_attr_connect_miss_tbl(struct mlx5dr_context *ctx, uint32_t fw_ft_type, enum mlx5dr_table_type type, struct mlx5dr_cmd_ft_modify_attr *ft_attr); + +int mlx5dr_cmd_allow_other_vhca_access(struct ibv_context *ctx, + struct mlx5dr_cmd_allow_other_vhca_access_attr *attr); #endif /* MLX5DR_CMD_H_ */ From patchwork Thu Jan 5 13:02:59 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Erez Shitrit X-Patchwork-Id: 121618 X-Patchwork-Delegate: rasland@nvidia.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id AF94DA00C2; Thu, 5 Jan 2023 14:04:19 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 4A7F642D32; Thu, 5 Jan 2023 14:04:00 +0100 (CET) Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2076.outbound.protection.outlook.com [40.107.94.76]) by mails.dpdk.org (Postfix) with ESMTP id 7084B42D2A for ; Thu, 5 Jan 2023 14:03:59 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=UN1e6pxGoNlp8VkVYnNWR6N67LkW3tBZavyq6ya+74z8jFRJMUM9FIBIBC8u7fvC7K3MYlY7+FcWZOBvxahRBRrCG92qMPJptqgjcnjhHpNeQLFGA+dIrN1pueZfrdt+SyZtflfYTChoanrQJFteafBaWq6ZrTK7o+vQcFEKIwDythUHdzfDyWvyCdrZVdgBkG2avqq276sYT1qpgvaBqq3jTQKFdBa0hhKYQB7OevyW2V92qDnx7upEBer6G4nFU+WPNyBeeouF5p+6CyATTFdZwgz+6M+i6E7Bx3/uzz+FEGcBr6blBT/Js9tO9hsn50rioWAu1I8l646JYJivJA== 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=D+5IUYoDzw30D6QirGbAfsKB6GRDJHNrMb0VEuAZb5w=; b=gd7McgKPUUZs7S8CM0T12yNvt9nCdEWVJOiSS0z51+mxFoSIwQ3pa7gH5W2pvFzi0Zm3ctq3Cb2EPnMF5xN/dN6Imvr6YxlRyAR7AjJsB7EYR4k+VZe8RTCLpqp8Xy8cLvdPWL3A22SNcczi1Rty5Q56U8gcNfSNNyfnddSnnbZixjrIdftnHoxDkVXzfA/CTuEkNmc1DjsS288gTJTILUwAX/WgTIXvCG0qMu6K4Zy9fIBBSzIjy9+bTQRPZBGNTNIpMMOXB/2AHQh0JculBmxhc6U6AEJuwRP+nXxaSLMRZnSavDW+C0LEZIAAOHL1W0MDmVqGCPC65YWJamP0Cg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=dpdk.org smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=D+5IUYoDzw30D6QirGbAfsKB6GRDJHNrMb0VEuAZb5w=; b=BnNPnF5tqZZo5td5gsKVVu5DqTm9TwAd7f0JksiqL+2v3Ne2gp3+IAe4QX0pxJg5PS42IjwN+uukfI/QBo3W4dlUrqkkeePzJeAAE1FOCDaW4glPPHmD0CYyj2J181w2ncMRjj+0QQ0O15JWDKk812/X8bpjBIBcnTVk7s6jC0uzumQvsocBeF1COBDWY8fmOW2gfi6udsGjivdcJSiD6E+uEIlQxwsny6yYPvykU6g5gpvxnCBDZk6w7Syd/4VjZLzWUuQxtac+JKEwtofUD0BKCVbYLZEbDanrrz5rymfrSHdtSeRsktHuTkFzDv+BrqUwv1nd9g1+tC/Jgd7VEQ== Received: from DM6PR06CA0100.namprd06.prod.outlook.com (2603:10b6:5:336::33) by DM6PR12MB4106.namprd12.prod.outlook.com (2603:10b6:5:221::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.19; Thu, 5 Jan 2023 13:03:57 +0000 Received: from DM6NAM11FT099.eop-nam11.prod.protection.outlook.com (2603:10b6:5:336:cafe::53) by DM6PR06CA0100.outlook.office365.com (2603:10b6:5:336::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5986.15 via Frontend Transport; Thu, 5 Jan 2023 13:03:57 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.161) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.161 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.161) by DM6NAM11FT099.mail.protection.outlook.com (10.13.172.241) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5966.18 via Frontend Transport; Thu, 5 Jan 2023 13:03:57 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.36; Thu, 5 Jan 2023 05:03:48 -0800 Received: from nvidia.com (10.126.231.37) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.36; Thu, 5 Jan 2023 05:03:45 -0800 From: Erez Shitrit To: CC: , , Yevgeny Kliteynik , Matan Azrad , Viacheslav Ovsiienko Subject: [PATCH v2 06/10] net/mlx5/hws: added command to create alias objects Date: Thu, 5 Jan 2023 15:02:59 +0200 Message-ID: <20230105130304.537205-7-erezsh@nvidia.com> X-Mailer: git-send-email 2.18.2 In-Reply-To: <20230105130304.537205-1-erezsh@nvidia.com> References: <20221219082416.2223812-3-erezsh@nvidia.com> <20230105130304.537205-1-erezsh@nvidia.com> MIME-Version: 1.0 X-Originating-IP: [10.126.231.37] X-ClientProxiedBy: rnnvmail202.nvidia.com (10.129.68.7) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM6NAM11FT099:EE_|DM6PR12MB4106:EE_ X-MS-Office365-Filtering-Correlation-Id: 53169476-c500-48ae-b4c5-08daef1d4e84 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: euFqFzIAMjjs2/NeRNpq5Xdq/AxWGdxLnG9tbC6Dp0zyYzLyshNFejxf05sQeCjJO7X0HiCSWdMcSf5/UpM/uFM+rMvCGvDHRKCVN1uR79GovJNAJC+Il6R7kuMzVmXdlXDFzmL6culi3RuopHFP2XcxADShJj+VG2XK5/enocrrF7Qb7kXCgQK/fiN5zPzIKCJ+fdQ89fawGXEsDHXilAi15pyqDOw21wrnrHMG8nNuL3xQeticFBjtvXMZzUADnG7Vyyy5aWbS0gBuL5nUOKXnahjSGAiEEeyNn74Zvt+bkG/GPSq7EVm/R22NT3XJz0XIL8bUb+Sq567VOQ0qX2rMnVD1Hs8EZ2bHmgyvT4Bn+elewJ1/00qlWOL2Iljsw55RLe2mAPt6tjmn9gdcK2753AcngngNXs731gK3GeqksinHgAYL1dPG69DC/BxyySlPvTQPJj3jutm1uH0PcBFLpwGgDRGJ3Ed2SIh8+vwXSSzlBGt1byMCe879X9o2lU60cQFKoiHz+JRCEYUr3fNcI8Z8hv13pf1OFHoRSy0JPzpiPpDAzc4Wze+ooQ3FnxLcD4bsZwcRBXSsmGWbSjMlrVyloMtz5KlK8pRPnt2j5m4O/DPAOs/3Q68MHNPGPaOP4lqvTXft51KxkzbdWmCF2OMfnS0tncYtjU5X9zBKtLdOaarBV8yEz2+xx4PXqyLNY22vGNMS5fhw9jrT9w== X-Forefront-Antispam-Report: CIP:216.228.117.161; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc6edge2.nvidia.com; CAT:NONE; SFS:(13230022)(4636009)(346002)(396003)(136003)(39860400002)(376002)(451199015)(46966006)(36840700001)(40470700004)(82310400005)(8676002)(82740400003)(41300700001)(36860700001)(8936002)(70206006)(70586007)(4326008)(5660300002)(86362001)(7636003)(7696005)(1076003)(356005)(2616005)(316002)(83380400001)(54906003)(6916009)(2906002)(336012)(6286002)(40480700001)(40460700003)(16526019)(36756003)(26005)(186003)(55016003)(47076005)(426003)(6666004)(478600001)(107886003); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jan 2023 13:03:57.5194 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 53169476-c500-48ae-b4c5-08daef1d4e84 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.117.161]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: DM6NAM11FT099.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4106 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org From: Yevgeny Kliteynik Added support for a command that can create alias objects - objects that are accessed across VHCA. Signed-off-by: Yevgeny Kliteynik Reviewed-by: Alex Vesker Acked-by: Viacheslav Ovsiienko --- drivers/common/mlx5/mlx5_prm.h | 23 ++++++++++++++-- drivers/net/mlx5/hws/mlx5dr_cmd.c | 44 +++++++++++++++++++++++++++++++ drivers/net/mlx5/hws/mlx5dr_cmd.h | 11 ++++++++ 3 files changed, 76 insertions(+), 2 deletions(-) diff --git a/drivers/common/mlx5/mlx5_prm.h b/drivers/common/mlx5/mlx5_prm.h index 9d36645949..fd1ad55f1f 100644 --- a/drivers/common/mlx5/mlx5_prm.h +++ b/drivers/common/mlx5/mlx5_prm.h @@ -3135,9 +3135,10 @@ struct mlx5_ifc_general_obj_in_cmd_hdr_bits { u8 obj_id[0x20]; union { struct { - u8 reserved_at_60[0x3]; + u8 alias_object[0x1]; + u8 reserved_at_61[0x2]; u8 log_obj_range[0x5]; - u8 reserved_at_58[0x18]; + u8 reserved_at_68[0x18]; }; u8 obj_offset[0x20]; }; @@ -3234,6 +3235,19 @@ struct mlx5_ifc_rtc_bits { u8 reserved_at_180[0x280]; }; +struct mlx5_ifc_alias_context_bits { + u8 vhca_id_to_be_accessed[0x10]; + u8 reserved_at_10[0xd]; + u8 status[0x3]; + u8 object_id_to_be_accessed[0x20]; + u8 reserved_at_40[0x40]; + union { + u8 access_key_raw[0x100]; + u8 access_key[8][0x20]; + }; + u8 metadata[0x80]; +}; + enum mlx5_ifc_stc_action_type { MLX5_IFC_STC_ACTION_TYPE_NOP = 0x00, MLX5_IFC_STC_ACTION_TYPE_COPY = 0x05, @@ -3478,6 +3492,11 @@ struct mlx5_ifc_create_header_modify_pattern_in_bits { struct mlx5_ifc_header_modify_pattern_in_bits pattern; }; +struct mlx5_ifc_create_alias_obj_in_bits { + struct mlx5_ifc_general_obj_in_cmd_hdr_bits hdr; + struct mlx5_ifc_alias_context_bits alias_ctx; +}; + enum { MLX5_CRYPTO_KEY_SIZE_128b = 0x0, MLX5_CRYPTO_KEY_SIZE_256b = 0x1, diff --git a/drivers/net/mlx5/hws/mlx5dr_cmd.c b/drivers/net/mlx5/hws/mlx5dr_cmd.c index b120be2d88..9b9f70c933 100644 --- a/drivers/net/mlx5/hws/mlx5dr_cmd.c +++ b/drivers/net/mlx5/hws/mlx5dr_cmd.c @@ -744,6 +744,50 @@ int mlx5dr_cmd_allow_other_vhca_access(struct ibv_context *ctx, return 0; } +struct mlx5dr_devx_obj * +mlx5dr_cmd_alias_obj_create(struct ibv_context *ctx, + struct mlx5dr_cmd_alias_obj_create_attr *alias_attr) +{ + uint32_t out[MLX5_ST_SZ_DW(general_obj_out_cmd_hdr)] = {0}; + uint32_t in[MLX5_ST_SZ_DW(create_alias_obj_in)] = {0}; + struct mlx5dr_devx_obj *devx_obj; + void *attr; + void *key; + + devx_obj = simple_malloc(sizeof(*devx_obj)); + if (!devx_obj) { + DR_LOG(ERR, "Failed to allocate memory for ALIAS general object"); + rte_errno = ENOMEM; + return NULL; + } + + attr = MLX5_ADDR_OF(create_alias_obj_in, in, hdr); + MLX5_SET(general_obj_in_cmd_hdr, + attr, opcode, MLX5_CMD_OP_CREATE_GENERAL_OBJECT); + MLX5_SET(general_obj_in_cmd_hdr, + attr, obj_type, alias_attr->obj_type); + MLX5_SET(general_obj_in_cmd_hdr, attr, alias_object, 1); + + attr = MLX5_ADDR_OF(create_alias_obj_in, in, alias_ctx); + MLX5_SET(alias_context, attr, vhca_id_to_be_accessed, alias_attr->vhca_id); + MLX5_SET(alias_context, attr, object_id_to_be_accessed, alias_attr->obj_id); + + key = MLX5_ADDR_OF(alias_context, attr, access_key); + memcpy(key, alias_attr->access_key, sizeof(alias_attr->access_key)); + + devx_obj->obj = mlx5_glue->devx_obj_create(ctx, in, sizeof(in), out, sizeof(out)); + if (!devx_obj->obj) { + DR_LOG(ERR, "Failed to create ALIAS OBJ"); + simple_free(devx_obj); + rte_errno = errno; + return NULL; + } + + devx_obj->id = MLX5_GET(general_obj_out_cmd_hdr, out, obj_id); + + return devx_obj; +} + int mlx5dr_cmd_query_caps(struct ibv_context *ctx, struct mlx5dr_cmd_query_caps *caps) { diff --git a/drivers/net/mlx5/hws/mlx5dr_cmd.h b/drivers/net/mlx5/hws/mlx5dr_cmd.h index ea6ced9d27..824ca5e846 100644 --- a/drivers/net/mlx5/hws/mlx5dr_cmd.h +++ b/drivers/net/mlx5/hws/mlx5dr_cmd.h @@ -46,6 +46,13 @@ struct mlx5dr_cmd_rtc_create_attr { bool is_jumbo; }; +struct mlx5dr_cmd_alias_obj_create_attr { + uint32_t obj_id; + uint16_t vhca_id; + uint16_t obj_type; + uint8_t access_key[32]; +}; + struct mlx5dr_cmd_stc_create_attr { uint8_t log_obj_range; uint8_t table_type; @@ -217,6 +224,10 @@ mlx5dr_cmd_header_modify_pattern_create(struct ibv_context *ctx, uint32_t pattern_length, uint8_t *actions); +struct mlx5dr_devx_obj * +mlx5dr_cmd_alias_obj_create(struct ibv_context *ctx, + struct mlx5dr_cmd_alias_obj_create_attr *alias_attr); + int mlx5dr_cmd_sq_modify_rdy(struct mlx5dr_devx_obj *devx_obj); int mlx5dr_cmd_query_ib_port(struct ibv_context *ctx, From patchwork Thu Jan 5 13:03:00 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Erez Shitrit X-Patchwork-Id: 121619 X-Patchwork-Delegate: rasland@nvidia.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 4D280A00C2; Thu, 5 Jan 2023 14:04:27 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id ADF7D42D26; Thu, 5 Jan 2023 14:04:07 +0100 (CET) Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11on2085.outbound.protection.outlook.com [40.107.220.85]) by mails.dpdk.org (Postfix) with ESMTP id 90E2042D3B for ; Thu, 5 Jan 2023 14:04:05 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RmtfvlPs1EmMgm/QBgjzAzb3DPk6yYW+358UVpH2FbQMWcUdUrhdUe8689Itap9LK80azMtgbjSgBce8qUI8GEsh/oyL40s307C6PAlama9JX1Y8rbeQEhtDavCC274RS5tAlR5UspiUbrY0oxLdtxDewNLyrVeUE6bZQjvmR2JdBN1uQHGS9wDeJQi4AUvqt7PqlQwEHCI4I4W5dnvZkTH1AXl8ju2dFlqC6xZ+bfb7QK68/SiRoE+zR8OiK3o/T2j3K+Oot91uJMrxFzXFSxp70GiUgPSObo5m65rrEyXRjulq5DmgOP4bJDkI06aDSayARp2NqK8MVqUUXuYOPA== 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=+GjEgTZECWn8vRFJnSAIjtoT6kheF75qoDUA4wd7L5E=; b=e3H/Wj5YlMKOLvkBYp3DEBdmFF4Nuuk11qZUE6MYMCXI7rSDM/gBNWySEd4C9muHIddiRdtuNqBadmN4R6VpWlcvz2S3s7I+kxi/y6o5z9Wc7XNQrpn471zwP+jlnkSv9AocYl709momraRnJ0m6dmdE7ZYnA2ptwoKbjkLtqgob2ZL9Ep5WiNPsJJSXCOj5IAQ6013LVaG+Uy+U9DNMoATgXHIIL7Jq4oUzHAdoiTbJzG6g3dRMfQ4usXyQWUx62lh4RbuapKXAMDfRvVOhsCbl592cpDhGRu2iNIXetPC1P2PeVSbXazBZIcplYHjGYM/0V1sgtXPwC/z9pBUt9Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.160) smtp.rcpttodomain=dpdk.org smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=+GjEgTZECWn8vRFJnSAIjtoT6kheF75qoDUA4wd7L5E=; b=Nfo3hgxfN6fT3EWy9MnbBe/iPETC15j0QqjrY42Uxaa2lB1khW8DfwmrA/sB6i5xQV6SabxRFqbJ7SLgR3F//NvHn7y4SWAReECRqIrrk1dt/dVg4fOJ17Q/PxYyak9Q4F1sZGsAy5wBrlb/jo0XF596a6jB9ohPNs7Jmt+/2zEVlTiLkAatlVvhglPxSEtAbo+ezZy7bSa942pItHXX3YjkloF3Nt512tYbylGagu3xrg6j9OsEXv0oxqKbjoD7vMV5prOTH/nju9BOqP8YTtWDLHft8PPV/Vo64RclCSP1/PacrHQoX96A2hQ5v3GjI0hMBPNd05vo4q3r/wsCGA== Received: from BN8PR15CA0030.namprd15.prod.outlook.com (2603:10b6:408:c0::43) by BY5PR12MB4225.namprd12.prod.outlook.com (2603:10b6:a03:211::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.19; Thu, 5 Jan 2023 13:04:03 +0000 Received: from BN8NAM11FT041.eop-nam11.prod.protection.outlook.com (2603:10b6:408:c0:cafe::30) by BN8PR15CA0030.outlook.office365.com (2603:10b6:408:c0::43) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5986.14 via Frontend Transport; Thu, 5 Jan 2023 13:04:03 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.160) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.160 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.160; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.160) by BN8NAM11FT041.mail.protection.outlook.com (10.13.177.18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.6 via Frontend Transport; Thu, 5 Jan 2023 13:04:03 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.66) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.36; Thu, 5 Jan 2023 05:03:51 -0800 Received: from nvidia.com (10.126.231.37) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.36; Thu, 5 Jan 2023 05:03:48 -0800 From: Erez Shitrit To: CC: , , Matan Azrad , Viacheslav Ovsiienko Subject: [PATCH v2 07/10] net/mlx5/hws: add vhca identifier ID to the caps Date: Thu, 5 Jan 2023 15:03:00 +0200 Message-ID: <20230105130304.537205-8-erezsh@nvidia.com> X-Mailer: git-send-email 2.18.2 In-Reply-To: <20230105130304.537205-1-erezsh@nvidia.com> References: <20221219082416.2223812-3-erezsh@nvidia.com> <20230105130304.537205-1-erezsh@nvidia.com> MIME-Version: 1.0 X-Originating-IP: [10.126.231.37] X-ClientProxiedBy: rnnvmail202.nvidia.com (10.129.68.7) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN8NAM11FT041:EE_|BY5PR12MB4225:EE_ X-MS-Office365-Filtering-Correlation-Id: ec3b9f6d-6349-4f49-aec4-08daef1d5213 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 1cTsCaZP1Z1Nrya6FJLorylP0kZGgsKVhh6YBmnHbJ+TwH4v6teWDkcX9NMzFIMoV5IexPQ90mBE+n6lwTZZho8xNZ4LSNl1uLpLU25PliRvkNjSawlXjigadGJW30FdWhPRk+1a1x9zTd62ewlmlmErO8bMreHYuwwYw3cFvJNqmxyQAuR0K22KXSRtJmKrlCjt1oHkE/a0zK7Nmy6z0duCs32FS8v7S1Yd6fS4g4UI07PKH+s/pZ6BLxhU3NVzBnpx2yfA27rpf7Y6r/2wrUt7DTAQzUOjmFy25pVrXsx3n3UGeU0cFM6B9vMys0PI3uYusISfpqsrK+rxnTBvhKc+6b41pQnC9GBsiuBXxekE75gTGNSSqL089MCLnWKB/shsAoGk+QoCVRKcXPTZfEiP+wo9XRGV8425qaxkEhBu++lFK7b96Y8IfpLOGxsFgSb8laeRxbQSscrmj0sXqRuzeGoAGiB/LectJp9Tnytzq8mNCYpPwITqsYwQVd1LLjaPkMUIIZzCsK+kQTdNLOu1YGOyT3ejJ7Z6dDDeipVGASgLgVddl0NQNn7NXOZpoKSqOlzfEn4K98bguxcsNVHm36vVwXTmscsae8HggAtAwSaU2PaChoA+V7HLe1qm+7A+5OJGFYq7tiN8Xn/Qfxy150mPVUUXxz+EvbW8HULENlq+RGYBMGsUKVvF5Fm0FrztbU2u+nph/rW11/QpOQ== X-Forefront-Antispam-Report: CIP:216.228.117.160; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc6edge1.nvidia.com; CAT:NONE; SFS:(13230022)(4636009)(39860400002)(346002)(136003)(376002)(396003)(451199015)(40470700004)(36840700001)(46966006)(47076005)(426003)(7696005)(1076003)(26005)(16526019)(6286002)(107886003)(336012)(55016003)(82310400005)(6666004)(40480700001)(40460700003)(86362001)(36756003)(36860700001)(356005)(82740400003)(7636003)(2616005)(186003)(316002)(4326008)(478600001)(41300700001)(8676002)(2906002)(5660300002)(8936002)(70206006)(70586007)(54906003)(6916009); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jan 2023 13:04:03.4427 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: ec3b9f6d-6349-4f49-aec4-08daef1d5213 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.117.160]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: BN8NAM11FT041.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR12MB4225 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org And read it in the query_cap function Signed-off-by: Erez Shitrit Reviewed-by: Alex Vesker Acked-by: Viacheslav Ovsiienko --- drivers/net/mlx5/hws/mlx5dr_cmd.c | 3 +++ drivers/net/mlx5/hws/mlx5dr_cmd.h | 1 + 2 files changed, 4 insertions(+) diff --git a/drivers/net/mlx5/hws/mlx5dr_cmd.c b/drivers/net/mlx5/hws/mlx5dr_cmd.c index 9b9f70c933..d525867de5 100644 --- a/drivers/net/mlx5/hws/mlx5dr_cmd.c +++ b/drivers/net/mlx5/hws/mlx5dr_cmd.c @@ -837,6 +837,9 @@ int mlx5dr_cmd_query_caps(struct ibv_context *ctx, MLX5_GET64(query_hca_cap_out, out, capability.cmd_hca_cap.match_definer_format_supported); + caps->vhca_id = MLX5_GET(query_hca_cap_out, out, + capability.cmd_hca_cap.vhca_id); + caps->sq_ts_format = MLX5_GET(query_hca_cap_out, out, capability.cmd_hca_cap.sq_ts_format); diff --git a/drivers/net/mlx5/hws/mlx5dr_cmd.h b/drivers/net/mlx5/hws/mlx5dr_cmd.h index 824ca5e846..8b8d5d00b0 100644 --- a/drivers/net/mlx5/hws/mlx5dr_cmd.h +++ b/drivers/net/mlx5/hws/mlx5dr_cmd.h @@ -176,6 +176,7 @@ struct mlx5dr_cmd_query_caps { uint8_t sq_ts_format; uint64_t definer_format_sup; uint32_t trivial_match_definer; + uint32_t vhca_id; bool cross_vhca_resources; char fw_ver[64]; }; From patchwork Thu Jan 5 13:03:01 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Erez Shitrit X-Patchwork-Id: 121620 X-Patchwork-Delegate: rasland@nvidia.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 974C4A00C2; Thu, 5 Jan 2023 14:04:36 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 157BF42D4D; Thu, 5 Jan 2023 14:04:10 +0100 (CET) Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on2069.outbound.protection.outlook.com [40.107.237.69]) by mails.dpdk.org (Postfix) with ESMTP id B514942D48 for ; Thu, 5 Jan 2023 14:04:08 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bVldZE83OYtZKAzge4BHgeZzGgl0hpyMuCnJDjCV1Ybjz5JTYcrEtiA14xjQZXpsriWMX5yOYD14x0FrnDaDH3s6tlT2JQ4wYLFaY5jCuRNBaoXUR1qa9v9KoV/CJTsWJeznLabvPQTzLyBreE/b6kCe9F7XTiNpvBmaRjP1IV7TE1E4AondQ+Xb4h8MYgN0EEaBN2w62PmG3yDHGHccIxhx/MX/umtYJ+W17G8GzhnabZZEsgkFSeYiLkPhmSeEDcQ9JqO3uwDNba0O5E7mdBVOr+SHbqCOpNo15HumwWPge8YvhZ1Ehk8n8Gyjh+hBqqqZORbBwopAllbx4hLpew== 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=ZKC4ZrOcNGZkzRSSfd0deg+/PN41m6AxQMtsOrLEnfM=; b=Zsg2FGiUYjnya/brm3hCWfsxNW7uJV8vRKTWIb3B6hIFUyHtrvPoKdLFZaS4+W7CDdPgYqVaRaN2JxkaCMamMU8JAukG6UvFRKhxf3uLw6d3r7kMiaIVbpyIN07NqmaJQRBPiUkoMWiUnOwtIcPbeZE+HxqmkeQer2InpLXtQouhFbqjvcSSlkKqElzwPSzjFyoW/T8QSD+utCg5vu/YMBKV6pp55B8ap3IJ4ubAIkgf9/ykH2XUlIJZpaUE+QxkPpfdlc4/igxhSat6T9BnjQroIaDc0KpNJR7rOnFEimohHDWqgpPurlYerkBIsCnJQOOcR8QTuUWHd6krM6ElIQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=dpdk.org smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ZKC4ZrOcNGZkzRSSfd0deg+/PN41m6AxQMtsOrLEnfM=; b=FVxYNaE9JmI+BvlVTwNkBZ9udcvl6L9fSsr/LCpZ/lynlc+8+nQVNmSufYKaI9Q7fhYWUPu22T4QwCAOT5vJj5TqvqgfmbNpcGyDTJUibhVeL+6AA5tTrDw4idohk0wj8iPQiCr6KymuoGNtaEFFPxA0OduVEE00IL9Iwlqpz1K0N+KM7Na8ARjX4YU4B2cDHRJdN+9oSQQiZ89zmzi1CQ+iEitAL4mN1TEgsuOywsf+kNgre4sEA/by7Kz2/mBvLslEV+GIAS5/lxKUOovfT7qLxZVHWNFZDDlQD1XHVlCJ1V3mvF3+lLyAq0kIIlIZmbrSvGh7pBhUjFXh8oDGhg== Received: from DS7PR03CA0333.namprd03.prod.outlook.com (2603:10b6:8:55::15) by DM6PR12MB4284.namprd12.prod.outlook.com (2603:10b6:5:21a::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.19; Thu, 5 Jan 2023 13:04:06 +0000 Received: from DM6NAM11FT041.eop-nam11.prod.protection.outlook.com (2603:10b6:8:55:cafe::5f) by DS7PR03CA0333.outlook.office365.com (2603:10b6:8:55::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5986.14 via Frontend Transport; Thu, 5 Jan 2023 13:04:06 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.161) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.161 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.161) by DM6NAM11FT041.mail.protection.outlook.com (10.13.172.98) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.10 via Frontend Transport; Thu, 5 Jan 2023 13:04:06 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.36; Thu, 5 Jan 2023 05:03:56 -0800 Received: from nvidia.com (10.126.231.37) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.36; Thu, 5 Jan 2023 05:03:52 -0800 From: Erez Shitrit To: CC: , , Matan Azrad , Viacheslav Ovsiienko Subject: [PATCH v2 08/10] net/mlx5/hws: support shared ibv-context with local one Date: Thu, 5 Jan 2023 15:03:01 +0200 Message-ID: <20230105130304.537205-9-erezsh@nvidia.com> X-Mailer: git-send-email 2.18.2 In-Reply-To: <20230105130304.537205-1-erezsh@nvidia.com> References: <20221219082416.2223812-3-erezsh@nvidia.com> <20230105130304.537205-1-erezsh@nvidia.com> MIME-Version: 1.0 X-Originating-IP: [10.126.231.37] X-ClientProxiedBy: rnnvmail202.nvidia.com (10.129.68.7) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM6NAM11FT041:EE_|DM6PR12MB4284:EE_ X-MS-Office365-Filtering-Correlation-Id: 79695bbf-0d75-44a6-eda3-08daef1d53d4 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: k9XjcQPc6AqUgORdYRFzx9u4QJLdFsFPQLbDNCQT99Yx4nzSogCaSCtz3x7UItuMZqkGM6gMlL38vz2++3flq+nLixBojKrw9C0sEZtKlk0hyJ2UK4ipDK5ns/0rLd7UWYgx8A0t48dhn87Ch2cZxjFb0GIyabyrqLc3bZ0VRQ7MPNYcaTHIjjTs5d/dRdvJaHeeWqSwPPelVtm+k0PyRlsgeuusRwbqLpTXx5RXgaknfVLg5lO4LA/nNvm8IWP51cmOOAWkn8isflvd5nk5kNyfP8CJsTw48hNAwQCzVHMXfxXVTjuz9BwfGLbW5XC1o46Bvlz0MrmghPduasgdgmruRkWGyy8lhbE+Rge3rFQty2CJyMj17NH2LJdgXf+4Q43/6sUAFpurTukOgbHwBaO+Ur9cFhBso20cGgoeWnMLPit38NoQYf4R/MJviMb5uE8DK0GYJOvPDGFYkuyzZ1FlPS6v8Pbt7/H78o+dM4XXdKROUy0eH9RhmjZCXu2Hw8ZY1FZSAZH0L07Wy1BDvxJ7ddj9AHVLWQtweGXwLe7hfd0DvdqyGJ0evJA2TLmjlGZzJl81Q0jJey3Ez6oC94w9syJK808qlPD0GzJ9RWIe+C30bID5WPN3ST1/foYHQsuQQNEfUFSY0VlkMKCjfEyg3EMkxYHUVcZQrlAe1rR9sMFi4o9qjZpw2pq3XwGBMr0Psr6owMFjGLX6Tb0kaA== X-Forefront-Antispam-Report: CIP:216.228.117.161; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc6edge2.nvidia.com; CAT:NONE; SFS:(13230022)(4636009)(39860400002)(376002)(346002)(396003)(136003)(451199015)(40470700004)(46966006)(36840700001)(2616005)(1076003)(47076005)(83380400001)(36860700001)(426003)(86362001)(55016003)(40480700001)(40460700003)(82310400005)(356005)(7636003)(82740400003)(36756003)(336012)(30864003)(316002)(6916009)(54906003)(70206006)(41300700001)(4326008)(5660300002)(70586007)(8676002)(186003)(8936002)(26005)(2906002)(107886003)(16526019)(6666004)(7696005)(6286002)(478600001); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jan 2023 13:04:06.4337 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 79695bbf-0d75-44a6-eda3-08daef1d53d4 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.117.161]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: DM6NAM11FT041.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4284 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org The idea is to have a shared ibv_context that all the resources allocated on it (FT + TIR are exceptions) When ever a resource created locally an alias object to that resource allocated and it used in the other context. The connections between the resources are done according to each type of the resource, to the original resource or to its alias resource. Signed-off-by: Erez Shitrit Reviewed-by: Alex Vesker Acked-by: Viacheslav Ovsiienko --- drivers/common/mlx5/mlx5_prm.h | 6 + drivers/net/mlx5/hws/mlx5dr.h | 2 + drivers/net/mlx5/hws/mlx5dr_action.c | 9 +- drivers/net/mlx5/hws/mlx5dr_cmd.c | 19 ++- drivers/net/mlx5/hws/mlx5dr_cmd.h | 7 +- drivers/net/mlx5/hws/mlx5dr_context.c | 34 +++- drivers/net/mlx5/hws/mlx5dr_context.h | 22 +++ drivers/net/mlx5/hws/mlx5dr_debug.c | 2 +- drivers/net/mlx5/hws/mlx5dr_internal.h | 1 + drivers/net/mlx5/hws/mlx5dr_matcher.c | 218 +++++++++++++++++++++++-- drivers/net/mlx5/hws/mlx5dr_matcher.h | 9 + drivers/net/mlx5/hws/mlx5dr_table.c | 191 +++++++++++++++++++++- drivers/net/mlx5/hws/mlx5dr_table.h | 4 +- 13 files changed, 484 insertions(+), 40 deletions(-) diff --git a/drivers/common/mlx5/mlx5_prm.h b/drivers/common/mlx5/mlx5_prm.h index fd1ad55f1f..a716a33e84 100644 --- a/drivers/common/mlx5/mlx5_prm.h +++ b/drivers/common/mlx5/mlx5_prm.h @@ -291,6 +291,12 @@ #define MAX_ACTIONS_DATA_IN_HEADER_MODIFY 512 +/* Alias FT id passed to the ALLOW_OTHER_VHCA_ACCESS & CREATE_GENERAL_OBJECT + * commands should have the following format: + * {table_type: 8bits, table_id: 24bits}. + */ +#define FT_ID_FT_TYPE_OFFSET 24 + /* Completion mode. */ enum mlx5_completion_mode { MLX5_COMP_ONLY_ERR = 0x0, diff --git a/drivers/net/mlx5/hws/mlx5dr.h b/drivers/net/mlx5/hws/mlx5dr.h index f8de27c615..aa36e3111f 100644 --- a/drivers/net/mlx5/hws/mlx5dr.h +++ b/drivers/net/mlx5/hws/mlx5dr.h @@ -96,6 +96,8 @@ struct mlx5dr_context_attr { size_t initial_log_ste_memory; /* Currently not in use */ /* Optional PD used for allocating res ources */ struct ibv_pd *pd; + /* Optional other ctx for resources allocation, all objects will be created on it */ + struct ibv_context *shared_ibv_ctx; }; struct mlx5dr_table_attr { diff --git a/drivers/net/mlx5/hws/mlx5dr_action.c b/drivers/net/mlx5/hws/mlx5dr_action.c index b0ae4e7693..da19c1ca7d 100644 --- a/drivers/net/mlx5/hws/mlx5dr_action.c +++ b/drivers/net/mlx5/hws/mlx5dr_action.c @@ -1147,6 +1147,7 @@ mlx5dr_action_create_reformat_root(struct mlx5dr_action *action, { enum mlx5dv_flow_table_type ft_type = 0; /*fix compilation warn*/ uint32_t verb_reformat_type = 0; + struct ibv_context *ibv_ctx; int ret; /* Convert action to FT type and verbs reformat type */ @@ -1157,8 +1158,9 @@ mlx5dr_action_create_reformat_root(struct mlx5dr_action *action, mlx5dr_action_conv_reformat_to_verbs(action->type, &verb_reformat_type); /* Create the reformat type for root table */ + ibv_ctx = mlx5dr_context_get_local_ibv(action->ctx); action->flow_action = - mlx5_glue->dv_create_flow_action_packet_reformat_root(action->ctx->ibv_ctx, + mlx5_glue->dv_create_flow_action_packet_reformat_root(ibv_ctx, data_sz, data, verb_reformat_type, @@ -1496,14 +1498,17 @@ mlx5dr_action_create_modify_header_root(struct mlx5dr_action *action, __be64 *actions) { enum mlx5dv_flow_table_type ft_type = 0; + struct ibv_context *local_ibv_ctx; int ret; ret = mlx5dr_action_conv_flags_to_ft_type(action->flags, &ft_type); if (ret) return rte_errno; + local_ibv_ctx = mlx5dr_context_get_local_ibv(action->ctx); + action->flow_action = - mlx5_glue->dv_create_flow_action_modify_header_root(action->ctx->ibv_ctx, + mlx5_glue->dv_create_flow_action_modify_header_root(local_ibv_ctx, actions_sz, (uint64_t *)actions, ft_type); diff --git a/drivers/net/mlx5/hws/mlx5dr_cmd.c b/drivers/net/mlx5/hws/mlx5dr_cmd.c index d525867de5..754a424bd7 100644 --- a/drivers/net/mlx5/hws/mlx5dr_cmd.c +++ b/drivers/net/mlx5/hws/mlx5dr_cmd.c @@ -217,18 +217,23 @@ void mlx5dr_cmd_set_attr_connect_miss_tbl(struct mlx5dr_context *ctx, { struct mlx5dr_devx_obj *default_miss_tbl; - if (type != MLX5DR_TABLE_TYPE_FDB) + if (type != MLX5DR_TABLE_TYPE_FDB && !mlx5dr_context_shared_gvmi_used(ctx)) return; - default_miss_tbl = ctx->common_res[type].default_miss->ft; - if (!default_miss_tbl) { - assert(false); - return; - } ft_attr->modify_fs = MLX5_IFC_MODIFY_FLOW_TABLE_MISS_ACTION; ft_attr->type = fw_ft_type; ft_attr->table_miss_action = MLX5_IFC_MODIFY_FLOW_TABLE_MISS_ACTION_GOTO_TBL; - ft_attr->table_miss_id = default_miss_tbl->id; + + if (type == MLX5DR_TABLE_TYPE_FDB) { + default_miss_tbl = ctx->common_res[type].default_miss->ft; + if (!default_miss_tbl) { + assert(false); + return; + } + ft_attr->table_miss_id = default_miss_tbl->id; + } else { + ft_attr->table_miss_id = ctx->gvmi_res[type].aliased_end_ft->id; + } } struct mlx5dr_devx_obj * diff --git a/drivers/net/mlx5/hws/mlx5dr_cmd.h b/drivers/net/mlx5/hws/mlx5dr_cmd.h index 8b8d5d00b0..9fe493a8f9 100644 --- a/drivers/net/mlx5/hws/mlx5dr_cmd.h +++ b/drivers/net/mlx5/hws/mlx5dr_cmd.h @@ -11,6 +11,8 @@ struct mlx5dr_cmd_ft_create_attr { bool rtc_valid; }; +#define ACCESS_KEY_LEN 32 + struct mlx5dr_cmd_ft_modify_attr { uint8_t type; uint32_t rtc_id_0; @@ -50,7 +52,7 @@ struct mlx5dr_cmd_alias_obj_create_attr { uint32_t obj_id; uint16_t vhca_id; uint16_t obj_type; - uint8_t access_key[32]; + uint8_t access_key[ACCESS_KEY_LEN]; }; struct mlx5dr_cmd_stc_create_attr { @@ -134,7 +136,7 @@ struct mlx5dr_cmd_sq_create_attr { struct mlx5dr_cmd_allow_other_vhca_access_attr { uint16_t obj_type; uint32_t obj_id; - uint8_t access_key[32]; + uint8_t access_key[ACCESS_KEY_LEN]; }; struct mlx5dr_cmd_query_ft_caps { @@ -178,6 +180,7 @@ struct mlx5dr_cmd_query_caps { uint32_t trivial_match_definer; uint32_t vhca_id; bool cross_vhca_resources; + uint32_t shared_vhca_id; char fw_ver[64]; }; diff --git a/drivers/net/mlx5/hws/mlx5dr_context.c b/drivers/net/mlx5/hws/mlx5dr_context.c index 76ada7bb7f..6627337d9e 100644 --- a/drivers/net/mlx5/hws/mlx5dr_context.c +++ b/drivers/net/mlx5/hws/mlx5dr_context.c @@ -178,6 +178,36 @@ static void mlx5dr_context_uninit_hws(struct mlx5dr_context *ctx) mlx5dr_context_uninit_pd(ctx); } +static int mlx5dr_context_init_shared_ctx(struct mlx5dr_context *ctx, + struct ibv_context *ibv_ctx, + struct mlx5dr_context_attr *attr) +{ + struct mlx5dr_cmd_query_caps shared_caps = {0}; + int ret; + + if (!attr->shared_ibv_ctx) { + ctx->ibv_ctx = ibv_ctx; + } else { + ctx->ibv_ctx = attr->shared_ibv_ctx; + ctx->local_ibv_ctx = ibv_ctx; + ret = mlx5dr_cmd_query_caps(attr->shared_ibv_ctx, &shared_caps); + if (ret || !shared_caps.cross_vhca_resources) { + DR_LOG(INFO, "No cross_vhca_resources cap for shared ibv"); + rte_errno = ENOTSUP; + return rte_errno; + } + ctx->caps->shared_vhca_id = shared_caps.vhca_id; + } + + if (ctx->local_ibv_ctx && !ctx->caps->cross_vhca_resources) { + DR_LOG(INFO, "No cross_vhca_resources cap for local ibv"); + rte_errno = ENOTSUP; + return rte_errno; + } + + return 0; +} + struct mlx5dr_context *mlx5dr_context_open(struct ibv_context *ibv_ctx, struct mlx5dr_context_attr *attr) { @@ -190,7 +220,6 @@ struct mlx5dr_context *mlx5dr_context_open(struct ibv_context *ibv_ctx, return NULL; } - ctx->ibv_ctx = ibv_ctx; pthread_spin_init(&ctx->ctrl_lock, PTHREAD_PROCESS_PRIVATE); ctx->caps = simple_calloc(1, sizeof(*ctx->caps)); @@ -201,6 +230,9 @@ struct mlx5dr_context *mlx5dr_context_open(struct ibv_context *ibv_ctx, if (ret) goto free_caps; + if (mlx5dr_context_init_shared_ctx(ctx, ibv_ctx, attr)) + goto free_caps; + ret = mlx5dr_context_init_hws(ctx, attr); if (ret) goto free_caps; diff --git a/drivers/net/mlx5/hws/mlx5dr_context.h b/drivers/net/mlx5/hws/mlx5dr_context.h index b0c7802daf..a38d9484b3 100644 --- a/drivers/net/mlx5/hws/mlx5dr_context.h +++ b/drivers/net/mlx5/hws/mlx5dr_context.h @@ -22,13 +22,22 @@ struct mlx5dr_context_common_res { struct mlx5dr_cmd_forward_tbl *default_miss; }; +struct mlx5dr_context_shared_gvmi_res { + struct mlx5dr_devx_obj *end_ft; + struct mlx5dr_devx_obj *aliased_end_ft; + uint32_t refcount; +}; + struct mlx5dr_context { struct ibv_context *ibv_ctx; + /* When local_ibv_ctx is not NULL means we are using shared_ibv for resources */ + struct ibv_context *local_ibv_ctx; struct mlx5dr_cmd_query_caps *caps; struct ibv_pd *pd; uint32_t pd_num; struct mlx5dr_pool *stc_pool[MLX5DR_TABLE_TYPE_MAX]; struct mlx5dr_context_common_res common_res[MLX5DR_TABLE_TYPE_MAX]; + struct mlx5dr_context_shared_gvmi_res gvmi_res[MLX5DR_TABLE_TYPE_MAX]; struct mlx5dr_pattern_cache *pattern_cache; pthread_spinlock_t ctrl_lock; enum mlx5dr_context_flags flags; @@ -37,4 +46,17 @@ struct mlx5dr_context { LIST_HEAD(table_head, mlx5dr_table) head; }; +static inline bool mlx5dr_context_shared_gvmi_used(struct mlx5dr_context *ctx) +{ + return ctx->local_ibv_ctx ? true : false; +} + +static inline struct ibv_context * +mlx5dr_context_get_local_ibv(struct mlx5dr_context *ctx) +{ + if (mlx5dr_context_shared_gvmi_used(ctx)) + return ctx->local_ibv_ctx; + + return ctx->ibv_ctx; +} #endif /* MLX5DR_CONTEXT_H_ */ diff --git a/drivers/net/mlx5/hws/mlx5dr_debug.c b/drivers/net/mlx5/hws/mlx5dr_debug.c index 890a761c48..55011c208d 100644 --- a/drivers/net/mlx5/hws/mlx5dr_debug.c +++ b/drivers/net/mlx5/hws/mlx5dr_debug.c @@ -405,7 +405,7 @@ static int mlx5dr_debug_dump_context_info(FILE *f, struct mlx5dr_context *ctx) MLX5DR_DEBUG_RES_TYPE_CONTEXT, (uint64_t)(uintptr_t)ctx, ctx->flags & MLX5DR_CONTEXT_FLAG_HWS_SUPPORT, - mlx5_glue->get_device_name(ctx->ibv_ctx->device), + mlx5_glue->get_device_name(mlx5dr_context_get_local_ibv(ctx)->device), DEBUG_VERSION); if (ret < 0) { rte_errno = EINVAL; diff --git a/drivers/net/mlx5/hws/mlx5dr_internal.h b/drivers/net/mlx5/hws/mlx5dr_internal.h index 586b3e3ea3..faad2bbd0f 100644 --- a/drivers/net/mlx5/hws/mlx5dr_internal.h +++ b/drivers/net/mlx5/hws/mlx5dr_internal.h @@ -18,6 +18,7 @@ #endif #include #include +#include #include "mlx5_prm.h" #include "mlx5_glue.h" diff --git a/drivers/net/mlx5/hws/mlx5dr_matcher.c b/drivers/net/mlx5/hws/mlx5dr_matcher.c index 2e444c1179..46217b2ab3 100644 --- a/drivers/net/mlx5/hws/mlx5dr_matcher.c +++ b/drivers/net/mlx5/hws/mlx5dr_matcher.c @@ -19,31 +19,20 @@ static uint8_t mlx5dr_matcher_rules_to_tbl_depth(uint8_t log_num_of_rules) return RTE_MIN(log_num_of_rules, MLX5DR_MATCHER_ASSURED_COL_TBL_DEPTH); } -static int mlx5dr_matcher_create_end_ft(struct mlx5dr_matcher *matcher) -{ - struct mlx5dr_table *tbl = matcher->tbl; - - matcher->end_ft = mlx5dr_table_create_default_ft(tbl); - if (!matcher->end_ft) { - DR_LOG(ERR, "Failed to create matcher end flow table"); - return rte_errno; - } - return 0; -} - static void mlx5dr_matcher_destroy_end_ft(struct mlx5dr_matcher *matcher) { mlx5dr_table_destroy_default_ft(matcher->tbl, matcher->end_ft); } -static int mlx5dr_matcher_free_rtc_pointing(uint32_t fw_ft_type, +static int mlx5dr_matcher_free_rtc_pointing(struct mlx5dr_context *ctx, + uint32_t fw_ft_type, enum mlx5dr_table_type type, struct mlx5dr_devx_obj *devx_obj) { struct mlx5dr_cmd_ft_modify_attr ft_attr = {0}; int ret; - if (type != MLX5DR_TABLE_TYPE_FDB) + if (type != MLX5DR_TABLE_TYPE_FDB && !mlx5dr_context_shared_gvmi_used(ctx)) return 0; ft_attr.modify_fs = MLX5_IFC_MODIFY_FLOW_TABLE_RTC_ID; @@ -60,6 +49,136 @@ static int mlx5dr_matcher_free_rtc_pointing(uint32_t fw_ft_type, return 0; } +static int mlx5dr_matcher_shared_point_end_ft(struct mlx5dr_matcher *matcher) +{ + struct mlx5dr_cmd_ft_modify_attr ft_attr = {0}; + int ret; + + mlx5dr_cmd_set_attr_connect_miss_tbl(matcher->tbl->ctx, + matcher->tbl->fw_ft_type, + matcher->tbl->type, + &ft_attr); + + ret = mlx5dr_cmd_flow_table_modify(matcher->end_ft, &ft_attr); + if (ret) { + DR_LOG(ERR, "Failed to connect new matcher to default miss alias RTC"); + return ret; + } + + ret = mlx5dr_matcher_free_rtc_pointing(matcher->tbl->ctx, + matcher->tbl->fw_ft_type, + matcher->tbl->type, + matcher->end_ft); + + return ret; +} + +static int mlx5dr_matcher_shared_create_alias_rtc(struct mlx5dr_matcher *matcher) +{ + struct mlx5dr_context *ctx = matcher->tbl->ctx; + int ret; + + ret = mlx5dr_matcher_create_aliased_obj(ctx, + ctx->ibv_ctx, + ctx->local_ibv_ctx, + ctx->caps->shared_vhca_id, + matcher->match_ste.rtc_0->id, + MLX5_GENERAL_OBJ_TYPE_RTC, + &matcher->match_ste.aliased_rtc_0); + if (ret) { + DR_LOG(ERR, "Failed to allocate alias RTC"); + return ret; + } + return 0; +} + +static int mlx5dr_matcher_create_init_shared(struct mlx5dr_matcher *matcher) +{ + if (!mlx5dr_context_shared_gvmi_used(matcher->tbl->ctx)) + return 0; + + if (mlx5dr_matcher_shared_point_end_ft(matcher)) { + DR_LOG(ERR, "Failed to point shared matcher end flow table"); + return rte_errno; + } + + if (mlx5dr_matcher_shared_create_alias_rtc(matcher)) { + DR_LOG(ERR, "Failed to create alias RTC"); + return rte_errno; + } + + return 0; +} + +static void mlx5dr_matcher_create_uninit_shared(struct mlx5dr_matcher *matcher) +{ + if (!mlx5dr_context_shared_gvmi_used(matcher->tbl->ctx)) + return; + + if (matcher->match_ste.aliased_rtc_0) { + mlx5dr_cmd_destroy_obj(matcher->match_ste.aliased_rtc_0); + matcher->match_ste.aliased_rtc_0 = NULL; + } +} + +static int mlx5dr_matcher_create_end_ft(struct mlx5dr_matcher *matcher) +{ + struct mlx5dr_table *tbl = matcher->tbl; + + matcher->end_ft = mlx5dr_table_create_default_ft(tbl->ctx->ibv_ctx, tbl); + if (!matcher->end_ft) { + DR_LOG(ERR, "Failed to create matcher end flow table"); + return rte_errno; + } + return 0; +} + +static uint32_t +mlx5dr_matcher_connect_get_rtc0(struct mlx5dr_matcher *matcher) +{ + if (!matcher->match_ste.aliased_rtc_0) + return matcher->match_ste.rtc_0->id; + else + return matcher->match_ste.aliased_rtc_0->id; +} + +/* The function updates tbl->local_ft to the first RTC or 0 if no more matchers */ +static int mlx5dr_matcher_shared_update_local_ft(struct mlx5dr_table *tbl) +{ + struct mlx5dr_cmd_ft_modify_attr cur_ft_attr = {0}; + struct mlx5dr_matcher *first_matcher; + int ret; + + if (!mlx5dr_context_shared_gvmi_used(tbl->ctx)) + return 0; + + first_matcher = LIST_FIRST(&tbl->head); + if (!first_matcher) { + /* local ft no longer points to any RTC, drop refcount */ + ret = mlx5dr_matcher_free_rtc_pointing(tbl->ctx, + tbl->fw_ft_type, + tbl->type, + tbl->local_ft); + if (ret) + DR_LOG(ERR, "Failed to clear local FT to prev alias RTC"); + + return ret; + } + + /* point local_ft to the first RTC */ + cur_ft_attr.modify_fs = MLX5_IFC_MODIFY_FLOW_TABLE_RTC_ID; + cur_ft_attr.type = tbl->fw_ft_type; + cur_ft_attr.rtc_id_0 = mlx5dr_matcher_connect_get_rtc0(first_matcher); + + ret = mlx5dr_cmd_flow_table_modify(tbl->local_ft, &cur_ft_attr); + if (ret) { + DR_LOG(ERR, "Failed to point local FT to alias RTC"); + return ret; + } + + return 0; +} + static int mlx5dr_matcher_connect(struct mlx5dr_matcher *matcher) { struct mlx5dr_cmd_ft_modify_attr ft_attr = {0}; @@ -121,6 +240,12 @@ static int mlx5dr_matcher_connect(struct mlx5dr_matcher *matcher) goto remove_from_list; } + ret = mlx5dr_matcher_shared_update_local_ft(tbl); + if (ret) { + DR_LOG(ERR, "Failed to update local_ft anchor in shared table"); + goto remove_from_list; + } + return 0; remove_from_list: @@ -174,7 +299,8 @@ static int mlx5dr_matcher_disconnect(struct mlx5dr_matcher *matcher) if (!next) { /* ft no longer points to any RTC, drop refcount */ - ret = mlx5dr_matcher_free_rtc_pointing(tbl->fw_ft_type, + ret = mlx5dr_matcher_free_rtc_pointing(tbl->ctx, + tbl->fw_ft_type, tbl->type, prev_ft); if (ret) { @@ -183,6 +309,12 @@ static int mlx5dr_matcher_disconnect(struct mlx5dr_matcher *matcher) } } + ret = mlx5dr_matcher_shared_update_local_ft(tbl); + if (ret) { + DR_LOG(ERR, "Failed to update local_ft in shared table"); + return ret; + } + return 0; } @@ -206,6 +338,49 @@ static void mlx5dr_matcher_set_rtc_attr_sz(struct mlx5dr_matcher *matcher, } } +int mlx5dr_matcher_create_aliased_obj(struct mlx5dr_context *ctx, + struct ibv_context *ibv_owner, + struct ibv_context *ibv_allowed, + uint16_t vhca_id_to_be_accessed, + uint32_t aliased_object_id, + uint16_t object_type, + struct mlx5dr_devx_obj **obj) +{ + struct mlx5dr_cmd_allow_other_vhca_access_attr allow_attr = {0}; + struct mlx5dr_cmd_alias_obj_create_attr alias_attr = {0}; + char key[ACCESS_KEY_LEN]; + int ret; + int i; + + if (!mlx5dr_context_shared_gvmi_used(ctx)) + return 0; + + for (i = 0; i < ACCESS_KEY_LEN; i++) + key[i] = rte_rand() & 0xFF; + + memcpy(allow_attr.access_key, key, ACCESS_KEY_LEN); + allow_attr.obj_type = object_type; + allow_attr.obj_id = aliased_object_id; + + ret = mlx5dr_cmd_allow_other_vhca_access(ibv_owner, &allow_attr); + if (ret) { + DR_LOG(ERR, "Failed to allow RTC to be aliased"); + return ret; + } + + memcpy(alias_attr.access_key, key, ACCESS_KEY_LEN); + alias_attr.obj_id = aliased_object_id; + alias_attr.obj_type = object_type; + alias_attr.vhca_id = vhca_id_to_be_accessed; + *obj = mlx5dr_cmd_alias_obj_create(ibv_allowed, &alias_attr); + if (!*obj) { + DR_LOG(ERR, "Failed to create alias object"); + return rte_errno; + } + + return 0; +} + static int mlx5dr_matcher_create_rtc(struct mlx5dr_matcher *matcher, bool is_match_rtc) { @@ -573,13 +748,20 @@ static int mlx5dr_matcher_create_and_connect(struct mlx5dr_matcher *matcher) if (ret) goto destroy_end_ft; + /* Allocate and set shared resources */ + ret = mlx5dr_matcher_create_init_shared(matcher); + if (ret) + goto destroy_rtc; + /* Connect the matcher to the matcher list */ ret = mlx5dr_matcher_connect(matcher); if (ret) - goto destroy_rtc; + goto destroy_shared; return 0; +destroy_shared: + mlx5dr_matcher_create_uninit_shared(matcher); destroy_rtc: mlx5dr_matcher_destroy_rtc(matcher, true); destroy_end_ft: @@ -594,6 +776,7 @@ static int mlx5dr_matcher_create_and_connect(struct mlx5dr_matcher *matcher) static void mlx5dr_matcher_destroy_and_disconnect(struct mlx5dr_matcher *matcher) { mlx5dr_matcher_disconnect(matcher); + mlx5dr_matcher_create_uninit_shared(matcher); mlx5dr_matcher_destroy_rtc(matcher, true); mlx5dr_matcher_destroy_end_ft(matcher); mlx5dr_matcher_unbind_at(matcher); @@ -766,7 +949,8 @@ static int mlx5dr_matcher_init_root(struct mlx5dr_matcher *matcher) attr.priority = matcher->attr.priority; matcher->dv_matcher = - mlx5_glue->dv_create_flow_matcher_root(ctx->ibv_ctx, &attr); + mlx5_glue->dv_create_flow_matcher_root(mlx5dr_context_get_local_ibv(ctx), + &attr); if (!matcher->dv_matcher) { DR_LOG(ERR, "Failed to create DV flow matcher"); rte_errno = errno; diff --git a/drivers/net/mlx5/hws/mlx5dr_matcher.h b/drivers/net/mlx5/hws/mlx5dr_matcher.h index b7bf94762c..62004078cf 100644 --- a/drivers/net/mlx5/hws/mlx5dr_matcher.h +++ b/drivers/net/mlx5/hws/mlx5dr_matcher.h @@ -42,6 +42,8 @@ struct mlx5dr_matcher_match_ste { struct mlx5dr_devx_obj *rtc_0; struct mlx5dr_devx_obj *rtc_1; struct mlx5dr_pool *pool; + /* Currently not support FDB aliased */ + struct mlx5dr_devx_obj *aliased_rtc_0; }; struct mlx5dr_matcher_action_ste { @@ -73,4 +75,11 @@ int mlx5dr_matcher_conv_items_to_prm(uint64_t *match_buf, uint8_t *match_criteria, bool is_value); +int mlx5dr_matcher_create_aliased_obj(struct mlx5dr_context *ctx, + struct ibv_context *ibv_owner, + struct ibv_context *ibv_allowed, + uint16_t vhca_id_to_be_accessed, + uint32_t aliased_object_id, + uint16_t object_type, + struct mlx5dr_devx_obj **obj); #endif /* MLX5DR_MATCHER_H_ */ diff --git a/drivers/net/mlx5/hws/mlx5dr_table.c b/drivers/net/mlx5/hws/mlx5dr_table.c index 33052abce8..327e2ec710 100644 --- a/drivers/net/mlx5/hws/mlx5dr_table.c +++ b/drivers/net/mlx5/hws/mlx5dr_table.c @@ -40,7 +40,8 @@ mlx5dr_table_up_default_fdb_miss_tbl(struct mlx5dr_table *tbl) assert(ctx->caps->eswitch_manager); vport = ctx->caps->eswitch_manager_vport_number; - default_miss = mlx5dr_cmd_miss_ft_create(ctx->ibv_ctx, &ft_attr, vport); + default_miss = mlx5dr_cmd_miss_ft_create(mlx5dr_context_get_local_ibv(ctx), + &ft_attr, vport); if (!default_miss) { DR_LOG(ERR, "Failed to default miss table type: 0x%x", tbl_type); return rte_errno; @@ -96,7 +97,8 @@ mlx5dr_table_connect_to_default_miss_tbl(struct mlx5dr_table *tbl, } struct mlx5dr_devx_obj * -mlx5dr_table_create_default_ft(struct mlx5dr_table *tbl) +mlx5dr_table_create_default_ft(struct ibv_context *ibv, + struct mlx5dr_table *tbl) { struct mlx5dr_cmd_ft_create_attr ft_attr = {0}; struct mlx5dr_devx_obj *ft_obj; @@ -104,7 +106,7 @@ mlx5dr_table_create_default_ft(struct mlx5dr_table *tbl) mlx5dr_table_init_next_ft_attr(tbl, &ft_attr); - ft_obj = mlx5dr_cmd_flow_table_create(tbl->ctx->ibv_ctx, &ft_attr); + ft_obj = mlx5dr_cmd_flow_table_create(ibv, &ft_attr); if (ft_obj && tbl->type == MLX5DR_TABLE_TYPE_FDB) { /* Take/create ref over the default miss */ ret = mlx5dr_table_up_default_fdb_miss_tbl(tbl); @@ -128,6 +130,171 @@ mlx5dr_table_create_default_ft(struct mlx5dr_table *tbl) return NULL; } +static int +mlx5dr_table_init_check_hws_support(struct mlx5dr_context *ctx, + struct mlx5dr_table *tbl) +{ + if (!(ctx->flags & MLX5DR_CONTEXT_FLAG_HWS_SUPPORT)) { + DR_LOG(ERR, "HWS not supported, cannot create mlx5dr_table"); + rte_errno = EOPNOTSUPP; + return rte_errno; + } + + if (mlx5dr_context_shared_gvmi_used(ctx) && tbl->type == MLX5DR_TABLE_TYPE_FDB) { + DR_LOG(ERR, "FDB with shared port resources is not supported"); + rte_errno = EOPNOTSUPP; + return rte_errno; + } + + return 0; +} + +static int +mlx5dr_table_shared_gvmi_resource_create(struct mlx5dr_context *ctx, + enum mlx5dr_table_type type, + struct mlx5dr_context_shared_gvmi_res *gvmi_res) +{ + struct mlx5dr_cmd_ft_create_attr ft_attr = {0}; + uint32_t calculated_ft_id; + int ret; + + if (!mlx5dr_context_shared_gvmi_used(ctx)) + return 0; + + ft_attr.type = mlx5dr_table_get_res_fw_ft_type(type, false); + ft_attr.level = ctx->caps->nic_ft.max_level - 1; + ft_attr.rtc_valid = true; + + gvmi_res->end_ft = + mlx5dr_cmd_flow_table_create(mlx5dr_context_get_local_ibv(ctx), + &ft_attr); + if (!gvmi_res->end_ft) { + DR_LOG(ERR, "Failed to create end-ft"); + return rte_errno; + } + + calculated_ft_id = + mlx5dr_table_get_res_fw_ft_type(type, false) << FT_ID_FT_TYPE_OFFSET; + calculated_ft_id |= gvmi_res->end_ft->id; + + /* create alias to that FT */ + ret = mlx5dr_matcher_create_aliased_obj(ctx, + ctx->local_ibv_ctx, + ctx->ibv_ctx, + ctx->caps->vhca_id, + calculated_ft_id, + MLX5_GENERAL_OBJ_TYPE_FT_ALIAS, + &gvmi_res->aliased_end_ft); + if (ret) { + DR_LOG(ERR, "Failed to create alias end-ft"); + goto free_end_ft; + } + + return 0; + +free_end_ft: + mlx5dr_cmd_destroy_obj(gvmi_res->end_ft); + + return rte_errno; +} + +static void +mlx5dr_table_shared_gvmi_resourse_destroy(struct mlx5dr_context *ctx, + struct mlx5dr_context_shared_gvmi_res *gvmi_res) +{ + if (!mlx5dr_context_shared_gvmi_used(ctx)) + return; + + if (gvmi_res->aliased_end_ft) { + mlx5dr_cmd_destroy_obj(gvmi_res->aliased_end_ft); + gvmi_res->aliased_end_ft = NULL; + } + if (gvmi_res->end_ft) { + mlx5dr_cmd_destroy_obj(gvmi_res->end_ft); + gvmi_res->end_ft = NULL; + } +} + +/* called under spinlock ctx->ctrl_lock */ +static struct mlx5dr_context_shared_gvmi_res * +mlx5dr_table_get_shared_gvmi_res(struct mlx5dr_context *ctx, enum mlx5dr_table_type type) +{ + int ret; + + if (!mlx5dr_context_shared_gvmi_used(ctx)) + return NULL; + + if (ctx->gvmi_res[type].aliased_end_ft) { + ctx->gvmi_res[type].refcount++; + return &ctx->gvmi_res[type]; + } + + ret = mlx5dr_table_shared_gvmi_resource_create(ctx, type, &ctx->gvmi_res[type]); + if (ret) { + DR_LOG(ERR, "Failed to create shared gvmi res for type: %d", type); + goto out; + } + + ctx->gvmi_res[type].refcount = 1; + + return &ctx->gvmi_res[type]; + +out: + return NULL; +} + +/* called under spinlock ctx->ctrl_lock */ +static void mlx5dr_table_put_shared_gvmi_res(struct mlx5dr_table *tbl) +{ + struct mlx5dr_context *ctx = tbl->ctx; + + if (!mlx5dr_context_shared_gvmi_used(ctx)) + return; + + if (--ctx->gvmi_res[tbl->type].refcount) + return; + + mlx5dr_table_shared_gvmi_resourse_destroy(ctx, &ctx->gvmi_res[tbl->type]); +} + +static void mlx5dr_table_uninit_shared_ctx_res(struct mlx5dr_table *tbl) +{ + struct mlx5dr_context *ctx = tbl->ctx; + + if (!mlx5dr_context_shared_gvmi_used(ctx)) + return; + + mlx5dr_cmd_destroy_obj(tbl->local_ft); + + mlx5dr_table_put_shared_gvmi_res(tbl); +} + +/* called under spin_lock ctx->ctrl_lock */ +static int mlx5dr_table_init_shared_ctx_res(struct mlx5dr_context *ctx, struct mlx5dr_table *tbl) +{ + if (!mlx5dr_context_shared_gvmi_used(ctx)) + return 0; + + /* create local-ft for root access */ + tbl->local_ft = + mlx5dr_table_create_default_ft(mlx5dr_context_get_local_ibv(ctx), tbl); + if (!tbl->local_ft) { + DR_LOG(ERR, "Failed to create local-ft"); + return rte_errno; + } + + if (!mlx5dr_table_get_shared_gvmi_res(tbl->ctx, tbl->type)) { + DR_LOG(ERR, "Failed to shared gvmi resources"); + goto clean_local_ft; + } + + return 0; + +clean_local_ft: + mlx5dr_table_destroy_default_ft(tbl, tbl->local_ft); + return rte_errno; +} + void mlx5dr_table_destroy_default_ft(struct mlx5dr_table *tbl, struct mlx5dr_devx_obj *ft_obj) { @@ -143,11 +310,9 @@ static int mlx5dr_table_init(struct mlx5dr_table *tbl) if (mlx5dr_table_is_root(tbl)) return 0; - if (!(tbl->ctx->flags & MLX5DR_CONTEXT_FLAG_HWS_SUPPORT)) { - DR_LOG(ERR, "HWS not supported, cannot create mlx5dr_table"); - rte_errno = EOPNOTSUPP; - return rte_errno; - } + ret = mlx5dr_table_init_check_hws_support(ctx, tbl); + if (ret) + return ret; switch (tbl->type) { case MLX5DR_TABLE_TYPE_NIC_RX: @@ -165,7 +330,7 @@ static int mlx5dr_table_init(struct mlx5dr_table *tbl) } pthread_spin_lock(&ctx->ctrl_lock); - tbl->ft = mlx5dr_table_create_default_ft(tbl); + tbl->ft = mlx5dr_table_create_default_ft(tbl->ctx->ibv_ctx, tbl); if (!tbl->ft) { DR_LOG(ERR, "Failed to create flow table devx object"); pthread_spin_unlock(&ctx->ctrl_lock); @@ -175,10 +340,17 @@ static int mlx5dr_table_init(struct mlx5dr_table *tbl) ret = mlx5dr_action_get_default_stc(ctx, tbl->type); if (ret) goto tbl_destroy; + + ret = mlx5dr_table_init_shared_ctx_res(ctx, tbl); + if (ret) + goto put_stc; + pthread_spin_unlock(&ctx->ctrl_lock); return 0; +put_stc: + mlx5dr_action_put_default_stc(ctx, tbl->type); tbl_destroy: mlx5dr_table_destroy_default_ft(tbl, tbl->ft); pthread_spin_unlock(&ctx->ctrl_lock); @@ -192,6 +364,7 @@ static void mlx5dr_table_uninit(struct mlx5dr_table *tbl) pthread_spin_lock(&tbl->ctx->ctrl_lock); mlx5dr_action_put_default_stc(tbl->ctx, tbl->type); mlx5dr_table_destroy_default_ft(tbl, tbl->ft); + mlx5dr_table_uninit_shared_ctx_res(tbl); pthread_spin_unlock(&tbl->ctx->ctrl_lock); } diff --git a/drivers/net/mlx5/hws/mlx5dr_table.h b/drivers/net/mlx5/hws/mlx5dr_table.h index 786dddfaa4..362d8a9048 100644 --- a/drivers/net/mlx5/hws/mlx5dr_table.h +++ b/drivers/net/mlx5/hws/mlx5dr_table.h @@ -10,6 +10,7 @@ struct mlx5dr_table { struct mlx5dr_context *ctx; struct mlx5dr_devx_obj *ft; + struct mlx5dr_devx_obj *local_ft; enum mlx5dr_table_type type; uint32_t fw_ft_type; uint32_t level; @@ -37,7 +38,8 @@ static inline bool mlx5dr_table_is_root(struct mlx5dr_table *tbl) return (tbl->level == MLX5DR_ROOT_LEVEL); } -struct mlx5dr_devx_obj *mlx5dr_table_create_default_ft(struct mlx5dr_table *tbl); +struct mlx5dr_devx_obj *mlx5dr_table_create_default_ft(struct ibv_context *ibv, + struct mlx5dr_table *tbl); void mlx5dr_table_destroy_default_ft(struct mlx5dr_table *tbl, struct mlx5dr_devx_obj *ft_obj); From patchwork Thu Jan 5 13:03:02 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Erez Shitrit X-Patchwork-Id: 121621 X-Patchwork-Delegate: rasland@nvidia.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id B3BB9A00C2; Thu, 5 Jan 2023 14:04:46 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 3F29442D3C; Thu, 5 Jan 2023 14:04:15 +0100 (CET) Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on2089.outbound.protection.outlook.com [40.107.93.89]) by mails.dpdk.org (Postfix) with ESMTP id 76CFC42D35 for ; Thu, 5 Jan 2023 14:04:13 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MaZR57r890jV1g5DAZOnQ14xVopeigVupYFlbujozPYknvZvKAo8D+PJH1PeTGPGPuAL3E3i0bRUoi9LZpKWF3h+MkNchxP7Sot8rdFI97eQ7EJVIRd1nQ96xDmyaqM8obVZcnAFf5L12+5M9T05dvrv6SbqU+7/e7luy1io4E1HZGzdHdVkzd99nMGtT2F6AOAo71UTDjNaBHU96SGVqR2U/T/vwzlTaIGCp+IZ06YvUug6Wd1SzGfUV1/WPDqOb1zuwXMdQ1Ej5AS6GztGbciw93R0R00aX4x4THBNmT5Bqq5MJbGswckVtUHvWb5H8Rbt8fzW6fJTPJ9wyZr3dg== 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=Iy6SNKF2FYZ4LIf3dHsKBIis9W+SjxUrTHWxIjqQUHI=; b=i1PgcBVB9K9A5R5/gVnk8fecKCyKdC1ZiTqY+SKBomj9xaPa1HCIe2rMx5HObyTqoQXJZ24DwdVjSc6JFxa9jfryQyZ8HFXNA3HV+vF0RNp7JKhKyLFuEfxQEvGIFmouC3Cf135RfWgoQ0ut2Tk/R+AvM8nhLE8ZVEsC7aktpLifHnLz8AIeDbRqK+Q8bzzSU0Txvln+lWj1v+DBeVHle9o2f0cStzi8PKrilLgD4MAbOalqzUhV2rz6PjAgVRW6V0u8QMBDedb+MvpdD5aqHzP0E53miJJg3kHLsaX9INsmT30dnE+i19V69i6WEeTvymF7ne2kxYvIMDW92t//FQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.160) smtp.rcpttodomain=dpdk.org smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Iy6SNKF2FYZ4LIf3dHsKBIis9W+SjxUrTHWxIjqQUHI=; b=FUdgV6DurcxaZMf4Gaw+qEGoQtC48MSdoI607dLE/dstLa4E4q3fjtI/jDkFhXzA5SUH48DmsEuep2w0utvXz1MF1lbbCCNXJeNF2BPei7LIDKiuahqvpnrTSu4FO8Osm7jSD97s5Jv1zqoox0Dd+LPl+Uq9iu/GQd6xWbw9h/q6O8ouyHHVY2qVy8l3TF0pXVi0khX7GCDH/lf6oU6zUHC7EcP4lprTJch5aKvjiIuPVMYFq0lna6nJip3RylAjuCZDMrwNc6u1WdTYikEp4gUo4FM12ydv7J75IP/scdwcMJJy4m9a4nVrKUWOslOKRkDburVxxaXrIsY25x2sFg== Received: from BN9PR03CA0124.namprd03.prod.outlook.com (2603:10b6:408:fe::9) by BY5PR12MB4291.namprd12.prod.outlook.com (2603:10b6:a03:20c::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.19; Thu, 5 Jan 2023 13:04:11 +0000 Received: from BN8NAM11FT103.eop-nam11.prod.protection.outlook.com (2603:10b6:408:fe:cafe::99) by BN9PR03CA0124.outlook.office365.com (2603:10b6:408:fe::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5986.14 via Frontend Transport; Thu, 5 Jan 2023 13:04:10 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.160) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.160 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.160; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.160) by BN8NAM11FT103.mail.protection.outlook.com (10.13.176.181) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5966.17 via Frontend Transport; Thu, 5 Jan 2023 13:04:09 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.66) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.36; Thu, 5 Jan 2023 05:03:59 -0800 Received: from nvidia.com (10.126.231.37) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.36; Thu, 5 Jan 2023 05:03:57 -0800 From: Erez Shitrit To: CC: , , Matan Azrad , Viacheslav Ovsiienko Subject: [PATCH v2 09/10] net/mlx5/hws: support actions while shared resources is used Date: Thu, 5 Jan 2023 15:03:02 +0200 Message-ID: <20230105130304.537205-10-erezsh@nvidia.com> X-Mailer: git-send-email 2.18.2 In-Reply-To: <20230105130304.537205-1-erezsh@nvidia.com> References: <20221219082416.2223812-3-erezsh@nvidia.com> <20230105130304.537205-1-erezsh@nvidia.com> MIME-Version: 1.0 X-Originating-IP: [10.126.231.37] X-ClientProxiedBy: rnnvmail202.nvidia.com (10.129.68.7) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN8NAM11FT103:EE_|BY5PR12MB4291:EE_ X-MS-Office365-Filtering-Correlation-Id: 76dad0ba-660d-4dc9-9a9b-08daef1d55c1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: pE7JwyEpQ6V4Fua2Th0gF6l9yDUeGVTx3gjeFb1m09+mNuhOv1v27NtslPFp7tMosUHINAJusI11eb14O0osZb59TGzZixz15TI0UsPxf53qal/kCqUDP052uL4OQeuQ1mv1kKOsGaBGczQp4o1eaxLltbAZP1MjyJ7gbaagSKVp9StsY5ujWg+OTjH1uY3RhQP9izup94tUunIymMentw2rwS41xNRK7hkmQ5KXJ0ks+ELryRnEl9du11YFKqCA6RZTh6aZEduuAS1BohsrbmmZvCMnl0AS6kIO8bt+wbUkin5rGVYPUbSGn8R4xmIVXD1GOEgv+enHQSQAZcd3A4RK9z4zAXwsH8N1X9jXexU+zYsAMu1z3c8AGcozZ0MehQoVJCw6FrYp+o49BAdrHfVQ6VRuJXEk9D3lXBmPSJRbtA16Pb6baunXvMx7tCFcfCnsNkgd9uE+0r/gTXDVSX6ahMrYTGXme1wp8FOi9EdngZR+VpUe+KjH+rqE/xcIh3Snt5T2I0NYV2b12RL9idOwkwiUfOfYvY3BDh054RAYJHGBJ3SOc+AoJdsm75Mo/WPqrpo6rWU49CYLlXkHNmPz9j31LaAzjAKkovq5DVgbdEpQ+WUUWPpBzCSxRGfK4ekMR168D93M0H6y4cOG5KC5q+SWn6SrBZxDD2eGOgYfDx6H2njoaXxW7IJJxGDNjTQj+RKNa1Vd/M4/GRAr1g== X-Forefront-Antispam-Report: CIP:216.228.117.160; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc6edge1.nvidia.com; CAT:NONE; SFS:(13230022)(4636009)(376002)(396003)(346002)(136003)(39860400002)(451199015)(36840700001)(46966006)(40470700004)(5660300002)(6286002)(8936002)(426003)(47076005)(16526019)(82310400005)(41300700001)(2906002)(186003)(83380400001)(36860700001)(26005)(336012)(6666004)(82740400003)(356005)(7636003)(8676002)(70586007)(70206006)(107886003)(4326008)(478600001)(1076003)(40460700003)(2616005)(6916009)(86362001)(316002)(36756003)(7696005)(40480700001)(54906003)(55016003); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jan 2023 13:04:09.5844 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 76dad0ba-660d-4dc9-9a9b-08daef1d55c1 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.117.160]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: BN8NAM11FT103.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR12MB4291 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org TIR/FT actions are different in the context of shared ibv resource, it created on the local ibv_context and aliased to the shared ibv_context. Other actions should be created on the shared ibv resource, new flag was added to indicates where this object came from. Signed-off-by: Erez Shitrit Reviewed-by: Alex Vesker Acked-by: Viacheslav Ovsiienko --- drivers/net/mlx5/hws/mlx5dr.h | 5 ++- drivers/net/mlx5/hws/mlx5dr_action.c | 60 ++++++++++++++++++++++++++-- drivers/net/mlx5/hws/mlx5dr_action.h | 3 ++ drivers/net/mlx5/mlx5_devx.c | 2 +- 4 files changed, 64 insertions(+), 6 deletions(-) diff --git a/drivers/net/mlx5/hws/mlx5dr.h b/drivers/net/mlx5/hws/mlx5dr.h index aa36e3111f..c0f9a5e984 100644 --- a/drivers/net/mlx5/hws/mlx5dr.h +++ b/drivers/net/mlx5/hws/mlx5dr.h @@ -410,12 +410,15 @@ mlx5dr_action_create_dest_vport(struct mlx5dr_context *ctx, * Direct rule TIR devx object. * @param[in] flags * Action creation flags. (enum mlx5dr_action_flags) + * @param[in] is_local + * indicates where the tir object was created, local gvmi or other gvmi * @return pointer to mlx5dr_action on success NULL otherwise. */ struct mlx5dr_action * mlx5dr_action_create_dest_tir(struct mlx5dr_context *ctx, struct mlx5dr_devx_obj *obj, - uint32_t flags); + uint32_t flags, + bool is_local); /* Create direct rule TAG action. * diff --git a/drivers/net/mlx5/hws/mlx5dr_action.c b/drivers/net/mlx5/hws/mlx5dr_action.c index da19c1ca7d..2db62635c1 100644 --- a/drivers/net/mlx5/hws/mlx5dr_action.c +++ b/drivers/net/mlx5/hws/mlx5dr_action.c @@ -744,7 +744,10 @@ mlx5dr_action_create_dest_table(struct mlx5dr_context *ctx, return NULL; if (mlx5dr_action_is_root_flags(flags)) { - action->devx_obj = tbl->ft->obj; + if (mlx5dr_context_shared_gvmi_used(ctx)) + action->devx_obj = tbl->local_ft->obj; + else + action->devx_obj = tbl->ft->obj; } else { ret = mlx5dr_action_create_stcs(action, tbl->ft); if (ret) @@ -758,10 +761,38 @@ mlx5dr_action_create_dest_table(struct mlx5dr_context *ctx, return NULL; } +static int mlx5dr_action_get_dest_tir_obj(struct mlx5dr_context *ctx, + struct mlx5dr_action *action, + struct mlx5dr_devx_obj *obj, + struct mlx5dr_devx_obj **ret_obj) +{ + int ret; + + if (mlx5dr_context_shared_gvmi_used(ctx)) { + ret = mlx5dr_matcher_create_aliased_obj(ctx, + ctx->local_ibv_ctx, + ctx->ibv_ctx, + ctx->caps->vhca_id, + obj->id, + MLX5_GENERAL_OBJ_TYPE_TIR_ALIAS, + &action->alias.devx_obj); + if (ret) { + DR_LOG(ERR, "Failed to create tir alias"); + return rte_errno; + } + *ret_obj = action->alias.devx_obj; + } else { + *ret_obj = obj; + } + + return 0; +} + struct mlx5dr_action * mlx5dr_action_create_dest_tir(struct mlx5dr_context *ctx, struct mlx5dr_devx_obj *obj, - uint32_t flags) + uint32_t flags, + bool is_local) { struct mlx5dr_action *action; int ret; @@ -773,6 +804,13 @@ mlx5dr_action_create_dest_tir(struct mlx5dr_context *ctx, return NULL; } + if (!is_local) { + DR_LOG(ERR, "TIR should be created on local ibv_device, flags: 0x%x", + flags); + rte_errno = ENOTSUP; + return NULL; + } + action = mlx5dr_action_create_generic(ctx, flags, MLX5DR_ACTION_TYP_TIR); if (!action) return NULL; @@ -780,13 +818,23 @@ mlx5dr_action_create_dest_tir(struct mlx5dr_context *ctx, if (mlx5dr_action_is_root_flags(flags)) { action->devx_obj = obj->obj; } else { - ret = mlx5dr_action_create_stcs(action, obj); - if (ret) + struct mlx5dr_devx_obj *cur_obj = NULL; /*compilation warn*/ + + ret = mlx5dr_action_get_dest_tir_obj(ctx, action, obj, &cur_obj); + if (ret) { + DR_LOG(ERR, "Failed to create tir alias (flags: %d)", flags); goto free_action; + } + + ret = mlx5dr_action_create_stcs(action, cur_obj); + if (ret) + goto clean_obj; } return action; +clean_obj: + mlx5dr_cmd_destroy_obj(action->alias.devx_obj); free_action: simple_free(action); return NULL; @@ -1589,6 +1637,10 @@ static void mlx5dr_action_destroy_hws(struct mlx5dr_action *action) { switch (action->type) { case MLX5DR_ACTION_TYP_TIR: + mlx5dr_action_destroy_stcs(action); + if (mlx5dr_context_shared_gvmi_used(action->ctx)) + mlx5dr_cmd_destroy_obj(action->alias.devx_obj); + break; case MLX5DR_ACTION_TYP_MISS: case MLX5DR_ACTION_TYP_TAG: case MLX5DR_ACTION_TYP_DROP: diff --git a/drivers/net/mlx5/hws/mlx5dr_action.h b/drivers/net/mlx5/hws/mlx5dr_action.h index 9a4827481a..17619c0057 100644 --- a/drivers/net/mlx5/hws/mlx5dr_action.h +++ b/drivers/net/mlx5/hws/mlx5dr_action.h @@ -138,6 +138,9 @@ struct mlx5dr_action { uint16_t vport_num; uint16_t esw_owner_vhca_id; } vport; + struct { + struct mlx5dr_devx_obj *devx_obj; + } alias; }; }; diff --git a/drivers/net/mlx5/mlx5_devx.c b/drivers/net/mlx5/mlx5_devx.c index 02deaac612..f6e1943fd7 100644 --- a/drivers/net/mlx5/mlx5_devx.c +++ b/drivers/net/mlx5/mlx5_devx.c @@ -913,7 +913,7 @@ mlx5_devx_hrxq_new(struct rte_eth_dev *dev, struct mlx5_hrxq *hrxq, if (hrxq->hws_flags) { hrxq->action = mlx5dr_action_create_dest_tir (priv->dr_ctx, - (struct mlx5dr_devx_obj *)hrxq->tir, hrxq->hws_flags); + (struct mlx5dr_devx_obj *)hrxq->tir, hrxq->hws_flags, true); if (!hrxq->action) goto error; return 0; From patchwork Thu Jan 5 13:03:03 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Erez Shitrit X-Patchwork-Id: 121622 X-Patchwork-Delegate: rasland@nvidia.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 74A22A00C2; Thu, 5 Jan 2023 14:04:53 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 48CE542D42; Thu, 5 Jan 2023 14:04:20 +0100 (CET) Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2061.outbound.protection.outlook.com [40.107.244.61]) by mails.dpdk.org (Postfix) with ESMTP id 48C4042D22 for ; Thu, 5 Jan 2023 14:04:18 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hY97kSWdwSHjrNMgr+AkneCs36w3OmUhg6EF++liZX1/c5aCa18LC0zjm2iEIg7bkqHBXk4I/36wFrHF9v8Ck/4NewWBJ/c9OQRgDg43Gj7ic7ajMZZjmg6CvzlbZB/taH1Zj/tkSxukljz64zD7wnrwrQi6TS6YGBDozC7fw6wtbhpIs3iOF03y5beneyxQ/eCT+dkMIWJx3NKwdy3+VNLSiAMzbpWFgjK9lhnNQYbSrJlAe9e9JAxk7iriHN7CSQ2gmPs+Gs3IOt6lBAJfctwbwkZBdjw6MvBCpHSeo+QSqgax+CuO4UDiQXMy7qS/GJMMw/HZxDZhB3k1j/t01Q== 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=QJPrFLIAPvXDSotaWGd62HcYXEKWZyhTdlaIFs01ftU=; b=lHmhXIVo3FttEYzRlR0INVLOzSX+Bw4LdBTPiqz+YqZwjk4+pqSPd2ToH++vdxtPYC0L0Eo7liK5n4P7izrYxUz4YI5Ew1ddNCegeydk5kY+hOjA+iPPBCh1D+cI34AWiraxmoOdv1KKntX/X3ZcRNBZldXduNDxYtC4Q5aDKsFXVQQDrj1WxuArfFkwjpDtrHXTkdzHi/wS235Ayp13A5Xqtf6qJdDCBXE45oJyvtnLwOG+pW8u7BNY5xM9pPYa3srW+ZUX5xuYHW0hU86edxWCZpECY2LHiNsW6+UECXzP+kOAI25uaoecQGxxy24JAsrrsF6OzedKVMCW20usjg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.160) smtp.rcpttodomain=dpdk.org smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=QJPrFLIAPvXDSotaWGd62HcYXEKWZyhTdlaIFs01ftU=; b=GTtNlG+nX7+PKSga6UfKgntPxIRoDqrERZIA68lIn3YCvqTg43wEfZJ3DXLCyDjSmXVtRNeXCXV9KMjHDzBhuIBMUMiRX6vdlQqTiG95RodlMXV8PaWRLsMNPWDFA1qXmRH2E+CfND3QG2k7+2yi4CqVLX1P70MuAN/0sH8JGTT+fcCB98HCXbnP90PPu4jTfg+vjKj6CVcURmkkEyJ3w2qz5OJvTBr+ieTugF5W18ASAiijqVR3wzdDB8jWpJNKC8YC71zPXDHS9zQdTMW9V1vhqoFBSFk2rZIVGoSpLBktPWY2+rG8KE/JKRrsx396f0DCuTR/qdYUJWQxxP9/wA== Received: from BN9PR03CA0246.namprd03.prod.outlook.com (2603:10b6:408:ff::11) by CY5PR12MB6574.namprd12.prod.outlook.com (2603:10b6:930:42::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.19; Thu, 5 Jan 2023 13:04:14 +0000 Received: from BN8NAM11FT030.eop-nam11.prod.protection.outlook.com (2603:10b6:408:ff:cafe::d5) by BN9PR03CA0246.outlook.office365.com (2603:10b6:408:ff::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5986.15 via Frontend Transport; Thu, 5 Jan 2023 13:04:14 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.160) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.160 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.160; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.160) by BN8NAM11FT030.mail.protection.outlook.com (10.13.177.146) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5966.17 via Frontend Transport; Thu, 5 Jan 2023 13:04:14 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.66) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.36; Thu, 5 Jan 2023 05:04:03 -0800 Received: from nvidia.com (10.126.231.37) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.36; Thu, 5 Jan 2023 05:04:00 -0800 From: Erez Shitrit To: CC: , , Hamdan Igbaria , Matan Azrad , Viacheslav Ovsiienko Subject: [PATCH v2 10/10] net/mlx5/hws: add debug details for cross gvmi Date: Thu, 5 Jan 2023 15:03:03 +0200 Message-ID: <20230105130304.537205-11-erezsh@nvidia.com> X-Mailer: git-send-email 2.18.2 In-Reply-To: <20230105130304.537205-1-erezsh@nvidia.com> References: <20221219082416.2223812-3-erezsh@nvidia.com> <20230105130304.537205-1-erezsh@nvidia.com> MIME-Version: 1.0 X-Originating-IP: [10.126.231.37] X-ClientProxiedBy: rnnvmail202.nvidia.com (10.129.68.7) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN8NAM11FT030:EE_|CY5PR12MB6574:EE_ X-MS-Office365-Filtering-Correlation-Id: c407db73-f94c-4e2a-7fea-08daef1d5885 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: U6zXkIpl/jiybq03c9rJYNTLOxxlnp985603wUefdRUgOMrvOikRiVcf7jqZQ55LSDKbXQeiGxiVAmG8Ak3k74MoeovnhNemcj35/Z+WDM8oxy4uGTbUBhqSLigOxoaILC6bxfHqhI+PjoTX3uhTzM9NgfBiTptzYwdUfUlkrEU+0rpv3Nxw5cAR/oez39BysHgzwSmJgcDQ1yF7sFbZGZW3k0CZ7YPPE3YJPibY7IjpQG2tkvZZak/fy6Q+YxLi/YPNyXcrUtR6ZODVDWAI0xJ1kWptjrqCGOI7bH/2GV7nwBQGtSnkLtewwwI2KiLAD6RDCDmzlqDs7plF3r23Dw32sX4tYFYUdzTmUk6RwMf1e5vG8CHHC2clcAKsZoLO6Js8RoYRXKvTZz6V5BqXvwdeuwPgp/qbJDFYJHbpqtBkobsG3MYuoh8DOf1rdsCF5avcQRAJuTWArqko390/oOP3YCgCJzDwG499BKQnc/LzcrNGQV614GK5aC/eD8zwlDtSQSrsw+HO1x1flLICXKfIBrubm97BmObJxHd+peede3opFya7qDTbacmPXZ4vswhPg3yiBDOi/8vfGhtcV/dMzGO4ToK687usTMvpzXGtfogTyAub62GmQZG3iDpalwfAPQNAnjXgyPXVFCfrE8fl9PdkV1K06+71AinDafGZ9jUSTkkPLLEQrmN0fXfp5vsTYt+1QAxJnHGfuKzPiw== X-Forefront-Antispam-Report: CIP:216.228.117.160; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc6edge1.nvidia.com; CAT:NONE; SFS:(13230022)(4636009)(39860400002)(376002)(346002)(396003)(136003)(451199015)(40470700004)(36840700001)(46966006)(47076005)(426003)(6286002)(55016003)(16526019)(1076003)(336012)(26005)(107886003)(2616005)(186003)(82310400005)(40480700001)(7696005)(83380400001)(86362001)(36756003)(36860700001)(40460700003)(7636003)(356005)(82740400003)(478600001)(8676002)(4326008)(41300700001)(8936002)(2906002)(5660300002)(70206006)(6916009)(54906003)(316002)(70586007); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jan 2023 13:04:14.2549 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: c407db73-f94c-4e2a-7fea-08daef1d5885 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.117.160]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: BN8NAM11FT030.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR12MB6574 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org For context, table and matcher. Signed-off-by: Erez Shitrit Signed-off-by: Hamdan Igbaria Reviewed-by: Alex Vesker Acked-by: Viacheslav Ovsiienko --- drivers/net/mlx5/hws/mlx5dr_debug.c | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/drivers/net/mlx5/hws/mlx5dr_debug.c b/drivers/net/mlx5/hws/mlx5dr_debug.c index 55011c208d..239dfcae46 100644 --- a/drivers/net/mlx5/hws/mlx5dr_debug.c +++ b/drivers/net/mlx5/hws/mlx5dr_debug.c @@ -177,6 +177,7 @@ mlx5dr_debug_dump_matcher_attr(FILE *f, struct mlx5dr_matcher *matcher) static int mlx5dr_debug_dump_matcher(FILE *f, struct mlx5dr_matcher *matcher) { + bool is_shared = mlx5dr_context_shared_gvmi_used(matcher->tbl->ctx); bool is_root = matcher->tbl->level == MLX5DR_ROOT_LEVEL; enum mlx5dr_table_type tbl_type = matcher->tbl->type; struct mlx5dr_devx_obj *ste_0, *ste_1 = NULL; @@ -205,11 +206,13 @@ static int mlx5dr_debug_dump_matcher(FILE *f, struct mlx5dr_matcher *matcher) ste_1 = NULL; } - ret = fprintf(f, ",%d,%d,%d,%d", + ret = fprintf(f, ",%d,%d,%d,%d,%d", matcher->match_ste.rtc_0 ? matcher->match_ste.rtc_0->id : 0, ste_0 ? (int)ste_0->id : -1, matcher->match_ste.rtc_1 ? matcher->match_ste.rtc_1->id : 0, - ste_1 ? (int)ste_1->id : -1); + ste_1 ? (int)ste_1->id : -1, + is_shared && !is_root ? + matcher->match_ste.aliased_rtc_0->id : 0); if (ret < 0) goto out_err; @@ -253,18 +256,20 @@ static int mlx5dr_debug_dump_matcher(FILE *f, struct mlx5dr_matcher *matcher) static int mlx5dr_debug_dump_table(FILE *f, struct mlx5dr_table *tbl) { + bool is_shared = mlx5dr_context_shared_gvmi_used(tbl->ctx); bool is_root = tbl->level == MLX5DR_ROOT_LEVEL; struct mlx5dr_matcher *matcher; int ret; - ret = fprintf(f, "%d,0x%" PRIx64 ",0x%" PRIx64 ",%d,%d,%d,%d\n", + ret = fprintf(f, "%d,0x%" PRIx64 ",0x%" PRIx64 ",%d,%d,%d,%d,%d\n", MLX5DR_DEBUG_RES_TYPE_TABLE, (uint64_t)(uintptr_t)tbl, (uint64_t)(uintptr_t)tbl->ctx, is_root ? 0 : tbl->ft->id, tbl->type, is_root ? 0 : tbl->fw_ft_type, - tbl->level); + tbl->level, + is_shared && !is_root ? tbl->local_ft->id : 0); if (ret < 0) { rte_errno = EINVAL; return rte_errno; @@ -383,12 +388,17 @@ static int mlx5dr_debug_dump_context_attr(FILE *f, struct mlx5dr_context *ctx) { int ret; - ret = fprintf(f, "%u,0x%" PRIx64 ",%d,%zu,%d\n", + ret = fprintf(f, "%u,0x%" PRIx64 ",%d,%zu,%d,%s,%d,%d\n", MLX5DR_DEBUG_RES_TYPE_CONTEXT_ATTR, (uint64_t)(uintptr_t)ctx, ctx->pd_num, ctx->queues, - ctx->send_queue->num_entries); + ctx->send_queue->num_entries, + mlx5dr_context_shared_gvmi_used(ctx) ? + mlx5_glue->get_device_name(ctx->ibv_ctx->device) : "None", + ctx->caps->vhca_id, + mlx5dr_context_shared_gvmi_used(ctx) ? + ctx->caps->shared_vhca_id : 0xffff); if (ret < 0) { rte_errno = EINVAL; return rte_errno;