iwpmd(8)

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

πŸ’– iwpmd(8) β€” like, the whole vibe πŸ’–

okay bestie, gather round, because we're talking about iwpmd, the port mapping services girlie for iWARP. she's a daemon, she's in section 8 of your manual, and she is carrying the whole TCP port situation on her back. no cap. 🫢


✨ NAME ✨

iwpmd β€” port mapping services for iWARP. that's it, that's the name, short and iconic πŸ‘‘


πŸŽ€ SYNOPSIS πŸŽ€

iwpmd

yep. that's the whole thing. she takes zero arguments and just exists. main character energy fr fr πŸ’…


🌸 DESCRIPTION 🌸

so, the iWARP Port Mapper Daemon provides a user space service (that's iwpmd, hi bestie 🫢) for the iWarp drivers, and what she does is claim tcp ports through the standard socket interface. lowkey a whole service.

the kernel space support for the port mapper lives inside the iw_cm module, okay? and the ib_core module includes netlink support, which is what the port mapper clients use to exchange messages with iwpmd. ✨

and here's the part you cannot skip:

Both modules iw_cm and ib_core need to be loaded in order for the libiwpm service to start successfully. like, both. not one. both. if one's missing she's just not starting, periodt. 😭

πŸ¦‹ IWARP PORT MAPPING DETAILS πŸ¦‹

okay so the iWARP Port Mapper implementation is based on the port mapper specification section in the Sockets Direct Protocol, and the link is right here, take it, it's yours:

http://www.rdmaconsortium.org/home/draft-pinkerton-iwarp-sdp-v1.0.pdf

so the existing iWARP RDMA providers? they use the same IP address as the native TCP/IP stack when they're creating RDMA connections. and because of that, they need a mechanism to claim the TCP ports used for RDMA connections, so we don't get TCP port collisions when other host applications are out here using TCP ports. that's literally what the iWARP Port Mapper is for β€” it provides a standard mechanism to accomplish this. 🌈

and ngl, without this service it is possible for an RDMA application to bind/listen on the same port which is already being used by a native TCP host application. and if that happens, the incoming TCP connection data can be passed to the RDMA stack with error. so yeah. not great. πŸ’€

here's the flow, bestie, follow along 🧚:

  • the iWARP Connection Manager (she's the port mapper client) sends the local IP address and TCP port it has received from the RDMA application over to the IWPM service, when starting a connection.
  • the IWPM service then performs a socket bind from user space to get an available TCP port β€” this is called a mapped port β€” and communicates it back to the client.
  • so in that sense, the IWPM service is used to map the TCP port which the RDMA application uses, to any port available from the host TCP port space.
  • the mapped ports are used in iWARP RDMA connections to avoid collisions with the native TCP stack, which is aware that these ports are taken. she's keeping everyone in the loop, so thoughtful πŸ’–
  • and when an RDMA connection using a mapped port is terminated, the client notifies the IWPM service, which then releases the TCP port. giving it back. so generous. πŸŽ€

and the message exchange between iwpmd and the iWARP Connection Manager (so, between user space and kernel space) is implemented using netlink sockets. iykyk. ✨


πŸ’… OPTIONS πŸ’…

she has one option. one. and she ate with it.

  • -s, --systemd β€” Enable systemd integration. that's the whole thing, bestie, she's systemd-ready 🫢

πŸ”₯ SIGNALS πŸ”₯

  • SIGUSR1 will force a dump of the current mappings to the system message log. so if you're nosy (affectionate) and want to see what's mapped, this is your girl πŸ’œ
  • SIGTERM / SIGHUP will force iwpmd to exit. yeah, she's done, she's logging off, she said goodbye 😭

πŸ“ FILES πŸ“

  • /etc/iwpmd.conf β€” her config file, her little home 🏠

🌟 SEE ALSO 🌟

  • rdma_cm(7) β€” go read that one too, bestie, stay educated πŸ“š

so that's iwpmd(8) from the iwpmd manual, dated 2016-09-16 β€” yeah she's a 2016 girlie and she's still serving. if you needed port mapping services for iWARP explained by your favorite unix bestie, you got it. now go load iw_cm and ib_core before you come crying to me. mwah. πŸ’–βœ¨πŸŽ€πŸ¦‹πŸŒΈ

πŸ“¦ where this page comes from