UMAD_SET_GRH_NET(3)
π UMAD_SET_GRH_NET π
okay bestie, so this is a page from the OpenIB Programmer's Manual and it's literally called umad_set_grh_net β she sets GRH fields inside your umad buffer, but make it network ordering π«Ά
β¨ NAME β¨
umad_set_grh_net β set GRH fields within umad buffer using network ordering π
πΈ SYNOPSIS πΈ
#include <infiniband/umad.h>
int umad_set_grh_net(void *umad, void *mad_addr);
π¦ DESCRIPTION π¦
so here's the vibe: umad_set_grh_net() sets the GRH fields β and when I say the GRH fields I mean grh_present, gid, hop_limit, traffic_class, and flow_label β inside the umad buffer you hand her, based on the mad_addr you supply. β¨
and listen, the mad_addr fields you pass in are expected to be in network order. no cap. that's the whole point of the _net in the name, she's not doing the byte-swapping for you π
if the mad_addr pointer you give her is NULL? then no GRH gets set at all. simple as that.
the mad_addr argument is a pointer to an ib_mad_addr_t struct, as specified in <infiniband/umad.h>. and the umad argument is a pointer to an ib_user_mad_t struct, also as specified in <infiniband/umad.h>. iconic header, we love her π
typedef struct ib_mad_addr {
uint32_t qpn;
uint32_t qkey;
uint16_t lid;
uint8_t sl;
uint8_t path_bits;
uint8_t grh_present;
uint8_t gid_index;
uint8_t hop_limit;
uint8_t traffic_class;
uint8_t gid[16];
uint32_t flow_label;
} ib_mad_addr_t;
typedef struct ib_user_mad {
uint32_t agent_id;
uint32_t status;
uint32_t timeout_ms;
uint32_t retries;
uint32_t length;
ib_mad_addr_t addr;
uint8_t data[0];
} ib_user_mad_t;
π RETURN VALUE π
umad_set_grh_net() returns 0 on success, and a negative value on errors. currently, there are no errors indicated β like, zero. none. the error list is empty, bestie π
π KNOWN BUGS π
Not implemented.
yeah. she's giving concept. she's giving idea. she is not giving implementation π
π SEE ALSO π
π AUTHOR π
Hal Rosenstock <halr@voltaire.com> π
and that's the whole page fr fr π this was OpenIB, dated May 24, 2007 β yes she's an elder but she's still serving β¨ mwah, study hard, drink water, and remember: network order or it didn't happen π π¦πΈ
π¦ 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: libibumad-dev 44.0-2 Β· BSD-MIT OR GPL-2.0-only
- debian trixie: libibumad-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: libibumad-dev 39.0-1 Β· BSD-MIT OR GPL-2.0-only
- ubuntu noble: libibumad-dev 50.0-2build2 Β· BSD-MIT OR GPL-2.0-only
- ubuntu noble: libibumad-dev 50.0-2ubuntu0.2 Β· BSD-MIT OR GPL-2.0-only
- ubuntu questing: libibumad-dev 56.1-1ubuntu1
- ubuntu resolute: libibumad-dev 61.0-2ubuntu3 Β· BSD-MIT OR GPL-2.0-only
- ubuntu stonking: libibumad-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