summaryrefslogtreecommitdiffstats
path: root/include/uapi/rdma/mlx4-abi.h
diff options
context:
space:
mode:
authorGuy Levi <guyle@mellanox.com>2017-07-04 15:24:24 +0200
committerDoug Ledford <dledford@redhat.com>2017-07-24 16:45:01 +0200
commit400b1ebcfe31279895f1baa8ecaa390d9a4a0eef (patch)
tree4f955839f30b839b64491c3adc080917b53dd97b /include/uapi/rdma/mlx4-abi.h
parent(IB, net)/mlx4: Add resource utilization support (diff)
downloadlinux-400b1ebcfe31279895f1baa8ecaa390d9a4a0eef.tar.xz
linux-400b1ebcfe31279895f1baa8ecaa390d9a4a0eef.zip
IB/mlx4: Add support for WQ related verbs
Support create/modify/destroy WQ related verbs. The base IB object to enable RSS functionality is a WQ (i.e. ib_wq). This patch implements the related WQ verbs as of create, modify and destroy. In downstream patches the WQ will be used as part of an indirection table (i.e. ib_rwq_ind_table) to enable RSS QP creation. Notes: ConnectX-3 hardware requires consecutive WQNs list as receive descriptor queues for the RSS QP. Hence, the driver manages consecutive ranges lists per context which the user must respect. Destroying the WQ does not return its WQN back to its range for reusing. However, destroying all WQs from the same range releases the range and in turn releases its WQNs for reusing. Since the WQ object is not a natural object in the hardware, the driver implements the WQ by the hardware QP. As such, the WQ inherits its port from its RSS QP parent upon its RST->INIT transition and by that time its state is applied to the hardware. Signed-off-by: Guy Levi <guyle@mellanox.com> Reviewed-by: Yishai Hadas <yishaih@mellanox.com> Signed-off-by: Leon Romanovsky <leon@kernel.org> Signed-off-by: Doug Ledford <dledford@redhat.com>
Diffstat (limited to '')
-rw-r--r--include/uapi/rdma/mlx4-abi.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/include/uapi/rdma/mlx4-abi.h b/include/uapi/rdma/mlx4-abi.h
index bf3bdba2f326..c9702a5f0bda 100644
--- a/include/uapi/rdma/mlx4-abi.h
+++ b/include/uapi/rdma/mlx4-abi.h
@@ -105,4 +105,18 @@ struct mlx4_ib_create_qp {
__u8 reserved;
};
+struct mlx4_ib_create_wq {
+ __u64 buf_addr;
+ __u64 db_addr;
+ __u8 log_range_size;
+ __u8 reserved[3];
+ __u32 comp_mask;
+ __u32 reserved1;
+};
+
+struct mlx4_ib_modify_wq {
+ __u32 comp_mask;
+ __u32 reserved;
+};
+
#endif /* MLX4_ABI_USER_H */