|
@@ -85,7 +85,8 @@ Socket Interface
|
|
|
|
|
|
|
|
bind(fd, &sockaddr_in, ...)
|
|
bind(fd, &sockaddr_in, ...)
|
|
|
This binds the socket to a local IP address and port, and a
|
|
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, ...)
|
|
sendmsg(fd, ...)
|
|
|
Sends a message to the indicated recipient. The kernel will
|
|
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
|
|
operation. In this case, it would use RDS_CANCEL_SENT_TO to
|
|
|
nuke any pending messages.
|
|
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
|
|
RDMA for RDS
|
|
|
============
|
|
============
|