Scroll to navigation

RSOCKET(7) Librdmacm Programmer's Manual RSOCKET(7)

NAME

rsocket - RDMA socket API

SYNOPSIS

#include <rdma/rsocket.h>

DESCRIPTION

RDMA socket API and protocol

NOTES

rsockets is a protocol over RDMA that supports a socket-level API for applications. rsocket APIs are intended to match the behavior of corresponding socket calls, except where noted. rsocket functions match the name and function signature of socket calls, with the exception that all function calls are prefixed with an 'r'.
The following functions are defined:
rsocket
rbind, rlisten, raccept, rconnect
rshutdown, rclose
rrecv, rrecvfrom, rrecvmsg, rread, rreadv
rsend, rsendto, rsendmsg, rwrite, rwritev
rpoll, rselect
rgetpeername, rgetsockname
rsetsockopt, rgetsockopt, rfcntl
Functions take the same parameters as that use for sockets. The follow capabilities and flags are supported at this time:
PF_INET, PF_INET6, SOCK_STREAM, IPPROTO_TCP, TCP_MAXSEG
MSG_DONTWAIT, MSG_PEEK
SO_REUSEADDR, TCP_NODELAY, SO_ERROR, SO_SNDBUF, SO_RCVBUF
O_NONBLOCK
In addition to standard socket options, rsockets supports options specific to RDMA devices and protocols. These options are accessible through rsetsockopt using SOL_RDMA option level.
RDMA_SQSIZE - Integer size of the underlying send queue.
RDMA_RQSIZE - Integer size of the underlying receive queue.
RDMA_INLINE - Integer size of inline data.
Note that rsockets fd's cannot be passed into non-rsocket calls. For applications which must mix rsocket fd's with standard socket fd's or opened files, rpoll and rselect support polling both rsockets and normal fd's.
Existing applications can make use of rsockets through the use of a preload library. Because rsockets implements an end-to-end protocol, both sides of a connection must use rsockets. The rdma_cm library provides such a preload library, librspreload. To reduce the chance of the preload library intercepting calls without the user's explicit knowledge, the librspreload library is installed into %libdir%/rsocket subdirectory.
The preload library can be used by setting LD_PRELOAD when running. Note that not all applications will work with rsockets. Support is limited based on the socket options used by the application. Additionally, applications which call fork are not supported.
rsockets uses configuration files that give an administrator control over the default settings used by rsockets. Use files under %sysconfig%/rdma/rsocket as shown:
mem_default - default size of receive buffer(s)
wmem_default - default size of send buffer(s)
sqsize_default - default size of send queue
rqsize_default - default size of receive queue
inline_default - default size of inline data
If configuration files are not available, rsockets uses internal defaults.

SEE ALSO

rdma_cm(7)
2010-07-19 librdmacm