UDADDY(1)

✨ UDADDY ✨

okay bestie, welcome to the udaddy page from the librdmacm manual πŸ’… this one's all about RDMA CM datagram setup and a lil simple ping-pong test, and honestly? it's giving networking main character energy πŸ¦‹


πŸŽ€ SYNOPSIS πŸŽ€

udaddy [-s server_address] [-b bind_address] [-c connections]
          [-C message_count] [-S message_size] [-p port_space]
udaddy -s server_address [-b bind_address] [-c connections]
          [-C message_count] [-S message_size] [-t tos] [-p port_space]

like, look at those two forms. one of them has -s server_address in the flags part and one has it standing alone at the front, and also only the second one has -t tos?? yeah. that's the vibe. copy it exactly, don't @ me 🌸


πŸ’– DESCRIPTION πŸ’–

so what this actually does: it establishes a set of unreliable RDMA datagram communication paths between two nodes using the librdmacm, and then it optionally transfers datagrams between the nodes, and then it tears the whole communication down. setup β†’ maybe ping-pong β†’ bye bye ✨ no cap, that's the whole arc.


🌈 OPTIONS 🌈

  • -s server_address β€” the network name or IP address of the server system that's listening for communication. lowkey important: the name or address you use must route over an RDMA device. and this option must be specified by the client. non-negotiable bestie πŸ’…
  • -b bind_address β€” the local network address to bind to. and if you wanna bind to any address with IPv6? use -b ::0 🫢
  • -c connections β€” the number of communication paths to establish between the client and server. plot twist: the test uses unreliable datagram communication, so like… no actual connections are formed?? it's a fake-out, it's iconic. (default 1)
  • -C message_count β€” how many messages to transfer over each connection. (default 10)
  • -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. so like, don't be extra with it. (default 100)
  • -t tos β€” indicates the type of service used for the communication. and ngl, type of service is implementation dependent based on subnet configuration. that's just how it is 🀷
  • -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)

πŸ¦‹ NOTES πŸ¦‹

basic usage, the classic move: start udaddy on a server system, then run udaddy -s server_name on a client system. that's it, that's the recipe πŸ“

also!! because this test maps RDMA resources to userspace, users must ensure that they have available system resources and permissions. check the libibverbs README file for the additional details, fr fr πŸ‘‘

not me reminding you twice but: resources + permissions. handle it before you run it πŸ’€

πŸ‘‘ SEE ALSO πŸ‘‘


and that's the whole page bestie!! this one's from librdmacm, dated 2007-05-15, and it's the UDADDY(1) page β€” slay, you read the whole thing, so proud of you πŸ’–βœ¨πŸŽ€

πŸ“¦ where this page comes from