11c80bd68SAya Levin /* SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB */
21c80bd68SAya Levin /* Copyright (c) 2021 Mellanox Technologies. */
31c80bd68SAya Levin 
41c80bd68SAya Levin #ifndef __MLX5E_FS_TT_REDIRECT_H__
51c80bd68SAya Levin #define __MLX5E_FS_TT_REDIRECT_H__
61c80bd68SAya Levin 
71c80bd68SAya Levin #include "en/fs.h"
81c80bd68SAya Levin 
91c80bd68SAya Levin void mlx5e_fs_tt_redirect_del_rule(struct mlx5_flow_handle *rule);
101c80bd68SAya Levin 
111c80bd68SAya Levin /* UDP traffic type redirect */
121c80bd68SAya Levin struct mlx5_flow_handle *
13*4e0ecc17SLama Kayal mlx5e_fs_tt_redirect_udp_add_rule(struct mlx5e_flow_steering *fs,
14d443c6f6SMaor Gottlieb 				  enum mlx5_traffic_types ttc_type,
151c80bd68SAya Levin 				  u32 tir_num, u16 d_port);
16*4e0ecc17SLama Kayal void mlx5e_fs_tt_redirect_udp_destroy(struct mlx5e_flow_steering *fs);
17*4e0ecc17SLama Kayal int mlx5e_fs_tt_redirect_udp_create(struct mlx5e_flow_steering *fs);
180f575c20SAya Levin 
190f575c20SAya Levin /* ANY traffic type redirect*/
200f575c20SAya Levin struct mlx5_flow_handle *
21*4e0ecc17SLama Kayal mlx5e_fs_tt_redirect_any_add_rule(struct mlx5e_flow_steering *fs,
220f575c20SAya Levin 				  u32 tir_num, u16 ether_type);
23*4e0ecc17SLama Kayal void mlx5e_fs_tt_redirect_any_destroy(struct mlx5e_flow_steering *fs);
24*4e0ecc17SLama Kayal int mlx5e_fs_tt_redirect_any_create(struct mlx5e_flow_steering *fs);
251c80bd68SAya Levin #endif
26