ibv_create_wq(3) — Linux manual page

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUE | SEE ALSO | AUTHORS | COLOPHON

IBV_CREATE_WQ(3)     Libibverbs Programmer's Manual     IBV_CREATE_WQ(3)

NAME         top

       ibv_create_wq, ibv_destroy_wq - create or destroy a Work Queue
       (WQ).

SYNOPSIS         top

       #include <infiniband/verbs.h>

       struct ibv_wq *ibv_create_wq(struct ibv_context *context,
                                            struct ibv_wq_init_attr *wq_init_attr);

       int ibv_destroy_wq(struct ibv_wq *wq);

DESCRIPTION         top

       ibv_create_wq() creates a WQ associated with the ibv_context
       context.  The argument wq_init_attr is an ibv_wq_init_attr
       struct, as defined in <infiniband/verbs.h>.

       struct ibv_wq_init_attr {
               void                      *wq_context;    /* Associated context of the WQ */
               enum ibv_wq_type           wq_type;       /* WQ type */
               uint32_t                   max_wr;        /* Requested max number of outstanding WRs in the WQ */
               uint32_t                   max_sge;       /* Requested max number of scatter/gather (s/g) elements per WR in the WQ */
               struct  ibv_pd            *pd;            /* PD to be associated with the WQ */
               struct  ibv_cq            *cq;            /* CQ to be associated with the WQ */
               uint32_t                   comp_mask;     /* Identifies valid fields. Use ibv_wq_init_attr_mask */
               uint32_t                   create_flags    /* Creation flags for this WQ, use enum ibv_wq_flags */
       };

       enum ibv_wq_flags {
               IBV_WQ_FLAGS_CVLAN_STRIPPING            = 1 << 0, /* CVLAN field will be stripped from incoming packets */
               IBV_WQ_FLAGS_SCATTER_FCS                = 1 << 1, /* FCS field will be scattered to host memory */
               IBV_WQ_FLAGS_DELAY_DROP                 = 1 << 2, /* Packets won't be dropped immediately if no receive WQEs */
               IBV_WQ_FLAGS_PCI_WRITE_END_PADDING      = 1 << 3, /* Incoming packets will be padded to cacheline size */
               IBV_WQ_FLAGS_RESERVED                   = 1 << 4,
       };

       The function ibv_create_wq() will update the wq_init_attr->max_wr
       and wq_init_attr->max_sge fields with the actual WQ values of the
       WQ that was created; the values will be greater than or equal to
       the values requested.

       ibv_destroy_wq() destroys the WQ wq.

RETURN VALUE         top

       ibv_create_wq() returns a pointer to the created WQ, or NULL if
       the request fails.

       ibv_destroy_wq() returns 0 on success, or the value of errno on
       failure (which indicates the failure reason).

SEE ALSO         top

       ibv_modify_wq(3),

AUTHORS         top

       Yishai Hadas <yishaih@mellanox.com>

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 2023-12-22.  (At
       that time, the date of the most recent commit that was found in
       the repository was 2023-12-20.)  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

libibverbs                     2016-07-27               IBV_CREATE_WQ(3)

Pages that refer to this page: ibv_create_rwq_ind_table(3)ibv_modify_wq(3)