From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 109BD45E41 for ; Sat, 7 Dec 2024 09:06:17 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 04E6740281; Sat, 7 Dec 2024 09:06:17 +0100 (CET) Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-sn1nam02on2072.outbound.protection.outlook.com [40.107.96.72]) by mails.dpdk.org (Postfix) with ESMTP id 17A0F40281 for ; Sat, 7 Dec 2024 09:06:16 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=UQfDzTHAtuqFO9SjmQzgCSHUGGa4Xo4gsdGJguB2OrOxnHy0fvoEVifGfqJ8qh9ZWmrLslqyYyOA7nUXad4yz+pkAxumd4SizxAgPW21kIIxbHbcgfax634GRnsar7KuY+YAnjkx3XeIkSBga6cSDLDHYItNT8ZAtXUzzL27L5qBguEQRTeW3F/TQCay5VkFKe3hT9cupxYsuDLaZwwmjiL/RC7AxZroTg7UsWpgBHOM/yFxqyOtOl8CkeIbF0HC0idmbrVsJqibw4q2NYVuP8mT68+FbaFNRbcgmptwNzQEP/ma+OwcDPn78yY0P6wtM5Lzo1lFcmnKlpCclJ7jKQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=mIHPPd3izp3Dgfjz+/JULtoA1kTP1ztYihqragSJYdQ=; b=Al+rC3GYFD+2adI6+uywkYnPk3mEIDS7x2i167q2bJWSKqla3dAIdCSLtY911YKl915jJZGck9otwml3RNiK4Vbqd0vfHmkiFq4VGIHPGRkzlIPccs/yn1Jhkt7ma5wOU4puumUGLfzK/XeTLo5S/r8n2cv+H8K2hCCEO8qf+bUd86F8w3jtlOF9MGrA3tDgZDBB+dr031HloF6vNRBbxKgyoR1qhG1/mMZINUJ7vUrdi/AfOrffvadR0HBZzcjx/JFGsN3X7b9ezW55P2G+rt8rLm/qKkHMYBX41nOS+Ug8UXyo29WqGItsnyD0mlIsD8S/2AECGAirUVNus1xKMQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=broadcom.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=mIHPPd3izp3Dgfjz+/JULtoA1kTP1ztYihqragSJYdQ=; b=tynDV9CtIG7/N7CCY6G0KfOgKuiXOeOUuezYA5xZeEJvASGQ/Zpnw4c8OUREaulxGh7IbIbwn7SVFBC04H8Fq90/WM1XOcPYt/dgJOVg0i8ipvsI5FSp1305gkMsbrHrq8Lil4ooZEr+g5f+CwPkfi4zwjpepZ2a5/g8qvkbYCCt8iBZ+a7yPnLGg2BToGl+2mz5KjR6dXBBAgSX1uBA8uznDM1C6s6suU79QL+FDkwcMJU0suHbZyv9Y+xb0SQinuKH0CbO2J3EQl0PBApuoh74UMfx02ByX4uCxvgdvNBFviJInJxCVAlhc3Hyy3DBlG7N2IxvvpeaNNvVAw08Hg== Received: from BN9PR03CA0122.namprd03.prod.outlook.com (2603:10b6:408:fe::7) by PH7PR12MB5620.namprd12.prod.outlook.com (2603:10b6:510:137::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8207.16; Sat, 7 Dec 2024 08:06:12 +0000 Received: from BL02EPF00021F69.namprd02.prod.outlook.com (2603:10b6:408:fe:cafe::c3) by BN9PR03CA0122.outlook.office365.com (2603:10b6:408:fe::7) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8207.13 via Frontend Transport; Sat, 7 Dec 2024 08:06:11 +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 BL02EPF00021F69.mail.protection.outlook.com (10.167.249.5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8230.7 via Frontend Transport; Sat, 7 Dec 2024 08:06:11 +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.1544.4; Sat, 7 Dec 2024 00:05:57 -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.1544.4; Sat, 7 Dec 2024 00:05:54 -0800 From: Xueming Li To: Shahaji Bhosle CC: Xueming Li , Sriharsha Basavapatna , Kishore Padmanabha , Randy Schacher , Ajit Khaparde , dpdk stable Subject: patch 'net/bnxt/tf_core: fix WC TCAM multi-slice delete' has been queued to stable release 23.11.3 Date: Sat, 7 Dec 2024 16:00:09 +0800 Message-ID: <20241207080055.488538-52-xuemingl@nvidia.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20241207080055.488538-1-xuemingl@nvidia.com> References: <20241111062847.216344-122-xuemingl@nvidia.com> <20241207080055.488538-1-xuemingl@nvidia.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Originating-IP: [10.126.231.35] X-ClientProxiedBy: rnnvmail201.nvidia.com (10.129.68.8) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL02EPF00021F69:EE_|PH7PR12MB5620:EE_ X-MS-Office365-Filtering-Correlation-Id: 5077791b-2db8-4eb0-7232-08dd16960387 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|1800799024|36860700013|376014|82310400026|7053199007; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?ZYcVW94TCs61/H7opKeeLIC9IpgKidfG9VzBc0p0Q+OtiFV+uiJp62awqt/G?= =?us-ascii?Q?4OF3LD8nUvbVwfajKLFtQq/fMnS35efazIPYSUXup3Ke7IbKzVSJH7zJfiGt?= =?us-ascii?Q?/FcCjSqDZonl83tZOxkS1p/FVynai/cwFkiRZSuPyKGAAtcggrStv8BkwOcH?= =?us-ascii?Q?X/NM/RGZN1PJK0FpSPPI838yva5gMfG6yVVqSDbUZACxGw0DIG+TcBAUdGB6?= =?us-ascii?Q?4qX/vFE4tQD3ve9J8ACWlnrh4FSINdmS6XUfCvAXVdykw2bne0Tjaedx3Uky?= =?us-ascii?Q?WcNfmcDE7x7XUFLDI1JKcwO69nOhXJbOCUO1u3AMdAmWJIq2lkeOvA8UIna+?= =?us-ascii?Q?HzkjuBNt1fKTYpTDX+9fAjWx7H2dktLXBvN38sNbXKyHLbl9bQ3Cfcr7w3L9?= =?us-ascii?Q?JnWsTmR8kX1Lv55c5xxw4ZQ/RCDENjsef6WzMGCMAXBEiv5T23QWjc1WeZaW?= =?us-ascii?Q?z2tP4nRx5T3z2fHOqR1sG2hgCckjQ4K0CrRQG8XomLLbdHzv32YCtu0HIopX?= =?us-ascii?Q?K7CyUgjkevL0ztD1zjoIi8znQMhzzm4G4ghD7iMGBwxQkLSUyRaNLNxJ89l4?= =?us-ascii?Q?ISbbx7sI/RhenoisMROjkqg1unp/2qhg3WvDiMADhbDCvKBJVcdhhttdqNV/?= =?us-ascii?Q?YSLNjyf3526aV85h3zI6JwCDqt1vLCbL8kYHisLiFyIyME6JkT5bv2BIT93Y?= =?us-ascii?Q?nYwwkyUW7XNJmvGVzOf/9/+7PxhJp4Yn83rxDiDGaQE1vUA16Lhhqmx/11r3?= =?us-ascii?Q?vZDyg3gD/c6AZiRCAUuu2NrwqMKZLGks39a5JTYrq2thoCav5IPQF2ZLBnDP?= =?us-ascii?Q?B4TdtZquGk0SnGt46W22mduUSpnm/cF5LGfznVW47AbV4j03YYfh+xNiaFjN?= =?us-ascii?Q?+wD0lXlNshEAqlfd3MMwxG9gdGIuS117AzLpV1g2bLe6PVWdYCHpmTeUhZsL?= =?us-ascii?Q?2AmaRT6SU17ihi4aDrxaGORcgjpQ15S1KjQn+tIb9Ur+0oHzSFxW9UwsDbwp?= =?us-ascii?Q?aqEIefTFkiPtP6snpjgupLfebL0yJRROm8Lt5S9LnnRBIfEFNSBWES7fUYGA?= =?us-ascii?Q?oXh9+2o5NahPknnymeBtHa7E4l+iybT93FKIxxUmzgwozYfdT+Jqi//h4rRz?= =?us-ascii?Q?/pWF4XHNT1dEYETfe7IOVK+FxqofmNoo684kVK+XZ55O26rdaBz2T52t/J+l?= =?us-ascii?Q?TQU7NHzk1UBHd+7akvNQQzNSPuMaCyb4hd5YoXDYbM2lU8p+DHJqWjEvh/rp?= =?us-ascii?Q?QOceWSoupVWFKo/3S6a5G2vjdC41+Ybi4upKuW1zY+CB57xh/vjYGxAQUi0g?= =?us-ascii?Q?b+QGlcA1OM8/9NS0P0sZI451OoNI/UC6PtoIbF60WzZiX4l4fn84Mb7mpTAo?= =?us-ascii?Q?MVQ1a8F6MVdGlr7Ll7GNd1GRdQn21bLfPtf5LIOQyu8+hBA01m94pS4lZ+W7?= =?us-ascii?Q?NcPl/EbwUn9xvvGdHp1fT/Lof9VmriNG?= 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:(13230040)(1800799024)(36860700013)(376014)(82310400026)(7053199007); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Dec 2024 08:06:11.4560 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 5077791b-2db8-4eb0-7232-08dd16960387 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: BL02EPF00021F69.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB5620 X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org Hi, FYI, your patch has been queued to stable release 23.11.3 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 12/10/24. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://git.dpdk.org/dpdk-stable/log/?h=23.11-staging This queued commit can be viewed at: https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=e5ebe71958e2c9f1e93fe4211f2e02aea5391363 Thanks. Xueming Li --- >From e5ebe71958e2c9f1e93fe4211f2e02aea5391363 Mon Sep 17 00:00:00 2001 From: Shahaji Bhosle Date: Thu, 7 Nov 2024 19:22:08 +0530 Subject: [PATCH] net/bnxt/tf_core: fix WC TCAM multi-slice delete Cc: Xueming Li [ upstream commit 78dcdb821cb81f4abddfd4abc0192e238d4bfcec ] FW tries to update the HWRM request data in the delete case to update the mode bit and also update invalid profile id. This update only happens when the data is send over DMA. HWRM requests are read only buffers and cannot be updated. So driver now will always send WC tcam set message over DMA channel. Update tunnel alloc apis to provide error message. Fixes: ca5e61bd562d ("net/bnxt: support EM and TCAM lookup with table scope") Signed-off-by: Shahaji Bhosle Signed-off-by: Sriharsha Basavapatna Reviewed-by: Kishore Padmanabha Reviewed-by: Randy Schacher Reviewed-by: Ajit Khaparde --- drivers/net/bnxt/tf_core/tf_msg.c | 28 +++++++++++----------- drivers/net/bnxt/tf_ulp/bnxt_tf_pmd_shim.c | 16 +++++++++++-- 2 files changed, 28 insertions(+), 16 deletions(-) diff --git a/drivers/net/bnxt/tf_core/tf_msg.c b/drivers/net/bnxt/tf_core/tf_msg.c index 1c66c7e01a..4aa90f6b07 100644 --- a/drivers/net/bnxt/tf_core/tf_msg.c +++ b/drivers/net/bnxt/tf_core/tf_msg.c @@ -1612,20 +1612,20 @@ tf_msg_tcam_entry_set(struct tf *tfp, req.result_size = parms->result_size; data_size = 2 * req.key_size + req.result_size; - if (data_size <= TF_PCI_BUF_SIZE_MAX) { - /* use pci buffer */ - data = &req.dev_data[0]; - } else { - /* use dma buffer */ - req.flags |= HWRM_TF_TCAM_SET_INPUT_FLAGS_DMA; - rc = tf_msg_alloc_dma_buf(&buf, data_size); - if (rc) - goto cleanup; - data = buf.va_addr; - tfp_memcpy(&req.dev_data[0], - &buf.pa_addr, - sizeof(buf.pa_addr)); - } + /* + * Always use dma buffer, as the delete multi slice + * tcam entries not support with HWRM request buffer + * only DMA'ed buffer can update the mode bits for + * the delete to work + */ + req.flags |= HWRM_TF_TCAM_SET_INPUT_FLAGS_DMA; + rc = tf_msg_alloc_dma_buf(&buf, data_size); + if (rc) + goto cleanup; + data = buf.va_addr; + tfp_memcpy(&req.dev_data[0], + &buf.pa_addr, + sizeof(buf.pa_addr)); tfp_memcpy(&data[0], parms->key, parms->key_size); tfp_memcpy(&data[parms->key_size], parms->mask, parms->key_size); diff --git a/drivers/net/bnxt/tf_ulp/bnxt_tf_pmd_shim.c b/drivers/net/bnxt/tf_ulp/bnxt_tf_pmd_shim.c index 239191e14e..b0d9d8d3d9 100644 --- a/drivers/net/bnxt/tf_ulp/bnxt_tf_pmd_shim.c +++ b/drivers/net/bnxt/tf_ulp/bnxt_tf_pmd_shim.c @@ -32,9 +32,16 @@ bnxt_tunnel_dst_port_alloc(struct bnxt *bp, uint16_t port, uint8_t type) { - return bnxt_hwrm_tunnel_dst_port_alloc(bp, + int rc = 0; + rc = bnxt_hwrm_tunnel_dst_port_alloc(bp, port, type); + if (rc) { + PMD_DRV_LOG(ERR, "Tunnel type:%d alloc failed for port:%d error:%s\n", + type, port, (rc == HWRM_TUNNEL_DST_PORT_ALLOC_OUTPUT_ERROR_INFO_ERR_ALLOCATED) ? + "already allocated" : "no resource"); + } + return rc; } int @@ -589,7 +596,12 @@ bnxt_pmd_global_tunnel_set(uint16_t port_id, uint8_t type, } rc = bnxt_hwrm_tunnel_dst_port_alloc(bp, udp_port, hwtype); - if (!rc) { + if (rc) { + if (rc == HWRM_TUNNEL_DST_PORT_ALLOC_OUTPUT_ERROR_INFO_ERR_ALLOCATED) + PMD_DRV_LOG(ERR, "Tunnel already allocated, type:%d port:%d\n", hwtype, udp_port); + else + PMD_DRV_LOG(ERR, "Tunnel allocation failed, type:%d port:%d\n", hwtype, udp_port); + } else { ulp_global_tunnel_db[type].ref_cnt++; ulp_global_tunnel_db[type].dport = udp_port; bnxt_pmd_global_reg_data_to_hndl(port_id, bp->ecpri_upar_in_use, -- 2.34.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2024-12-06 23:26:45.787438007 +0800 +++ 0051-net-bnxt-tf_core-fix-WC-TCAM-multi-slice-delete.patch 2024-12-06 23:26:43.953044828 +0800 @@ -1 +1 @@ -From 78dcdb821cb81f4abddfd4abc0192e238d4bfcec Mon Sep 17 00:00:00 2001 +From e5ebe71958e2c9f1e93fe4211f2e02aea5391363 Mon Sep 17 00:00:00 2001 @@ -4,0 +5,3 @@ +Cc: Xueming Li + +[ upstream commit 78dcdb821cb81f4abddfd4abc0192e238d4bfcec ] @@ -17 +19,0 @@ -Cc: stable@dpdk.org @@ -26,2 +28,2 @@ - drivers/net/bnxt/tf_ulp/bnxt_tf_pmd_shim.c | 21 ++++++++++++++-- - 2 files changed, 33 insertions(+), 16 deletions(-) + drivers/net/bnxt/tf_ulp/bnxt_tf_pmd_shim.c | 16 +++++++++++-- + 2 files changed, 28 insertions(+), 16 deletions(-) @@ -69 +71 @@ -index 75a0b77ac2..fc8d0098f9 100644 +index 239191e14e..b0d9d8d3d9 100644 @@ -72 +74 @@ -@@ -32,9 +32,18 @@ bnxt_tunnel_dst_port_alloc(struct bnxt *bp, +@@ -32,9 +32,16 @@ bnxt_tunnel_dst_port_alloc(struct bnxt *bp, @@ -82,5 +84,3 @@ -+ PMD_DRV_LOG_LINE(ERR, "Tunnel type:%d alloc failed for port:%d error:%s", -+ type, port, -+ (rc == -+ HWRM_TUNNEL_DST_PORT_ALLOC_OUTPUT_ERROR_INFO_ERR_ALLOCATED) ? -+ "already allocated" : "no resource"); ++ PMD_DRV_LOG(ERR, "Tunnel type:%d alloc failed for port:%d error:%s\n", ++ type, port, (rc == HWRM_TUNNEL_DST_PORT_ALLOC_OUTPUT_ERROR_INFO_ERR_ALLOCATED) ? ++ "already allocated" : "no resource"); @@ -92 +92 @@ -@@ -589,7 +598,15 @@ bnxt_pmd_global_tunnel_set(uint16_t port_id, uint8_t type, +@@ -589,7 +596,12 @@ bnxt_pmd_global_tunnel_set(uint16_t port_id, uint8_t type, @@ -99,3 +99 @@ -+ PMD_DRV_LOG_LINE(ERR, -+ "Tunnel already allocated, type:%d port:%d", -+ hwtype, udp_port); ++ PMD_DRV_LOG(ERR, "Tunnel already allocated, type:%d port:%d\n", hwtype, udp_port); @@ -103,2 +101 @@ -+ PMD_DRV_LOG_LINE(ERR, "Tunnel allocation failed, type:%d port:%d", -+ hwtype, udp_port); ++ PMD_DRV_LOG(ERR, "Tunnel allocation failed, type:%d port:%d\n", hwtype, udp_port);