]> git.openfabrics.org - ~shefty/librdmacm.git/log
~shefty/librdmacm.git
12 years agonew
Sean Hefty [Fri, 11 May 2012 17:33:13 +0000 (10:33 -0700)]
new

12 years agonew
Sean Hefty [Fri, 11 May 2012 17:33:13 +0000 (10:33 -0700)]
new

12 years agolibrdmacm/rstream: Set rsocket nonblocking for base tests
Sean Hefty [Fri, 11 May 2012 17:33:13 +0000 (10:33 -0700)]
librdmacm/rstream: Set rsocket nonblocking for base tests

The base set of rstream tests want nonblocking rsockets, but don't
actually set the rsocket to nonblocking.  It instead relies on the
MSG_DONTWAIT flag.  Make the code match the expected behavior and
set the rsocket to nonblocking and make nonblocking the default.

Provide a test option to switch it back to blocking mode.  We keep
the existing nonblocking test option for compatibility.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
12 years agorefresh
Sean Hefty [Fri, 11 May 2012 16:40:28 +0000 (09:40 -0700)]
refresh

12 years agorefresh
Sean Hefty [Fri, 11 May 2012 16:40:28 +0000 (09:40 -0700)]
refresh

12 years agorefresh (create temporary patch)
Sean Hefty [Fri, 11 May 2012 16:40:13 +0000 (09:40 -0700)]
refresh (create temporary patch)

12 years agorefresh (create temporary patch)
Sean Hefty [Fri, 11 May 2012 16:40:13 +0000 (09:40 -0700)]
refresh (create temporary patch)

12 years agoRefresh of reuseaddr
Sean Hefty [Fri, 11 May 2012 16:40:12 +0000 (09:40 -0700)]
Refresh of reuseaddr

12 years agorefresh
Sean Hefty [Thu, 10 May 2012 18:28:17 +0000 (11:28 -0700)]
refresh

12 years agorefresh
Sean Hefty [Thu, 10 May 2012 18:28:17 +0000 (11:28 -0700)]
refresh

12 years agorefresh (create temporary patch)
Sean Hefty [Thu, 10 May 2012 18:28:17 +0000 (11:28 -0700)]
refresh (create temporary patch)

12 years agorefresh (create temporary patch)
Sean Hefty [Thu, 10 May 2012 18:28:17 +0000 (11:28 -0700)]
refresh (create temporary patch)

12 years agoRefresh of reuseaddr
Sean Hefty [Thu, 10 May 2012 18:28:17 +0000 (11:28 -0700)]
Refresh of reuseaddr

12 years agolibrdmacm/rsocket: Succeed setsockopt REUSEADDR on connected sockets
Sean Hefty [Thu, 10 May 2012 18:17:32 +0000 (11:17 -0700)]
librdmacm/rsocket: Succeed setsockopt REUSEADDR on connected sockets

The RDMA CM fail calls to set REUSEADDR on an rdma_cm_id if
it is not in the idle state.  As a result, this causes a failure
in NetPipe when run with socket calls intercepted by rsockets.
Fix this by returning success when REUSEADDR is set on an rsocket
that has already been connected.  When running over IB, REUSEADDR
is not necessary, since the TCP/IP addresses are mapped.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
12 years agolibrdmacm/rsocket: Succeed setsockopt REUSEADDR on connected sockets
Sean Hefty [Thu, 10 May 2012 18:17:32 +0000 (11:17 -0700)]
librdmacm/rsocket: Succeed setsockopt REUSEADDR on connected sockets

The RDMA CM fail calls to set REUSEADDR on an rdma_cm_id if
it is not in the idle state.  As a result, this causes a failure
in NetPipe when is run with socket calls intercepted by rsockets.
Fix this by returning success when REUSEADDR is set on an rsocket
that has already been connected.  When running over IB, REUSEADDR
is not necessary, since the TCP/IP addresses are mapped.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
12 years agonew
Sean Hefty [Thu, 10 May 2012 18:17:32 +0000 (11:17 -0700)]
new

12 years agonew
Sean Hefty [Thu, 10 May 2012 18:17:32 +0000 (11:17 -0700)]
new

