Remote Direct Data Placement                                  R. Stewart
Working Group                                        Cisco Systems, Inc.
Internet-Draft                                                C. Bestler
Expires: March 15, 2004                                       Consultant
                                                            J. Pinkerton
                                                               Microsoft
                                                              S. Ganguly
                                                       Iomega Corp, Inc.
                                                                 H. Shah
                                                       Intel Corporation
                                                              V. Kashyap
                                                                     IBM
                                                      September 15, 2003


    Stream Control Transmission Protocol (SCTP) Remote Direct Memory
          Access (RDMA) Direct Data Placement (DDP) Adaptation
                      draft-ietf-rddp-sctp-00.txt

Status of this Memo

   This document is an Internet-Draft and is in full conformance with
   all provisions of Section 10 of RFC2026.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups. Note that other
   groups may also distribute working documents as Internet-Drafts.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time. It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   The list of current Internet-Drafts can be accessed at http://
   www.ietf.org/ietf/1id-abstracts.txt.

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html.

   This Internet-Draft will expire on March 15, 2004.

Copyright Notice

   Copyright (C) The Internet Society (2003). All Rights Reserved.

Abstract

   This document describes a method to adapt Direct Data Placement (DDP)
   and Remote Direct Memory Access (RDMA) to Stream Control Transmission



Stewart, et al.          Expires March 15, 2004                 [Page 1]


Internet-Draft          SCTP RDMA/DDP Adaptation          September 2003


   Protocol (SCTP) RFC2960 [2] using a generic description found in
   [RDMA-Draft] [4] and [DDP-Draft] [3].

Table of Contents

   1.    Introduction . . . . . . . . . . . . . . . . . . . . . . . .  3
   1.1   Definitions  . . . . . . . . . . . . . . . . . . . . . . . .  3
   1.2   Conventions  . . . . . . . . . . . . . . . . . . . . . . . .  4
   2.    Data Formats . . . . . . . . . . . . . . . . . . . . . . . .  5
   2.1   Adaptation Layer Indicator . . . . . . . . . . . . . . . . .  5
   2.2   Payload Data Chunks  . . . . . . . . . . . . . . . . . . . .  5
   2.2.1 DDP Source Sequence Number (DDP-SSN) . . . . . . . . . . . .  6
   2.2.2 DDP Segment  . . . . . . . . . . . . . . . . . . . . . . . .  6
   2.2.3 DDP Stream Session Control . . . . . . . . . . . . . . . . .  6
   3.    DDP Stream Sessions  . . . . . . . . . . . . . . . . . . . .  8
   3.1   Sequencing . . . . . . . . . . . . . . . . . . . . . . . . .  8
   3.2   Legal Sequence: Active/Passive Session Accepted  . . . . . .  8
   3.3   Legal Sequence: Negotiation-only . . . . . . . . . . . . . .  9
   3.4   Legal Sequence: Active/Passive Session Rejected  . . . . . .  9
   3.5   Legal Sequence: Active/Active Session Accepted . . . . . . .  9
   3.6   Other Sequencing Rules . . . . . . . . . . . . . . . . . . . 10
   4.    SCTP Endpoints . . . . . . . . . . . . . . . . . . . . . . . 11
   4.1   Adaptation Layer Indication Restriction  . . . . . . . . . . 11
   4.2   Multihoming Implications . . . . . . . . . . . . . . . . . . 11
   5.    Number of Streams  . . . . . . . . . . . . . . . . . . . . . 12
   6.    Fragmentation  . . . . . . . . . . . . . . . . . . . . . . . 13
   7.    Sequenced Unordered Operation  . . . . . . . . . . . . . . . 14
   8.    Procedures . . . . . . . . . . . . . . . . . . . . . . . . . 15
   8.1   Association Initialization . . . . . . . . . . . . . . . . . 15
   8.2   Chunk Bundling . . . . . . . . . . . . . . . . . . . . . . . 15
   8.3   Association Termination  . . . . . . . . . . . . . . . . . . 16
   9.    IANA considerations  . . . . . . . . . . . . . . . . . . . . 17
   10.   Security Considerations  . . . . . . . . . . . . . . . . . . 18
   11.   Acknowledgments  . . . . . . . . . . . . . . . . . . . . . . 19
         References . . . . . . . . . . . . . . . . . . . . . . . . . 20
         Authors' Addresses . . . . . . . . . . . . . . . . . . . . . 20
         Intellectual Property and Copyright Statements . . . . . . . 22














Stewart, et al.          Expires March 15, 2004                 [Page 2]


Internet-Draft          SCTP RDMA/DDP Adaptation          September 2003


1. Introduction

   This document describes a method to adapt Direct Data Placement (DDP)
   and Remote Direct Memory Access (RDMA) to Stream Control Transmission
   Protocol (SCTP) RFC2960 [2] using a generic description found in
   [RDMA-Draft] [4] and [DDP-Draft] [3] This adaption provides a method
   for two peers to know that each side is performing DDP or RDMA thus
   enabling hardware acceleration if available.

   Some implementations may include this adaptation layer within their
   SCTP implementations to obtain maximum performance but the behavior
   of SCTP will be unaffected. In order to accomplish this we specify
   the use of the new adaptation layer indication as defined in
   [ADDIP-Draft] [6]

1.1 Definitions

   DDP Endpoint - The logical sender/receiver of DDP Segments. An SCTP
      Stream pair is not assumed to have a DDP Endpoint. DDP Segments
      may only be sent once a DDP Endpoint has been assigned to an SCTP
      Stream pair by a local interface.

   DDP Source Stream Sequence (DDP-SSN) - A stream specific sequence
      number assigned by the DDP layer for each SCTP Data Chunk sent.
      Use of the SCTP Stream Sequence Number (SSN) could result in
      ordered delivery at the receiving end. Use of unordered Data
      Chunks indicates that the receiving SCTP layer is to deliver them
      without delay. The DDP-SSN retains the original order the Data
      Chunks were generated in, no matter what order they were actually
      sent or received.

   DDP Stream - A bi-directional pair of SCTP streams which have the
      same SCTP stream identifier.

   DDP Stream Session - A single pairing of DDP Endpoints over a DDP
      Stream that lasts from a Initiation message through the
      Termination message(s).

   DDP Stream Session Control - DDP Stream Session Control messages are
      used to control the association of the DDP Endpoint with the DDP
      Stream.

   RDMA - Remote Direct Memory Access.

   RNIC - RDMA Network Interface Card.






Stewart, et al.          Expires March 15, 2004                 [Page 3]


Internet-Draft          SCTP RDMA/DDP Adaptation          September 2003


   SCTP association - A protocol relationship between two SCTP
      endpoints. An SCTP association supports multiple SCTP streams.

   SCTP Data Chunk - An SCTP Chunk used to convey Payload Data. There
      can be multiple Chunks within each SCTP packet. Other Chunks are
      used to control the SCTP Association.

   SCTP endpoint - The logical sender/receiver of SCTP packets.  On a
      multi-homed host, an SCTP endpoint is represented to its peers as
      a combination of a SCTP port number and a set of eligible
      destination transport addresses to which SCTP packets can be sent.

   SCTP Stream - A uni-directional logical channel established from one
      to another associated SCTP endpoint. There can be multiple SCTP
      Streams within each SCTP association. An SCTP Stream is used to
      form one direction of a DDP stream.

   Transmission Sequence Number (TSN) - A 32-bit sequence number used
      internally by SCTP.  One TSN is attached to each chunk containing
      user data to permit the receiving SCTP endpoint to acknowledge its
      receipt and detect duplicate deliveries.


1.2 Conventions

   The keywords MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD,
   SHOULD NOT, RECOMMENDED, NOT RECOMMENDED, MAY, and OPTIONAL, when
   they appear in this document, are to be interpreted as described in
   RFC2119 [1].






















Stewart, et al.          Expires March 15, 2004                 [Page 4]


Internet-Draft          SCTP RDMA/DDP Adaptation          September 2003


2. Data Formats

2.1 Adaptation Layer Indicator

   This mapping places an entire SCTP association into a specific DDP
   mode: DDP or DDP+RDMA. It is presumed that the handling of incoming
   data chunks for DDP enabled associations is sufficiently different
   than for routine SCTP associations that it is undesirable to mix DDP
   and non-DDP streams in a single association. An application that
   needs to mix DDP and non-DDP traffic must use use more than a single
   association.

   We define a adaption indication which MUST appear in the INIT or
   INIT-ACK with the following format as defined in [ADDIP-Draft] [6]

   0                   1                   2                   3
   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |        Type =0xC006           |    Length = Variable          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                    Adaptation Indication                      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Adaptation Indication:

   The following values are defined for DDP in this document:

        DDP                        - 0x00000001
        DDP+RDMA                   - 0x00000002



2.2 Payload Data Chunks

   After the SCTP association has been established, all DDP relevant
   messages are encoded as Payload Data Chunks. Each includes a SCTP
   Stream identifier, a Transmissions Sequence Number (TSN), a Payload
   Protocol Identifier, the chunk length and the payload data bytes.

   The DDP SCTP adaptation uses two types of Payload Data Chunks,
   differentiated by the Payload Protocol Identifier:

      DDP Segments are use to for messages send between DDP Endpoints.

      DDP Stream Session messages are used to control the binding of DDP
      endpoints with SCTP streams.





Stewart, et al.          Expires March 15, 2004                 [Page 5]


Internet-Draft          SCTP RDMA/DDP Adaptation          September 2003


   Payload Protocol Identifier:

   The following value are defined for DDP in this document:

        DDP Segment                - 0x00000001
        DDP Stream Session Control - 0x00000002



2.2.1 DDP Source Sequence Number (DDP-SSN)

   All Payload Data Chunks include a DDP Source Sequence Number
   (DDP-SSN) that tracks the sequence the messages were submitted to the
   SCTP layer. It is initialized to 1 for each stream at the beginning
   of each DDP Stream Session. It wraps to zero after 65535.

   The SCTP Stream Sequence Number (SSN) is not suitable for this
   purpose, because all messages defined by this document use unordered
   Payload Data Chunks to ensure prompt delivery from the receiving SCTP
   layer.

   The SCTP Transmission Sequence Number (TSN) is not suitable for
   determine the original order of Data Chunks within a stream. The
   sending SCTP layer is allowed to optimize the transmission sequence
   of unordered Data Chunks to encourage Chunk Bundling, or other
   purposes.

2.2.2 DDP Segment

   0                   1                   2                   3
   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |          DDP-SSN              |         DDP Segment           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               |
   |                                                               |
   |                         ...                                   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   DDP Segments are as defined in [DDP-Draft].

2.2.3 DDP Stream Session Control


   0                   1                   2                   3
   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |          DDP-SSN              |    Function Code              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+



Stewart, et al.          Expires March 15, 2004                 [Page 6]


Internet-Draft          SCTP RDMA/DDP Adaptation          September 2003


   |            Private Data (Dependent on Function Code)          |
   |                         ...                                   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   The following function code values are defined for DDP in
   this document:

        DDP Stream Session Negotiate            - 0x001
        DDP Stream Session Initiate             - 0x002
        DDP Stream Session Accept                   - 0x003
        DDP Stream Session Terminate            - 0x004


   ULP supplied Private Data MUST be included for DDP Stream Session
   Negotiate, DDP Stream Session Initiate and DDP Stream Session Accept
   messages. However, the ULP supplied Private DATA MAY be of zero
   length. Private Data MUST NOT be included for the DDP Stream Session
   Termiante message.

   Received DDP Stream Session Control messages MUST be reported to the
   ULP. Any supplied Private Data MUST be available for the ULP.






























Stewart, et al.          Expires March 15, 2004                 [Page 7]


Internet-Draft          SCTP RDMA/DDP Adaptation          September 2003


3. DDP Stream Sessions

   A DDP Endpoint is the logical sender/receiver of DDP Segments. A DDP
   Stream connects two DDP Endpoints using a matched pair of SCTP
   Streams.

   A DDP Stream Session defines the sequence of Data Chunks exchanged
   between two DDP Endpoints over a DDP Stream that has a distinct
   beginning and end. Data Chunks from one DDP Stream Session are never
   carried over to the next session.

   The local interface MAY associate a DDP Endpoint with the DDP Stream
   based upon the initial exchanges of a DDP Session, and terminate that
   association at the session's end.

   A DDP Stream is associated with at most one Protection Domain during
   a single DDP Stream Session.

3.1 Sequencing

   The DDP Source Sequence Number(DDP-SSN) is reset to one at the
   beginning of each DDP Stream Session.

   The Payload Data Chunks for a given session, when sequenced by their
   DDP-SSN, MUST follow one of the patterns defined in this section.

   If the adaptation layer receives a Payload Data Chunk that conforms
   to none of the enumerated legal patterns the DDP Stream Session MUST
   be terminated.

3.2 Legal Sequence: Active/Passive Session Accepted

   In this DDP Stream Session sequence one DDP Endpoint assumes the
   active role in requesting a DDP Stream Session, which the other side
   accepts.

      Either the Active or Passive side may send zero or more DDP Stream
      Session Negotiate messages.

      Active Side sends a DDP Stream Session Initiate message.

      Passive Side sends a DDP Stream Session Accept mesage.

      Each side may then send zero or more DDP Segments with increasing
      DDP-SSNs, subject to various layers of flow control.

      The final DDP Segment for each side MAY be a DDP Stream Terminate.
      At least one side MUST send a DDP Stream Terminate.



Stewart, et al.          Expires March 15, 2004                 [Page 8]


Internet-Draft          SCTP RDMA/DDP Adaptation          September 2003


3.3 Legal Sequence: Negotiation-only

   Either the Active or Passive side may send zero or more DDP Stream
   Session Negotiate messages. The session does not have to proceed
   further if the ULPs so desire.

3.4 Legal Sequence: Active/Passive Session Rejected

   DDP Stream Sessions allow each party to send a single non-negotiation
   message before the other end commits specific resources to the
   session. This allow each end to determine which resources are to be
   used, and how they are to be configured, or even if the session
   should be granted.

   These decision MAY be influenced by the need to assign a specific
   Protection Domain, to determine how many RDMA Read Credits are
   required, or to determine now many receive operations the ULP should
   enable.

   Because of these, or other, factors the Passive side MAY choose to
   reject a DDP Stream Session Request. This results in the following
   legal sequence:

      Either the Active or Passive side MAY send zero or more DDP Stream
      Session Negotiate messages. However, if the result of these
      negotiations allow the ULP to determine that a session is not to
      be set up, the ULP SHOULD simply refrain from sending the DDP
      Stream Initiate message.

      Active Side sends a DDP Stream Session Initiate message.

      Passive Side sends a DDP Stream Session Terminate mesage.


3.5 Legal Sequence: Active/Active Session Accepted

   In this DDP Stream Session sequence both ends seek to establish the
   session concurrently, after any negotiation messages required.
   Active/Active session establishment MAY require different support
   from the local interface than for Active/Passive session
   establishment.

   The following legal sequence is defined:

      Each side may send zero or more DDP Stream Session Negotiate
      messages.

      Each Side, viewing itself as active, sends a DDP Stream Session



Stewart, et al.          Expires March 15, 2004                 [Page 9]


Internet-Draft          SCTP RDMA/DDP Adaptation          September 2003


      Initiate message.

      Each side may then send zero or more DDP Segments with increasing
      DDP-SSNs, subject to various layers of flow control.

      The final DDP Segment for each side MAY be a DDP Stream Terminate.
      At least one side MUST send a DDP Stream Terminate.


3.6 Other Sequencing Rules

   A DDP Stream Session Control message MUST NOT be sent if it may be
   received before a prior DDP Stream Session Control message within the
   same DDP Stream Session.

   An active side of a DDP Stream Session MUST NOT send a DDP Segment
   that might be received before the DDP Stream Session Initiate
   message.

   This MAY be determined by SCTP acking of the Data Chunk used to carry
   the DDP Stream Session Initiate message, or by receipt of a
   responsive DDP Stream Session Control message.

   A DDP Stream MUST NOT be re-used for another DDP Stream Session while
   any Data Chunk from a prior session might be outstanding.

   Unless explicitly allowed for by the Upper Layer Protocol, there may
   be no more than one outstanding DDP Stream Session Negotiate message
   per side. Multiple messages are intended to support rounds of
   negotiations between the potential peers.





















Stewart, et al.          Expires March 15, 2004                [Page 10]


Internet-Draft          SCTP RDMA/DDP Adaptation          September 2003


4. SCTP Endpoints

4.1 Adaptation Layer Indication Restriction

   The local interface MUST allow the ULP to specify an SCTP endpoint to
   use a specific Adaptation Indication. It MAY require the ULP to do
   so.

   Once an endpoint decides on its acceptable Adaptation Indication(s),
   it SHOULD terminate all requests to establish an association with any
   different Adaptation Indication.

   An SCTP implementation MAY choose to accept association requests for
   a given SCTP endpoint only until one association for the endpoint has
   been established. At that point it MAY choose to restrict all further
   associations for the same endpoint to use the same Adaptation
   Indication.

4.2 Multihoming Implications

   SCTP allows an SCTP endpoint to be associated with multiple IP
   addresses, potentially representing different interface devices.
   Distribution of the logic for a single DDP stream across multiple
   input devices can be very undesirable, resulting in complex cache
   coherency challenges. Therefore the local interface MAY restrict
   DDP-enabled SCTP endpoints to a single IP address, or to a set of IP
   addresses that are all assigned to the same input device ("RNIC").

   The default binding of a DDP enabled SCTP endpoint SHOULD NOT cover
   more than a single IP address unless doing so results in no
   additional bus traffic or duplication of memory registration
   resources. This will frequently result in a different default than
   for SCTP endpoints that are not DDP enabled.

   Even when multi-homing is supported, ULPs are cautioned that they
   SHOULD NOT use ULP control of the source address in attempt to
   load-balance a stream across multiple paths. A receiving DDP/SCTP
   implementation that chooses to support multi-homing SHOULD optimize
   its design on the assumption that multi-homing will be used for
   network fault tolerance, and not to load-balance between paths. This
   is consistent with recommended SCTP practices.










Stewart, et al.          Expires March 15, 2004                [Page 11]


Internet-Draft          SCTP RDMA/DDP Adaptation          September 2003


5. Number of Streams

   DDP Streams are bidirectional. They are always composed by pairing
   the inbound and outbound SCTP streams with the same SCTP Stream
   Identifier.

   DDP should request the maximum number of SCTP stream it will wish to
   use over the lifetime of the association. SCTP streams must still be
   bound to DDP Endpoints, and a DDP or DDP+RDMA enabled SCTP
   association does not support ordered Data Chunks. Therefore the mere
   existence of an SCTP stream is unlikely to require signifigant
   supporting resources.

   This mapping uses an SCTP association to carry one or more DDP
   Steams. Each DDP Stream will be mapped to a pair of SCTP streams with
   the same SCTP stream number. DDP MUST initialize all of its SCTP
   associations with the same number of inbound and outbound streams.


































Stewart, et al.          Expires March 15, 2004                [Page 12]


Internet-Draft          SCTP RDMA/DDP Adaptation          September 2003


6. Fragmentation

   A DDP/SCTP Receiver already must deal with fragementation at both the
   IP and DDP Layers. Therefore the sending DDP layer MUST disable SCTP
   layer segmenting of data chunks. If the DDP layer presents messages
   that are too large, the result will be IP fragmentation. While SCTP
   layer fragmentation is theoretically preferable, virtually all
   fragmentation will be done at the DDP layer. Because SCTP layer
   fragmentation would only be invoked under corner conditions, its
   benefits do not justify the complexity of its inclusion.

   When disabling SCTP fragmentation, SCTP will reject messages that are
   known to be larger than the MTU size. This means that the DDP layer
   MUST be prepared to handle this error case.





































Stewart, et al.          Expires March 15, 2004                [Page 13]


Internet-Draft          SCTP RDMA/DDP Adaptation          September 2003


7. Sequenced Unordered Operation

   DDP MUST use the Unordered option on all Data Chunks (U Flag set to
   one). The SCTP Layer is expected to deliver Data Chunks to the DDP
   layer without delay.

   Because DDP employs unordered SCTP delivery, the receiver MUST NOT
   rely upon the SCTP Transmission Sequence Number (TSN) to imply
   ordering of DDP Segments. The fact that the SCTP Data Chunk for a DDP
   Segment is prior the cumulative ack point does not guarantee that all
   prior DDP segments have been placed. The SCTP sender is not obligated
   to transmit unordered Data Chunks in the order presented.

   The DDP-SSN can be used without special logic to determine the
   submission sequence when the maximum number of in-flight messages is
   less than 32768.  This also applies if the sending SCTP accepts no
   more than 32767 Data Chunks for a single stream without assigning
   TSNs.

   If SCTP does accept more than 32768 Data chunks for a single stream
   without assigning TSNs,  the sending DDP must simply refrain from
   sending more than 32767 Data Chunks for a single stream without
   acknowledgement.  Note that it MUST NOT rely upon ULP flow control
   for this purpose. Typical ULP flow control will deal exclusively with
   tagged messages, not with DDP segments.

   The receiving DDP implementation MAY perform a validity check on
   received DDP-SSNs to ensure that any gap could be accounted for by
   unreceived Data Chunks. Implementations are advised against
   allocating resources on the assumption that DDP-SSNs are valid
   without first performing such a validtity check. An invalid DDP-SSN
   MAY result in termination of the DDP Stream.



















Stewart, et al.          Expires March 15, 2004                [Page 14]


Internet-Draft          SCTP RDMA/DDP Adaptation          September 2003


8. Procedures

8.1 Association Initialization

   At the startup of an association, an endpoint wishing to perform DDP,
   RDMA, or DDP+RDMA placement MUST include an adaptation layer
   indication in its INIT or INIT-ACK (as defined in Section 2.1. After
   the exchange of the initial first two SCTP chunks (INIT and
   INIT-ACK), an endpoint MUST verify and inspect the adaptation
   indication and compare it to the following table to determine proper
   action.

         Indication |           Action
           type     |

   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
                    | This indicates that the peer DOES NOT
        NONE        | support ANY DDP or RDMA adaption and thus
                    | RDMA and DDP procedures MUST NOT be
                    | performed upon this association.
   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
                    | This indicates that the peer DOES support
        DDP         | DDP (but not RDMA). Procedures outlined in
                    | [DDP-Draft] MUST be followed.
   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
                    | This indicates that the peer supports BOTH
       DDP+RDMA     | RDMA and DDP. If the receiving endpoint
                    | indicated the same, then the procedures in
                    | both [RDMA-Draft] and [DDP-Draft]
                    | MUST be followed. If the local endpoint
                    | only indicated DDP, then ONLY the
                    | procedures in [DDP-Draft] MUST be followed.
   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
                    | This indicates that the peer DOES NOT
      ANY-OTHER     | support ANY DDP or RDMA adaption and thus
      Indication    | RDMA and DDP procedures MUST NOT be
                    | performed upon this association.

   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

   An implementation MAY require that all associations for a given SCTP
   endpoint be placed in the same mode.

   The local interface MAY allow the ULP to accept only requests to
   establish an association in a specified mode.

8.2 Chunk Bundling




Stewart, et al.          Expires March 15, 2004                [Page 15]


Internet-Draft          SCTP RDMA/DDP Adaptation          September 2003


   SCTP allows multiple Data Chunks to be bundled in a single SCTP
   packet. Data chunks containing DDP Segments with untagged messages
   SHOULD NOT be delayed to facilitate bundling. Data chunks containing
   DDP Segments with tagged messages will generally be full sized, and
   hence not subject to bundling. However partial size tagged messages
   MAY be delayed, as that they are frequently followed by a short
   untagged message.

8.3 Association Termination

   Termination of an SCTP Association due to errors should be handled at
   the SCTP layer. The RDMAP defined RDMAP Terminate Message SHOULD NOT
   be sent on each DDP Stream when a determination has been made to
   terminate an SCTP association. Sending that message on each SCTP
   stream could severely delay the termination of the association.

   The local interface SHOULD notify all consumers of DDP streams when
   the underlying SCTP stream has been terminated.

   Other RDMAP defined Terminate Messages MUST be generated as specified
   when a DDP Stream is terminated. Note that with the SCTP mapping,
   termination of a DDP Stream does not mandate termination of the
   Association.




























Stewart, et al.          Expires March 15, 2004                [Page 16]


Internet-Draft          SCTP RDMA/DDP Adaptation          September 2003


9. IANA considerations

   This document defines two new Adaptation Layer Indication codepoints:


        DDP                         - 0x00000001
        DDP+RDMA                    - 0x00000002

   This document also defines two new Payload Protocol Identifier
   (PPIDs):

        DDP Segment                 - 0x00000001
        DDP Stream Session Control  - 0x00000002






































Stewart, et al.          Expires March 15, 2004                [Page 17]


Internet-Draft          SCTP RDMA/DDP Adaptation          September 2003


10. Security Considerations

   Any direct placement of memory could pose a significant security risk
   if adequate local controls are not provided. These threats should be
   addressed in the appropriate DDP [DDP-Draft] [3] or RDMA [RDMA-Draft]
   [4] drafts. This document does not add any additional security risks
   over those found in RFC2960 [2].












































Stewart, et al.          Expires March 15, 2004                [Page 18]


Internet-Draft          SCTP RDMA/DDP Adaptation          September 2003


11. Acknowledgments

   The authors would like to thank the following people that have
   provided comments and input: Stephen Bailey, David Black, Douglas
   Otis, Allyn Romanow and Jim Williams.














































Stewart, et al.          Expires March 15, 2004                [Page 19]


Internet-Draft          SCTP RDMA/DDP Adaptation          September 2003


References

   [1]  Bradner, S., "Key words for use in RFCs to Indicate Requirement
        Levels", BCP 14, RFC 2119, March 1997.

   [2]  Stewart, R., Xie, Q., Morneault, K., Sharp, C., Schwarzbauer,
        H., Taylor, T., Rytina, I., Kalla, M., Zhang, L. and V. Paxson,
        "Stream Control Transmission Protocol", RFC 2960, October 2000.

   [3]  Shah, H., "Direct Data Placement over Reliable Transports",
        draft-ietf-rddp-ddp-00 (work in progress), February 2003.

   [4]  Recio, R., "An RDMA Protocol Specification",
        draft-ietf-rddp-rdmap-00 (work in progress), February 2003.

   [5]  Stewart, R., "Sockets API Extensions for Stream Control
        Transmission Protocol", draft-ietf-tsvwg-sctpsocket-05 (work in
        progress), September 2002.

   [6]  Stewart, R., "Stream Control Transmission Protocol (SCTP)
        Dynamic Address  Reconfiguration",
        draft-ietf-tsvwg-addip-sctp-06 (work in progress), September
        2002.


