ibv_create_qp, ibv_destroy_qp
Creates or destroys a queue pair (QP).
Syntax
Description
The ibv_create_qp() function
creates a queue pair (QP) that is associated with the pd protection
domain. The qp_init_attr argument is an ibv_qp_init_attr
struct
that is defined in the <rdma/verbs.h>
file.
Name of the Struct | Item | File name | Description |
---|---|---|---|
struct ibv_qp_init_attr { |
|||
void |
*qp_context; |
/*Associated context of the QP*/ |
|
struct ibv_cq |
*send_cq; |
/*CQ to be associated with the Send
Queue (SQ)*/ |
|
struct ibv_cq |
*recv_cq; |
/*CQ to be associated with the Receive
Queue (RQ)*/ |
|
struct ibv_srq |
*srq; |
/*Not Supported*/ |
|
struct ibv_qp_cap |
cap; |
/*QP capabilities*/ |
|
enum ibv_qp_type |
qp_type; |
/* QP Transport Service Type: IBV_QPT_RC,
IBV_QPT_UC, IBV_QPT_UD, IBV_QPT_XRC or IBV_QPT_RAW_PACKET */ |
|
int |
sq_sig_all; |
/*If set, each Work Request (WR) submitted
to the SQ generates a completion entry*/ |
|
struct ibv_xrc_domain |
xrc_domain; |
/*Not supported*/ |
|
struct ibv_qp_cap { |
|||
uint32_t |
max_send_wr; |
/*Requested maximum number of outstanding
WRs in the SQ*/ |
|
uint32_t |
max_recv_wr; |
/*Requested maximum number of outstanding
WRs in the RQ*/ |
|
uint32_t |
max_send_sge; |
/*Requested maximum number of Scatter-gather
elements in a WR in the SQ*/ |
|
uint32_t |
max_recv_sge; |
/*Requested maximum number of Scatter-gather
elements in a WR in the SQ*/ |
|
uint32_t |
max_inline_data; |
/*Requested max number of data (bytes)that
can be posted inline to the SQ, otherwise 0*/ |
Input Parameters
Item | Descriptor |
---|---|
pd | struct ibv_pd from ibv_alloc_pd. |
qp_init_attr | Initial attributes of queue pair. |
Output Parameters
Item | Description |
---|---|
qp_init_attr | Actual values that are entered. |
Return Value
The ibv_create_qp() function returns a pointer to the created QP on success, or NULL if the request fails.
The ibv_destroy_qp() function returns 0 on success, or errno on failure that indicates the reason for failure.