From patchwork Tue Apr 16 15:30:54 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Baum X-Patchwork-Id: 139427 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 895D043E83; Tue, 16 Apr 2024 17:32:08 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 31D044069D; Tue, 16 Apr 2024 17:31:53 +0200 (CEST) Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2056.outbound.protection.outlook.com [40.107.94.56]) by mails.dpdk.org (Postfix) with ESMTP id 4BDF040693 for ; Tue, 16 Apr 2024 17:31:51 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DAO6x/w9+pkX3rUTXcb9WM8NgakRCHbXbX9X70q1AKahw4sRhpfJebCH105dLl2go8sU8CdFuhGyz+XC243AQGGxyiypFDzw/c8pCZJJtUkDvdqkfSBUj6TJdfQgjpPb91gQq74HN20DgCE1Jh6Ibh2cw0BX8IhnihTJjr3oNq56YYN6aeZSdO017x5fWUbMomtjqAUQW4QARTUX/hNBVzDL3vDfX4+fKRuH2+iLOh1G9nyDJIXqG3o8TrS0LvS6ZqwaIuhFnOuI4OPWzWiXPx5/omtS/j69I9MapO/LtL+qGO48CnOBeP2j4i3t9X+tOvqiSIcrx8FaOA1FJ9w71A== 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=axifeJjSn6Up6OIzAOn37Rbs5xZ0+WmVFrTPKfE6ayo=; b=AaEvdOi2K0RrLsMp6et7hmn3rGKvV/hdvQkuU0yEU1hYAi+GkFDSZ4lUU7Fy8nhb2LT/noF0ZnxSc+ZAIpWiYKoer+o8jXwcbS4zfZXjs+fnHDkCUQZwq7QMbISZr1yd1A4ANdJ/1bAwO50Q6yhVY1q3t+TBP4fAnGwNnnyqTghTHxInaNSSBfAJZbFW0SPrG8FT/tD0inojV+RAWLCiHl9bhYxrgaO4W4iDsxZsXFh3DZRkZ6o8Em5TV9pA8RC4U8UpF2aui4BJDJ7nHHXWtraa9SQ6+zG7wRHtekgbSnyppj6DjJMrhtCvvGr4SUVCQFzKFLcPD8SGAoALbervdw== 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=axifeJjSn6Up6OIzAOn37Rbs5xZ0+WmVFrTPKfE6ayo=; b=T6f5ao7juIhlbUI+SUJL3X3AByYdLNOK+HW8dt28LN4U+OZZWnxmKIZ7fajpl9imb7Tp2+MVmWsr4p9n+Da+D5DJeres5dCYEITIuCwN+FWWQgnXyvSaAEAcF4JqFcvajUYKyenJ4VohdXCqpdu0h12g23UcxNPUtze1oihCgaVjcHT4nztWFHV4mNGTc+rDlLdSq7L3CCwnUyu3YOT6DUBg+hQser5SjbVx8XlsGW+yrgNDfGZva2vwghagpKznm/Lmk4sqduOSuPGDGKVADQA5uNBd4MZgCt90vnFjjJiFMqzAXSdqr9T8ShKbBboe0BTFGX05JztOLFIFPpq2Mw== Received: from SA1P222CA0187.NAMP222.PROD.OUTLOOK.COM (2603:10b6:806:3c4::14) by PH7PR12MB5901.namprd12.prod.outlook.com (2603:10b6:510:1d5::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7452.50; Tue, 16 Apr 2024 15:31:47 +0000 Received: from SA2PEPF00001509.namprd04.prod.outlook.com (2603:10b6:806:3c4:cafe::44) by SA1P222CA0187.outlook.office365.com (2603:10b6:806:3c4::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7495.20 via Frontend Transport; Tue, 16 Apr 2024 15:31:47 +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 SA2PEPF00001509.mail.protection.outlook.com (10.167.242.41) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7452.22 via Frontend Transport; Tue, 16 Apr 2024 15:31:47 +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; Tue, 16 Apr 2024 08:31:15 -0700 Received: from rnnvmail204.nvidia.com (10.129.68.6) 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; Tue, 16 Apr 2024 08:31:14 -0700 Received: from nvidia.com (10.127.8.13) by mail.nvidia.com (10.129.68.6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1258.12 via Frontend Transport; Tue, 16 Apr 2024 08:31:12 -0700 From: Michael Baum To: CC: Matan Azrad , Dariusz Sosnowski , Raslan Darawsheh , Viacheslav Ovsiienko , Ori Kam , Suanming Mou , Alex Vesker Subject: [PATCH 4/4] net/mlx5/hws: remove table type DONTCARE Date: Tue, 16 Apr 2024 18:30:54 +0300 Message-ID: <20240416153054.3216706-5-michaelba@nvidia.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20240416153054.3216706-1-michaelba@nvidia.com> References: <20240416153054.3216706-1-michaelba@nvidia.com> MIME-Version: 1.0 X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SA2PEPF00001509:EE_|PH7PR12MB5901:EE_ X-MS-Office365-Filtering-Correlation-Id: ce175727-0918-494b-9045-08dc5e2a5446 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: qR90nx3ITC2xecx7xkrpAfMDIfryzJuRmzwxZP9TqbFNCMK+D4ib1vzJdgVAoQS2dliGLWHSELpv1iONEYcjfQyZWv9sfdiIE7c7JoOFu1kVhC6Lc4aq1H2fQ0n4c5sYVbOUO7xvauwVBG+OK+pwOpY2j1ulIF4i075/aGV38SzzIxfIJJjV9LxXtTzGbXVrEfBXfv5rbkbGwzf+szF6T+PmVsF0bYSKDl+xHzPiVm78ZEjFv/5JxZC7Wr0rIiNS/6GfzJvDpVRhb9N5XA1C7Dax2ph7jhKsgqeuGapS1SbU+E1oXdFn6IITji9bACJfaex1UrsDQ0pBMIsiJRooECDe2yWew1wOJ/CHc//NstkhpFCGXoMA26Um5bZwPH+2JwHURiAM75cCqkhO56hsKKVVL6snWHQmVFpq2LyrkwPFBYPH/JCwkjyZGCbTm3MNvwj4wzlPyM4+l42JysdupXwjAamCmsf/i1vbk18i44jZViDfPjSxQ/OJbSbJ1ly7mtQCg3b/kLM+jpULrb4W3VNqZ0+qrWZ+hpq6vdbmcnrdnYqUg9Udbt0cP2qNl8b4EMxkKnDRh7ZR5rXQVUfVaqGRvfyjSZhfRzPapbzB6wRp43ErPE5YNFlacZoXqhX4YBGPFsbG54rgQCEbsuNrqWWmTwlkS45wPFycymVBN2XxUuD/vyGjM/N8VR5c/jxs/lW5FAnTQ8K8ugI5pw48aDMO4TfcQg/VVK9tPsk/tT2IEatLJZAYfwjSFDSNIePi 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)(36860700004)(1800799015)(82310400014)(376005); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Apr 2024 15:31:47.3909 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: ce175727-0918-494b-9045-08dc5e2a5446 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: SA2PEPF00001509.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB5901 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 This patch removes the "MLX5DR_TABLE_TYPE_DONTCARE" enum value and use the correct type instead even for places the type is "don't care". Signed-off-by: Michael Baum Reviewed-by: Alex Vesker Acked-by: Dariusz Sosnowski --- drivers/net/mlx5/hws/mlx5dr.h | 1 - drivers/net/mlx5/hws/mlx5dr_definer.c | 26 +++++++++++--------------- drivers/net/mlx5/mlx5_flow.h | 2 +- 3 files changed, 12 insertions(+), 17 deletions(-) diff --git a/drivers/net/mlx5/hws/mlx5dr.h b/drivers/net/mlx5/hws/mlx5dr.h index 80e118a980..36ecccf9ac 100644 --- a/drivers/net/mlx5/hws/mlx5dr.h +++ b/drivers/net/mlx5/hws/mlx5dr.h @@ -18,7 +18,6 @@ enum mlx5dr_table_type { MLX5DR_TABLE_TYPE_NIC_TX, MLX5DR_TABLE_TYPE_FDB, MLX5DR_TABLE_TYPE_MAX, - MLX5DR_TABLE_TYPE_DONTCARE = MLX5DR_TABLE_TYPE_MAX, }; enum mlx5dr_matcher_resource_mode { diff --git a/drivers/net/mlx5/hws/mlx5dr_definer.c b/drivers/net/mlx5/hws/mlx5dr_definer.c index 7bb328e85e..a0f95c6923 100644 --- a/drivers/net/mlx5/hws/mlx5dr_definer.c +++ b/drivers/net/mlx5/hws/mlx5dr_definer.c @@ -152,6 +152,7 @@ struct mlx5dr_definer_conv_data { uint8_t geneve_opt_ok_idx; uint8_t geneve_opt_data_idx; enum rte_flow_item_type last_item; + enum mlx5dr_table_type table_type; }; /* Xmacro used to create generic item setter from items */ @@ -1754,7 +1755,7 @@ mlx5dr_definer_conv_item_tag(struct mlx5dr_definer_conv_data *cd, if (item->type == RTE_FLOW_ITEM_TYPE_TAG) reg = flow_hw_get_reg_id_from_ctx(cd->ctx, RTE_FLOW_ITEM_TYPE_TAG, - MLX5DR_TABLE_TYPE_DONTCARE, + cd->table_type, v->index); else reg = (int)v->index; @@ -1817,8 +1818,7 @@ mlx5dr_definer_conv_item_quota(struct mlx5dr_definer_conv_data *cd, { int mtr_reg = flow_hw_get_reg_id_from_ctx(cd->ctx, RTE_FLOW_ITEM_TYPE_METER_COLOR, - MLX5DR_TABLE_TYPE_DONTCARE, - 0); + cd->table_type, 0); struct mlx5dr_definer_fc *fc; if (mtr_reg < 0) { @@ -1837,7 +1837,6 @@ mlx5dr_definer_conv_item_quota(struct mlx5dr_definer_conv_data *cd, static int mlx5dr_definer_conv_item_metadata(struct mlx5dr_definer_conv_data *cd, - enum mlx5dr_table_type table_domain_type, struct rte_flow_item *item, int item_idx) { @@ -1850,7 +1849,7 @@ mlx5dr_definer_conv_item_metadata(struct mlx5dr_definer_conv_data *cd, return 0; reg = flow_hw_get_reg_id_from_ctx(cd->ctx, RTE_FLOW_ITEM_TYPE_META, - table_domain_type, -1); + cd->table_type, -1); if (reg <= 0) { DR_LOG(ERR, "Invalid register for item metadata"); rte_errno = EINVAL; @@ -2159,7 +2158,7 @@ mlx5dr_definer_conv_item_conntrack(struct mlx5dr_definer_conv_data *cd, reg = flow_hw_get_reg_id_from_ctx(cd->ctx, RTE_FLOW_ITEM_TYPE_CONNTRACK, - MLX5DR_TABLE_TYPE_DONTCARE, -1); + cd->table_type, -1); if (reg <= 0) { DR_LOG(ERR, "Invalid register for item conntrack"); rte_errno = EINVAL; @@ -2302,7 +2301,7 @@ mlx5dr_definer_conv_item_meter_color(struct mlx5dr_definer_conv_data *cd, reg = flow_hw_get_reg_id_from_ctx(cd->ctx, RTE_FLOW_ITEM_TYPE_METER_COLOR, - MLX5DR_TABLE_TYPE_DONTCARE, 0); + cd->table_type, 0); MLX5_ASSERT(reg > 0); fc = mlx5dr_definer_get_register_fc(cd, reg); @@ -2897,7 +2896,6 @@ mlx5dr_definer_conv_item_compare_field(const struct rte_flow_field_data *f, const struct rte_flow_field_data *other_f, struct mlx5dr_definer_conv_data *cd, int item_idx, - enum mlx5dr_table_type table_domain_type, enum mlx5dr_definer_compare_dw_selectors dw_offset) { struct mlx5dr_definer_fc *fc = NULL; @@ -2913,7 +2911,7 @@ mlx5dr_definer_conv_item_compare_field(const struct rte_flow_field_data *f, case RTE_FLOW_FIELD_META: reg = flow_hw_get_reg_id_from_ctx(cd->ctx, RTE_FLOW_ITEM_TYPE_META, - table_domain_type, -1); + cd->table_type, -1); if (reg <= 0) { DR_LOG(ERR, "Invalid register for compare metadata field"); rte_errno = EINVAL; @@ -2932,7 +2930,7 @@ mlx5dr_definer_conv_item_compare_field(const struct rte_flow_field_data *f, case RTE_FLOW_FIELD_TAG: reg = flow_hw_get_reg_id_from_ctx(cd->ctx, RTE_FLOW_ITEM_TYPE_TAG, - MLX5DR_TABLE_TYPE_DONTCARE, + cd->table_type, f->tag_index); if (reg <= 0) { DR_LOG(ERR, "Invalid register for compare tag field"); @@ -2988,7 +2986,6 @@ mlx5dr_definer_conv_item_compare_field(const struct rte_flow_field_data *f, static int mlx5dr_definer_conv_item_compare(struct mlx5dr_definer_conv_data *cd, - enum mlx5dr_table_type table_domain_type, struct rte_flow_item *item, int item_idx) { @@ -3005,13 +3002,11 @@ mlx5dr_definer_conv_item_compare(struct mlx5dr_definer_conv_data *cd, } ret = mlx5dr_definer_conv_item_compare_field(a, b, cd, item_idx, - table_domain_type, MLX5DR_DEFINER_COMPARE_ARGUMENT_0); if (ret) return ret; ret = mlx5dr_definer_conv_item_compare_field(b, NULL, cd, item_idx, - table_domain_type, MLX5DR_DEFINER_COMPARE_BASE_0); if (ret) return ret; @@ -3034,6 +3029,7 @@ mlx5dr_definer_conv_items_to_hl(struct mlx5dr_context *ctx, cd.fc = fc; cd.ctx = ctx; cd.relaxed = mt->flags & MLX5DR_MATCH_TEMPLATE_FLAG_RELAXED_MATCH; + cd.table_type = matcher->tbl->type; /* Collect all RTE fields to the field array and set header layout */ for (i = 0; items->type != RTE_FLOW_ITEM_TYPE_END; i++, items++) { @@ -3107,7 +3103,7 @@ mlx5dr_definer_conv_items_to_hl(struct mlx5dr_context *ctx, item_flags |= MLX5_FLOW_ITEM_TAG; break; case RTE_FLOW_ITEM_TYPE_META: - ret = mlx5dr_definer_conv_item_metadata(&cd, matcher->tbl->type, items, i); + ret = mlx5dr_definer_conv_item_metadata(&cd, items, i); item_flags |= MLX5_FLOW_ITEM_METADATA; break; case RTE_FLOW_ITEM_TYPE_GRE: @@ -3198,7 +3194,7 @@ mlx5dr_definer_conv_items_to_hl(struct mlx5dr_context *ctx, DR_LOG(ERR, "Compare matcher not supported for more than one item"); goto not_supp; } - ret = mlx5dr_definer_conv_item_compare(&cd, matcher->tbl->type, items, i); + ret = mlx5dr_definer_conv_item_compare(&cd, items, i); item_flags |= MLX5_FLOW_ITEM_COMPARE; matcher->flags |= MLX5DR_MATCHER_FLAGS_COMPARE; break; diff --git a/drivers/net/mlx5/mlx5_flow.h b/drivers/net/mlx5/mlx5_flow.h index 34b5e0f45b..ee153cb3a4 100644 --- a/drivers/net/mlx5/mlx5_flow.h +++ b/drivers/net/mlx5/mlx5_flow.h @@ -1992,7 +1992,7 @@ flow_hw_get_reg_id(struct rte_eth_dev *dev, { #if defined(HAVE_IBV_FLOW_DV_SUPPORT) || !defined(HAVE_INFINIBAND_VERBS_H) return flow_hw_get_reg_id_by_domain(dev, type, - MLX5DR_TABLE_TYPE_DONTCARE, id); + MLX5DR_TABLE_TYPE_MAX, id); #else RTE_SET_USED(dev); RTE_SET_USED(type);