From patchwork Thu Jan 26 23:40:53 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexander Kozyrev X-Patchwork-Id: 122597 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 9564542498; Fri, 27 Jan 2023 00:41:42 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 51C0C42D57; Fri, 27 Jan 2023 00:41:32 +0100 (CET) Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2087.outbound.protection.outlook.com [40.107.223.87]) by mails.dpdk.org (Postfix) with ESMTP id 4F6BB406B4 for ; Fri, 27 Jan 2023 00:41:31 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JtRWNV30+RH0surGYtSe3TT9b0tlizEtruV0QKNqer1NGc0d4sETPJIdHMvPFFjrGUr69RBEbG4hX2aaRlML/ougUY4YN6n+TrPhv7VkLYrUdvLpCyxloH7ub7tL8i2+kMliUR2KLhwp9OcRl0QWjM4WjehcJD5TAJ56jqjx/e2ViQgJffGBya5GtXHT4aiyzIHZFQh5IgB2l99D1zwto6+EWqWrHr9/G3O8aCWnlMHVsRRInxjNJ8n/P+XbzLKqpzdnXlo3wJL+ygNNJOwjkNF9iSe4XbZJvDhiUDZJwQpi+GRzKz8gv2D49A02l+TSY7zI8XEPeB45AF60MpzgUA== 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=DFC+PLF0xMZ9ndH9m+i5Nrdw2exQoVNy5uhCz6f90zM=; b=loebo5EwCfG64iwlQHbUnjT8d8MHjJ14P0nNz4wH2k/EBGfYa2gi3QHbjdCxvwYsbJxidI47GZpAK0+ebivcNm0S7dhNUmyMRMk6FcQl++fixPyPhxnyWc66gI6fIYf6pD/r5IejzKF4W+M/o0nPcKDeylEOT1p3602DxJcH0cbDYD2mk1Mdr/x17znG8M1M5YwsIOQNf9iBpCuF09aS5o7WU532YnCOo9yiHMskI2+BXhKGP2lczp+e8XXW/uudNp9u9v3xGWhHZMeS888RKafFaBn1gGC5BaOBUgWnywwpuzEnLxoQGSj8sqFGvV/2DbLsghOpsDexFzOJeAWpKQ== 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 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=DFC+PLF0xMZ9ndH9m+i5Nrdw2exQoVNy5uhCz6f90zM=; b=q9Fk9EgoMzLDczvTNhEL1B6loeVv1ifquXsUoO1Ssxjjl4j1RpX/TYveXT81twyJPKgP+hGUsoc0zyYJU5mT+U1ZHOmWYeFBgh62DMoRFR6ZJt7kq6HLUR56k/swyvcqlRUfgsQENjde44oU3nc56Ty6Oq4JZz5EuoSvkr8HvS67yidgTw6kFbJsuJgRasw69BKqWEs/zyN/xAUh6oaN/aJEbPA743PJq+rob2c8pEK/QFbqOjyPHcJfw1OiK9d4YURT+tKes/0DiJoKfYC2j3ZkhFeSe857WqaqMLA/qKF1mDaAGF9Hb/g5eGfx9cf0yuSIDvEX6Q1y7pcVQu9w0A== Received: from MW4PR03CA0218.namprd03.prod.outlook.com (2603:10b6:303:b9::13) by PH7PR12MB6786.namprd12.prod.outlook.com (2603:10b6:510:1ac::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6043.22; Thu, 26 Jan 2023 23:41:28 +0000 Received: from CO1NAM11FT024.eop-nam11.prod.protection.outlook.com (2603:10b6:303:b9:cafe::6) by MW4PR03CA0218.outlook.office365.com (2603:10b6:303:b9::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6043.22 via Frontend Transport; Thu, 26 Jan 2023 23:41:27 +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 CO1NAM11FT024.mail.protection.outlook.com (10.13.174.162) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6043.21 via Frontend Transport; Thu, 26 Jan 2023 23:41:27 +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.986.36; Thu, 26 Jan 2023 15:41:18 -0800 Received: from pegasus01.mtr.labs.mlnx (10.126.230.37) 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.986.36; Thu, 26 Jan 2023 15:41:16 -0800 From: Alexander Kozyrev To: CC: , , , , Subject: [PATCH 3/4] net/mlx5: add hash result metadata to modify field Date: Fri, 27 Jan 2023 01:40:53 +0200 Message-ID: <20230126234054.3960463-4-akozyrev@nvidia.com> X-Mailer: git-send-email 2.18.2 In-Reply-To: <20230126234054.3960463-1-akozyrev@nvidia.com> References: <20230126234054.3960463-1-akozyrev@nvidia.com> MIME-Version: 1.0 X-Originating-IP: [10.126.230.37] 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: CO1NAM11FT024:EE_|PH7PR12MB6786:EE_ X-MS-Office365-Filtering-Correlation-Id: 993b5c3a-05b2-4eae-dc7b-08dafff6d819 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: zjHlYemCeVJIjWoC3F8KGVJhjqHZZYBow2wwMY4r2FdF6NbatVQkt3zJW056sqWCT0DUl5LEW6EuIZaVqq82+mCMmcMMpKpSbzYpBW/lwqQd+lWw++98mE0f5SLZH448//YwojM9hUuFWtmoEe8b1rZKLVWeuGCwxYmdHwKI/JxMKYqi1Vk5IBCco6At2pSEspb2Kz+B0dtvPYaT3kbeJz6dSEHU13m9sxlYAmHFwCDFNdj46P1T2mW3X79K1jhSw0GQAt5CqSUbJ8NE6tbLFFFOoCCvev6Dc0+NJsFUyfkDMW8rOOQmSvSlF/f8hA/9ZFkEuRE03hcyJBZn23JiB25rtuU7a0rXr9eeMtaeOgoPPoqV7Oyn8v+MLzxng7HVmjYgmfS8LT/uIiIqERgrzELzNRFftiP8/XmtOhkf8h4RMeKLjkvpBPh1Ie/7oIGiDmxlWBOHlOlXGb/Jiixlu1v+s5A8E7zNQ35njfGGFZq3Wdj6H2jGf3+2sS5D5tiEpcLO+U+QTEOqdzrT5vJDO55tVs1fjYquCLL/zOcy08hCYQHZieoq5rWT0ivhHKkw32LtdPwO0A63AXCmNEqUxs2Vo3GpCo/klPupv5Wdx+6Bd2rMfw+J5v8uHsO2xQko5P/2BCxHPiSrf1MDwOjakzhesx6IigHM8wxuawaXfVZaZ5djhJW63asF1Q7/P4v8GIczoqGbBw9dK5NW5sbhDQ== 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:(13230025)(4636009)(39860400002)(396003)(346002)(136003)(376002)(451199018)(40470700004)(46966006)(36840700001)(478600001)(16526019)(186003)(26005)(47076005)(336012)(2616005)(82310400005)(426003)(83380400001)(107886003)(54906003)(356005)(41300700001)(70206006)(8676002)(7636003)(6666004)(82740400003)(316002)(1076003)(86362001)(5660300002)(40460700003)(36756003)(8936002)(6916009)(70586007)(40480700001)(4326008)(2906002)(36860700001); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Jan 2023 23:41:27.8020 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 993b5c3a-05b2-4eae-dc7b-08dafff6d819 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: CO1NAM11FT024.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB6786 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 Allow copy of the hash result via modify_field Flow API. Setting this value is not allowed, it is read-only field. Signed-off-by: Alexander Kozyrev Acked-by: Viacheslav Ovsiienko --- drivers/net/mlx5/mlx5_flow_dv.c | 12 ++++++++++++ drivers/net/mlx5/mlx5_flow_hw.c | 5 +++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/drivers/net/mlx5/mlx5_flow_dv.c b/drivers/net/mlx5/mlx5_flow_dv.c index 7ca909999b..84fc725738 100644 --- a/drivers/net/mlx5/mlx5_flow_dv.c +++ b/drivers/net/mlx5/mlx5_flow_dv.c @@ -1390,6 +1390,8 @@ mlx5_flow_item_field_width(struct rte_eth_dev *dev, case RTE_FLOW_FIELD_IPV6_ECN: case RTE_FLOW_FIELD_METER_COLOR: return 2; + case RTE_FLOW_FIELD_HASH_RESULT: + return 32; default: MLX5_ASSERT(false); } @@ -1883,6 +1885,16 @@ mlx5_flow_field_id_to_modify_info info[idx].offset = data->offset; } break; + case RTE_FLOW_FIELD_HASH_RESULT: + MLX5_ASSERT(data->offset + width <= 32); + off_be = 32 - (data->offset + width); + info[idx] = (struct field_modify_info){4, 0, + MLX5_MODI_HASH_RESULT}; + if (mask) + mask[idx] = flow_modify_info_mask_32(width, off_be); + else + info[idx].offset = off_be; + break; case RTE_FLOW_FIELD_POINTER: case RTE_FLOW_FIELD_VALUE: default: diff --git a/drivers/net/mlx5/mlx5_flow_hw.c b/drivers/net/mlx5/mlx5_flow_hw.c index b209b448c6..6f391d990d 100644 --- a/drivers/net/mlx5/mlx5_flow_hw.c +++ b/drivers/net/mlx5/mlx5_flow_hw.c @@ -3530,10 +3530,11 @@ flow_hw_validate_action_modify_field(const struct rte_flow_action *action, RTE_FLOW_ERROR_TYPE_ACTION, action, "destination field mask and template are not equal"); if (action_conf->dst.field == RTE_FLOW_FIELD_POINTER || - action_conf->dst.field == RTE_FLOW_FIELD_VALUE) + action_conf->dst.field == RTE_FLOW_FIELD_VALUE || + action_conf->dst.field == RTE_FLOW_FIELD_HASH_RESULT) return rte_flow_error_set(error, EINVAL, RTE_FLOW_ERROR_TYPE_ACTION, action, - "immediate value and pointer cannot be used as destination"); + "immediate value, pointer and hash result cannot be used as destination"); if (mask_conf->dst.level != UINT32_MAX) return rte_flow_error_set(error, EINVAL, RTE_FLOW_ERROR_TYPE_ACTION, action,