12 years agolibrdmacm/rsocket: Succeed setsockopt REUSEADDR on connected sockets
Sean Hefty [Thu, 10 May 2012 18:17:32 +0000 (11:17 -0700)]
librdmacm/rsocket: Succeed setsockopt REUSEADDR on connected sockets

The RDMA CM fail calls to set REUSEADDR on an rdma_cm_id if
it is not in the idle state.  As a result, this causes a failure
in NetPipe when is run with socket calls intercepted by rsockets.
Fix this by returning success when REUSEADDR is set on an rsocket
that has already been connected.  When running over IB, REUSEADDR
is not necessary, since the TCP/IP addresses are mapped.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
12 years agorefresh
Sean Hefty [Thu, 10 May 2012 17:42:22 +0000 (10:42 -0700)]
refresh

12 years agorefresh
Sean Hefty [Thu, 10 May 2012 17:42:22 +0000 (10:42 -0700)]
refresh

12 years agorefresh (create temporary patch)
Sean Hefty [Thu, 10 May 2012 17:42:21 +0000 (10:42 -0700)]
refresh (create temporary patch)

12 years agorefresh (create temporary patch)
Sean Hefty [Thu, 10 May 2012 17:42:21 +0000 (10:42 -0700)]
refresh (create temporary patch)

12 years agoRefresh of rs-locking
Sean Hefty [Thu, 10 May 2012 17:42:21 +0000 (10:42 -0700)]
Refresh of rs-locking

12 years agorefresh
Sean Hefty [Wed, 9 May 2012 22:50:18 +0000 (15:50 -0700)]
refresh

12 years agorefresh
Sean Hefty [Wed, 9 May 2012 22:50:18 +0000 (15:50 -0700)]
refresh

12 years agorefresh (create temporary patch)
Sean Hefty [Wed, 9 May 2012 22:25:37 +0000 (15:25 -0700)]
refresh (create temporary patch)

12 years agorefresh (create temporary patch)
Sean Hefty [Wed, 9 May 2012 22:25:37 +0000 (15:25 -0700)]
refresh (create temporary patch)

12 years agoRefresh of rs-locking
Sean Hefty [Wed, 9 May 2012 22:25:37 +0000 (15:25 -0700)]
Refresh of rs-locking

12 years agopop
Sean Hefty [Wed, 9 May 2012 22:25:12 +0000 (15:25 -0700)]
pop

12 years agopop
Sean Hefty [Wed, 9 May 2012 22:25:12 +0000 (15:25 -0700)]
pop

12 years agorefresh
Sean Hefty [Wed, 9 May 2012 22:04:10 +0000 (15:04 -0700)]
refresh

12 years agorefresh
Sean Hefty [Wed, 9 May 2012 22:04:10 +0000 (15:04 -0700)]
refresh

12 years agorefresh (create temporary patch)
Sean Hefty [Wed, 9 May 2012 22:04:10 +0000 (15:04 -0700)]
refresh (create temporary patch)

12 years agorefresh (create temporary patch)
Sean Hefty [Wed, 9 May 2012 22:04:10 +0000 (15:04 -0700)]
refresh (create temporary patch)

12 years agoRefresh of comp_locks
Sean Hefty [Wed, 9 May 2012 22:04:10 +0000 (15:04 -0700)]
Refresh of comp_locks

12 years agocompare fastlock versus mutex
Sean Hefty [Wed, 9 May 2012 21:54:17 +0000 (14:54 -0700)]
compare fastlock versus mutex

12 years agonew
Sean Hefty [Wed, 9 May 2012 21:54:17 +0000 (14:54 -0700)]
new

12 years agonew
Sean Hefty [Wed, 9 May 2012 21:54:17 +0000 (14:54 -0700)]
new

12 years agocompare fastlock versus mutex
Sean Hefty [Wed, 9 May 2012 21:54:17 +0000 (14:54 -0700)]
compare fastlock versus mutex

12 years agopop
Sean Hefty [Wed, 9 May 2012 21:02:16 +0000 (14:02 -0700)]
pop

12 years agopop
Sean Hefty [Wed, 9 May 2012 21:02:16 +0000 (14:02 -0700)]
pop

