draft-ietf-rddp-sctp-01.txt   draft-ietf-rddp-sctp-02.txt 
Remote Direct Data Placement R. Stewart Remote Direct Data Placement R. Stewart
Working Group Cisco Systems, Inc. Working Group Cisco Systems, Inc.
Internet-Draft C. Bestler Internet-Draft C. Bestler
Expires: March 28, 2005 Consultant Expires: February 15, 2006 Broadcom
J. Pinkerton
Microsoft
S. Ganguly
Consultant
H. Shah H. Shah
Intel Corporation Intel Corporation
V. Kashyap V. Kashyap
IBM IBM
September 27, 2004 S. Ganguly
Consultant
August 14, 2005
Stream Control Transmission Protocol (SCTP) Remote Direct Memory Stream Control Transmission Protocol (SCTP) Remote Direct Memory Access
Access (RDMA) Direct Data Placement (DDP) Adaptation (RDMA) Direct Data Placement (DDP) Adaptation
draft-ietf-rddp-sctp-01.txt draft-ietf-rddp-sctp-02.txt
Status of this Memo Status of this Memo
This document is an Internet-Draft and is subject to all provisions By submitting this Internet-Draft, each author represents that any
of section 3 of RFC 3667. By submitting this Internet-Draft, each applicable patent or other IPR claims of which he or she is aware
author represents that any applicable patent or other IPR claims of have been or will be disclosed, and any of which he or she becomes
which he or she is aware have been or will be disclosed, and any of aware will be disclosed, in accordance with Section 6 of BCP 79.
which he or she become aware will be disclosed, in accordance with
RFC 3668.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as other groups may also distribute working documents as Internet-
Internet-Drafts. Drafts.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt. http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html. http://www.ietf.org/shadow.html.
This Internet-Draft will expire on March 28, 2005. This Internet-Draft will expire on February 15, 2006.
Copyright Notice Copyright Notice
Copyright (C) The Internet Society (2004). Copyright (C) The Internet Society (2005).
Abstract Abstract
This document describes a method to adapt Direct Data Placement (DDP) This document describes a method to adapt Direct Data Placement (DDP)
and Remote Direct Memory Access (RDMA) to Stream Control Transmission and Remote Direct Memory Access (RDMA) to Stream Control Transmission
Protocol (SCTP) RFC2960 [2] using a generic description found in Protocol (SCTP) RFC2960 [2] using a generic description found in
[RDMA-Draft] [4] and [DDP-Draft] [3]. [RDMA-Draft] [4] and [DDP-Draft] [3].
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1 Definitions . . . . . . . . . . . . . . . . . . . . . . . 3 1.1 Definitions . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Conventions . . . . . . . . . . . . . . . . . . . . . . . 4 1.2 Conventions . . . . . . . . . . . . . . . . . . . . . . . 4
skipping to change at page 2, line 23 skipping to change at page 2, line 18
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1 Definitions . . . . . . . . . . . . . . . . . . . . . . . 3 1.1 Definitions . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Conventions . . . . . . . . . . . . . . . . . . . . . . . 4 1.2 Conventions . . . . . . . . . . . . . . . . . . . . . . . 4
2. Data Formats . . . . . . . . . . . . . . . . . . . . . . . . . 5 2. Data Formats . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.1 Adaptation Layer Indicator . . . . . . . . . . . . . . . . 5 2.1 Adaptation Layer Indicator . . . . . . . . . . . . . . . . 5
2.2 Payload Data Chunks . . . . . . . . . . . . . . . . . . . 5 2.2 Payload Data Chunks . . . . . . . . . . . . . . . . . . . 5
2.2.1 DDP Source Sequence Number (DDP-SSN) . . . . . . . . . 6 2.2.1 DDP Source Sequence Number (DDP-SSN) . . . . . . . . . 6
2.2.2 DDP Segment . . . . . . . . . . . . . . . . . . . . . 6 2.2.2 DDP Segment Payload Data Chunk . . . . . . . . . . . . 6
2.2.3 DDP Stream Session Control . . . . . . . . . . . . . . 6 2.2.3 DDP Stream Session Control Data Chunk . . . . . . . . 7
3. DDP Stream Sessions . . . . . . . . . . . . . . . . . . . . . 8 3. DDP Stream Sessions . . . . . . . . . . . . . . . . . . . . . 8
3.1 Sequencing . . . . . . . . . . . . . . . . . . . . . . . . 8 3.1 Sequencing . . . . . . . . . . . . . . . . . . . . . . . . 8
3.2 Legal Sequence: Active/Passive Session Accepted . . . . . 8 3.2 Legal Sequence: Active/Passive Session Accepted . . . . . 8
3.3 Legal Sequence: Active/Passive Session Rejected . . . . . 8 3.3 Legal Sequence: Active/Passive Session Rejected . . . . . 9
3.4 Legal Sequence: Active/Passive Session Non-ULP Rejected . 9 3.4 Legal Sequence: Active/Passive Session Non-ULP Rejected . 9
3.5 ULP Specific Sequencing . . . . . . . . . . . . . . . . . 9 3.5 ULP Specific Sequencing . . . . . . . . . . . . . . . . . 9
3.6 Other Sequencing Rules . . . . . . . . . . . . . . . . . . 9 3.6 Other Sequencing Rules . . . . . . . . . . . . . . . . . . 9
4. SCTP Endpoints . . . . . . . . . . . . . . . . . . . . . . . . 11 4. SCTP Endpoints . . . . . . . . . . . . . . . . . . . . . . . . 11
4.1 Adaptation Layer Indication Restriction . . . . . . . . . 11 4.1 Adaptation Layer Indication Restriction . . . . . . . . . 11
4.2 Multihoming Implications . . . . . . . . . . . . . . . . . 11 4.2 Multihoming Implications . . . . . . . . . . . . . . . . . 11
5. Number of Streams . . . . . . . . . . . . . . . . . . . . . . 12 5. Number of Streams . . . . . . . . . . . . . . . . . . . . . . 12
6. Fragmentation . . . . . . . . . . . . . . . . . . . . . . . . 13 6. Fragmentation . . . . . . . . . . . . . . . . . . . . . . . . 13
7. Sequenced Unordered Operation . . . . . . . . . . . . . . . . 14 7. Sequenced Unordered Operation . . . . . . . . . . . . . . . . 14
8. Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . 15 8. Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . 15
8.1 Association Initialization . . . . . . . . . . . . . . . . 15 8.1 Association Initialization . . . . . . . . . . . . . . . . 15
8.2 Chunk Bundling . . . . . . . . . . . . . . . . . . . . . . 16 8.2 Chunk Bundling . . . . . . . . . . . . . . . . . . . . . . 15
8.3 Association Termination . . . . . . . . . . . . . . . . . 16 8.3 Association Termination . . . . . . . . . . . . . . . . . 16
9. IANA considerations . . . . . . . . . . . . . . . . . . . . . 17 9. IANA considerations . . . . . . . . . . . . . . . . . . . . . 17
10. Security Considerations . . . . . . . . . . . . . . . . . . 18 10. Security Considerations . . . . . . . . . . . . . . . . . . 18
11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . 19 11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . 19
12. References . . . . . . . . . . . . . . . . . . . . . . . . . 19 12. Normative References . . . . . . . . . . . . . . . . . . . . 19
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . 19 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . 19
Intellectual Property and Copyright Statements . . . . . . . . 21 Intellectual Property and Copyright Statements . . . . . . . . 21
1. Introduction 1. Introduction
This document describes a method to adapt Direct Data Placement (DDP) This document describes a method to adapt Direct Data Placement (DDP)
and Remote Direct Memory Access (RDMA) to Stream Control Transmission and Remote Direct Memory Access (RDMA) to Stream Control Transmission
Protocol (SCTP) RFC2960 [2] using a generic description found in Protocol (SCTP) RFC2960 [2] using a generic description found in
[RDMA-Draft] [4] and [DDP-Draft] [3] This adaption provides a method [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 for two peers to know that each side is performing DDP or RDMA thus
enabling hardware acceleration if available. enabling hardware acceleration if available.
Some implementations may include this adaptation layer within their Some implementations may include this adaptation layer within their
SCTP implementations to obtain maximum performance but the behavior SCTP implementations to obtain maximum performance but the behavior
of SCTP will be unaffected. In order to accomplish this we specify of SCTP will be unaffected. In order to accomplish this we specify
the use of the new adaptation layer indication as defined in the use of the new adaptation layer indication as defined in [ADDIP-
[ADDIP-Draft] [6] Draft] [6]
1.1 Definitions 1.1 Definitions
DDP Endpoint - The logical sender/receiver of DDP Segments. An SCTP DDP Endpoint - The logical sender/receiver of DDP Segments. An SCTP
Stream pair is not assumed to have a DDP Endpoint. DDP Segments 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 may only be sent once a DDP Endpoint has been assigned to an SCTP
Stream pair by a local interface. Stream pair by a local interface.
DDP Source Stream Sequence (DDP-SSN) - A stream specific sequence DDP Source Stream Sequence (DDP-SSN) - A stream specific sequence
number assigned by the DDP layer for each SCTP Data Chunk sent. number assigned by the DDP layer for each SCTP Data Chunk sent.
Use of the SCTP Stream Sequence Number (SSN) could result in Use of the SCTP Stream Sequence Number (SSN) could result in
ordered delivery at the receiving end. Use of unordered Data ordered delivery at the receiving end. Use of unordered Data
Chunks indicates that the receiving SCTP layer is to deliver them Chunks indicates that the receiving SCTP layer is to deliver them
without delay. The DDP-SSN retains the original order the Data without delay. The DDP-SSN retains the original order the Data
Chunks were generated in, no matter what order they were actually Chunks were generated in, no matter what order they were actually
sent or received. sent or received.
DDP Stream - A bi-directional pair of SCTP streams which have the DDP Stream - A bi-directional pair of SCTP streams which have the
same SCTP stream identifier. same SCTP stream identifier.
DDP Stream Session - A single pairing of DDP Endpoints over a DDP DDP Stream Session - A single pairing of DDP Endpoints over a DDP
Stream that lasts from a Initiation message through the Stream that lasts from a Initiation message through the
Termination message(s). Termination message(s).
DDP Stream Session Control - DDP Stream Session Control messages are DDP Stream Session Control - DDP Stream Session Control messages are
used to control the association of the DDP Endpoint with the DDP used to control the association of the DDP Endpoint with the DDP
Stream. Stream.
RDMA - Remote Direct Memory Access. RDMA - Remote Direct Memory Access.
RNIC - RDMA Network Interface Card. RNIC - RDMA Network Interface Card.
SCTP association - A protocol relationship between two SCTP SCTP association - A protocol relationship between two SCTP
endpoints. An SCTP association supports multiple SCTP streams. endpoints. An SCTP association supports multiple SCTP streams.
SCTP Data Chunk - An SCTP Chunk used to convey Payload Data. There SCTP Data Chunk - An SCTP Chunk used to convey Payload Data. There
can be multiple Chunks within each SCTP packet. Other Chunks are can be multiple Chunks within each SCTP packet. Other Chunks are
used to control the SCTP Association. used to control the SCTP Association.
SCTP endpoint - The logical sender/receiver of SCTP packets. On a SCTP endpoint - The logical sender/receiver of SCTP packets. On a
multi-homed host, an SCTP endpoint is represented to its peers as multi-homed host, an SCTP endpoint is represented to its peers as
a combination of a SCTP port number and a set of eligible a combination of a SCTP port number and a set of eligible
destination transport addresses to which SCTP packets can be sent. destination transport addresses to which SCTP packets can be sent.
SCTP Stream - A uni-directional logical channel established from one SCTP Stream - A uni-directional logical channel established from one
to another associated SCTP endpoint. There can be multiple SCTP to another associated SCTP endpoint. There can be multiple SCTP
Streams within each SCTP association. An SCTP Stream is used to Streams within each SCTP association. An SCTP Stream is used to
form one direction of a DDP stream. form one direction of a DDP stream.
Transmission Sequence Number (TSN) - A 32-bit sequence number used Transmission Sequence Number (TSN) - A 32-bit sequence number used
internally by SCTP. One TSN is attached to each chunk containing internally by SCTP. One TSN is attached to each chunk containing
user data to permit the receiving SCTP endpoint to acknowledge its user data to permit the receiving SCTP endpoint to acknowledge its
receipt and detect duplicate deliveries. receipt and detect duplicate deliveries.
1.2 Conventions 1.2 Conventions
The keywords MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD, The keywords MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD,
SHOULD NOT, RECOMMENDED, NOT RECOMMENDED, MAY, and OPTIONAL, when SHOULD NOT, RECOMMENDED, NOT RECOMMENDED, MAY, and OPTIONAL, when
they appear in this document, are to be interpreted as described in they appear in this document, are to be interpreted as described in
skipping to change at page 5, line 14 skipping to change at page 5, line 14
2. Data Formats 2. Data Formats
2.1 Adaptation Layer Indicator 2.1 Adaptation Layer Indicator
This mapping places an entire SCTP association into a specific DDP This mapping places an entire SCTP association into a specific DDP
mode: DDP or DDP+RDMA. It is presumed that the handling of incoming mode: DDP or DDP+RDMA. It is presumed that the handling of incoming
data chunks for DDP enabled associations is sufficiently different data chunks for DDP enabled associations is sufficiently different
than for routine SCTP associations that it is undesirable to mix DDP than for routine SCTP associations that it is undesirable to mix DDP
and non-DDP streams in a single association. An application that 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 needs to mix DDP and non-DDP traffic must use use different
association. associations with different adaptation indications for the DDP
traffic and non-DDP traffic.
We define a adaption indication which MUST appear in the INIT or We define a adaption indication which MUST appear in the INIT or
INIT-ACK with the following format as defined in [ADDIP-Draft] [6] INIT-ACK with the following format as defined in [ADDIP-Draft] [6]
0 1 2 3 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 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 | | Type =0xC006 | Length = Variable |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Adaptation Indication | | Adaptation Indication |
skipping to change at page 5, line 44 skipping to change at page 5, line 45
2.2 Payload Data Chunks 2.2 Payload Data Chunks
After the SCTP association has been established, all DDP relevant After the SCTP association has been established, all DDP relevant
messages are encoded as Payload Data Chunks. Each includes a SCTP messages are encoded as Payload Data Chunks. Each includes a SCTP
Stream identifier, a Transmissions Sequence Number (TSN), a Payload Stream identifier, a Transmissions Sequence Number (TSN), a Payload
Protocol Identifier, the chunk length and the payload data bytes. Protocol Identifier, the chunk length and the payload data bytes.
The DDP SCTP adaptation uses two types of Payload Data Chunks, The DDP SCTP adaptation uses two types of Payload Data Chunks,
differentiated by the Payload Protocol Identifier: differentiated by the Payload Protocol Identifier:
DDP Segments are use to for messages send between DDP Endpoints.
DDP Segments are use to for messages sent between DDP Endpoints.
Each DDP Segment is exactly contained in one SCTP payload data
chunk with the payload protocol identifier 0x00000001
DDP Stream Session messages are used to control the binding of DDP DDP Stream Session messages are used to control the binding of DDP
endpoints with SCTP streams. endpoints with SCTP streams.
Payload Protocol Identifier: Payload Protocol Identifier:
The following value are defined for DDP in this document: The following value are defined for DDP in this document:
DDP Segment - 0x00000001 DDP Segment - 0x00000001
DDP Stream Session Control - 0x00000002 DDP Stream Session Control - 0x00000002
2.2.1 DDP Source Sequence Number (DDP-SSN) 2.2.1 DDP Source Sequence Number (DDP-SSN)
All Payload Data Chunks include a DDP Source Sequence Number All Payload Data Chunks include a DDP Source Sequence Number (DDP-
(DDP-SSN) that tracks the sequence the messages were submitted to the SSN) that tracks the sequence the messages were submitted to the SCTP
SCTP layer. It is initialized to 1 for each stream at the beginning layer. This field MUST be maintained by the adaptation layer. It is
of each DDP Stream Session. It wraps to zero after 65535. initialized to 1 for each stream at the beginning of each DDP Stream
Session. DDP-SSN is increased by one (modulo 65536) for each DDP
segment submitted to the SCTP layer
The SCTP Stream Sequence Number (SSN) is not suitable for this The SCTP Stream Sequence Number (SSN) is not suitable for this
purpose, because all messages defined by this document use unordered purpose, because all messages defined by this document use unordered
Payload Data Chunks to ensure prompt delivery from the receiving SCTP Payload Data Chunks to ensure prompt delivery from the receiving SCTP
layer. layer.
The SCTP Transmission Sequence Number (TSN) is not suitable for The SCTP Transmission Sequence Number (TSN) is not suitable for
determine the original order of Data Chunks within a stream. The determine the original order of Data Chunks within a stream. The
sending SCTP layer is allowed to optimize the transmission sequence sending SCTP layer is allowed to optimize the transmission sequence
of unordered Data Chunks to encourage Chunk Bundling, or other of unordered Data Chunks to encourage Chunk Bundling, or other
purposes. purposes.
2.2.2 DDP Segment DDP requires that an LLP deliver ordering information with each DDP
Segment. The SCTP Adaptation presents the DDP-SSN for this purpose.
2.2.2 DDP Segment Payload Data Chunk
0 1 2 3 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 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-SSN | DDP Segment |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| | | |
| ... | | ... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
DDP Segments are as defined in [DDP-Draft]. DDP Segments are as defined in [DDP-Draft].
2.2.3 DDP Stream Session Control 2.2.3 DDP Stream Session Control Data Chunk
0 1 2 3 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 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 | | DDP-SSN | Function Code |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Private Data (Dependent on Function Code) | | Private Data (Dependent on Function Code) |
| ... | | ... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
The following function code values are defined for DDP in The following function code values are defined for DDP in
this document: this document:
DDP Stream Session Initiate - 0x001 DDP Stream Session Initiate - 0x001
DDP Stream Session Accept - 0x002 DDP Stream Session Accept - 0x002
DDP Stream Session Reject - 0x003 DDP Stream Session Reject - 0x003
DDP Stream Session Terminate - 0x004 DDP Stream Session Terminate - 0x004
ULP supplied Private Data MUST be included for DDP Stream Session ULP supplied Private Data MUST be included for DDP Stream Session
Initiate DDP Stream Session Accept and DDP Stream Session Reject Initiate DDP Stream Session Accept and DDP Stream Session Reject
messages. However, the ULP supplied Private DATA MAY be of zero messages. However, the ULP supplied Private DATA MAY be of zero
length. Private Data MUST NOT be included for the DDP Stream Session length. Private Data length MUST NOT exceed 512 bytes in any
Terminate message. message. Private Data MUST NOT be included for the DDP Stream
Session Terminate message.
The length of private data is derived from the length of the Data
Chunk
Received DDP Stream Session Control messages SHOULD be reported to Received DDP Stream Session Control messages SHOULD be reported to
the ULP. If reported, any supplied Private Data MUST be available the ULP. If reported, any supplied Private Data MUST be available
for the ULP to examine. for the ULP to examine.
There MAY be a limit on the rate at which Stream Session Control There MAY be a limit on the rate at which Stream Session Control
message can be reported to the ULP. When this rate is exceeded, or message can be reported to the ULP. When this rate is exceeded, or
when other factors prevent the message from being reported to the when other factors prevent the message from being reported to the
ULP, the session MUST be terminated. ULP, the session MUST be terminated.
skipping to change at page 11, line 40 skipping to change at page 11, line 40
DDP-enabled SCTP endpoints to a single IP address, or to a set of IP 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"). addresses that are all assigned to the same input device ("RNIC").
The default binding of a DDP enabled SCTP endpoint SHOULD NOT cover The default binding of a DDP enabled SCTP endpoint SHOULD NOT cover
more than a single IP address unless doing so results in no more than a single IP address unless doing so results in no
additional bus traffic or duplication of memory registration additional bus traffic or duplication of memory registration
resources. This will frequently result in a different default than resources. This will frequently result in a different default than
for SCTP endpoints that are not DDP enabled. for SCTP endpoints that are not DDP enabled.
Even when multi-homing is supported, ULPs are cautioned that they Even when multi-homing is supported, ULPs are cautioned that they
SHOULD NOT use ULP control of the source address in attempt to SHOULD NOT use ULP control of the source address in attempt to load-
load-balance a stream across multiple paths. A receiving DDP/SCTP balance a stream across multiple paths. A receiving DDP/SCTP
implementation that chooses to support multi-homing SHOULD optimize implementation that chooses to support multi-homing SHOULD optimize
its design on the assumption that multi-homing will be used for its design on the assumption that multi-homing will be used for
network fault tolerance, and not to load-balance between paths. This network fault tolerance, and not to load-balance between paths. This
is consistent with recommended SCTP practices. is consistent with recommended SCTP practices.
5. Number of Streams 5. Number of Streams
DDP Streams are bidirectional. They are always composed by pairing DDP Streams are bidirectional. They are always composed by pairing
the inbound and outbound SCTP streams with the same SCTP Stream the inbound and outbound SCTP streams with the same SCTP Stream
Identifier. Identifier.
skipping to change at page 13, line 17 skipping to change at page 13, line 17
A DDP/SCTP Receiver already must deal with fragementation at both the A DDP/SCTP Receiver already must deal with fragementation at both the
IP and DDP Layers. Therefore use of SCTP layer segmenting will be IP and DDP Layers. Therefore use of SCTP layer segmenting will be
avoided for most cases. avoided for most cases.
As a Lower Layer Protocol (LLP) for DDP, the SCTP adaptation layer As a Lower Layer Protocol (LLP) for DDP, the SCTP adaptation layer
MUST inform the DDP layer of the DDP Segment size that will be MUST inform the DDP layer of the DDP Segment size that will be
supported. This should be the largest value that can be supported supported. This should be the largest value that can be supported
without use of IP or SCTP fragmention, or 516 bytes, whichever is without use of IP or SCTP fragmention, or 516 bytes, whichever is
larger. larger.
SCTP data chunk fragmentation MUST NOT be used unless the alternative SCTP Data Chunk fragmentation MUST NOT be used for the cases where IP
is IP fragmentation. fragmentation is not required. SCTP data chunk fragmentation MAY be
used to avoid IP fragmentation
The SCTP adaptation layer SHOULD set the maximum DDP Segment size The SCTP adaptation layer SHOULD set the maximum DDP Segment size
below the theoretical maximum in order to allow bundling of Control below the theoretical maximum in order to allow bundling of Control
Chunks in the same SCTP packet. Chunks in the same SCTP packet.
The SCTP adaptation layer MUST reject user messages that are larger The SCTP adaptation layer MUST reject user messages that are larger
than the maximum specified. than the maximum specified.
7. Sequenced Unordered Operation 7. Sequenced Unordered Operation
skipping to change at page 14, line 29 skipping to change at page 14, line 29
submission sequence when the maximum number of in-flight messages is submission sequence when the maximum number of in-flight messages is
less than 32768. This also applies if the sending SCTP accepts no less than 32768. This also applies if the sending SCTP accepts no
more than 32767 Data Chunks for a single stream without assigning more than 32767 Data Chunks for a single stream without assigning
TSNs. TSNs.
If SCTP does accept more than 32768 Data chunks for a single stream If SCTP does accept more than 32768 Data chunks for a single stream
without assigning TSNs, the sending DDP must simply refrain from without assigning TSNs, the sending DDP must simply refrain from
sending more than 32767 Data Chunks for a single stream without sending more than 32767 Data Chunks for a single stream without
acknowledgement. Note that it MUST NOT rely upon ULP flow control acknowledgement. Note that it MUST NOT rely upon ULP flow control
for this purpose. Typical ULP flow control will deal exclusively for this purpose. Typical ULP flow control will deal exclusively
with tagged messages, not with DDP segments. with untagged DDP Messages, not with DDP segments.
The receiving DDP implementation MAY perform a validity check on The receiving DDP implementation MAY perform a validity check on
received DDP-SSNs to ensure that any gap could be accounted for by received DDP-SSNs to ensure that any gap could be accounted for by
unreceived Data Chunks. Implementations are advised against unreceived Data Chunks. Implementations are advised against
allocating resources on the assumption that DDP-SSNs are valid allocating resources on the assumption that DDP-SSNs are valid
without first performing such a validtity check. An invalid DDP-SSN without first performing such a validtity check. An invalid DDP-SSN
MAY result in termination of the DDP Stream. MAY result in termination of the DDP Stream.
8. Procedures 8. Procedures
8.1 Association Initialization 8.1 Association Initialization
At the startup of an association, an endpoint wishing to perform DDP, At the startup of an association, an endpoint wishing to perform DDP,
RDMA, or DDP+RDMA placement MUST include an adaptation layer RDMA, or DDP+RDMA placement MUST include an adaptation layer
indication in its INIT or INIT-ACK (as defined in Section 2.1. After 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 the exchange of the initial first two SCTP chunks (INIT and INIT-
INIT-ACK), an endpoint MUST verify and inspect the adaptation ACK), an endpoint MUST verify and inspect the adaptation indication
indication and compare it to the following table to determine proper and compare it to the following table to determine proper action.
action.
Indication | Action Indication | Action
type | type |
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
| This indicates that the peer DOES NOT | This indicates that the peer DOES NOT
NONE | support ANY DDP or RDMA adaption and thus NONE | support ANY DDP or RDMA adaption and thus
| RDMA and DDP procedures MUST NOT be | RDMA and DDP procedures MUST NOT be
| performed upon this association. | performed upon this association.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
skipping to change at page 19, line 7 skipping to change at page 19, line 7
10. Security Considerations 10. Security Considerations
Any direct placement of memory could pose a significant security risk Any direct placement of memory could pose a significant security risk
if adequate local controls are not provided. These threats should be if adequate local controls are not provided. These threats should be
addressed in the appropriate DDP [DDP-Draft] [3] or RDMA [RDMA-Draft] addressed in the appropriate DDP [DDP-Draft] [3] or RDMA [RDMA-Draft]
[4] drafts. This document does not add any additional security risks [4] drafts. This document does not add any additional security risks
over those found in RFC2960 [2]. over those found in RFC2960 [2].
11. Acknowledgments 11. Acknowledgments
Special Acknowledgment to Sukanta Ganguly for his extra efforts in
reading and reviewing this document.
The authors would like to thank the following people that have The authors would like to thank the following people that have
provided comments and input: Stephen Bailey, David Black, Douglas provided comments and input: Stephen Bailey, David Black, Douglas
Otis, Allyn Romanow and Jim Williams. Otis, Allyn Romanow and Jim Williams.
12 References 12. Normative References
[1] Bradner, S., "Key words for use in RFCs to Indicate Requirement [1] Bradner, S., "Key words for use in RFCs to Indicate Requirement
Levels", BCP 14, RFC 2119, March 1997. Levels", BCP 14, RFC 2119, March 1997.
[2] Stewart, R., Xie, Q., Morneault, K., Sharp, C., Schwarzbauer, [2] Stewart, R., Xie, Q., Morneault, K., Sharp, C., Schwarzbauer,
H., Taylor, T., Rytina, I., Kalla, M., Zhang, L. and V. Paxson, H., Taylor, T., Rytina, I., Kalla, M., Zhang, L., and V. Paxson,
"Stream Control Transmission Protocol", RFC 2960, October 2000. "Stream Control Transmission Protocol", RFC 2960, October 2000.
[3] Shah, H., "Direct Data Placement over Reliable Transports", [3] Shah, H., "Direct Data Placement over Reliable Transports",
draft-ietf-rddp-ddp-03 (work in progress), August 2004. draft-ietf-rddp-ddp-05 (work in progress), July 2005.
[4] Recio, R., "An RDMA Protocol Specification", [4] Recio, R., "An RDMA Protocol Specification",
draft-ietf-rddp-rdmap-02 (work in progress), September 2004. draft-ietf-rddp-rdmap-05 (work in progress), July 2005.
[5] Stewart, R., "Sockets API Extensions for Stream Control [5] Stewart, R., "Sockets API Extensions for Stream Control
Transmission Protocol (SCTP)", draft-ietf-tsvwg-sctpsocket-08 Transmission Protocol (SCTP)", draft-ietf-tsvwg-sctpsocket-10
(work in progress), April 2004. (work in progress), February 2005.
[6] Stewart, R., "Stream Control Transmission Protocol (SCTP) [6] Stewart, R., "Stream Control Transmission Protocol (SCTP)
Dynamic Address Reconfiguration", Dynamic Address Reconfiguration",
draft-ietf-tsvwg-addip-sctp-09 (work in progress), June 2004. draft-ietf-tsvwg-addip-sctp-12 (work in progress), June 2005.
Authors' Addresses Authors' Addresses
Randall R. Stewart Randall R. Stewart
Cisco Systems, Inc. Cisco Systems, Inc.
Forest Drive Forest Drive
Columbia, SC 29036 Columbia, SC 29036
USA USA
Phone: +1-815-342-5222 Phone:
EMail: rrs@cisco.com Email: rrs@cisco.com
Caitlin Bestler Caitlin Bestler
Consultant Broadcom
1241 W. North Shore 49 Discovery
# 2G Irvine, CA 92618
Chicago, IL 60626
USA
Phone: +1-773-743-1594
EMail: cait@asomi.com
Jim Pinkerton
Microsoft
One Microsoft Way
Redmond, WA 98052
USA USA
Phone: +1-425-705-5442 Phone:
EMail: jpink@microsoft.com Email: caitlinb@siliquent.com
Sukanta Ganguly
Consultant
Phone: +1-858-748-5268
EMail: sganguly@yahoo.com
Hemal V. Shah Hemal V. Shah
Intel Corporation Intel Corporation
Mailstop: PTL1 Mailstop: PTL1
1501 S. Mopac Expressway, #400 1501 S. Mopac Expressway, #400
Austin, TX 78746 Austin, TX 78746
USA USA
Phone: +1-512-732-3963 Phone:
EMail: hemal.shah@intel.com Email: hemal.shah@intel.com
Vivek Kashyap Vivek Kashyap
IBM IBM
15450 SW Koll Parkway 15450 SW Koll Parkway
Beaverton, OR 57006 Beaverton, OR 57006
USA USA
Phone: +1-503-578-3422 Phone:
EMail: vivk@us.ibm.com Email: vivk@us.ibm.com
Sukanta Ganguly
Consultant
Phone:
Email: sganguly@yahoo.com
Intellectual Property Statement Intellectual Property Statement
The IETF takes no position regarding the validity or scope of any The IETF takes no position regarding the validity or scope of any
Intellectual Property Rights or other rights that might be claimed to Intellectual Property Rights or other rights that might be claimed to
pertain to the implementation or use of the technology described in pertain to the implementation or use of the technology described in
this document or the extent to which any license under such rights this document or the extent to which any license under such rights
might or might not be available; nor does it represent that it has might or might not be available; nor does it represent that it has
made any independent effort to identify any such rights. Information made any independent effort to identify any such rights. Information
on the procedures with respect to rights in RFC documents can be on the procedures with respect to rights in RFC documents can be
skipping to change at page 21, line 41 skipping to change at page 21, line 41
This document and the information contained herein are provided on an This document and the information contained herein are provided on an
"AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Copyright Statement Copyright Statement
Copyright (C) The Internet Society (2004). This document is subject Copyright (C) The Internet Society (2005). This document is subject
to the rights, licenses and restrictions contained in BCP 78, and to the rights, licenses and restrictions contained in BCP 78, and
except as set forth therein, the authors retain all their rights. except as set forth therein, the authors retain all their rights.
Acknowledgment Acknowledgment
Funding for the RFC Editor function is currently provided by the Funding for the RFC Editor function is currently provided by the
Internet Society. Internet Society.
 End of changes. 

This html diff was produced by rfcdiff 1.25, available from http://www.levkowetz.com/ietf/tools/rfcdiff/