@@ -249,6 +249,7 @@ add_subdirectory(librxe/)
# Binaries
add_subdirectory(ibacm)
if (NOT NL_KIND EQUAL 0)
+ add_subdirectory(iwpmd)
add_subdirectory(iwpmd/src)
endif()
add_subdirectory(libibcm/examples)
new file mode 100644
@@ -0,0 +1,4 @@
+rdma_man_pages(
+ iwpmd.1
+ iwpmd.conf.5
+ )
new file mode 100644
@@ -0,0 +1,56 @@
+.TH "iwpmd" 1 "2016-09-16" "iwpmd" "iwpmd" iwpmd
+.SH NAME
+iwpmd \- port mapping services for iWARP.
+.SH SYNOPSIS
+.sp
+.nf
+\fIiwpmd\fR
+.fi
+.SH "DESCRIPTION"
+The iWARP Port Mapper Daemon provides a user space service (iwpmd) for the
+iWarp drivers to claim tcp ports through the standard socket interface.
+.P
+The kernel space support for the port mapper is part of the iw_cm module.
+The ib_core module includes netlink support, which is used by the port
+mapper clients to exchange messages with iwpmd. Both modules iw_cm and
+ib_core need to be loaded in order for the libiwpm service to start
+successfully.
+.SH "IWARP PORT MAPPING DETAILS"
+The iWARP Port Mapper implementation is based on the port mapper
+specification section in the Sockets Direct Protocol:
+http://www.rdmaconsortium.org/home/draft-pinkerton-iwarp-sdp-v1.0.pdf
+.P
+Existing iWARP RDMA providers use the same IP address as the native
+TCP/IP stack when creating RDMA connections. They need a mechanism to
+claim the TCP ports used for RDMA connections to prevent TCP port
+collisions when other host applications use TCP ports. The iWARP Port
+Mapper provides a standard mechanism to accomplish this. Without this
+service it is possible for RDMA application to bind/listen on the same
+port which is already being used by native TCP host application. If
+that happens the incoming TCP connection data can be passed to the
+RDMA stack with error.
+.P
+The iWARP Connection Manager (port mapper client) sends to the IWPM
+service the local IP address and TCP port it has received from the RDMA
+application, when starting a connection. The IWPM service performs
+a socket bind from user space to get an available TCP port, called a
+mapped port, and communicates it back to the client. 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 native TCP
+stack which is aware that these ports are taken. When an RDMA connection
+using a mapped port is terminated, the client notifies the IWPM service,
+which then releases the TCP port.
+.P
+The message exchange between iwpmd and the iWARP Connection Manager
+(between user space and kernel space) is implemented using netlink
+sockets.
+.SH "SIGNALS"
+SIGUSR1 will force a dump of the current mappings
+to the system message log.
+.P
+SIGTERM/SIGHUP will force iwpmd to exit.
+.SH "FILES"
+/etc/iwpmd.conf
+.SH "SEE ALSO"
+rdma_cm(7)
new file mode 100644
@@ -0,0 +1,20 @@
+.TH "iwpmd.conf" 5 "2016-09-16" "iwpmd.conf" "iwpmd.conf" iwpmd.conf
+.SH NAME
+iwpmd.conf \- iWARP port mapper config file.
+.SH SYNOPSIS
+.sp
+.nf
+\fIiwpmd.conf\fR
+.fi
+.SH "DESCRIPTION"
+The iwpmd.conf file provides configuration parameters for iwpmd. Parameters
+are in the form: param=value, and one per line. Parameters include:
+.P
+nl_sock_rbuf_size - The socket buffer size of the netlink socket used
+to communicate with the kernel port map client. The default is 400MB.
+.SH "EXAMPLES"
+nl_sock_rbuf_size=419430400
+.SH "FILES"
+/etc/iwpmd.conf
+.SH "SEE ALSO"
+iwpmd(1)