12 years agopop
Sean Hefty [Wed, 9 May 2012 20:52:34 +0000 (13:52 -0700)]
pop

12 years agopop
Sean Hefty [Wed, 9 May 2012 20:52:34 +0000 (13:52 -0700)]
pop

12 years agorefresh
Sean Hefty [Wed, 9 May 2012 20:52:31 +0000 (13:52 -0700)]
refresh

12 years agorefresh
Sean Hefty [Wed, 9 May 2012 20:52:31 +0000 (13:52 -0700)]
refresh

12 years agorefresh (create temporary patch)
Sean Hefty [Wed, 9 May 2012 20:52:31 +0000 (13:52 -0700)]
refresh (create temporary patch)

12 years agorefresh (create temporary patch)
Sean Hefty [Wed, 9 May 2012 20:52:31 +0000 (13:52 -0700)]
refresh (create temporary patch)

12 years agoRefresh of rs-locking
Sean Hefty [Wed, 9 May 2012 20:52:31 +0000 (13:52 -0700)]
Refresh of rs-locking

12 years agorefresh
Sean Hefty [Wed, 9 May 2012 17:40:13 +0000 (10:40 -0700)]
refresh

12 years agorefresh
Sean Hefty [Wed, 9 May 2012 17:40:13 +0000 (10:40 -0700)]
refresh

12 years agorefresh (create temporary patch)
Sean Hefty [Wed, 9 May 2012 17:40:13 +0000 (10:40 -0700)]
refresh (create temporary patch)

12 years agorefresh (create temporary patch)
Sean Hefty [Wed, 9 May 2012 17:40:13 +0000 (10:40 -0700)]
refresh (create temporary patch)

12 years agoRefresh of rs-locking
Sean Hefty [Wed, 9 May 2012 17:40:13 +0000 (10:40 -0700)]
Refresh of rs-locking

12 years agorefresh
Sean Hefty [Tue, 8 May 2012 00:48:50 +0000 (17:48 -0700)]
refresh

12 years agorefresh
Sean Hefty [Tue, 8 May 2012 00:48:50 +0000 (17:48 -0700)]
refresh

12 years agorefresh (create temporary patch)
Sean Hefty [Tue, 8 May 2012 00:48:50 +0000 (17:48 -0700)]
refresh (create temporary patch)

12 years agorefresh (create temporary patch)
Sean Hefty [Tue, 8 May 2012 00:48:50 +0000 (17:48 -0700)]
refresh (create temporary patch)

12 years agoRefresh of rs-locking
Sean Hefty [Tue, 8 May 2012 00:48:50 +0000 (17:48 -0700)]
Refresh of rs-locking

12 years agorsockets: Optimize synchronization to improve performance
Sean Hefty [Tue, 8 May 2012 00:16:47 +0000 (17:16 -0700)]
rsockets: Optimize synchronization to improve performance

Hotspot performance analysis using VTune showed pthread_mutex_unlock()
as the most significant hotspot when transferring small messages using
rstream.  To reduce the impact of using pthread mutexes, replace it
with a custom lock built using an atomic variable and a semaphore.
When there's no contention for the lock (which is the expected case
for nonblocking sockets), the synchronization is reduced to
incrementing and decrementing an atomic variable.

A test that acquired and released a lock 2 billion times reported that
the custom lock was roughly 20% faster than using the mutex.
26.6 seconds versus 33.0 seconds.

Unfortunately, further analysis showed that using the custom lock
provided a minimal performance gain on rstream itself, and simply
moved the hotspot to the custom unlock call.  The hotspot is likely
a result of some other interaction, rather than caused by slowness
in releasing a lock.  However, we keep the custom lock based on
the results of the direct lock tests that were done.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
12 years agorsockets: Optimize synchronization to improve performance
Sean Hefty [Tue, 8 May 2012 00:16:47 +0000 (17:16 -0700)]
rsockets: Optimize synchronization to improve performance

Hotspot performance analysis using VTune showed pthread_mutex_unlock()
as the most significant hotspot when transferring small messages using
rstream.  To reduce the impact of using pthread mutexes, replace it
with a custom lock built using an atomic variable and a semaphore.
When there's no contention for the lock (which is the expected case
for nonblocking sockets), the synchronization is reduced to
incrementing and decrementing an atomic variable.

