aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/infiniband/hw/mlx4/mlx4_ib.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/infiniband/hw/mlx4/mlx4_ib.h')
-rw-r--r--drivers/infiniband/hw/mlx4/mlx4_ib.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/infiniband/hw/mlx4/mlx4_ib.h b/drivers/infiniband/hw/mlx4/mlx4_ib.h
index e9fb39603ee9..837f9aa3d2a2 100644
--- a/drivers/infiniband/hw/mlx4/mlx4_ib.h
+++ b/drivers/infiniband/hw/mlx4/mlx4_ib.h
@@ -68,6 +68,8 @@ enum {
68/*module param to indicate if SM assigns the alias_GUID*/ 68/*module param to indicate if SM assigns the alias_GUID*/
69extern int mlx4_ib_sm_guid_assign; 69extern int mlx4_ib_sm_guid_assign;
70 70
71#define MLX4_IB_UC_STEER_QPN_ALIGN 1
72#define MLX4_IB_UC_MAX_NUM_QPS 256
71struct mlx4_ib_ucontext { 73struct mlx4_ib_ucontext {
72 struct ib_ucontext ibucontext; 74 struct ib_ucontext ibucontext;
73 struct mlx4_uar uar; 75 struct mlx4_uar uar;
@@ -153,6 +155,7 @@ struct mlx4_ib_wq {
153enum mlx4_ib_qp_flags { 155enum mlx4_ib_qp_flags {
154 MLX4_IB_QP_LSO = IB_QP_CREATE_IPOIB_UD_LSO, 156 MLX4_IB_QP_LSO = IB_QP_CREATE_IPOIB_UD_LSO,
155 MLX4_IB_QP_BLOCK_MULTICAST_LOOPBACK = IB_QP_CREATE_BLOCK_MULTICAST_LOOPBACK, 157 MLX4_IB_QP_BLOCK_MULTICAST_LOOPBACK = IB_QP_CREATE_BLOCK_MULTICAST_LOOPBACK,
158 MLX4_IB_QP_NETIF = IB_QP_CREATE_NETIF_QP,
156 MLX4_IB_SRIOV_TUNNEL_QP = 1 << 30, 159 MLX4_IB_SRIOV_TUNNEL_QP = 1 << 30,
157 MLX4_IB_SRIOV_SQP = 1 << 31, 160 MLX4_IB_SRIOV_SQP = 1 << 31,
158}; 161};
@@ -270,6 +273,7 @@ struct mlx4_ib_qp {
270 struct list_head gid_list; 273 struct list_head gid_list;
271 struct list_head steering_rules; 274 struct list_head steering_rules;
272 struct mlx4_ib_buf *sqp_proxy_rcv; 275 struct mlx4_ib_buf *sqp_proxy_rcv;
276 u64 reg_id;
273 277
274}; 278};
275 279
@@ -494,6 +498,9 @@ struct mlx4_ib_dev {
494 struct kobject *dev_ports_parent[MLX4_MFUNC_MAX]; 498 struct kobject *dev_ports_parent[MLX4_MFUNC_MAX];
495 struct mlx4_ib_iov_port iov_ports[MLX4_MAX_PORTS]; 499 struct mlx4_ib_iov_port iov_ports[MLX4_MAX_PORTS];
496 struct pkey_mgt pkeys; 500 struct pkey_mgt pkeys;
501 unsigned long *ib_uc_qpns_bitmap;
502 int steer_qpn_count;
503 int steer_qpn_base;
497 int steering_support; 504 int steering_support;
498}; 505};
499 506
@@ -753,5 +760,9 @@ void mlx4_ib_device_unregister_sysfs(struct mlx4_ib_dev *device);
753 760
754__be64 mlx4_ib_gen_node_guid(void); 761__be64 mlx4_ib_gen_node_guid(void);
755 762
763int mlx4_ib_steer_qp_alloc(struct mlx4_ib_dev *dev, int count, int *qpn);
764void mlx4_ib_steer_qp_free(struct mlx4_ib_dev *dev, u32 qpn, int count);
765int mlx4_ib_steer_qp_reg(struct mlx4_ib_dev *mdev, struct mlx4_ib_qp *mqp,
766 int is_attach);
756 767
757#endif /* MLX4_IB_H */ 768#endif /* MLX4_IB_H */