rdma_create_qp(3) — Linux manual page


RDMA_CREATE_QP(3)       Librdmacm Programmer's Manual      RDMA_CREATE_QP(3)

NAME         top

       rdma_create_qp - Allocate a QP.

SYNOPSIS         top

       #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         top

       id          RDMA identifier.

       pd          Optional protection domain for the QP.

                   Initial QP attributes.

DESCRIPTION         top

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

RETURN VALUE         top

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

NOTES         top

       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.  An
       rdma_cm_id may only be associated with a single QP.

SEE ALSO         top

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

COLOPHON         top

       This page is part of the rdma-core (RDMA Core Userspace Libraries and
       Daemons) project.  Information about the project can be found at 
       ⟨https://github.com/linux-rdma/rdma-core⟩.  If you have a bug report
       for this manual page, send it to linux-rdma@vger.kernel.org.  This
       page was obtained from the project's upstream Git repository
       ⟨https://github.com/linux-rdma/rdma-core.git⟩ on 2020-09-18.  (At
       that time, the date of the most recent commit that was found in the
       repository was 2020-09-16.)  If you discover any rendering problems
       in this HTML version of the page, or you believe there is a better or
       more up-to-date source for the page, or you have corrections or
       improvements to the information in this COLOPHON (which is not part
       of the original manual page), send a mail to man-pages@man7.org

librdmacm                        2007-05-15                RDMA_CREATE_QP(3)

Pages that refer to this page: rdma_bind_addr(3)rdma_destroy_qp(3)rdma_getaddrinfo(3)rdma_join_multicast(3)rdma_join_multicast_ex(3)rdma_post_recv(3)rdma_post_recvv(3)rdma_resolve_addr(3)rdma_cm(7)