A test that acquired and released a lock 2 billion times reported that
the custom lock was roughly 20% faster than using the mutex.
26.6 seconds versus 33.0 seconds.

Unfortunately, further analysis showed that using the custom lock
provided a minimal performance gain on rstream itself, and simply
moved the hotspot to the custom unlock call.  The hotspot is likely
a result of some other interaction, rather than caused by slowness
in releasing a lock.  However, we keep the custom lock based on
the results of the direct lock tests that were done.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
12 years agorsockets: Optimize synchronization to improve performance
Sean Hefty [Tue, 8 May 2012 00:16:47 +0000 (17:16 -0700)]
rsockets: Optimize synchronization to improve performance

Performance analysis using VTune showed that pthread_mutex_unlock()
is the single biggest contributor to increasing latency for 64-byte
transfers.  Unlocked was followed by get_sw_cqe(), then
__pthread_mutex_lock().  Replace the use of mutexes with an atomic
and a semaphore.  When there's no contention for the lock (which
would usually be the case when using nonblocking sockets), the
code simply increments and decrements an atomic varible.  Semaphores
are only used when contention occurs.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
12 years agorsockets: Optimize synchronization to improve performance
Sean Hefty [Tue, 8 May 2012 00:16:47 +0000 (17:16 -0700)]
rsockets: Optimize synchronization to improve performance

Performance analysis using VTune showed that pthread_mutex_unlock()
is the single biggest contributor to increasing latency for 64-byte
transfers.  Unlocked was followed by get_sw_cqe(), then
__pthread_mutex_lock().  Replace the use of mutexes with an atomic
and a semaphore.  When there's no contention for the lock (which
would usually be the case when using nonblocking sockets), the
code simply increments and decrements an atomic varible.  Semaphores
are only used when contention occurs.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
12 years agorsockets: Optimize synchronization to improve performance
Sean Hefty [Tue, 8 May 2012 00:16:47 +0000 (17:16 -0700)]
rsockets: Optimize synchronization to improve performance

Performance analysis using VTune showed that pthread_mutex_unlock()
is the single biggest contributor to increasing latency for 64-byte
transfers.  Unlocked was followed by get_sw_cqe(), then
__pthread_mutex_lock().  Replace the use of mutexes with an atomic
and a semaphore.  When there's no contention for the lock (which
would usually be the case when using nonblocking sockets), the
code simply increments and decrements an atomic varible.  Semaphores
are only used when contention occurs.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
12 years agonew
Sean Hefty [Tue, 8 May 2012 00:16:47 +0000 (17:16 -0700)]
new

12 years agonew
Sean Hefty [Tue, 8 May 2012 00:16:47 +0000 (17:16 -0700)]
new

12 years agorsockets: Optimize synchronization to improve performance
Sean Hefty [Tue, 8 May 2012 00:16:47 +0000 (17:16 -0700)]
rsockets: Optimize synchronization to improve performance

Performance analysis using VTune showed that pthread_mutex_unlock()
is the single biggest contributor to increasing latency for 64-byte
transfers.  Unlocked was followed by get_sw_cqe(), then
__pthread_mutex_lock().  Replace the use of mutexes with an atomic
and a semaphore.  When there's no contention for the lock (which
would usually be the case when using nonblocking sockets), the
code simply increments and decrements an atomic varible.  Semaphores
are only used when contention occurs.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
12 years agocommit
Sean Hefty [Tue, 8 May 2012 00:12:03 +0000 (17:12 -0700)]
commit

12 years agocommit
Sean Hefty [Tue, 8 May 2012 00:12:03 +0000 (17:12 -0700)]
commit

12 years agopop
Sean Hefty [Wed, 2 May 2012 22:42:48 +0000 (15:42 -0700)]
pop

12 years agopop
Sean Hefty [Wed, 2 May 2012 22:42:48 +0000 (15:42 -0700)]
pop

12 years agonew
Sean Hefty [Wed, 25 Apr 2012 21:34:14 +0000 (14:34 -0700)]
new

