MCKEY(1)
π MCKEY(1) β the librdmacm girlies' multicast test π
okay so bestie, welcome to mckey, a lil tool from the librdmacm manual, section 1. it's giving "RDMA CM multicast setup and simple data transfer test" and honestly? iconic.
β¨ NAME β¨
mckey β RDMA CM multicast setup and simple data transfer test. no cap, that's literally the whole job description.
π¦ SYNOPSIS π¦
mckey -m multicast_address [-s] [-b bind_address] [-c connections]
[-C message_count] [-S message_size] [-p port_space]
mckey -m multicast_address -s [-b bind_address] [-c connections]
[-C message_count] [-S message_size] [-p port_space]
mckey -M unmapped_multicast_address -b bind_address [-s] [-c connections]
[-C message_count] [-S message_size] [-p port_space]
πΈ DESCRIPTION πΈ
so what this does is: it sets up a whole lil friend group of RDMA multicast communication paths between nodes using the librdmacm. then, if you want, it transfers datagrams to the receiving nodes β like passing notes in class but β¨fasterβ¨ β and then it tears the whole communication down. set up, vibe, yeet. periodt.
π OPTIONS π
-mmulticast_address β the IP multicast address you wanna join. that's the group chat you're sliding into π¬-Munmapped_multicast_address β the RDMA transport specific multicast address to join. same energy, but RDMA-flavored.-sβ send datagrams to the multicast group. you're not just lurking, you're posting π€-bbind_address β the local network address to bind to. your home address, basically π-cconnections β the number of QPs to join the multicast group. (default1) like, how many of your alters are showing up-Cmessage_count β the number of messages to transfer over each connection. (default10) ten texts minimum or it doesn't count-Smessage_size β the size of each message transferred, in bytes. this value must be smaller than the MTU of the underlying RDMA transport, or an error will occur. (default100) so like, keep it under the MTU bestie, don't be messy π-oβ join the multicast group as a send-only full-member. otherwise the group is joined as a full-member. send-only = you talk, you don't listen. main character energy fr.-lβ prevent multicast message loopback. other receivers on the local system will not receive the multicast messages. otherwise all multicast messages are also send to the host they originated from and local listeners (and probably the sending process itself) will receive the messages. so it's giving echo chamber, unless you use-lπ«Ά-pport_space β the port space of the datagram communication. may be either the RDMA UDP (0x0111) or IPoIB (0x0002) port space. (defaultRDMA_PS_UDP)
ngl the original page smooshes-land-ptogether into one paragraph, which is a formatting crime, so i un-smooshed them for you. the facts are untouched, promise π
π NOTES π
basic usage is to start mckey -m multicast_address on a server system, then run mckey -m multicast_address -s on a client system. that's it, that's the recipe π
unique Infiniband SA assigned multicast GIDs can be retrieved by invoking mckey with a zero MGID or IP address. (example: -M 0 or -m 0.0.0.0). the assigned address will be displayed to allow mckey clients to join the created group. so it literally tells you where the party's at π
because this test maps RDMA resources to userspace, users must ensure that they have available system resources and permissions. see the libibverbs README file for additional details. yes you need permission bestie, we can't just walk in π
β οΈ real talk: check your resources and your permissions before you run this. it maps RDMA resources into userspace and it will not be cute about it if you're not set up.
π SEE ALSO π
and that's the whole page, bestie!! this one came from librdmacm, dated 2007-05-15 β an elder that still ate, fr fr. k bye, go join that multicast group πβ¨π
π¦ 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: librdmacm-utils 62.0-3.el10 Β· GPLv2 or BSD
- centos-stream 9: librdmacm-utils 61.0-3.el9 Β· GPLv2 or BSD
- debian bookworm: rdmacm-utils 44.0-2 Β· BSD-MIT OR GPL-2.0-only
- debian trixie: rdmacm-utils 56.1-1 Β· BSD-MIT OR GPL-2.0-only
- fedora 43: librdmacm-utils 58.0-4.fc43 Β· GPL-2.0-only OR BSD-2-Clause AND BSD-3-Clause
- fedora 44: librdmacm-utils 61.0-2.fc44 Β· GPL-2.0-only OR BSD-2-Clause AND BSD-3-Clause
- fedora 44: librdmacm-utils 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: librdmacm-utils 56.1-160000.2.2 Β· BSD-2-Clause OR GPL-2.0-only
- opensuse-leap 16.0: librdmacm-utils 56.1-160000.2.2 Β· BSD-2-Clause OR GPL-2.0-only
- opensuse-leap 16.0: librdmacm-utils 56.1-160000.2.2 Β· BSD-2-Clause OR GPL-2.0-only
- opensuse-leap 16.0: librdmacm-utils 56.1-160000.2.2 Β· BSD-2-Clause OR GPL-2.0-only
- ubuntu jammy: rdmacm-utils 39.0-1 Β· BSD-MIT OR GPL-2.0-only
- ubuntu noble: rdmacm-utils 50.0-2build2 Β· BSD-MIT OR GPL-2.0-only
- ubuntu noble: rdmacm-utils 50.0-2ubuntu0.2 Β· BSD-MIT OR GPL-2.0-only
- ubuntu questing: rdmacm-utils 56.1-1ubuntu1
- ubuntu resolute: rdmacm-utils 61.0-2ubuntu3 Β· BSD-MIT OR GPL-2.0-only
- ubuntu stonking: rdmacm-utils 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