SDP in OFED 1.0 Release Notes
=============================

June 2006

Overview
--------
SDP in OFED is a technology preview. It was verified to be stable under a
moderate number of active connections (several hundreds), and to perform well
for moderately large message sizes (4K and up).

Typical bandwidth achievable by SDP is around 800-900 MByte/sec (netperf with
no tuning). SDP latency for small messages (1 byte) is around 25-30usec and is
currently higher than that of IPoIB.

Known Issues
------------
- SDP does not support sending/receiving out of band data (MSG_OOB).

- Generally, SDP supports only SOL_SOCKET socket options. The following
  options can be set but actual support is missing:
    SO_KEEPALIVE - no keepalives are sent
    SO_OOBINLINE - out of band data is not supported

- SDP supports setting the SOL_TCP socket options TCP_NODELAY and TCP_CORK
  but their actual support is still missing.

- SDP does not handle Zcopy mode messages correctly and does not set MaxAdverts 
  properly in HH/HAH messages.

- SDP does not directly support asynchronous io through libaio. Applications
  can  use asynchronous IO through libc emulation (default on Linux).

- SDP does not support IPv6 addressing.  libsdp can be used to perform
  IPv6 to IPv4 address translation.

- SDP does not implement the Naggle algorithm. This degrades bandwidth
  for small messages (less than 512 bytes) linearly with respect to message size
 (the approximate bandwidth is 400 MByte/sec for 512-byte messages).

- SDP ignores the backlog parameter in the listen call: all connection
  requests arriving at the socket are accepted immediately regardless of the
  backlog size. As a result, applications with connections initiated at a
  rate higher than their acceptance rate may run out of kernel memory causing
  system instability.

- SDP does not handle memory pressure gracefully. As a result, performance
  drops if a large number of connections is active simultaneously. 

- If many connections are open for a long time there will be memory leaks.

- This version of SDP does not interoperate with other versions and/or 
  implementations of SDP. It can only operate with itself (i.e., this same
  version must be installed on both the client and the server).

Verification Applications/Flows/Tests:
--------------------------------------
- ssh/sshd
- wget/netscape/firefox/apache                  
- netpipe               
- netperf             
- LTP socket tests
- iperf-2.0.2         
- ttcp
- Threaded and forking echo client server examples
- Various Java client server applications (SUN:jre, BEA:jrockit/WebLogic, GNU:gij/gcj)
- Many UNIX utilities to verify that pre-load did not harm the applications

The following applications (that use out-of-band data) are known not to work:
- ftp, telnet


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


libsdp in OFED 1.0 Release Notes

June 2006

Overview
--------
libsdp is a library which can be pre-loaded using the LD_PRELOAD environment
variable and used to migrate TCP sockets of legacy applications to SDP --
transparently and without recompilation.

libsdp can be set up for pre-load before all applications by adding it to
/etc/ld.so.preload. Alternatively, it can be selectively applied to specific
applications by setting LD_PRELOAD=libsdp.so.

libsdp can be configured to use sockets of SDP, TCP or both for specific
application/address/port combinations by using the configuration file
libsdp.conf. The provided rules are evaluated in order allowing multiple
matching criteria. Note that many of the applications connect or serve
remote machines that are not local to the IB subnet or do not run over SDP.
Therefore, even the simplest application may require setting up listen or
connection on both TCP and SDP.

libsdp also provides address translation from IPv4 embedded in IPv6 into IPv4.
(This will be removed once SDP will support IPv6.)

Verification Applications/Flows/Tests:
--------------------------------------
See the parallel section in SDP release notes above.
