.\" Automatically generated by Pandoc 1.19.2.4
.\"
.TH "mlx5dv_create_qp" "3" "2018\-9\-1" "mlx5" "mlx5 Programmer\[aq]s Manual"
.hy
.SH NAME
.PP
mlx5dv_create_qp \- creates a queue pair (QP)
.SH SYNOPSIS
.IP
.nf
\f[C]
#include\ <infiniband/mlx5dv.h>

struct\ ibv_qp\ *mlx5dv_create_qp(struct\ ibv_context\ \ \ \ \ \ \ \ \ *context,
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ struct\ ibv_qp_init_attr_ex\ *qp_attr,
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ struct\ mlx5dv_qp_init_attr\ *mlx5_qp_attr)
\f[]
.fi
.SH DESCRIPTION
.PP
\f[B]mlx5dv_create_qp()\f[] creates a queue pair (QP) with specific
driver properties.
.SH ARGUMENTS
.PP
Please see \f[I]ibv_create_qp_ex(3)\f[] man page for \f[I]context\f[]
and \f[I]qp_attr\f[].
.SS mlx5_qp_attr
.IP
.nf
\f[C]
struct\ mlx5dv_qp_init_attr\ {
\ \ \ \ uint64_t\ comp_mask;
\ \ \ \ uint32_t\ create_flags;
\ \ \ \ struct\ mlx5dv_dc_init_attr\ \ dc_init_attr;
\ \ \ \ uint64_t\ send_ops_flags;
};
\f[]
.fi
.TP
.B \f[I]comp_mask\f[]
Bitmask specifying what fields in the structure are valid:
MLX5DV_QP_INIT_ATTR_MASK_QP_CREATE_FLAGS: valid values in
\f[I]create_flags\f[] MLX5DV_QP_INIT_ATTR_MASK_DC: valid values in
\f[I]dc_init_attr\f[] MLX5DV_QP_INIT_ATTR_MASK_SEND_OPS_FLAGS: valid
values in \f[I]send_ops_flags\f[]
.RS
.RE
.TP
.B \f[I]create_flags\f[]
A bitwise OR of the various values described below.
.RS
.PP
MLX5DV_QP_CREATE_TUNNEL_OFFLOADS: Enable offloading such as checksum and
LRO for incoming tunneling traffic.
.PP
MLX5DV_QP_CREATE_TIR_ALLOW_SELF_LOOPBACK_UC: Allow receiving loopback
unicast traffic.
.PP
MLX5DV_QP_CREATE_TIR_ALLOW_SELF_LOOPBACK_MC: Allow receiving loopback
multicast traffic.
.PP
MLX5DV_QP_CREATE_DISABLE_SCATTER_TO_CQE: Disable scatter to CQE feature
which is enabled by default.
.PP
MLX5DV_QP_CREATE_ALLOW_SCATTER_TO_CQE: Allow scatter to CQE for
requester even if the qp was not configured to signal all WRs.
.PP
MLX5DV_QP_CREATE_PACKET_BASED_CREDIT_MODE: Set QP to work in
end\-to\-end packet\-based credit, instead of the default message\-based
credits (IB spec.
section 9.7.7.2).
.PD 0
.P
.PD
It is the applications responsibility to make sure that the peer QP is
configured with same mode.
.RE
.TP
.B \f[I]dc_init_attr\f[]
DC init attributes.
.RS
.RE
.SS \f[I]dc_init_attr\f[]
.IP
.nf
\f[C]
struct\ mlx5dv_dc_init_attr\ {
\ \ \ \ enum\ mlx5dv_dc_type\ dc_type;
\ \ \ \ uint64_t\ dct_access_key;
};
\f[]
.fi
.TP
.B \f[I]dc_type\f[]
MLX5DV_DCTYPE_DCT QP type: Target DC.
MLX5DV_DCTYPE_DCI QP type: Initiator DC.
.RS
.RE
.TP
.B \f[I]dct_access_key\f[]
used to create a DCT QP.
.RS
.RE
.TP
.B \f[I]send_ops_flags\f[]
A bitwise OR of the various values described below.
.RS
.PP
MLX5DV_QP_EX_WITH_MR_INTERLEAVED: Enables the mlx5dv_wr_mr_interleaved()
work requset on this QP.
.PP
MLX5DV_QP_EX_WITH_MR_LIST: Enables the mlx5dv_wr_mr_list() work requset
on this QP.
.RE
.SH NOTES
.PP
\f[B]mlx5dv_qp_ex_from_ibv_qp_ex()\f[] is used to get \f[I]struct
mlx5dv_qp_ex\f[] for accessing the send ops interfaces when
IBV_QP_INIT_ATTR_SEND_OPS_FLAGS is used.
.SH RETURN VALUE
.PP
\f[B]mlx5dv_create_qp()\f[] returns a pointer to the created QP, on
error NULL will be returned and errno will be set.
.SH SEE ALSO
.PP
\f[B]ibv_query_device_ex\f[](3), \f[B]ibv_create_qp_ex\f[](3),
.SH AUTHOR
.PP
Yonatan Cohen <yonatanc@mellanox.com>
