.\" Automatically generated by Pandoc 2.9.2.1 .\" .TH "mlx5dv_create_qp" "3" "2018-9-1" "mlx5" "mlx5 Programmer\[cq]s Manual" .hy .SH NAME .PP mlx5dv_create_qp - creates a queue pair (QP) .SH SYNOPSIS .IP .nf \f[C] #include 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[R] .fi .SH DESCRIPTION .PP \f[B]mlx5dv_create_qp()\f[R] creates a queue pair (QP) with specific driver properties. .SH ARGUMENTS .PP Please see \f[I]ibv_create_qp_ex(3)\f[R] man page for \f[I]context\f[R] and \f[I]qp_attr\f[R]. .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[R] .fi .TP \f[I]comp_mask\f[R] 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[R] MLX5DV_QP_INIT_ATTR_MASK_DC: valid values in \f[I]dc_init_attr\f[R] MLX5DV_QP_INIT_ATTR_MASK_SEND_OPS_FLAGS: valid values in \f[I]send_ops_flags\f[R] .TP \f[I]create_flags\f[R] 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 \f[I]dc_init_attr\f[R] DC init attributes. .SS \f[I]dc_init_attr\f[R] .IP .nf \f[C] struct mlx5dv_dc_init_attr { enum mlx5dv_dc_type dc_type; uint64_t dct_access_key; }; \f[R] .fi .TP \f[I]dc_type\f[R] MLX5DV_DCTYPE_DCT QP type: Target DC. MLX5DV_DCTYPE_DCI QP type: Initiator DC. .TP \f[I]dct_access_key\f[R] used to create a DCT QP. .TP \f[I]send_ops_flags\f[R] 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[R] is used to get \f[I]struct mlx5dv_qp_ex\f[R] for accessing the send ops interfaces when IBV_QP_INIT_ATTR_SEND_OPS_FLAGS is used. .PP The MLX5DV_QP_CREATE_DISABLE_SCATTER_TO_CQE flag should be set in cases that IOVA doesn\[cq]t match the process\[cq] VA and the message payload size is small enough to trigger the scatter to CQE feature. .PP When device memory is used IBV_SEND_INLINE and scatter to CQE should not be used, as the memcpy is not possible. .SH RETURN VALUE .PP \f[B]mlx5dv_create_qp()\f[R] 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[R](3), \f[B]ibv_create_qp_ex\f[R](3), .SH AUTHOR .PP Yonatan Cohen