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 2C7B646478 for ; Tue, 25 Mar 2025 12:11:00 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 0FACC4027C; Tue, 25 Mar 2025 12:11:00 +0100 (CET) Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12on2086.outbound.protection.outlook.com [40.107.243.86]) by mails.dpdk.org (Postfix) with ESMTP id E29654027C for ; Tue, 25 Mar 2025 12:10:57 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Y9K3H6Qjx8lFcoFiEBa0+SEOQF5ZTV3PSU8J6aAr1DfEtNvy1EIeSyj/6SCBUSzK1F4jYoeeF0/u3r1l4f1IrDhXWx74EhclIkFC+kdJHIdEKJCIXVZpNRyuVmWT6ezGsivjFAwkwyvlE5HmgSmObJYzdsfrFP1oXNtUgPNMSCb3iVuS2TE0gyE6vf9oCU2/bZ9Fc9N0AMa1brFYpK7ePo+aY3/ojzpm3Mm+b8+Tlte54PjSQDE+bM9RUx1MxakYXICXebVFRaq0aBZqnX7yF49Dg3X3u5osfGT7tQH0UHJPOfyvFmFHInfm2+dahL45mOGFvupWawnhoZtIpt4I7w== 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=W1aH1NdfTWgP+bND8hkxbtOJYeX1XFU8FUFux4BMIbc=; b=c3J1sx/VrKBZeyrXkYnQ68zRtliZJ1JVJWkayNEd9m815AhL5sTk5AuKtSigbGfuAvuxbjPStWzOnLv524SCFF7mIsc/1iqzrGeVe6LM6ttsWDa2S+0SJk72V2tKujQh8J25xiMO+w6AIb68mZGioX3rgZ6jnjC3MHxK4x75Hu5Jyfpq8GfexFfAvXl5/81IDw9IBVHxcdRAa5pAZJVhaU/tDtP9RNQeVteo8ZK8yLbFzyWztgFkinx1PTrce6cGNbOaQRA9TrxpsmrftGb7uM2fTNSMUbvjcGfAJLyyS2nmMRVXqQFDGXstioqOWvUIsgymDB3lE1x86P4888W4jw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.160) smtp.rcpttodomain=redhat.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=W1aH1NdfTWgP+bND8hkxbtOJYeX1XFU8FUFux4BMIbc=; b=R9inksjfpH+hukojn8JG9xfaD9n7ioUPgGdc7fNhI2GL8BiObIrvE3IAH85wdYCUSNJlh+/x0ztXychUzJFwNXSt6PrYTohv65hNnHXyCybv0CiJdq7Zze5V3vQqujhovn0M7iS/unt80HQL0Y6ExM68iDOneFCpRvbk9et4lk8u9U4wRq9zZiV7dXozNugvygNM/Y76FHPC5T1w5z7lo54dG0lTErwOFqc8hNT+6kTGjI0eQ9V9kajhk4ZA1OVG9R9eqA2Qj+1lFzXptkGIoteHtu6EYtrY+37osN8aGDzPHQ4dKUZZ2Z7Pn5lY84Ny7G1M98lwZ4q08vp0fWbTBw== Received: from DS7PR03CA0139.namprd03.prod.outlook.com (2603:10b6:5:3b4::24) by PH8PR12MB6747.namprd12.prod.outlook.com (2603:10b6:510:1c3::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.42; Tue, 25 Mar 2025 11:10:55 +0000 Received: from DS2PEPF00003448.namprd04.prod.outlook.com (2603:10b6:5:3b4:cafe::cf) by DS7PR03CA0139.outlook.office365.com (2603:10b6:5:3b4::24) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8534.43 via Frontend Transport; Tue, 25 Mar 2025 11:10:55 +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 DS2PEPF00003448.mail.protection.outlook.com (10.167.17.75) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.20 via Frontend Transport; Tue, 25 Mar 2025 11:10:55 +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.1544.4; Tue, 25 Mar 2025 04:10:46 -0700 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.14; Tue, 25 Mar 2025 04:10:45 -0700 From: Dariusz Sosnowski To: Kevin Traynor CC: , Alex Vesker Subject: [PATCH 24.11] net/mlx5/hws: fix DV FT type convert Date: Tue, 25 Mar 2025 12:10:32 +0100 Message-ID: <20250325111032.70851-1-dsosnowski@nvidia.com> X-Mailer: git-send-email 2.39.5 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain 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: DS2PEPF00003448:EE_|PH8PR12MB6747:EE_ X-MS-Office365-Filtering-Correlation-Id: 9a3cd5b2-90f6-4a1f-912b-08dd6b8db67e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|36860700013|1800799024|82310400026|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?46dZYd0X19Jg+3nbKYOf+nlfzI2zF5ijr5ByxsEaY5TPG+p519D3knJ+twaS?= =?us-ascii?Q?y8pTNXlIhWMbdT12pvO98ZvX7hideptXxaCDld/0iEHiVhA0KR9YxcdbPBjr?= =?us-ascii?Q?c/wirK13wOXf4/yeAuy08+xm9QCCK8JJB5Zx7f3iMtvJS2amqLX2gsqNVsJJ?= =?us-ascii?Q?baSu1oil4HkDBSiV/IEj6NKEtsG6drIWCE++O7ukIKZ0IpdvgRSzZT9+OVt+?= =?us-ascii?Q?s490DGb215LkMX8GOeuEoogCl9oCJPueh27EOy1k2exK2RrEyNicxDR1HioF?= =?us-ascii?Q?sJQJ3qxSVfuzAmQd9XZOISMgSFpKdt6/H+h+yJMU7BrxyD6gwJv+2HtjWVc2?= =?us-ascii?Q?QXU/1/7d7YSS7JLyt5kCm3rCifknF1olp8jlLVtTk1gi3VaIzbxQaFU9O7Jn?= =?us-ascii?Q?nMuuLBullo9Htpk+nC9prZE3PkE9b7NXXjCs4Nsa8mmS3jeD/6Wn22+nQk9M?= =?us-ascii?Q?d6Oa4j8E7shIcHK4RAV10dAxHNdmug+/NvZpS7Wvg1j0qUMoEHNFmf8Pu1oW?= =?us-ascii?Q?GYTPpGWW0xX8fqsiZJSjDvbTFBF8DEmL4O0wkWP3G00UzbmTsKd9LEDKk8iS?= =?us-ascii?Q?dNQT3ywgb0Iu4Wb9E1ysVR7EBDeUqnSunQd+qe9aeOJd3zFgKrBAFVzaSBT1?= =?us-ascii?Q?OwNe7v0ckP6keDmh/th1gCPMm0NTZDK4IGXxo62x8npdQrc3cMTGDiCNZLyc?= =?us-ascii?Q?yhy8Ub7tUoU9XYH4lcYvrlzLY04sLsGRJCfOh6TaxxAsmjetdZ4BOq/OZXVF?= =?us-ascii?Q?XDYtziU0JsFor69gdTUpzJ53DWfW98x6amZ9KF1uQXBAQHrU9wG/mEUqGiQq?= =?us-ascii?Q?g0kQUWgmPkAFTAjR1WzqkaUBgF4iO7jeYZpDS7NlxQMs72mhK9WB/r/zuhcA?= =?us-ascii?Q?nUS/+i0ujj8XTq+PN7saPYfKhbLcZDxS8T8YTzSrLnwMTP2GhUZcpdQ/CmZ+?= =?us-ascii?Q?bcxCpoFmI8wMEFREqofF//QjEeHxCAXUnKsr6zV5AAJDjrdjAcn83eZFh7yQ?= =?us-ascii?Q?oZ87nSQtDxVxa4tpjE+enveCtIF+ugwv0+MaqRU9swcHglR1DVonPkC3ZjQg?= =?us-ascii?Q?PwS/xchsH33MB4idKkgF1HdZZOLCSLGLz2xTno1UiQRY0dxqOnjU8kYNVkTl?= =?us-ascii?Q?N6nVcr9h9Q+UYqs0R1dUv+ddf1Fo69ge0s91xtVsOAngIFm8irZI0hP2UOkg?= =?us-ascii?Q?A27ZDsTyQxP24UHZKk0fYqh0DlA1YWitL1aGxRWnmUzytJhK/EXAk8oLmYLt?= =?us-ascii?Q?EAMFykRFIrTyW+xG9TQpb+NZA9Koxw0fNI9TKzjx0CRofEzC4CNAQ2jWFq+g?= =?us-ascii?Q?Z4qD24C3gtirBAc8qX8QsRnMHCMXANvot/3i2sI3/glaKBpY01GyJ32cPWsZ?= =?us-ascii?Q?7Ujr8DSoJA9I4Ep06hcJXlIXcFs/oCPCzLAriGzCJHdBz2rNhtdHuJ2ut4Wt?= =?us-ascii?Q?uAHyb5+B7W9qWnOWlORBRx/4LjewHo/TIECSl84t6GoTDyHB3Ck0bzo0HmMw?= =?us-ascii?Q?627jJyfTV6YQOKQ=3D?= 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:(13230040)(36860700013)(1800799024)(82310400026)(376014); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Mar 2025 11:10:55.1381 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 9a3cd5b2-90f6-4a1f-912b-08dd6b8db67e 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: DS2PEPF00003448.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR12MB6747 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 From: Alex Vesker [ upstream commit 16ac8f980042da5c88860f1931789f3060caa38c ] When creating a root modify/reformat action it is created for a single specific table type, current code ignored this and used the first ft_type found in if, else. Also added missing translation for non-root FDB action root dest. Fixes: f8c8a6d8440d ("net/mlx5/hws: add action object") Cc: stable@dpdk.org Signed-off-by: Alex Vesker Acked-by: Dariusz Sosnowski --- drivers/net/mlx5/hws/mlx5dr_action.c | 65 +++++++++++++++++++++++----- 1 file changed, 55 insertions(+), 10 deletions(-) diff --git a/drivers/net/mlx5/hws/mlx5dr_action.c b/drivers/net/mlx5/hws/mlx5dr_action.c index b038ca6879..57491c0f48 100644 --- a/drivers/net/mlx5/hws/mlx5dr_action.c +++ b/drivers/net/mlx5/hws/mlx5dr_action.c @@ -1705,19 +1705,64 @@ mlx5dr_action_conv_reformat_to_verbs(uint32_t action_type, } static int -mlx5dr_action_conv_flags_to_ft_type(uint32_t flags, enum mlx5dv_flow_table_type *ft_type) +mlx5dr_action_conv_root_flags_to_dv_ft(uint32_t flags, + enum mlx5dv_flow_table_type *ft_type) { - if (flags & (MLX5DR_ACTION_FLAG_ROOT_RX | MLX5DR_ACTION_FLAG_HWS_RX)) { + uint8_t is_rx, is_tx, is_fdb; + + is_rx = !!(flags & MLX5DR_ACTION_FLAG_ROOT_RX); + is_tx = !!(flags & MLX5DR_ACTION_FLAG_ROOT_TX); + is_fdb = !!(flags & MLX5DR_ACTION_FLAG_ROOT_FDB); + + if (is_rx + is_tx + is_fdb != 1) { + DR_LOG(ERR, "Root action flags must be converted to a single ft type"); + rte_errno = ENOTSUP; + return -rte_errno; + } + + if (is_rx) { + *ft_type = MLX5DV_FLOW_TABLE_TYPE_NIC_RX; + } else if (is_tx) { + *ft_type = MLX5DV_FLOW_TABLE_TYPE_NIC_TX; +#ifdef HAVE_MLX5DV_FLOW_MATCHER_FT_TYPE + } else if (is_fdb) { + *ft_type = MLX5DV_FLOW_TABLE_TYPE_FDB; +#endif + } else { + rte_errno = ENOTSUP; + return -rte_errno; + } + + return 0; +} + +static int +mlx5dr_action_conv_hws_flags_to_dv_ft(uint32_t flags, + enum mlx5dv_flow_table_type *ft_type) +{ + uint8_t is_rx, is_tx, is_fdb; + + is_rx = !!(flags & MLX5DR_ACTION_FLAG_HWS_RX); + is_tx = !!(flags & MLX5DR_ACTION_FLAG_HWS_TX); + is_fdb = !!(flags & MLX5DR_ACTION_FLAG_HWS_FDB); + + if (is_rx + is_tx + is_fdb != 1) { + DR_LOG(ERR, "Action flags must be converted to a single ft type"); + rte_errno = ENOTSUP; + return -rte_errno; + } + + if (is_rx) { *ft_type = MLX5DV_FLOW_TABLE_TYPE_NIC_RX; - } else if (flags & (MLX5DR_ACTION_FLAG_ROOT_TX | MLX5DR_ACTION_FLAG_HWS_TX)) { + } else if (is_tx) { *ft_type = MLX5DV_FLOW_TABLE_TYPE_NIC_TX; #ifdef HAVE_MLX5DV_FLOW_MATCHER_FT_TYPE - } else if (flags & (MLX5DR_ACTION_FLAG_ROOT_FDB | MLX5DR_ACTION_FLAG_HWS_FDB)) { + } else if (is_fdb) { *ft_type = MLX5DV_FLOW_TABLE_TYPE_FDB; #endif } else { rte_errno = ENOTSUP; - return 1; + return -rte_errno; } return 0; @@ -1734,9 +1779,9 @@ mlx5dr_action_create_reformat_root(struct mlx5dr_action *action, int ret; /* Convert action to FT type and verbs reformat type */ - ret = mlx5dr_action_conv_flags_to_ft_type(action->flags, &ft_type); + ret = mlx5dr_action_conv_root_flags_to_dv_ft(action->flags, &ft_type); if (ret) - return rte_errno; + return ret; ret = mlx5dr_action_conv_reformat_to_verbs(action->type, &verb_reformat_type); if (ret) @@ -2075,9 +2120,9 @@ mlx5dr_action_create_modify_header_root(struct mlx5dr_action *action, struct ibv_context *local_ibv_ctx; int ret; - ret = mlx5dr_action_conv_flags_to_ft_type(action->flags, &ft_type); + ret = mlx5dr_action_conv_root_flags_to_dv_ft(action->flags, &ft_type); if (ret) - return rte_errno; + return ret; local_ibv_ctx = mlx5dr_context_get_local_ibv(action->ctx); @@ -2467,7 +2512,7 @@ mlx5dr_action_create_dest_root(struct mlx5dr_context *ctx, return NULL; } - if (mlx5dr_action_conv_flags_to_ft_type(flags, &attr.ft_type)) + if (mlx5dr_action_conv_hws_flags_to_dv_ft(flags, &attr.ft_type)) return NULL; attr.priority = priority; -- 2.39.5