[PATCH 3/4] net/mlx5: fix matcher mask translation
Bing Zhao
bingz at nvidia.com
Tue Jul 23 10:15:21 CEST 2024
In non-template API implementation on HWS, the matcher mask is
translated using DV item translation. This is used to find and
reuse the same matcher in the PMD for rules insertion when possible.
The flags calculated previously for items should not be passed to
avoid incorrectly recognizing the layers. In the meanwhile, unlike
in template API, the group information is also needed for the mask
translation.
Fixes: 27d171b88031 ("net/mlx5: abstract flow action and enable reconfigure")
Signed-off-by: Bing Zhao <bingz at nvidia.com>
Acked-by: Dariusz Sosnowski <dsosnowski at nvidia.com>
---
drivers/net/mlx5/mlx5_flow_dv.c | 1 +
drivers/net/mlx5/mlx5_flow_hw.c | 4 ++--
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/net/mlx5/mlx5_flow_dv.c b/drivers/net/mlx5/mlx5_flow_dv.c
index 89057edbcf..a51d4dd1a4 100644
--- a/drivers/net/mlx5/mlx5_flow_dv.c
+++ b/drivers/net/mlx5/mlx5_flow_dv.c
@@ -14538,6 +14538,7 @@ __flow_dv_translate_items_hws(const struct rte_flow_item *items,
.next_protocol = 0xff,
.attr = &rattr,
.rss_desc = &rss_desc,
+ .group = attr->group,
};
int ret = 0;
diff --git a/drivers/net/mlx5/mlx5_flow_hw.c b/drivers/net/mlx5/mlx5_flow_hw.c
index 470919fe8a..46f6665846 100644
--- a/drivers/net/mlx5/mlx5_flow_hw.c
+++ b/drivers/net/mlx5/mlx5_flow_hw.c
@@ -13682,7 +13682,7 @@ flow_hw_create_flow(struct rte_eth_dev *dev, enum mlx5_flow_type type,
.rss_level = 0,
.act_flags = action_flags,
.tbl_type = 0,
- };
+ };
memset(&hw_act, 0, sizeof(hw_act));
if (attr->transfer)
@@ -13702,7 +13702,7 @@ flow_hw_create_flow(struct rte_eth_dev *dev, enum mlx5_flow_type type,
(*flow)->nt_rule = true;
(*flow)->nt2hws->matcher = &matcher;
ret = flow_dv_translate_items_hws(items, &flow_attr, &matcher.mask.buf,
- MLX5_SET_MATCHER_HS_M, &item_flags,
+ MLX5_SET_MATCHER_HS_M, NULL,
NULL, error);
if (ret)
--
2.34.1
More information about the dev
mailing list