MCKEY(1)

πŸ“¦
version 65.0 Β· 2 versions
  • 65.0 Β· alpine 3.24, arch rolling, centos-stream 10, centos-stream 9, debian bookworm, debian trixie, fedora 43, fedora 44, nixos 26.05, nixpkgs unstable, opensuse-leap 16.0, ubuntu jammy, ubuntu noble, ubuntu questing, ubuntu resolute, ubuntu stonking (latest)
  • 15.1 Β· freebsd 14.5, freebsd 15.1
, in alpine 3.24, arch rolling, centos-stream 10, centos-stream 9, debian bookworm, debian trixie, fedora 43, fedora 44, nixos 26.05, nixpkgs unstable, opensuse-leap 16.0, ubuntu jammy, ubuntu noble, ubuntu questing, ubuntu resolute, ubuntu stonking

πŸ’… 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 πŸŽ€

  • -m multicast_address β€” the IP multicast address you wanna join. that's the group chat you're sliding into πŸ’¬
  • -M unmapped_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 πŸ“€
  • -b bind_address β€” the local network address to bind to. your home address, basically 🏠
  • -c connections β€” the number of QPs to join the multicast group. (default 1) like, how many of your alters are showing up
  • -C message_count β€” the number of messages to transfer over each connection. (default 10) ten texts minimum or it doesn't count
  • -S message_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. (default 100) 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 🫢
  • -p port_space β€” the port space of the datagram communication. may be either the RDMA UDP (0x0111) or IPoIB (0x0002) port space. (default RDMA_PS_UDP)
ngl the original page smooshes -l and -p together 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