12 years agonew
Sean Hefty [Wed, 25 Apr 2012 21:34:14 +0000 (14:34 -0700)]
new

12 years agorsocket: Add building of preload library to make
Sean Hefty [Wed, 25 Apr 2012 21:34:14 +0000 (14:34 -0700)]
rsocket: Add building of preload library to make

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
12 years agorefresh
Sean Hefty [Tue, 24 Apr 2012 18:25:01 +0000 (11:25 -0700)]
refresh

12 years agorefresh
Sean Hefty [Tue, 24 Apr 2012 18:25:01 +0000 (11:25 -0700)]
refresh

12 years agorefresh (create temporary patch)
Sean Hefty [Tue, 24 Apr 2012 18:25:01 +0000 (11:25 -0700)]
refresh (create temporary patch)

12 years agorefresh (create temporary patch)
Sean Hefty [Tue, 24 Apr 2012 18:25:01 +0000 (11:25 -0700)]
refresh (create temporary patch)

12 years agoRefresh of snprintf
Sean Hefty [Tue, 24 Apr 2012 18:25:01 +0000 (11:25 -0700)]
Refresh of snprintf

12 years agorefresh
Sean Hefty [Tue, 24 Apr 2012 18:21:17 +0000 (11:21 -0700)]
refresh

12 years agorefresh
Sean Hefty [Tue, 24 Apr 2012 18:21:17 +0000 (11:21 -0700)]
refresh

12 years agorefresh (create temporary patch)
Sean Hefty [Tue, 24 Apr 2012 18:21:17 +0000 (11:21 -0700)]
refresh (create temporary patch)

12 years agorefresh (create temporary patch)
Sean Hefty [Tue, 24 Apr 2012 18:21:17 +0000 (11:21 -0700)]
refresh (create temporary patch)

12 years agoRefresh of snprintf
Sean Hefty [Tue, 24 Apr 2012 18:21:17 +0000 (11:21 -0700)]
Refresh of snprintf

12 years agorping: Replace sprintf with snprintf to protect from buffer overflow
Dotan Barak [Tue, 24 Apr 2012 18:20:55 +0000 (11:20 -0700)]
rping: Replace sprintf with snprintf to protect from buffer overflow

Signed-off-by: Dotan Barak <dotanb@dev.mellanox.co.il>
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
12 years agorping: Replace sprintf with snprintf to protect from buffer overflow
Dotan Barak [Tue, 24 Apr 2012 18:20:55 +0000 (11:20 -0700)]
rping: Replace sprintf with snprintf to protect from buffer overflow

Signed-off-by: Dotan Barak <dotanb@dev.mellanox.co.il>
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
12 years agonew
Sean Hefty [Tue, 24 Apr 2012 18:20:55 +0000 (11:20 -0700)]
new

12 years agonew
Sean Hefty [Tue, 24 Apr 2012 18:20:55 +0000 (11:20 -0700)]
new

12 years agorping: Replace sprintf with snprintf to protect from buffer overflow
Sean Hefty [Tue, 24 Apr 2012 18:20:55 +0000 (11:20 -0700)]
rping: Replace sprintf with snprintf to protect from buffer overflow

Signed-off-by: Dotan Barak <dotanb@dev.mellanox.co.il>
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
12 years agostart of log
Sean Hefty [Tue, 24 Apr 2012 18:20:55 +0000 (11:20 -0700)]
start of log

12 years agostart of log
Sean Hefty [Tue, 24 Apr 2012 18:20:55 +0000 (11:20 -0700)]
start of log

12 years agorsocket: Succeed setting SO_KEEPALIVE option rsocket
Sean Hefty [Mon, 9 Apr 2012 19:05:39 +0000 (12:05 -0700)]
rsocket: Succeed setting SO_KEEPALIVE option

memcached sets SO_KEEPALIVE, so succeed any requests to set
that option.  We don't actually implement keepalive at this time.

To implement keepalive, we would need to record the last time
that a message was sent or received on an rsocket.  If no
new messages are processed within the keepalive timeout, then
we would need to issue a keepalive message.  For rsockets,
this would simply mean sending a 0-byte control message that
gets ignored on the remote side.

