RDMA_NOTIFY(3)
π RDMA_NOTIFY π
ok so bestie, welcome to rdma_notify(3) from the Librdmacm Programmer's Manual β yes she's a section 3 library call, yes she's iconic, and yes she's about to tell librdmacm that Something Happened. π¦
β¨ NAME β¨
rdma_notify β Notifies the librdmacm of an asynchronous event.
like. it's the girl who runs to the group chat and goes "GUYS. something happened on the QP." π
πΈ SYNOPSIS πΈ
#include <rdma/rdma_cma.h>
int rdma_notify (struct rdma_cm_id *id, enum ibv_event_type event);
two arguments, one int back, no drama. well. mostly no drama. keep reading. π
π ARGUMENTS π
idβ the RDMA identifier. that's yourstruct rdma_cm_id *, the main character of literally this whole API. πeventβ the asynchronous event. anenum ibv_event_type, aka the actual news you're delivering.
π DESCRIPTION π
so what does she do? she's used to notify the librdmacm of asynchronous events that have occurred on a QP associated with the rdma_cm_id. that's it, that's the job, no cap. π
β RETURN VALUE β
- returns
0on success π - returns
-1on error π β and if an error occurs,errnowill be set to indicate the failure reason.
now listen, because this part matters: iferrnois set toEISCONN(transport endpoint is already connected), that means the underlying communication manager established the connection before the call tordma_notifycould be processed. and in that case?? the error may safely be ignored. bestie really said "not a problem, ignore it, we move." π β¨
π₯ NOTES π₯
okay here's the lore.
Asynchronous events that occur on a QP are reported through the user's device event handler. this routine is what you use to notify the librdmacm of communication events. π£
In most cases, use of this routine is not necessary. (yes, most. she said what she said.) however, if connection establishment is done out of band (such as done through Infiniband), it's possible to receive data on a QP that is not yet considered connected. π³
and that's the whole reason she exists: this routine forces the connection into an established state in this case, in order to handle the rare situation where the connection never forms on its own. because sometimes the connection is just. not forming. on its own. and we have to intervene. π«Ά
Calling this routine ensures the delivery of the RDMA_CM_EVENT_ESTABLISHED event to the application. π
and the events that should be reported to the CM are:
IB_EVENT_COMM_EST
that's the list. one event. she's specific. π―
π¦ SEE ALSO π¦
go read those next, they're the rest of the friend group. π
and that's the whole page, bestie!! sourced from librdmacm, dated 2007-05-15, filed under RDMA_NOTIFY(3) β she's been slaying since 2007 and she's still here. mwah. ππβ¨
π¦ 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: librdmacm-dev 44.0-2 Β· BSD-MIT OR GPL-2.0-only
- debian trixie: librdmacm-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: librdmacm-dev 39.0-1 Β· BSD-MIT OR GPL-2.0-only
- ubuntu noble: librdmacm-dev 50.0-2build2 Β· BSD-MIT OR GPL-2.0-only
- ubuntu noble: librdmacm-dev 50.0-2ubuntu0.2 Β· BSD-MIT OR GPL-2.0-only
- ubuntu questing: librdmacm-dev 56.1-1ubuntu1
- ubuntu resolute: librdmacm-dev 61.0-2ubuntu3 Β· BSD-MIT OR GPL-2.0-only
- ubuntu stonking: librdmacm-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