root/drivers/infiniband/hw/mlx5/ib_rep.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


DEFINITIONS

This source file includes following definitions.
  1. mlx5_ib_eswitch_mode
  2. mlx5_ib_get_rep_ibdev
  3. mlx5_ib_get_uplink_ibdev
  4. mlx5_ib_vport_rep
  5. mlx5_ib_register_vport_reps
  6. mlx5_ib_unregister_vport_reps
  7. create_flow_rule_vport_sq
  8. mlx5_ib_get_rep_netdev
  9. mlx5_ib_rep_to_dev

   1 /* SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB */
   2 /*
   3  * Copyright (c) 2018 Mellanox Technologies. All rights reserved.
   4  */
   5 
   6 #ifndef __MLX5_IB_REP_H__
   7 #define __MLX5_IB_REP_H__
   8 
   9 #include <linux/mlx5/eswitch.h>
  10 #include "mlx5_ib.h"
  11 
  12 #ifdef CONFIG_MLX5_ESWITCH
  13 extern const struct mlx5_ib_profile uplink_rep_profile;
  14 
  15 u8 mlx5_ib_eswitch_mode(struct mlx5_eswitch *esw);
  16 struct mlx5_ib_dev *mlx5_ib_get_rep_ibdev(struct mlx5_eswitch *esw,
  17                                           u16 vport_num);
  18 struct mlx5_ib_dev *mlx5_ib_get_uplink_ibdev(struct mlx5_eswitch *esw);
  19 struct mlx5_eswitch_rep *mlx5_ib_vport_rep(struct mlx5_eswitch *esw,
  20                                            u16 vport_num);
  21 void mlx5_ib_register_vport_reps(struct mlx5_core_dev *mdev);
  22 void mlx5_ib_unregister_vport_reps(struct mlx5_core_dev *mdev);
  23 struct mlx5_flow_handle *create_flow_rule_vport_sq(struct mlx5_ib_dev *dev,
  24                                                    struct mlx5_ib_sq *sq,
  25                                                    u16 port);
  26 struct net_device *mlx5_ib_get_rep_netdev(struct mlx5_eswitch *esw,
  27                                           u16 vport_num);
  28 #else /* CONFIG_MLX5_ESWITCH */
  29 static inline u8 mlx5_ib_eswitch_mode(struct mlx5_eswitch *esw)
  30 {
  31         return MLX5_ESWITCH_NONE;
  32 }
  33 
  34 static inline
  35 struct mlx5_ib_dev *mlx5_ib_get_rep_ibdev(struct mlx5_eswitch *esw,
  36                                           u16 vport_num)
  37 {
  38         return NULL;
  39 }
  40 
  41 static inline
  42 struct mlx5_ib_dev *mlx5_ib_get_uplink_ibdev(struct mlx5_eswitch *esw)
  43 {
  44         return NULL;
  45 }
  46 
  47 static inline
  48 struct mlx5_eswitch_rep *mlx5_ib_vport_rep(struct mlx5_eswitch *esw,
  49                                            u16 vport_num)
  50 {
  51         return NULL;
  52 }
  53 
  54 static inline void mlx5_ib_register_vport_reps(struct mlx5_core_dev *mdev) {}
  55 static inline void mlx5_ib_unregister_vport_reps(struct mlx5_core_dev *mdev) {}
  56 static inline
  57 struct mlx5_flow_handle *create_flow_rule_vport_sq(struct mlx5_ib_dev *dev,
  58                                                    struct mlx5_ib_sq *sq,
  59                                                    u16 port)
  60 {
  61         return NULL;
  62 }
  63 
  64 static inline
  65 struct net_device *mlx5_ib_get_rep_netdev(struct mlx5_eswitch *esw,
  66                                           u16 vport_num)
  67 {
  68         return NULL;
  69 }
  70 #endif
  71 
  72 static inline
  73 struct mlx5_ib_dev *mlx5_ib_rep_to_dev(struct mlx5_eswitch_rep *rep)
  74 {
  75         return rep->rep_data[REP_IB].priv;
  76 }
  77 #endif /* __MLX5_IB_REP_H__ */

/* [<][>][^][v][top][bottom][index][help] */