UDPONG(1)

πŸ’– UDPONG(1) πŸ’–

okay bestie, welcome to udpong β€” part of the librdmacm crew, dated 2017-04-28. yes we're doing the unreliable datagram streaming over RDMA thing today. grab a snack, we're going in πŸ¦‹


✨ NAME ✨

udpong β€” unreliable datagram streaming over RDMA ping-pong test. that's the whole vibe. a ping-pong test. but make it RDMA. 😌


🌸 SYNOPSIS 🌸

udpong [-s server_address] [-b bind_address]
               [-B buffer_size] [-C transfer_count]
               [-S transfer_size] [-p server_port] [-T test_option]

literally just vibes and flags, no positional arguments, she doesn't need them πŸ’…


πŸŽ€ DESCRIPTION πŸŽ€

so what this does: it uses unreliable datagram streaming over RDMA protocol (aka rsocket) to connect up a client and a server application and exchange data between them. that's it. that's the whole job. client talks, server talks back, everyone has a great time 🫢


πŸ‘‘ OPTIONS πŸ‘‘

  • -s server_address β€” the network name or IP address of the server system that's out there listening for connections. important: whatever name or address you use here must route over an RDMA device. and heads up β€” this one must be specified by the client. no -s, no connection, no party πŸ™ˆ
  • -b bind_address β€” the local network address you wanna bind to. your home address, basically 🏠
  • -B buffer_size β€” tells her how big the send and receive network buffers should be. size matters (for buffers) ✨
  • -C transfer_count β€” how many messages get transferred from the client to the server and back again on each iteration. round trips, bestie. default is 1000 πŸ’«
  • -S transfer_size β€” the size of each send transfer, in bytes. default is 1000 ⭐
  • -p server_port β€” the server's port number. where the server is posted up πŸ“
  • -T test_option β€” specifies test parameters. the available options are, and I quote:
    • s | socket β€” uses standard socket calls to transfer data
    • a | async β€” uses asynchronous operation (e.g. select / poll)
    • b | blocking β€” uses blocking calls
    • n | nonblocking β€” uses non-blocking calls
    • e | echo β€” server echoes all messages

pick your fighter, they're all iconic in their own way 🌈


πŸ’œ NOTES πŸ’œ

basic usage, the classic move: start udpong on a server system, then run udpong -s server_name on a client system. she'll run a series of latency and bandwidth performance tests and you just sit there being proud of her πŸ₯Ή

if you specify a different transfer_count or transfer_size, you get a user customized test instead β€” and wherever you didn't</> specify anything, the default values step in to fill the gaps. teamwork 🫢

⚠️ okay so this part actually matters, listen up: because this test maps RDMA resources to userspace, users must ensure that they have available system resources and permissions. that's not optional, that's a real requirement. see the libibverbs README file for additional details. don't skip it bestie 😭

πŸ¦‹ SEE ALSO πŸ¦‹

go read it, iykyk πŸ“–βœ¨


and that's the whole page!! brought to you by librdmacm, dated 2017-04-28. mwah, go ping-pong responsibly πŸ’…πŸ’–

πŸ“¦ where this page comes from