From patchwork Tue Feb 20 14:10:05 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bing Zhao X-Patchwork-Id: 136926 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 E0D1A43B54; Tue, 20 Feb 2024 15:11:09 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id D1996406BC; Tue, 20 Feb 2024 15:11:09 +0100 (CET) Received: from NAM02-DM3-obe.outbound.protection.outlook.com (mail-dm3nam02on2069.outbound.protection.outlook.com [40.107.95.69]) by mails.dpdk.org (Postfix) with ESMTP id A588B409FA for ; Tue, 20 Feb 2024 15:11:08 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=HwexzbL8zkb1W084kAYDhQcreSv9Px6s1GzX/UN76qvkO6FWe697Z+hyoFEnol8HegGs6Qj9jvdWU7DMq+xiXy2v5XtQYXDEvUAL1vZ9Z7DmtwtKY9LQrpcnLHggXKbrn10UFzfPtjrFZ5lElg5ckp0w/vjztzPd1omZ2mR7OlicdnVb8qzmzAK0Qkgrr9boeIDjJU2ERImDkDOen1n3zpUqs6ZXRrkoe4Nr1nAYLUE1VWC7SqcG81bYXc70nt1RzS7m/LY5Zw31sXWpl3w0gKpY9roVlICu+C3nKSG3TTl0nKUCyLO/NuWY9GUDHLlB+zMfvE+PwSUVdC+USRQ4Fg== 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=ISsGRpNSM0iS647UnSP/Z+xh3YBqvlc3068K/SCE+Qs=; b=NMgSB3RBUn1T6tMopbYOjUNT+ITUOBBuO3zzu+HAbpdIal6Pgfe98WLhzRJ/lOzC49QTg2q+ebS0VDN7IjZ7HRols95+vkfF/iKbPgKxgWiDm0hmz9lzkTmUgfF1qdcDITDaraQ67ry6tn0bW61/+wQo/sghij3rBTOEp69CqZvQMz/18a9/ehzFYtD/cRWZ5d8WVRX7h8eIVobHezpCU89xJ886MW668/WJ6nl6QnLmNo+hMcqdE+FPJMIvgJ6Q9GEHq/x8jKOnsLQLTSPSDwLeCKr81xfHHNxZL0okt5X9848tKsepfx0YaPCCJvt0jbJd9JaBipIk1wifyRXTnA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=intel.com 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 (0) 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=ISsGRpNSM0iS647UnSP/Z+xh3YBqvlc3068K/SCE+Qs=; b=QYH0uMvV86ByQ4nmADQYP/5jw2nKZuLWz+AduXh7eqBCno6AkOdNcY6ahZbYpLLNdQ2yrXPeE8VwEdylRu8baz1F6Zk1kmSGR5pEYbXkQ9zgMHoeRrA+Jw6PgA5aveQl1vTPomKW7sZxGZzOJ2V/1MkQPr7lxQa4ZGbuxtuNiRlUgh3UMmrrKPurhNc3Eh1XvFNr7CVZFny+DIq9okbD5M1AAQ0Llz+D68kJZIM5DjvlVD9gmfQNu4zmPMMRHhhabeNflA6BvHKoY/KJ34jLjRc/Oy6G/TuyK8Nnvf/08IQkv+8Y/cpqp2+w3mgbrXwpEVUEJRFzKbAbvjeglQh9DA== Received: from MW4PR03CA0226.namprd03.prod.outlook.com (2603:10b6:303:b9::21) by IA1PR12MB8334.namprd12.prod.outlook.com (2603:10b6:208:3ff::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7316.20; Tue, 20 Feb 2024 14:11:05 +0000 Received: from CO1PEPF000042AB.namprd03.prod.outlook.com (2603:10b6:303:b9:cafe::81) by MW4PR03CA0226.outlook.office365.com (2603:10b6:303:b9::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7292.40 via Frontend Transport; Tue, 20 Feb 2024 14:11:05 +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 CO1PEPF000042AB.mail.protection.outlook.com (10.167.243.40) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7292.25 via Frontend Transport; Tue, 20 Feb 2024 14:11:05 +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.41; Tue, 20 Feb 2024 06:10:46 -0800 Received: from nvidia.com (10.126.231.35) 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.1258.12; Tue, 20 Feb 2024 06:10:43 -0800 From: Bing Zhao To: , , , , , , , , , , Subject: [PATCH v2 2/5] net/mlx5: fetch the available registers for NAT64 Date: Tue, 20 Feb 2024 16:10:05 +0200 Message-ID: <20240220141008.292641-3-bingz@nvidia.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240220141008.292641-1-bingz@nvidia.com> References: <20231227090731.2569427-1-bingz@nvidia.com> <20240220141008.292641-1-bingz@nvidia.com> MIME-Version: 1.0 X-Originating-IP: [10.126.231.35] X-ClientProxiedBy: rnnvmail203.nvidia.com (10.129.68.9) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO1PEPF000042AB:EE_|IA1PR12MB8334:EE_ X-MS-Office365-Filtering-Correlation-Id: 0093d7db-752d-42dd-2119-08dc321dc73a X-LD-Processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: M6L9UVRlbWgmT49q84jIiA0pZrmtdTOGfBwuPiqXD182/jejMGl/x/Mqrh452uvl2l2nhOakYVtCCo5fyMUyG0vywnsCRK9pEDjqMJAOe9AZWInNjgNQIHBwMXB1ToY5Up8l1wA7NPc977k7CsnlKNUg0LP4yNbkk1OKObp4HCjxTzUy3WbiHKmPoUzQkw5WKFKDzrns67QL2T4PPglxgnCyAl/BWHrPbu+LKUYvwhKBPhYeBXZmIEG+Y7vSn8bgkh8D0S6uRQgiW4eDwy6wIGo8j1POmfToXvQ2LWduU1pql4LCSqBM2eUNgNg5i4q9+yfQ4XOvf9qL7S4/aoVww+vXttDLuM1GsWyHnffY5YjR/7toKvCof+J+OM18ZNuZrEAVPR4gDJ9Ra1wICQxGXjZrs00VZAkfV1jBhZtcsPV9wwdz6DvsNCmmcvsjF+co8nwEFVULcWoHx40R591wu2s9yXtTan3rKGWYgFdvkwWcaMl6k7UPyBrGBZbL4Pl2QFR23eqS1EWGr5oAlXMQe4As4C8iG/XL6+Wq5NM3Nk7cvTEskm44zifEkclnvh06pdrTet6/ipl7APRSgPIVXIto5i0pYOx6V8E4d/An3jYvvjRNHnkhip1RWJknKZrF6Hrcv2jTBPGTaSl8TxrxWDbXFK+iVgZsbSYkhFqn4Dw= 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:(13230031)(36860700004)(46966006)(40470700004)(921011); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Feb 2024 14:11:05.6277 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 0093d7db-752d-42dd-2119-08dc321dc73a 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: CO1PEPF000042AB.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB8334 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 REG_C_6 is used as the 1st one and since it is reserved internally by default, there is no impact. The remaining 2 registers will be fetched from the available TAGs array from right to left. They will not be masked in the array due to the fact that not all the rules will use NAT64 action. Signed-off-by: Bing Zhao --- drivers/net/mlx5/mlx5.c | 9 +++++++++ drivers/net/mlx5/mlx5.h | 2 ++ 2 files changed, 11 insertions(+) diff --git a/drivers/net/mlx5/mlx5.c b/drivers/net/mlx5/mlx5.c index 881c42a97a..9c3b9946e3 100644 --- a/drivers/net/mlx5/mlx5.c +++ b/drivers/net/mlx5/mlx5.c @@ -1644,6 +1644,15 @@ mlx5_init_hws_flow_tags_registers(struct mlx5_dev_ctx_shared *sh) if (!!((1 << i) & masks)) reg->hw_avl_tags[j++] = mlx5_regc_value(i); } + /* + * Set the registers for NAT64 usage internally. REG_C_6 is always used. + * The other 2 registers will be fetched from right to left, at least 2 + * tag registers should be available. + */ + MLX5_ASSERT(j >= (MLX5_FLOW_NAT64_REGS_MAX - 1)); + reg->nat64_regs[0] = REG_C_6; + reg->nat64_regs[1] = reg->hw_avl_tags[j - 2]; + reg->nat64_regs[2] = reg->hw_avl_tags[j - 1]; } static void diff --git a/drivers/net/mlx5/mlx5.h b/drivers/net/mlx5/mlx5.h index 5265d1aa1f..544cf35069 100644 --- a/drivers/net/mlx5/mlx5.h +++ b/drivers/net/mlx5/mlx5.h @@ -1407,10 +1407,12 @@ struct mlx5_hws_cnt_svc_mng { }; #define MLX5_FLOW_HW_TAGS_MAX 12 +#define MLX5_FLOW_NAT64_REGS_MAX 3 struct mlx5_dev_registers { enum modify_reg aso_reg; enum modify_reg hw_avl_tags[MLX5_FLOW_HW_TAGS_MAX]; + enum modify_reg nat64_regs[MLX5_FLOW_NAT64_REGS_MAX]; }; #if defined(HAVE_MLX5DV_DR) && \