/* SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB * Copyright (c) 2019 Mellanox Technologies */ #ifndef _MLX5_FS_DR_ #define _MLX5_FS_DR_ #include "mlx5dr.h" struct mlx5_flow_root_namespace; struct fs_fte; struct mlx5_fs_dr_action { struct mlx5dr_action *dr_action; }; struct mlx5_fs_dr_ns { struct mlx5_dr_ns *dr_ns; }; struct mlx5_fs_dr_rule { struct mlx5dr_rule *dr_rule; /* Only actions created by fs_dr */ struct mlx5dr_action **dr_actions; int num_actions; }; struct mlx5_fs_dr_domain { struct mlx5dr_domain *dr_domain; }; struct mlx5_fs_dr_matcher { struct mlx5dr_matcher *dr_matcher; }; struct mlx5_fs_dr_table { struct mlx5dr_table *dr_table; struct mlx5dr_action *miss_action; }; #ifdef CONFIG_MLX5_SW_STEERING bool mlx5_fs_dr_is_supported(struct mlx5_core_dev *dev); const struct mlx5_flow_cmds *mlx5_fs_cmd_get_dr_cmds(void); #else static inline const struct mlx5_flow_cmds *mlx5_fs_cmd_get_dr_cmds(void) { return NULL; } static inline bool mlx5_fs_dr_is_supported(struct mlx5_core_dev *dev) { return false; } #endif /* CONFIG_MLX5_SW_STEERING */ #endif