NAME |SYNOPSIS |DESCRIPTION |RETURN VALUE |SEE ALSO |AUTHORS |COLOPHON | |
IBV_CREATE_WQ(3) Libibverbs Programmer's ManualIBV_CREATE_WQ(3)ibv_create_wq, ibv_destroy_wq - create or destroy a Work Queue (WQ).
#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);
ibv_create_wq()creates a WQ associated with the ibv_contextcontext. The argumentwq_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 functionibv_create_wq()will update thewq_init_attr->max_wr andwq_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 WQwq.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).
ibv_modify_wq(3),
Yishai Hadas <yishaih@mellanox.com>
This page is part of therdma-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 2025-08-11. (At that time, the date of the most recent commit that was found in the repository was 2025-08-04.) 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 isnot part of the original manual page), send a mail to man-pages@man7.orglibibverbs 2016-07-27IBV_CREATE_WQ(3)Pages that refer to this page:ibv_create_rwq_ind_table(3), ibv_modify_wq(3)
HTML rendering created 2025-09-06 byMichael Kerrisk, author ofThe Linux Programming Interface. For details of in-depthLinux/UNIX system programming training courses that I teach, lookhere. Hosting byjambit GmbH. | ![]() |