CREATE_RWQ_IND_TBL(3)
π CREATE_RWQ_IND_TBL π
okay bestie, pull up a chair, because today we're talking about the Libibverbs Programmer's Manual page for CREATE_RWQ_IND_TBL(3) and honestly? it's giving table energy. receive work queue indirection table energy, specifically. let's get into it π¦
β¨ NAME β¨
ibv_create_rwq_ind_table, ibv_destroy_rwq_ind_table β the two functions that make and unmake a Receive Work Queue Indirection Table (aka the RWQ IND TBL, which is such a mouthful, we're abbreviating fr).
πΈ SYNOPSIS πΈ
#include <infiniband/verbs.h>
struct ibv_rwq_ind_table *ibv_create_rwq_ind_table(struct ibv_context *context,
struct ibv_rwq_ind_table_init_attr *init_attr);
int ibv_destroy_rwq_ind_table(struct ibv_rwq_ind_table *rwq_ind_table);
π DESCRIPTION π
so ibv_create_rwq_ind_table() makes a RWQ IND TBL that's tied to the ibv_context you pass in as context. the init_attr argument is a ibv_rwq_ind_table_init_attr struct, and it's defined in <infiniband/verbs.h> like this:
struct ibv_rwq_ind_table_init_attr {
uint32_t log_ind_tbl_size; /* Log, base 2, of Indirection table size */
struct ibv_wq **ind_tbl; /* Each entry is a pointer to Receive Work Queue */
uint32_t comp_mask; /* Identifies valid fields. Use ibv_ind_table_init_attr_mask */
};
periodt. that's the whole shape of it π
ibv_create_rwq_ind_table() creates a RWQ IND TBL holding a table of Receive Work Queues. and for what you actually do with the object once it exists, scroll down to NOTES, bestie, i gotchu.
ibv_destroy_rwq_ind_table() destroys the RWQ IND TBL rwq_ind_table. bye bye π iconic of it to clean up after itself.
π₯ RETURN VALUE π₯
ibv_create_rwq_ind_table()hands you back a pointer to the freshly created RWQ IND TBL π β orNULLif the request fails. (yes,NULL. sad. no table for you.)ibv_destroy_rwq_ind_table()returns0on success, or the value oferrnoon failure β and thaterrnovalue tells you why it flopped. so read it, don't just stare at it π
π NOTES π
the object you just created should be used as part of ibv_create_qp_ex() β that's how you turn on dispatching of incoming packets based on some RX hash configuration. so like, the table isn't the main character, it's the supporting cast that makes the queue pair pop β¨
π SEE ALSO π
π AUTHORS π
Yishai Hadas <yishaih@mellanox.com> β ty for your service π«Ά
and that's the whole page, bestie!! this one shipped as part of libibverbs, dated 2016-07-27, and it lives in the manual as CREATE_RWQ_IND_TBL(3). go forth and indirect your receive work queues, you absolute icon πβ¨
π¦ where this page comes from
- alpine 3.24: rdma-core-doc 61.0-r0 Β· GPL-2.0-only OR BSD-2-Clause
- arch rolling: rdma-core 65.0-1 Β· GPL-2.0-or-later OR LicenseRef-OpenIB.org-BSD-MIT AND GPL-2.0-or-later OR LicenseRef-OpenIB.org-BSD-FreeBSD AND GPL-2.0-or-later OR LicenseRef-Intel-BSD-3-Clause AND GPL-2.0-or-later OR LicenseRef-PathScale-BSD-Patent-License AND CC0-1.0 AND MIT AND BSD-2-Clause AND CPL-1.0 OR BSD-2-Clause OR GPL-2.0-or-later
- centos-stream 10: rdma-core-devel 62.0-3.el10 Β· GPLv2 or BSD
- centos-stream 9: rdma-core-devel 61.0-3.el9 Β· GPLv2 or BSD
- centos-stream 9: rdma-core-devel 61.0-3.el9 Β· GPLv2 or BSD
- debian bookworm: libibverbs-dev 44.0-2 Β· BSD-MIT OR GPL-2.0-only
- debian trixie: libibverbs-dev 56.1-1 Β· BSD-MIT OR GPL-2.0-only
- fedora 43: rdma-core-devel 58.0-4.fc43 Β· GPL-2.0-only OR BSD-2-Clause AND BSD-3-Clause
- fedora 43: rdma-core-devel 58.0-4.fc43 Β· GPL-2.0-only OR BSD-2-Clause AND BSD-3-Clause
- fedora 44: rdma-core-devel 61.0-2.fc44 Β· GPL-2.0-only OR BSD-2-Clause AND BSD-3-Clause
- fedora 44: rdma-core-devel 61.0-2.fc44 Β· GPL-2.0-only OR BSD-2-Clause AND BSD-3-Clause
- fedora 44: rdma-core-devel 61.1^20260812git975bdaf-1.fc44 Β· GPL-2.0-only OR BSD-2-Clause AND BSD-3-Clause
- fedora 44: rdma-core-devel 61.1^20260812git975bdaf-1.fc44 Β· GPL-2.0-only OR BSD-2-Clause AND BSD-3-Clause
- nixos 26.05: rdma-core 62.0
- nixpkgs unstable: rdma-core 65.0
- opensuse-leap 16.0: rdma-core-devel 56.1-160000.2.2 Β· BSD-2-Clause OR GPL-2.0-only
- opensuse-leap 16.0: rdma-core-devel 56.1-160000.2.2 Β· BSD-2-Clause OR GPL-2.0-only
- opensuse-leap 16.0: rdma-core-devel 56.1-160000.2.2 Β· BSD-2-Clause OR GPL-2.0-only
- opensuse-leap 16.0: rdma-core-devel 56.1-160000.2.2 Β· BSD-2-Clause OR GPL-2.0-only
- ubuntu jammy: libibverbs-dev 39.0-1 Β· BSD-MIT OR GPL-2.0-only
- ubuntu noble: libibverbs-dev 50.0-2build2 Β· BSD-MIT OR GPL-2.0-only
- ubuntu noble: libibverbs-dev 50.0-2ubuntu0.2 Β· BSD-MIT OR GPL-2.0-only
- ubuntu questing: libibverbs-dev 56.1-1ubuntu1
- ubuntu resolute: libibverbs-dev 61.0-2ubuntu3 Β· BSD-MIT OR GPL-2.0-only
- ubuntu stonking: libibverbs-dev 64.0-1ubuntu1 Β· BSD-MIT OR GPL-2.0-only
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms