	  Open Fabrics Enterprise Distribution (OFED)
             RDS in OFED 1.3 Release Notes
			  
			   February 2008


===============================================================================
Table of Contents
===============================================================================
1. Overview
2. Supported Platforms
3. Installation & Configuration
4. New Features
5. Bug fixes and Enhancements since OFED 1.2 
6. Known Issues

===============================================================================
1. Overview
===============================================================================
RDS socket API.  It provides reliable, in-order datagram delivery between 
sockets over a variety of transports.
For details see RDS_README.txt and man 7 rds.

===============================================================================
2. supported platforms
===============================================================================

        RHEL4.0 Update 4,5,6
        RHEL5.0
        SLES 10

===============================================================================
3. Installation & Configuration
===============================================================================
To install RDS select rds in OFED's manual installation or put 'rds=y' in the
ofed.conf for unattended installation.

To load RDS module upon boot edit file '/etc/infiniband/openib.conf' as 
follows:

# Load RDS module
RDS_LOAD=yes

===============================================================================
4. New Features
===============================================================================

RDS V3 adds support for RDMA operations. 

The principal mode of operation for RDS zerocopy is like this: 

One participant (the client) wishes to initiate a 
direct transfer to or from some area of memory in its process address space.
This memory does not have to be aligned.

The client obtains a handle for this region of memory, and
passes it to the other participant (the server). This is called
the RDMA cookie.

The client sends this handle to the server application, along with other 
details of the RDMA request (such as which data to transfer to that memory area).
Throughout the following discussion, we will refer to this
message as the RDMA request.

The server uses this RDMA cookie to initiate the requested RDMA
transfer. The RDMA transfer is combined atomically with a
normal RDS message, which is delivered to the client. This
message is called the RDMA ACK throughout the following.  Atomic
in this context means that if the RDMA ACK succeeds, then the RDMA 
has completed. If the RDMA ACK is not delivered, the client can not 
assume anything about the success of the RDMA.

Thus, when the client receives the RDMA ACK, it knows that
the RDMA has completed successfully. It can then release the
RDMA cookie for this memory region, if it wishes to.

See the rds(7) and rds-rdma(7) man pages included in rds-tools

===============================================================================
5. Bug fixes and Enhancements since OFED 1.2 
===============================================================================

1) Wire protocol for RDS v3 and RDS v2 are not compatible. 

2) RDS over TCP is disabled in OFED 1.3. We will re-enable in future release.

3) Congestion monitoring support gives the application more fine-grained control.

With explicit monitoring, the application polls for POLLIN as before, and 
additionally uses the RDS_CONG_MONITOR socket option to install a 64bit mask 
value in the socket, where each bit corresponds to a group of ports. 
When a congestion update arrives, RDS checks the set of ports that became 
uncongested against the bit mask installed in the socket. If they overlap, a 
control messages is enqueued on the socket, and the application is woken up. 
When application calls recvmsg (2), it will be given the control message 
containing the bitmap on the socket.
 
===============================================================================
6. Known Issues
===============================================================================
1. RDS is not supported on ppc64 platforms
2. RDS is not supported on 2.6.24 kernel
