[PATCH 4/4] net/mlx5/hws: handle collision matcher for linear RTC

Yevgeny Kliteynik kliteyn at nvidia.com
Thu Jan 12 14:49:12 CET 2023


No need to create/destroy collision matcher for linear RTC,
because it has a constant depth of 1 STE - packets reaching
any STE in the array will always match and perform the specified
actions.

Signed-off-by: Yevgeny Kliteynik <kliteyn at nvidia.com>
---
 drivers/net/mlx5/hws/mlx5dr_matcher.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/net/mlx5/hws/mlx5dr_matcher.c b/drivers/net/mlx5/hws/mlx5dr_matcher.c
index 60865bf562..d509a2f0e1 100644
--- a/drivers/net/mlx5/hws/mlx5dr_matcher.c
+++ b/drivers/net/mlx5/hws/mlx5dr_matcher.c
@@ -925,7 +925,8 @@ mlx5dr_matcher_create_col_matcher(struct mlx5dr_matcher *matcher)
 	struct mlx5dr_matcher *col_matcher;
 	int ret;
 
-	if (matcher->attr.mode != MLX5DR_MATCHER_RESOURCE_MODE_RULE)
+	if (matcher->attr.mode != MLX5DR_MATCHER_RESOURCE_MODE_RULE ||
+	    matcher->attr.insert_mode == MLX5DR_MATCHER_INSERT_BY_INDEX)
 		return 0;
 
 	if (!mlx5dr_matcher_requires_col_tbl(matcher->attr.rule.num_log))
@@ -972,7 +973,8 @@ mlx5dr_matcher_create_col_matcher(struct mlx5dr_matcher *matcher)
 static void
 mlx5dr_matcher_destroy_col_matcher(struct mlx5dr_matcher *matcher)
 {
-	if (matcher->attr.mode != MLX5DR_MATCHER_RESOURCE_MODE_RULE)
+	if (matcher->attr.mode != MLX5DR_MATCHER_RESOURCE_MODE_RULE ||
+	    matcher->attr.insert_mode == MLX5DR_MATCHER_INSERT_BY_INDEX)
 		return;
 
 	if (matcher->col_matcher) {
-- 
2.27.0



More information about the dev mailing list