The only real difficulty with handlng keepalive is doing it
without adding threads.  This requires additional work in
poll to occasionally timeout, send keepalive messages, then
return to polling if no new data has arrived.  Alternatively,
we can add a thread to handle sending keepalive messages.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
12 years agorsocket: Succeed SO_LINGER socket option
Sean Hefty [Fri, 6 Apr 2012 22:40:10 +0000 (15:40 -0700)]
rsocket: Succeed SO_LINGER socket option

Succeed calls to set the SO_LINGER socket option.  We don't
actually implement SO_LINGER semantics because we never place
an rsocket into a timewait state.  Unlike socket behavior,
we do wait for all pending data to be transferred by the hardware.
This is done so that the disconnect message can be sent over
the rsocket connection.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
12 years agorsocket: Handle socket option toggling on/off
Sean Hefty [Mon, 9 Apr 2012 19:16:21 +0000 (12:16 -0700)]
rsocket: Handle socket option toggling on/off

If the user turns a socket option off, record that, so that
rgetsockopt returns the correct state of the option.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
12 years agorsocket: Discard unrecognized control messages
Sean Hefty [Fri, 6 Apr 2012 22:12:36 +0000 (15:12 -0700)]
rsocket: Discard unrecognized control messages

If we receive a control message that is not known, simply discard it.
This provides some ability to support forward compatibility.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
12 years agorsocket: Work-arounds to support RH EL5
Sean Hefty [Tue, 21 Feb 2012 20:48:04 +0000 (12:48 -0800)]
rsocket: Work-arounds to support RH EL5

Discard ENOSYS errors when trying to set address reuse.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
12 years agorsocket: Allow use of LD_PRELOAD to intercept socket calls
Sean Hefty [Tue, 3 Apr 2012 21:25:23 +0000 (14:25 -0700)]
rsocket: Allow use of LD_PRELOAD to intercept socket calls

Intercept socket calls and convert TCP socket operation to
streaming over RDMA.

Allow falling back from rsockets to normal sockets on error
or when trying to bind/connect to a reserved port.  This is
needed to handle MPI job startup, where MPI should use rsockets,
but mpiexect needs to communicate using ssh over normal sockets.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
12 years agorsocket: Add sample application to copy files over rsockets
Sean Hefty [Thu, 1 Dec 2011 20:52:28 +0000 (12:52 -0800)]
rsocket: Add sample application to copy files over rsockets

rcopy will copy files from a source system to a specified remote
server.  It's essentially a really dumb FTP type program that can
be used to quickly transfer files between systems, which can be
useful to verify data integrity.

(It was easier to create this program than modify an existing FTP
client and server application, which was my first choice.  Fork
support is difficult.)

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
12 years agorsocket: Add example program that uses rsocket
Sean Hefty [Thu, 8 Dec 2011 19:30:12 +0000 (11:30 -0800)]
rsocket: Add example program that uses rsocket

rstream provides an example that uses either rsocket or socket
APIs.  The latter allows rstream to be used to verify rsocket
behavior compared to socket.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
12 years agolibrdmacm: Define streaming over RDMA interface (rsockets)
Sean Hefty [Tue, 3 Apr 2012 21:25:04 +0000 (14:25 -0700)]
librdmacm: Define streaming over RDMA interface (rsockets)

Introduces a new set of APIs that support a byte streaming interface
over RDMA devices.  The new interface matches sockets, except 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
MSG_DONTWAIT, MSG_PEEK
SO_REUSEADDR, TCP_NODELAY, SO_ERROR, SO_SNDBUF, SO_RCVBUF
O_NONBLOCK

The rpoll call supports polling both rsockets and normal fd's.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
12 years agoucmatose: Fix segfault on address error
Sagi Grimberg [Wed, 4 Apr 2012 21:36:49 +0000 (14:36 -0700)]
ucmatose: Fix segfault on address error

Client connect_events() shoudl fail if it received some error,
otherwise the program will try to reach a non-existent QP
resource resulting in a segfault.  Return an error from
cma_handler() if we had a connection error.

Signed-off-by: Sagi Grimberg <sagig@mellanox.com>
Signed-off-by: Sean Hefty <sean.hefty@intel.com>