From patchwork Wed Feb 28 10:25:24 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Gregory Etelson X-Patchwork-Id: 137422 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 3D81743C21; Wed, 28 Feb 2024 11:26:22 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id BD12A427E5; Wed, 28 Feb 2024 11:26:17 +0100 (CET) Received: from NAM02-BN1-obe.outbound.protection.outlook.com (mail-bn1nam02on2054.outbound.protection.outlook.com [40.107.212.54]) by mails.dpdk.org (Postfix) with ESMTP id ABFA340FDE for ; Wed, 28 Feb 2024 11:26:12 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Zm+W14cxgMGQpaOnOsYipja2n2DomvvbUkXm/7QsT7XT4ZsdwCboZFEjNPKt8VBdbLb25rkRqQ4AtFstvif2AEFBUAxVRfbgWDc1Uh5u3xwHf0VTwMQZRS+2btpUj87pmK5mpbZMWm0MFb/lY4hJBLxMcTTNN10YT+aAhKm0WheYLHK5cz3yHgskf9uY/H/pAsjgNyh3LS7DK58aA5sLJjb8UKhZ4cgoI2xha9ILz9C5NReGySUS4Kc6Bun4sIQEXMXN8BB9nX9dTWFxyVMVKLA1lmWf7/0YMbsFhU9jLMGA1hRM+B1ZciZ6xwypUcbpDvmJThg5jAWzIWL3rq9LDw== 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=0HHziVhXwRoYVGdb6Ubcg95h6eY/Sz205n4MwgN9DvE=; b=OvFI59Fe/Z6YcbVBwrWqP5WGBvcE/iiP8nfh4FSR2bEL7IJA007UIsG6deC3ECZTvNxWb6aqB+jyg7a7Y3gNv1JPxfnksk8DudaEpTlvfeghRH8PV01WD1rJgbXPUvddKudszFYvHf+migTyJYgYxMKubaA7gc3LNTqEt9gMJz5WcZcSWjQ1rjtAGKjA+OggCxKjcfXYqeCB4I0/7oMTkYWdDz+72fAeBhWmHt9dFNS3TV4uywRJSemAZtBBaRMurTQzTNTveBFbrlk/aWIwLLJyVcsWgaWyIIciA0KOOs1rgf9KHpGaNJXgsNUQzIGMcPjH0Wa3cO6xu9WAb/JNNQ== 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 (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=0HHziVhXwRoYVGdb6Ubcg95h6eY/Sz205n4MwgN9DvE=; b=aNNEIUNoBpwAeKpJiZT2le3F/vp0k+MHDkqGDFqtZ0NIkHOQOsPVFYuiCbrHYplGevCiJlEltMLe4zHcesQokDHUqngVHA6krgoPgUMfAklhSsUdGCJF0TgZjjogqKHTOJOtgBIRrnZ+LZ28fKBN2/l7yoCFePguqlsBMBxC+H5jeRlHqeMp3OwxlZUJ9yTnZMLjXsdv9vFxDeDXdShrLz9lG+NbVLsnkou6L5Qhr46vNm0e5KUh9c/yMvtdsm2MAzMHNIkr4K3dQYG0CHci5x4dqaiVmfCDZaf+zlPeK9mfXxXIKXt00R+4KuyD4WyDuBs8slfhRSF5T0B+Izdqdw== Received: from CY5PR19CA0115.namprd19.prod.outlook.com (2603:10b6:930:64::23) by CH0PR12MB5140.namprd12.prod.outlook.com (2603:10b6:610:bf::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7316.39; Wed, 28 Feb 2024 10:26:08 +0000 Received: from CY4PEPF0000EE36.namprd05.prod.outlook.com (2603:10b6:930:64:cafe::5a) by CY5PR19CA0115.outlook.office365.com (2603:10b6:930:64::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7339.27 via Frontend Transport; Wed, 28 Feb 2024 10:26:08 +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 CY4PEPF0000EE36.mail.protection.outlook.com (10.167.242.42) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7292.25 via Frontend Transport; Wed, 28 Feb 2024 10:26:08 +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; Wed, 28 Feb 2024 02:25: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.1258.12; Wed, 28 Feb 2024 02:25:53 -0800 From: Gregory Etelson To: CC: , , , Dariusz Sosnowski , Viacheslav Ovsiienko , Ori Kam , Suanming Mou , Matan Azrad , Rongwei Liu Subject: [PATCH v2 2/4] net/mlx5: fix parameters verification in HWS table create Date: Wed, 28 Feb 2024 12:25:24 +0200 Message-ID: <20240228102526.434717-3-getelson@nvidia.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20240228102526.434717-1-getelson@nvidia.com> References: <20240202115611.288892-2-getelson@nvidia.com> <20240228102526.434717-1-getelson@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: CY4PEPF0000EE36:EE_|CH0PR12MB5140:EE_ X-MS-Office365-Filtering-Correlation-Id: adb36759-ed58-4f32-b909-08dc3847ad5b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: f/lhMF4+0eTpJSBgAwn0be0jhvgnDkX1p9xbjU5ioNo81L49vBNAZ/9C3gGinfosUrMSFduLfwuKpk7GX6L0814cN7+piCVJJB2Nydthx6jKzR+aIskaY1n3gQXIX8j2Voauw8d+UXrCnRcbhjp2/8OmQ0BLk37ncj+Kdcb/eLpnpXKxfv6VRruGIhbtMdfP1s6fJZlWZNCZ7oWPZu5Oo6sr7poVpAmTPLaHPwlv3oSpzESG1HNxsyAtqlT10LMq3+iHDCh+b1zUl/nOMqJ2iYDW7nlR+zRN9q96/M+qE7/qDLh6kCC9JWfTrCpOjIYGOPEmz3HW1H8NSMCh5LJrD+CeascOaCraPiES/dSJ+lVLZEd3gmWH1WG2iyRtef9p+kyoYYMhTWxx4IyOB+CpMXszS3Xhd0xfv5kOu8epL3tz9lly7ySCH/TbcZ8aFdJaFQAH+AW1arv7VDtTBubXRf7HgHVHFGdCPZQH5lDE2jdB7zwqvU5Ik0UF6ltPaK6NnCOB5ts3rAfLiYhgfdw40LAYCqmttf+RK68ExIsBvpmE1QRqDFR9X9aKq89TLhu77IX9w/4wPD69NpGiNETngOdvB+2AMkuE6GnKNPNWxb4LhIfndDZHa6Vnk/mehRZw4aFwdCTYwXSBCLrmLIFQg1EBiplZsFHLjZ3irBuuFK8PIrYmZcnP2L1xuPjugyOKTeNUqcppcma/7DA26xR6ZZbcZJaRZnkiWOjwuaGpU57aykUNdlf5ZBjJnbMprcgY 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)(82310400014)(36860700004); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Feb 2024 10:26:08.0039 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: adb36759-ed58-4f32-b909-08dc3847ad5b 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: CY4PEPF0000EE36.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR12MB5140 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 Modified the conditionals in `flow_hw_table_create()` to use bitwise AND instead of equality checks when assessing `table_cfg->attr->specialize` bitmask. This will allow for greater flexibility as the bitmask may encapsulate multiple flags. The patch maintains the previous behavior with single flag values, while providing support for multiple flags. Fixes: 592d5367b5e4 ("net/mlx5: enable hint in async flow table") Signed-off-by: Gregory Etelson Acked-by: Dariusz Sosnowski --- drivers/net/mlx5/mlx5_flow_hw.c | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/drivers/net/mlx5/mlx5_flow_hw.c b/drivers/net/mlx5/mlx5_flow_hw.c index 783ad9e72a..5938d8b90c 100644 --- a/drivers/net/mlx5/mlx5_flow_hw.c +++ b/drivers/net/mlx5/mlx5_flow_hw.c @@ -4390,12 +4390,23 @@ flow_hw_table_create(struct rte_eth_dev *dev, matcher_attr.rule.num_log = rte_log2_u32(nb_flows); /* Parse hints information. */ if (attr->specialize) { - if (attr->specialize == RTE_FLOW_TABLE_SPECIALIZE_TRANSFER_WIRE_ORIG) - matcher_attr.optimize_flow_src = MLX5DR_MATCHER_FLOW_SRC_WIRE; - else if (attr->specialize == RTE_FLOW_TABLE_SPECIALIZE_TRANSFER_VPORT_ORIG) - matcher_attr.optimize_flow_src = MLX5DR_MATCHER_FLOW_SRC_VPORT; - else - DRV_LOG(INFO, "Unsupported hint value %x", attr->specialize); + uint32_t val = RTE_FLOW_TABLE_SPECIALIZE_TRANSFER_WIRE_ORIG | + RTE_FLOW_TABLE_SPECIALIZE_TRANSFER_VPORT_ORIG; + + if ((attr->specialize & val) == val) { + DRV_LOG(INFO, "Invalid hint value %x", + attr->specialize); + rte_errno = EINVAL; + goto it_error; + } + if (attr->specialize & + RTE_FLOW_TABLE_SPECIALIZE_TRANSFER_WIRE_ORIG) + matcher_attr.optimize_flow_src = + MLX5DR_MATCHER_FLOW_SRC_WIRE; + else if (attr->specialize & + RTE_FLOW_TABLE_SPECIALIZE_TRANSFER_VPORT_ORIG) + matcher_attr.optimize_flow_src = + MLX5DR_MATCHER_FLOW_SRC_VPORT; } /* Build the item template. */ for (i = 0; i < nb_item_templates; i++) {