UCMATOSE(1)
๐ UCMATOSE ๐
okay bestie, gather round, because this is the ucmatose page from librdmacm and it's literally the cutest little RDMA test tool you'll ever meet ๐ฆ
โจ NAME โจ
ucmatose โ RDMA CM connection and simple ping-pong test. that's it, that's the whole vibe. no cap.
โจ SYNOPSIS โจ
ucmatose [-s server_address] [-b bind_address]
[-f address_format] [-P port_space]
[-c connections] [-C message_count] [-S message_size] [-a ack_timeout]
ucmatose -s server_address [-b bind_address]
[-f address_format] [-P port_space]
[-c connections] [-C message_count] [-S message_size] [-t tos] [-a ack_timeout]
two whole forms, bestie โ the second one is giving -s is mandatory energy ๐
โจ DESCRIPTION โจ
okay so what does this actually do? ucmatose establishes a set of reliable RDMA connections between two nodes using the librdmacm, optionally transfers data between the nodes, and then disconnects. that's the whole arc โ meet, vibe, send data (maybe), say bye. main character energy from start to finish ๐
โจ OPTIONS โจ
-sserver_address โ the network name or IP address of the server system that's out here listening for connections ๐. the name or address you use must route over an RDMA device, fr fr. and heads up: this one is required by the client โ no-s, no connection, sorry bestie ๐ญ-bbind_address โ the local network address to bind to. wanna bind to any address with IPv6? use-b ::0โจ-faddress_format โ tells it what format the server and bind addresses are in. by default the format is figured out bygetaddrinfo()as either a hostname, an IPv4 address, or an IPv6 address. this option is for when you wanna say "yes I know which format I gave you". the supported address_format values are:name,ip,ipv6, andgid๐-Pport_space โ the port space for the connection. by default it's the RDMA TCP port space. (lowkey important: the RDMA port space may be separate from the one used for IP ๐). supported port_space values are:tcpandib-cconnections โ how many connections to establish between the client and server. (default1)-Cmessage_count โ how many messages to transfer over each connection. (default10)-Smessage_size โ the size of each message transferred, in bytes. (default100)-ttos โ indicates the type of service used for the communication. type of service is implementation dependent based on subnet configuration, so don't come for me if your subnet has opinions ๐-aack_timeout โ the QP ACK timeout value that should be used. the value is calculated according to the formula4.096 * 2^(ack_timeout)usec ๐งฎ-mโ tests event channel migration. it migrates all communication identifiers to a different event channel for disconnect events. iconic behaviour honestly ๐
โจ NOTES โจ
basic usage, the classic routine: start ucmatose on a server system, then run ucmatose -s server_name on a client system. that's the whole group chat, one on each end ๐ซถ
because this test maps RDMA resources to userspace, users must make sure they have available system resources and permissions. see the libibverbs README file for additional details โ seriously, go read it, it's not optional ๐
โจ SEE ALSO โจ
rdma_cm(7), udaddy(1), mckey(1), rping(1)
go read those too, they're all in the same friend group ๐
and that's the page!! this little cutie is brought to you by librdmacm, dated 2007-05-15, and it will forever be UCMATOSE(1) in our hearts. slay, stay connected, and please check your permissions before you map anything to userspace ๐โจ๐ฆ
๐ฆ 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