1c1191a19SLeon Romanovsky /* SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB */
2fc385b7aSMark Bloch /*
3fc385b7aSMark Bloch  * Copyright (c) 2018 Mellanox Technologies. All rights reserved.
4fc385b7aSMark Bloch  */
5fc385b7aSMark Bloch 
6fc385b7aSMark Bloch #ifndef __MLX5_IB_REP_H__
7fc385b7aSMark Bloch #define __MLX5_IB_REP_H__
8fc385b7aSMark Bloch 
9fc385b7aSMark Bloch #include <linux/mlx5/eswitch.h>
10fc385b7aSMark Bloch #include "mlx5_ib.h"
11fc385b7aSMark Bloch 
12b5a498baSMichael Guralnik extern const struct mlx5_ib_profile raw_eth_profile;
13f0666f1fSBodong Wang 
148d93efb8SMark Bloch #ifdef CONFIG_MLX5_ESWITCH
1593f82444SLeon Romanovsky int mlx5r_rep_init(void);
1693f82444SLeon Romanovsky void mlx5r_rep_cleanup(void);
17d5ed8ac3SMark Bloch struct mlx5_flow_handle *create_flow_rule_vport_sq(struct mlx5_ib_dev *dev,
18d5ed8ac3SMark Bloch 						   struct mlx5_ib_sq *sq,
19*1fb7f897SMark Bloch 						   u32 port);
20bcf87f1dSMark Bloch struct net_device *mlx5_ib_get_rep_netdev(struct mlx5_eswitch *esw,
2102f3afd9SParav Pandit 					  u16 vport_num);
22fc385b7aSMark Bloch #else /* CONFIG_MLX5_ESWITCH */
mlx5r_rep_init(void)2393f82444SLeon Romanovsky static inline int mlx5r_rep_init(void) { return 0; }
mlx5r_rep_cleanup(void)2493f82444SLeon Romanovsky static inline void mlx5r_rep_cleanup(void) {}
25d5ed8ac3SMark Bloch static inline
create_flow_rule_vport_sq(struct mlx5_ib_dev * dev,struct mlx5_ib_sq * sq,u32 port)26d5ed8ac3SMark Bloch struct mlx5_flow_handle *create_flow_rule_vport_sq(struct mlx5_ib_dev *dev,
27d5ed8ac3SMark Bloch 						   struct mlx5_ib_sq *sq,
28*1fb7f897SMark Bloch 						   u32 port)
29b96c9ddeSMark Bloch {
30d5ed8ac3SMark Bloch 	return NULL;
31b96c9ddeSMark Bloch }
32b96c9ddeSMark Bloch 
33bcf87f1dSMark Bloch static inline
mlx5_ib_get_rep_netdev(struct mlx5_eswitch * esw,u16 vport_num)34bcf87f1dSMark Bloch struct net_device *mlx5_ib_get_rep_netdev(struct mlx5_eswitch *esw,
3502f3afd9SParav Pandit 					  u16 vport_num)
36bcf87f1dSMark Bloch {
37bcf87f1dSMark Bloch 	return NULL;
38bcf87f1dSMark Bloch }
39fc385b7aSMark Bloch #endif
40fc385b7aSMark Bloch #endif /* __MLX5_IB_REP_H__ */
41