| .\" Licensed under the OpenIB.org BSD license (FreeBSD Variant) - See COPYING.md |
| .TH "RDMA_CREATE_QP" 3 "2007-05-15" "librdmacm" "Librdmacm Programmer's Manual" librdmacm |
| .SH NAME |
| rdma_create_qp \- Allocate a QP. |
| .SH SYNOPSIS |
| .B "#include <rdma/rdma_cma.h>" |
| .P |
| .B "int" rdma_create_qp |
| .BI "(struct rdma_cm_id *" id "," |
| .BI "struct ibv_pd *" pd "," |
| .BI "struct ibv_qp_init_attr *" qp_init_attr ");" |
| .SH ARGUMENTS |
| .IP "id" 12 |
| RDMA identifier. |
| .IP "pd" 12 |
| Optional protection domain for the QP. |
| .IP "qp_init_attr" 12 |
| Initial QP attributes. |
| .SH "DESCRIPTION" |
| Allocate a QP associated with the specified rdma_cm_id and transition it |
| for sending and receiving. |
| .SH "RETURN VALUE" |
| Returns 0 on success, or -1 on error. If an error occurs, errno will be |
| set to indicate the failure reason. |
| .SH "NOTES" |
| The rdma_cm_id must be bound to a local RDMA device before calling this |
| function, and the protection domain must be for that same device. |
| QPs allocated to an rdma_cm_id are automatically transitioned by the |
| librdmacm through their states. After being allocated, the QP will be |
| ready to handle posting of receives. If the QP is unconnected, it will |
| be ready to post sends. |
| .P |
| If a protection domain is not given - pd parameter is NULL - then |
| the rdma_cm_id will be created using a default protection domain. One |
| default protection domain is allocated per RDMA device. |
| .P |
| The initial QP attributes are specified by the qp_init_attr parameter. The |
| send_cq and recv_cq fields in the ibv_qp_init_attr are optional. If |
| a send or receive completion queue is not specified, then a CQ will be |
| allocated by the rdma_cm for the QP, along with corresponding completion |
| channels. Completion channels and CQ data created by the rdma_cm are |
| exposed to the user through the rdma_cm_id structure. |
| .P |
| The actual capabilities and properties of the created QP will be |
| returned to the user through the qp_init_attr parameter. An rdma_cm_id |
| may only be associated with a single QP. |
| .SH "SEE ALSO" |
| rdma_bind_addr(3), rdma_resolve_addr(3), rdma_destroy_qp(3), ibv_create_qp(3), |
| ibv_modify_qp(3) |