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 <klit...@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

Reply via email to