diff options
author | Guy Levi <guyle@mellanox.com> | 2017-07-04 15:24:24 +0200 |
---|---|---|
committer | Doug Ledford <dledford@redhat.com> | 2017-07-24 16:45:01 +0200 |
commit | 400b1ebcfe31279895f1baa8ecaa390d9a4a0eef (patch) | |
tree | 4f955839f30b839b64491c3adc080917b53dd97b /include/uapi/rdma/mlx4-abi.h | |
parent | (IB, net)/mlx4: Add resource utilization support (diff) | |
download | linux-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 'include/uapi/rdma/mlx4-abi.h')
-rw-r--r-- | include/uapi/rdma/mlx4-abi.h | 14 |
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 */ |