Documentation: RDS: updates for SO_RDS_TRANSPORT socket option
[cascardo/linux.git] / Documentation / networking / rds.txt
index 9d219d8..1366e11 100644 (file)
@@ -85,7 +85,8 @@ Socket Interface
 
   bind(fd, &sockaddr_in, ...)
         This binds the socket to a local IP address and port, and a
-        transport.
+        transport, if one has not already been selected via the
+       SO_RDS_TRANSPORT socket option
 
   sendmsg(fd, ...)
         Sends a message to the indicated recipient. The kernel will
@@ -146,6 +147,20 @@ Socket Interface
         operation. In this case, it would use RDS_CANCEL_SENT_TO to
         nuke any pending messages.
 
+  setsockopt(fd, SOL_RDS, SO_RDS_TRANSPORT, (int *)&transport ..)
+  getsockopt(fd, SOL_RDS, SO_RDS_TRANSPORT, (int *)&transport ..)
+       Set or read an integer defining  the underlying
+       encapsulating transport to be used for RDS packets on the
+       socket. When setting the option, integer argument may be
+       one of RDS_TRANS_TCP or RDS_TRANS_IB. When retrieving the
+       value, RDS_TRANS_NONE will be returned on an unbound socket.
+       This socket option may only be set exactly once on the socket,
+       prior to binding it via the bind(2) system call. Attempts to
+       set SO_RDS_TRANSPORT on a socket for which the transport has
+       been previously attached explicitly (by SO_RDS_TRANSPORT) or
+       implicitly (via bind(2)) will return an error of EOPNOTSUPP.
+       An attempt to set SO_RDS_TRANSPPORT to RDS_TRANS_NONE will
+       always return EINVAL.
 
 RDMA for RDS
 ============