Authors' Addresses

   Randall R. Stewart
   Cisco Systems, Inc.
   8725 West Higgins Road
   Suite 300
   Chicago, IL  60631
   USA

   Phone: +1-815-477-2127
   EMail: rrs@cisco.com


   Caitlin Bestler
   Consultant
   1241 W. North Shore
   # 2G
   Chicago, IL  60626
   USA

   Phone: +1-773-743-1594
   EMail: cait@asomi.com




Stewart, et al.          Expires March 15, 2004                [Page 20]


Internet-Draft          SCTP RDMA/DDP Adaptation          September 2003


   Jim Pinkerton
   Microsoft
   One Microsoft Way
   Redmond, WA  98052
   USA

   Phone: +1-425-705-5442
   EMail: jpink@microsoft.com


   Sukanta Ganguly
   Iomega Corp, Inc.
   10955 Vista Sorrento Parkway

   San Diego, CA
   USA

   Phone: +1-858-314-7026
   EMail: ganguly@iomega.com


   Hemal V. Shah
   Intel Corporation
   Mailstop: PTL1
   1501 S. Mopac Expressway, #400
   Austin, TX  78746
   USA

   Phone: +1-512-732-3963
   EMail: hemal.shah@intel.com


   Vivek Kashyap
   IBM
   15450 SW Koll Parkway
   Beaverton, OR  57006
   USA

   Phone: +1-503-578-3422
   EMail: vivk@us.ibm.com











Stewart, et al.          Expires March 15, 2004                [Page 21]


Internet-Draft          SCTP RDMA/DDP Adaptation          September 2003


Intellectual Property Statement

   The IETF takes no position regarding the validity or scope of any
   intellectual property or other rights that might be claimed to
   pertain to the implementation or use of the technology described in
   this document or the extent to which any license under such rights
   might or might not be available; neither does it represent that it
   has made any effort to identify any such rights. Information on the
   IETF's procedures with respect to rights in standards-track and
   standards-related documentation can be found in BCP-11. Copies of
   claims of rights made available for publication and any assurances of
   licenses to be made available, or the result of an attempt made to
   obtain a general license or permission for the use of such
   proprietary rights by implementors or users of this specification can
   be obtained from the IETF Secretariat.

   The IETF invites any interested party to bring to its attention any
   copyrights, patents or patent applications, or other proprietary
   rights which may cover technology that may be required to practice
   this standard. Please address the information to the IETF Executive
   Director.


Full Copyright Statement

   Copyright (C) The Internet Society (2003). All Rights Reserved.

   This document and translations of it may be copied and furnished to
   others, and derivative works that comment on or otherwise explain it
   or assist in its implementation may be prepared, copied, published
   and distributed, in whole or in part, without restriction of any
   kind, provided that the above copyright notice and this paragraph are
   included on all such copies and derivative works. However, this
   document itself may not be modified in any way, such as by removing
   the copyright notice or references to the Internet Society or other
   Internet organizations, except as needed for the purpose of
   developing Internet standards in which case the procedures for
   copyrights defined in the Internet Standards process must be
   followed, or as required to translate it into languages other than
   English.

   The limited permissions granted above are perpetual and will not be
   revoked by the Internet Society or its successors or assignees.

   This document and the information contained herein is provided on an
   "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
   TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
   BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION



Stewart, et al.          Expires March 15, 2004                [Page 22]


Internet-Draft          SCTP RDMA/DDP Adaptation          September 2003


   HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
   MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.


Acknowledgement

   Funding for the RFC Editor function is currently provided by the
   Internet Society.











































Stewart, et al.          Expires March 15, 2004                [Page 23]