IBV_OPEN_QP(3)
π ibv_open_qp β a.k.a. IBV_OPEN_QP(3) π
okay bestie, buckle up, we're in the Libibverbs Programmer's Manual and this one is literally about opening a shareable queue pair (QP) π¦
β¨ NAME β¨
ibv_open_qp β open a shareable queue pair (QP) π
β¨ SYNOPSIS β¨
#include <infiniband/verbs.h>
struct ibv_qp *ibv_open_qp(struct ibv_context *context,
struct ibv_qp_open_attr *qp_open_attr);
β¨ DESCRIPTION β¨
So ibv_open_qp() opens an existing queue pair (QP) that's associated with the extended protection domain xrcd. Not creating, bestie β opening. It's already there, you're just sliding into its DMs π«Ά
The argument qp_open_attr is an ibv_qp_open_attr struct, as defined in <infiniband/verbs.h. And here's the whole fit, character for character:
struct ibv_qp_open_attr {
uint32_t comp_mask; /* Identifies valid fields */
uint32_t qp_num; /* QP number */
struct *ibv_xrcd; /* XRC domain */
void *qp_context; /* User defined opaque value */
enum ibv_qp_type qp_type; /* QP transport service type */
Then ibv_destroy_qp() closes the opened QP and destroys the underlying QP if it has no other references. qp.
no fr, that trailing "qp." is just sitting there at the end of the sentence in the original and we respect the lore π
β¨ RETURN VALUE β¨
ibv_open_qp() returns a pointer to the opened QP, or NULL if the request fails. And the vibe check? Look at the QP number (qp_num) in the returned QP. π
β¨ NOTES β¨
ibv_open_qp() will fail if it is asked to open a QP that does not exist within the xrcd with the specified qp_num and qp_type. Like, if it's not there, it's not there β no cap. π
β¨ SEE ALSO β¨
β¨ AUTHORS β¨
Sean Hefty <sean.hefty@intel.com> β iconic behavior, we love to see it π
and that's the whole page, bestie π this was libibverbs, dated 2011-08-12, and the page itself is IBV_OPEN_QP(3) β periodt. πβ¨
π¦ 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
- freebsd 14.5: base 14.5
- freebsd 15.1: base 15.1
- 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