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