#include "fs_cmd.h"
 #include "mlx5dr.h"
 #include "fs_dr.h"
+#include "dr_types.h"
 
-static bool mlx5_dr_is_fw_table(u32 flags)
+static bool dr_is_fw_term_table(struct mlx5_flow_table *ft)
 {
-       if (flags & MLX5_FLOW_TABLE_TERMINATION)
+       if (ft->flags & MLX5_FLOW_TABLE_TERMINATION)
                return true;
 
        return false;
        u32 flags;
        int err;
 
-       if (mlx5_dr_is_fw_table(ft->flags))
+       if (dr_is_fw_term_table(ft))
                return mlx5_fs_cmd_get_fw_cmds()->create_flow_table(ns, ft,
                                                                    ft_attr,
                                                                    next_ft);
        struct mlx5dr_action *action = ft->fs_dr_table.miss_action;
        int err;
 
-       if (mlx5_dr_is_fw_table(ft->flags))
+       if (dr_is_fw_term_table(ft))
                return mlx5_fs_cmd_get_fw_cmds()->destroy_flow_table(ns, ft);
 
        err = mlx5dr_table_destroy(ft->fs_dr_table.dr_table);
                                         struct mlx5_flow_table *ft,
                                         struct mlx5_flow_table *next_ft)
 {
-       if (mlx5_dr_is_fw_table(ft->flags))
+       if (dr_is_fw_term_table(ft))
                return mlx5_fs_cmd_get_fw_cmds()->modify_flow_table(ns, ft, next_ft);
 
        return set_miss_action(ns, ft, next_ft);
                                            match_criteria_enable);
        struct mlx5dr_match_parameters mask;
 
-       if (mlx5_dr_is_fw_table(ft->flags))
+       if (dr_is_fw_term_table(ft))
                return mlx5_fs_cmd_get_fw_cmds()->create_flow_group(ns, ft, in,
                                                                    fg);
 
                                          struct mlx5_flow_table *ft,
                                          struct mlx5_flow_group *fg)
 {
-       if (mlx5_dr_is_fw_table(ft->flags))
+       if (dr_is_fw_term_table(ft))
                return mlx5_fs_cmd_get_fw_cmds()->destroy_flow_group(ns, ft, fg);
 
        return mlx5dr_matcher_destroy(fg->fs_dr_matcher.dr_matcher);
 {
        struct mlx5_flow_table *dest_ft = dst->dest_attr.ft;
 
-       if (mlx5_dr_is_fw_table(dest_ft->flags))
+       if (mlx5dr_is_fw_table(dest_ft))
                return mlx5dr_action_create_dest_flow_fw_table(domain, dest_ft);
        return mlx5dr_action_create_dest_table(dest_ft->fs_dr_table.dr_table);
 }
        int err = 0;
        int i;
 
-       if (mlx5_dr_is_fw_table(ft->flags))
+       if (dr_is_fw_term_table(ft))
                return mlx5_fs_cmd_get_fw_cmds()->create_fte(ns, ft, group, fte);
 
        actions = kcalloc(MLX5_FLOW_CONTEXT_ACTION_MAX, sizeof(*actions),
        int err;
        int i;
 
-       if (mlx5_dr_is_fw_table(ft->flags))
+       if (dr_is_fw_term_table(ft))
                return mlx5_fs_cmd_get_fw_cmds()->delete_fte(ns, ft, fte);
 
        err = mlx5dr_rule_destroy(rule->dr_rule);
        struct fs_fte fte_tmp = {};
        int ret;
 
-       if (mlx5_dr_is_fw_table(ft->flags))
+       if (dr_is_fw_term_table(ft))
                return mlx5_fs_cmd_get_fw_cmds()->update_fte(ns, ft, group, modify_mask, fte);
 
        /* Backup current dr rule details */