1 /* SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB */
2 /* Copyright (c) 2022, NVIDIA CORPORATION & AFFILIATES. All rights reserved. */
3 
4 #ifndef __MLX5_LIB_IPSEC_H__
5 #define __MLX5_LIB_IPSEC_H__
6 
7 struct mlx5_ipsec_fs;
8 
9 struct mlx5_flow_table *
10 mlx5_ipsec_fs_roce_ft_get(struct mlx5_ipsec_fs *ipsec_roce, u32 family);
11 void mlx5_ipsec_fs_roce_rx_destroy(struct mlx5_ipsec_fs *ipsec_roce,
12 				   u32 family);
13 int mlx5_ipsec_fs_roce_rx_create(struct mlx5_core_dev *mdev,
14 				 struct mlx5_ipsec_fs *ipsec_roce,
15 				 struct mlx5_flow_namespace *ns,
16 				 struct mlx5_flow_destination *default_dst,
17 				 u32 family, u32 level, u32 prio);
18 void mlx5_ipsec_fs_roce_tx_destroy(struct mlx5_ipsec_fs *ipsec_roce);
19 int mlx5_ipsec_fs_roce_tx_create(struct mlx5_core_dev *mdev,
20 				 struct mlx5_ipsec_fs *ipsec_roce,
21 				 struct mlx5_flow_table *pol_ft);
22 void mlx5_ipsec_fs_roce_cleanup(struct mlx5_ipsec_fs *ipsec_roce);
23 struct mlx5_ipsec_fs *mlx5_ipsec_fs_roce_init(struct mlx5_core_dev *mdev);
24 
25 #endif /* __MLX5_LIB_IPSEC_H__ */
26