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 2021-08-27.  (At
       that time, the date of the most recent commit that was found in
       the repository was 2021-08-18.)  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

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)