From: Hamdan Igbaria <hamd...@nvidia.com>

Dump action ste arrays info for resizing matchers.

Signed-off-by: Hamdan Igbaria <hamd...@nvidia.com>
Acked-by: Matan Azrad <ma...@nvidia.com>
---
 drivers/net/mlx5/hws/mlx5dr_debug.c   | 23 +++++++++++++++++++++++
 drivers/net/mlx5/hws/mlx5dr_debug.h   |  1 +
 drivers/net/mlx5/hws/mlx5dr_matcher.c |  1 +
 drivers/net/mlx5/hws/mlx5dr_matcher.h |  1 +
 4 files changed, 26 insertions(+)

diff --git a/drivers/net/mlx5/hws/mlx5dr_debug.c 
b/drivers/net/mlx5/hws/mlx5dr_debug.c
index 8f07c7fd66..5ad4ca2da5 100644
--- a/drivers/net/mlx5/hws/mlx5dr_debug.c
+++ b/drivers/net/mlx5/hws/mlx5dr_debug.c
@@ -206,6 +206,7 @@ static int mlx5dr_debug_dump_matcher(FILE *f, struct 
mlx5dr_matcher *matcher)
        bool is_shared = mlx5dr_context_shared_gvmi_used(matcher->tbl->ctx);
        bool is_root = matcher->tbl->level == MLX5DR_ROOT_LEVEL;
        enum mlx5dr_table_type tbl_type = matcher->tbl->type;
+       struct mlx5dr_matcher_resize_data *resize_data;
        struct mlx5dr_cmd_ft_query_attr ft_attr = {0};
        struct mlx5dr_devx_obj *ste_0, *ste_1 = NULL;
        struct mlx5dr_pool_chunk *ste;
@@ -288,6 +289,28 @@ static int mlx5dr_debug_dump_matcher(FILE *f, struct 
mlx5dr_matcher *matcher)
        if (ret)
                return ret;
 
+       LIST_FOREACH(resize_data, &matcher->resize_data, next) {
+               ste = &resize_data->ste;
+               ste_pool = resize_data->action_ste_pool;
+               if (ste_pool) {
+                       ste_0 = mlx5dr_pool_chunk_get_base_devx_obj(ste_pool, 
ste);
+                       if (tbl_type == MLX5DR_TABLE_TYPE_FDB)
+                               ste_1 = 
mlx5dr_pool_chunk_get_base_devx_obj_mirror(ste_pool, ste);
+               } else {
+                       ste_0 = NULL;
+                       ste_1 = NULL;
+               }
+               ret = fprintf(f, "%d,0x%" PRIx64 ",%d,%d,%d,%d\n",
+                             
MLX5DR_DEBUG_RES_TYPE_MATCHER_RESIZABLE_ACTION_ARRAY,
+                             (uint64_t)(uintptr_t)matcher,
+                             resize_data->action_ste_rtc_0 ? 
resize_data->action_ste_rtc_0->id : 0,
+                             ste_0 ? (int)ste_0->id : -1,
+                             resize_data->action_ste_rtc_1 ? 
resize_data->action_ste_rtc_1->id : 0,
+                             ste_1 ? (int)ste_1->id : -1);
+               if (ret < 0)
+                       return ret;
+       }
+
        return 0;
 
 out_err:
diff --git a/drivers/net/mlx5/hws/mlx5dr_debug.h 
b/drivers/net/mlx5/hws/mlx5dr_debug.h
index a89a6a0b1d..b69002b5cd 100644
--- a/drivers/net/mlx5/hws/mlx5dr_debug.h
+++ b/drivers/net/mlx5/hws/mlx5dr_debug.h
@@ -25,6 +25,7 @@ enum mlx5dr_debug_res_type {
        MLX5DR_DEBUG_RES_TYPE_MATCHER_TEMPLATE_HASH_DEFINER = 4205,
        MLX5DR_DEBUG_RES_TYPE_MATCHER_TEMPLATE_RANGE_DEFINER = 4206,
        MLX5DR_DEBUG_RES_TYPE_MATCHER_TEMPLATE_COMPARE_MATCH_DEFINER = 4207,
+       MLX5DR_DEBUG_RES_TYPE_MATCHER_RESIZABLE_ACTION_ARRAY = 4208,
 };
 
 static inline uint64_t
diff --git a/drivers/net/mlx5/hws/mlx5dr_matcher.c 
b/drivers/net/mlx5/hws/mlx5dr_matcher.c
index 78d525e578..8f1a202f81 100644
--- a/drivers/net/mlx5/hws/mlx5dr_matcher.c
+++ b/drivers/net/mlx5/hws/mlx5dr_matcher.c
@@ -724,6 +724,7 @@ mlx5dr_matcher_resize_init(struct mlx5dr_matcher 
*src_matcher)
                return rte_errno;
        }
 
+       resize_data->ste = src_matcher->action_ste.ste;
        resize_data->stc = src_matcher->action_ste.stc;
        resize_data->action_ste_rtc_0 = src_matcher->action_ste.rtc_0;
        resize_data->action_ste_rtc_1 = src_matcher->action_ste.rtc_1;
diff --git a/drivers/net/mlx5/hws/mlx5dr_matcher.h 
b/drivers/net/mlx5/hws/mlx5dr_matcher.h
index 6dc3bf4d0d..caff403a38 100644
--- a/drivers/net/mlx5/hws/mlx5dr_matcher.h
+++ b/drivers/net/mlx5/hws/mlx5dr_matcher.h
@@ -62,6 +62,7 @@ struct mlx5dr_matcher_action_ste {
 };
 
 struct mlx5dr_matcher_resize_data {
+       struct mlx5dr_pool_chunk ste;
        struct mlx5dr_pool_chunk stc;
        struct mlx5dr_devx_obj *action_ste_rtc_0;
        struct mlx5dr_devx_obj *action_ste_rtc_1;
-- 
2.39.3

Reply via email to