[PATCH] net/mlx5/hws: set ft_type on root matcher creation

Suanming Mou suanmingm at nvidia.com
Wed Oct 26 04:09:43 CEST 2022


The ft_type should be provided to mlx5dv_create_flow_matcher
if the matcher attributes exist, not only for FDB but for NIC
as well. If the ft_type is not provided, matcher/rule creation
might fail.

Fixes: ac7931dd1908 ("net/mlx5/hws: add HWS matcher object")

Signed-off-by: Alex Vesker <valex at nvidia.com>
Signed-off-by: Suanming Mou <suanmingm at nvidia.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo at nvidia.com>
---
 drivers/net/mlx5/hws/mlx5dr_matcher.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/drivers/net/mlx5/hws/mlx5dr_matcher.c b/drivers/net/mlx5/hws/mlx5dr_matcher.c
index d1205c42fa..67adfeec6c 100644
--- a/drivers/net/mlx5/hws/mlx5dr_matcher.c
+++ b/drivers/net/mlx5/hws/mlx5dr_matcher.c
@@ -679,20 +679,24 @@ static int mlx5dr_matcher_init_root(struct mlx5dr_matcher *matcher)
 	uint8_t match_criteria;
 	int ret;
 
+#ifdef HAVE_MLX5DV_FLOW_MATCHER_FT_TYPE
+	attr.comp_mask = MLX5DV_FLOW_MATCHER_MASK_FT_TYPE;
+
 	switch (type) {
 	case MLX5DR_TABLE_TYPE_NIC_RX:
+		attr.ft_type = MLX5DV_FLOW_TABLE_TYPE_NIC_RX;
+		break;
 	case MLX5DR_TABLE_TYPE_NIC_TX:
+		attr.ft_type = MLX5DV_FLOW_TABLE_TYPE_NIC_TX;
 		break;
-#ifdef HAVE_MLX5DV_FLOW_MATCHER_FT_TYPE
 	case MLX5DR_TABLE_TYPE_FDB:
-		attr.comp_mask = MLX5DV_FLOW_MATCHER_MASK_FT_TYPE;
 		attr.ft_type = MLX5DV_FLOW_TABLE_TYPE_FDB;
 		break;
-#endif
 	default:
 		assert(0);
 		break;
 	}
+#endif
 
 	if (matcher->attr.priority > UINT16_MAX) {
 		DR_LOG(ERR, "Root matcher priority exceeds allowed limit");
-- 
2.25.1



More information about the dev mailing list