Provided by: librdmacm-dev_1.0.14.1-2_i386 bug

NAME

       rdma_create_qp - Allocate a QP.

SYNOPSIS

       #include <rdma/rdma_cma.h>

       int  rdma_create_qp  (struct  rdma_cm_id *id, struct ibv_pd *pd, struct
       ibv_qp_init_attr *qp_init_attr);

ARGUMENTS

       id          RDMA identifier.

       pd          Optional protection domain for the QP.

       qp_init_attr
                   Initial QP attributes.

DESCRIPTION

       Allocate a QP associated with the specified rdma_cm_id  and  transition
       it for sending and receiving.

RETURN VALUE

       Returns  0  on success, or -1 on error.  If an error occurs, errno will
       be set to indicate the failure reason.

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.

       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.

       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.

       The actual capabilities and  properties  of  the  created  QP  will  be
       returned to the user through the qp_init_attr parameter.

SEE ALSO

       rdma_bind_addr(3),       rdma_resolve_addr(3),      rdma_destroy_qp(3),
       ibv_create_qp(3), ibv_modify_qp(3)