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 9EC2846543 for ; Wed, 9 Apr 2025 12:37:35 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 794C5402B7; Wed, 9 Apr 2025 12:37:35 +0200 (CEST) Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2056.outbound.protection.outlook.com [40.107.223.56]) by mails.dpdk.org (Postfix) with ESMTP id 9C5F2402B7 for ; Wed, 9 Apr 2025 12:37:34 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=noRGm2j2i9Bt6MWa7RCltwuGNRWc5RNuxQ7WfoqRF8ysx0482/QOq1bNOqK1mNCs99EB4L0s+ScaKZ6pN1UW6MTsc1Iw1sk70U+kBxX66GcB0trNw/M8lUhYu70nbPudGKqXh6926nFbxCyNTVdDDH95EnX7xt61N+aEMFATOyONz4cH4L3fOOBFE24RSjW+hzkHlBKVxWpv+yYQo1/xvS2xGfdScWmJ5btVYoSFkXVRgoP+7oQOID+Yee1GjP+ngKd77H4g6Sd7C7dscKnywT2ShoIGkaDiNdoSBCcoQgRnzUW9Jf9QpRQO+5b8JNjT3RupwdXNCWQQhjCBQdDp7w== 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=jVXnQpExk60AtjSt95YwdjkloF5uplu6GCh5iAUHoFk=; b=gF79G4k0+FCWZ1onY19dp482S2GWpoIF+f3AMIGZx9h5eqAixTPxod835gVzeXM29+yN2CrT6V1z1PBGS7Z9KPgXp1B3HigIdh0N+UyW2hZVVyv9LKQpXpieTNTIjh9HE7Y+mGMSNPrSOI8pIE1tVmFebPaoz+7OGp2dR6fQpazvqXJJtPl1E/ysko/np5MytlnBDBGMZmzsrea3c/x+AduDb03we34XTD2DtK7aev9jpdVvrErGG5DwPLh+D8/OC5OkZmWlzvlGKLGdmIW/w/ZPebYeTwiddlymMWTbWXVGK72IScgcj5alD9wsRlahwHiSEDp7kYnSJZkZ3Y3Qaw== 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 (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=jVXnQpExk60AtjSt95YwdjkloF5uplu6GCh5iAUHoFk=; b=HK6Ad/LFQXa/RgXBSuj4edz6FL+zJsyDkOljoW55+71dayOL19+z+KABFr9GDGmoYInaY6+aNDQiKKO7wCQAgvfqKmnCVWDd8/tbo8dZt9SDyuFeMpiCp/61+4n4DBulSpJq5ZLEAWSZraSoogLphhX9MmavCbmUf2P1LNVR25pFRyH6SVmVWLIueKLZ7pMuiIyHaTq/pyAGSNj75op0ode5amEx8A/02vJO/OXa2SGAZqsltEaa0dwdkJMA0sutYFOkm7M2RUklXGMwv0v0K2pSvwbmPN8cHBK6u445qUm6j3qEVQ9bewQRdikEnJNLCGVpwmpwdge/suXTkqcdcw== Received: from DM6PR05CA0052.namprd05.prod.outlook.com (2603:10b6:5:335::21) by DS0PR12MB7632.namprd12.prod.outlook.com (2603:10b6:8:11f::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.22; Wed, 9 Apr 2025 10:37:31 +0000 Received: from DS3PEPF000099D4.namprd04.prod.outlook.com (2603:10b6:5:335:cafe::e8) by DM6PR05CA0052.outlook.office365.com (2603:10b6:5:335::21) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.8 via Frontend Transport; Wed, 9 Apr 2025 10:37:31 +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 DS3PEPF000099D4.mail.protection.outlook.com (10.167.17.5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.22 via Frontend Transport; Wed, 9 Apr 2025 10:37:30 +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; Wed, 9 Apr 2025 03:37:16 -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; Wed, 9 Apr 2025 03:37:14 -0700 From: Dariusz Sosnowski To: , Xueming Li CC: Alex Vesker , Viacheslav Ovsiienko , Ori Kam , Suanming Mou , Matan Azrad , Erez Shitrit Subject: [PATCH 23.11] net/mlx5/hws: fix DV FT type convert Date: Wed, 9 Apr 2025 12:37:00 +0200 Message-ID: <20250409103700.82834-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: 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: DS3PEPF000099D4:EE_|DS0PR12MB7632:EE_ X-MS-Office365-Filtering-Correlation-Id: d7daf56e-da3b-4157-c4e5-08dd775287ff X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|1800799024|376014|82310400026|36860700013|7053199007; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?MnONuxbxEtqgSBA4h2NvjhSgHQa0Mfe3xOAwNXKT7SB5Y1Gb4/FZknKLUzvW?= =?us-ascii?Q?6jqjMMdmgmfCpmTn+tlIJeFs64Tc3zEYxPXRNVzZJxrEL0oEVA59H+RzQcvQ?= =?us-ascii?Q?howxlrIxoDzZI9Pm0+KCw4Gsh3otiCn9CTy6nvyaCy2sVZLGAdHt5WFXCNOV?= =?us-ascii?Q?ykZZ1geNsWOMnP+pCrxg46ZSOgnveiXNocGNyxor/ZKbgt7DE8k7FcxWY85k?= =?us-ascii?Q?0eRLN740PoXa0IXNrrsTuJORNhLmC7LetDbW2aG4/tgIg6VYr0ltvd0Bf6vy?= =?us-ascii?Q?x/io5agS7MwGG3GzD3nLUUQBU/QBDNNa6e3fnbIrwqGvCfY1lJ9/cCppKPdY?= =?us-ascii?Q?191tbrH51cJ/gGVOil9bHD0OtPeP3WcQDyAM9l5SAzg/l+3lVf6PxezLvapZ?= =?us-ascii?Q?yIhtVECziqXQ0l3gbuRgsTFacLf7ZhhzL72XgDUSChV0RvVDexbe2Dt+Pcw3?= =?us-ascii?Q?sfqPDcxmxWGplDkgDgloV1vJVYs19t402mwQCNyK21i6IPv8WsYK9NSPLJMv?= =?us-ascii?Q?VqUzFhsQw7kyBExyfdDo1plDZ1X4FC4Deh1EcZt1VS4/8GRyihupGefgyJiV?= =?us-ascii?Q?i0R+pYEA/rW8JR9Eyma5f+MsdxqH7iOEpsF7peH16scIuzCIQE/UAJaafnWk?= =?us-ascii?Q?1uyDFPAsOaxNFpzK9maZxwHV8uJsIf2Gz1FRWNgtTTrnQSLcASu0WjauiBXz?= =?us-ascii?Q?zTLle/evY8Zt1LPWKONfty92NjARfn8DaZxPs2c3NfaQHz1cAlnLvDBPd3eN?= =?us-ascii?Q?U5qUVqsd28i3GfEBJojunkkATDngIBK4SdaRrXVWZp2W0r025sRpcBLGgJjT?= =?us-ascii?Q?I2N9Gta6M5o7xwLbJPGJffztKSjBd7eBMTk8WKH9cGsi+4tXEgR4DS2n0plj?= =?us-ascii?Q?C+4alO3bkcy9GHAdiE+ULQzoWy2WJnGwnj3+arfapCnf03jxR1TheKgndWqi?= =?us-ascii?Q?vd+YCcNOUemM+7Ok6OVzwhp6nhhmPD8aG9G6N1B2+xPjHvD5qtfRcbo9k2TR?= =?us-ascii?Q?HMBzgfa1IQFMp5ItZJpPlIh42q1HMA1uhyOtTshm49OcrufDDHHWoz/fXHSp?= =?us-ascii?Q?P1lodW/l1hpju1VkDjv7KV2qjgJMvHUrisrsa78OATzuYwHbEtMgqEi46JiE?= =?us-ascii?Q?baqDJ1sKHZ5CZCeKqg8N9IfAvaOTSAYBk3odlF2o+c+cf2GEHENqYWDu4UKg?= =?us-ascii?Q?59DbZkv14ZTXYQ9IQOe68Txx6oOMhakYsGvbUkcL4LTLo32wv9oLjjG5Cxmi?= =?us-ascii?Q?mnIc1DnoLdPzILHY3IvzuqS+HIG0xgWsDJe0+N21LkBS8Qm3nWJQpP6PXLEq?= =?us-ascii?Q?G2TmVAYgReFuipGJtfoFmVrD6byqjasgl8HvB53R7oS8cYwSQkMC76JfiVFf?= =?us-ascii?Q?XnvkKJiX5CdQgndQelk+AJhbcosgJMrC3SfblkAHY/rVmY9benJpidzepQNE?= =?us-ascii?Q?DqbgPZnjz0umeKmRhuY7sjhouSznSatW5zU/7taemuAFq/flC1goOl9viBWV?= =?us-ascii?Q?jIVqKfjq9Z33D+c=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)(1800799024)(376014)(82310400026)(36860700013)(7053199007); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Apr 2025 10:37:30.7782 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: d7daf56e-da3b-4157-c4e5-08dd775287ff 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: DS3PEPF000099D4.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB7632 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 a068f100c5..6ffb79c254 100644 --- a/drivers/net/mlx5/hws/mlx5dr_action.c +++ b/drivers/net/mlx5/hws/mlx5dr_action.c @@ -1247,19 +1247,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; @@ -1276,9 +1321,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) @@ -1616,9 +1661,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); @@ -2008,7 +2053,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