Internet DRAFT - draft-wood-storm-rdmap-ext-v2
draft-wood-storm-rdmap-ext-v2
Storage Maintenance (storm) Working Group Donald Wood
Internet Draft Robert Sharp
Intended status: Standards Track Kenneth Keels
Expires: May 2014 Intel Corporation
November 26, 2013
RDMA Protocol Extensions V2
draft-wood-storm-rdmap-ext-v2-00.txt
Status of this Memo
This Internet-Draft is submitted to IETF in full conformance with
the provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current.
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."
This Internet-Draft will expire on May 26, 2014.
Copyright Notice
Copyright (c) 2013 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with
respect to this document. Code Components extracted from this
Wood et al. Expires May 26, 2014 [Page 1]
Internet-Draft RDMA Protocol Extensions November 2013
document must include Simplified BSD License text as described in
Section 4.e of the Trust Legal Provisions and are provided without
warranty as described in the Simplified BSD License.
Abstract
This document specifies extensions to the IETF Remote Direct Memory
Access Protocol and RDMA Protocol Extensions. RDMAP provides read
and write services directly to applications and enables data to be
transferred directly into Upper Layer Protocol (ULP) Buffers without
intermediate data copies. The extensions specified in this document
provide the following capabilities and/or improvements to eliminate
application visible differences with other RDMA technologies: Send
with Immediate Data Operations and a new form of RDMA Read
Operation.
Table of Contents
1. Introduction...................................................3
1.1. RDMAP Extensions Implementation Requirements..............3
2. Requirements Language..........................................4
3. Glossary.......................................................4
4. Header Format Extensions.......................................5
4.1. RDMAP Control and Invalidate STag Fields..................5
4.2. RDMA Message Definitions..................................9
5. Send with Immediate Data Operations...........................10
5.1. RDMAP Interactions with ULP for Immediate Data...........10
5.2. Ordering and Completions.................................11
5.3. Send with Immediate Data Operations......................11
6. RDMA Read V2..................................................11
6.1. RDMA Read V2 Request Header Format.......................12
6.2. RDMA Read V2 Response Header Format......................12
6.3. Ordering and Completions.................................12
7. Ordering and Completions Table................................13
8. Error Processing..............................................15
8.1. Errors Detected at the Local Peer........................15
8.2. Errors Detected at the Remote Peer.......................15
9. Security Considerations.......................................16
10. IANA Considerations..........................................16
11. References...................................................16
Wood et al. Expires May 26, 2014 [Page 2]
Internet-Draft RDMA Protocol Extensions November 2013
11.1. Normative References....................................16
11.2. Informative References..................................17
12. Acknowledgments..............................................17
Appendix A. DDP Segment Formats for RDMA Messages................18
A.1. DDP Segment for RDMA Read V2 Request.....................18
A.2. DDP Segment for RDMA Read V2 Response....................18
A.3. DDP Segment for Send with Immediate Data and Send with
Solicited Event and Immediate Data............................19
A.4. DDP Segment for Send with Invalidate and Immediate Data and
Send with Invalidate and Solicited Event and Immediate Data...21
1. Introduction
The RDMA Protocol [RFC5040] and RDMA Protocol Extensions[RFCYYYY]
provides capabilities for zero copy data communications that
preserve memory protection semantics, enabling more efficient
network protocol implementations. This document specifies the
following extensions to the RDMA Protocol (RDMAP):
o Send with Immediate Data operations allow the ULP at the sender
to provide a small amount of immediate data with an RDMA Message.
o RDMA Read with untagged RDMA Read Response. Support for RDMA Read
requests and responses without exposing the data sink buffer
address(es) on the wire.
Other RDMA transport protocols define the functionality added by
these extensions leading to differences in RDMA applications and/or
Upper Layer Protocols. Removing these differences in the transport
protocols simplifies these applications and ULPs and is the main
motivation for the extensions specified in this document.
The changes in this RFC require the RDMAP version to move to version
2.
1.1. RDMAP Extensions Implementation Requirements
The discovery and negotiation of the RDMA Extensions and the RDMAP
Extensions is covered in MPA Extensions [RFCZZZZ]. The following
paragraphs describe the implementation that advertises RDMAP
Extensions and negotiates their use.
When the RDMAP version is negotiated to 2, all features described in
RDMA Extensions [RFCYYYY] and RDMA Extensions V2 [RFCXXXX] are
Wood et al. Expires May 26, 2014 [Page 3]
Internet-Draft RDMA Protocol Extensions November 2013
supported. This requirement allows applications to count on all the
features being available. These include:
* Atomic Operations
* Immediate Data and Immediate Data with SE Operations
* Send with Immediate Data, Send with Solicited Event and
Immediate Data, Send with Invalidate and Immediate Data, and Send
with Invalidate and Solicited Event and Immediate Data Operations.
* RDMA Read V2 Request and RDMA Read V2 Response Operations.
2. Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC-2119 [RFC2119].
3. Glossary
This document is an extension of [RFC5040] and key words are defined
in the glossary of the referenced document.
Immediate Data - a small fixed size portion of data sent from the
Data Source to a Data Sink
Requester - the sender of an RDMA Operation request.
Responder - the receiver of an RDMA Operation request.
Wood et al. Expires May 26, 2014 [Page 4]
Internet-Draft RDMA Protocol Extensions November 2013
4. Header Format Extensions
The control information of RDMA Messages is included in DDP protocol
[RFC5041] defined header fields, with the following new formats:
. Four new RDMA Messages carry additional RDMAP headers for Send
with Immediate Data variants. The Send with Immediate Data, Send
with Solicited Event and Immediate Data, Send with Invalidate and
Immediate Data, and Send with Invalidate and Solicited Event and
Immediate Data messages include 8 bytes of data following the
RDMAP header.
. Two new RDMA Messages carry additional RDMAP headers for the new
RDMA Read Request and RDMA Read Response messages. The new RDMA
Read Request message includes a revised definition following the
untagged RDMAP header that removes the Data Sink STag and Tagged
Offset fields. The new RDMA Read Response is an untagged message.
4.1. RDMAP Control and Invalidate STag Fields
Figure 1 depicts the format of the DDP Control and RDMAP Control
fields, in the style and convention of [RFC5040]. The DDP Control
Field consists of the T,L, Resrv and DV fields [RFC5041]. The RDMAP
Control Field consists of the RV, Rsv and Opcode fields [RFC5040].
When the RDMAP version has been negotiated to 2, the RDMAP RV field
MUST be set to 2 for all Operations.
The RDMA Messages defined by this specification use all 8 bits of
the RDMAP Control Field. The first octet reserved for ULP use in the
DDP Protocol MUST be used by the RDMAP to carry the RDMAP Control
Field.
The ordering of the bits in the first octet MUST be as shown in
Figure 1.
Wood et al. Expires May 26, 2014 [Page 5]
Internet-Draft RDMA Protocol Extensions November 2013
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|T|L| Resrv | DV| RV|R| Opcode |
| | | | | |s| |
| | | | | |v| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Invalidate STag |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 1 DDP Control and RDMAP Control Fields
Figure 2 defines the values of RDMA Opcode field that MUST be used
for the RDMA Messages defined in this specification. The Opcode
field has been extended one additional bit to accommodate the
additional opcodes.
In RFC 5040, bit 7 was reserved and required to be zero. The
expansion of the opcode field size is compatible with RFC 5040 since
only the new opcodes will set this bit to one.
Figure 2 also defines when the STag, Tagged Offset, and Queue Number
fields MUST be provided for the RDMA Messages defined in this
specification.
All RDMA Messages defined in this specification MUST have:
The RDMA Version (RV) field: 10b.
Opcode field: See Figure 2.
To support RV field set to 10b, an RNIC MUST:
* Implement [RFCYYYY] RDMA Protocol Extensions (Atomic, Immediate
Data and Immediate Data with SE Operations).
* Implement Send with Immediate Data, Send with Solicited Event
and Immediate Data, Send with Invalidate and Immediate Data, and
Send with Invalidate and Solicited Event and Immediate Data
operations.
* Implement RDMA Read V2 Request and RDMA Read V2 Response
messages.
Wood et al. Expires May 26, 2014 [Page 6]
Internet-Draft RDMA Protocol Extensions November 2013
For Send with Invalidate and Immediate Data, and Send with
Invalidate and Solicited Event and Immediate Data, the second
through fifth octets of the DDP RsvdULP field MUST be used by RDMAP
to carry the Invalidate STag.
Wood et al. Expires May 26, 2014 [Page 7]
Internet-Draft RDMA Protocol Extensions November 2013
-------+-----------+-------+------+-------+-----------+--------------
RDMA | Message | Tagged| STag | Queue | Invalidate| Message
Opcode | Type | Flag | and | Number| STag | Length
| | | TO | | | Communicated
| | | | | | between DDP
| | | | | | and RDMAP
-------+-----------+-------+------+-------+-----------+--------------
-------+-----------+-------------------------------------------------
10001b | RDMA Read | 0 | N/A | 1 | N/A | Yes
| Request V2| | | | |
-------+-----------+-------------------------------------------------
10010b | RDMA Read | 0 | N/A | 3 | N/A | Yes
| Response | | | | |
| V2 | | | | |
-------+-----------+-------------------------------------------------
10011b | Send with | 0 | N/A | 0 | N/A | Yes
| Immediate | | | | |
| Data | | | | |
-------+-----------+-------------------------------------------------
10100b | Send with | 0 | N/A | 0 | Yes | Yes
| Invalidate| | | | |
| and | | | | |
| Immediate | | | | |
| Data | | | | |
-------+-----------+-------------------------------------------------
10101b | Send with | 0 | N/A | 0 | N/A | Yes
| SE and | | | | |
| Immediate | | | | |
| Data | | | | |
-------+-----------+-------------------------------------------------
10110b | Send with | 0 | N/A | 0 | Yes | Yes
| Invalidate| | | | |
| and SE and| | | | |
| Immediate | | | | |
| Data | | | | |
-------+-----------+-------------------------------------------------
Figure 2 Additional RDMA Usage of DDP Fields
Note: N/A means Not Applicable.
All other DDP and RDMAP control fields MUST be set as described in
[RFC5040] except for the RV field which MUST be 2.
Wood et al. Expires May 26, 2014 [Page 8]
Internet-Draft RDMA Protocol Extensions November 2013
4.2. RDMA Message Definitions
The following figure defines which RDMA Headers MUST be used on each
new RDMA Message and which new RDMA Messages are allowed to carry
ULP payload:
-------+-----------+-------------------+-------------------------
RDMA | Message | RDMA Header Used | ULP Message allowed in
Message| Type | | the RDMA Message
OpCode | | |
| | |
-------+-----------+-------------------+-------------------------
-------+-----------+-------------------+-------------------------
10001b | RDMA Read | RDMA Read Request | No
| Request V2| Header V2 |
-------+-----------+-------------------+-------------------------
10010b | RDMA Read | None | No
| Response | |
| V2 | |
-------+-----------+-------------------+-------------------------
10011b | Send with | Immediate Data | Yes
| Immediate | header |
| Data | in the last ULPDU |
-------+-----------+-------------------------------------------------
10100b | Send with | Immediate Data | Yes
| Invalidate| header |
| and | in the last ULPDU |
| Immediate | |
| Data | |
-------+-----------+-------------------------------------------------
10101b | Send with | Immediate Data | Yes
| SE and | header |
| Immediate | in the last ULPDU |
| Data | |
-------+-----------+-------------------------------------------------
10110b | Send with | Immediate Data | Yes
| Invalidate| header |
| and SE and| in the last ULPDU |
| Immediate | |
| Data | |
-------+-----------+-------------------------------------------------
Figure 3 RDMA Message Definitions
Wood et al. Expires May 26, 2014 [Page 9]
Internet-Draft RDMA Protocol Extensions November 2013
This extension uses RDMAP Queue Number 3 for Untagged Buffers for
RDMA Read V2 Responses. This queue is used for tracking outstanding
RDMA Read V2 Requests.
5. Send with Immediate Data Operations
The Send with Immediate Data operations are used to improve ULP
processing efficiency by allowing 8 bytes of immediate data to be
delivered to the ULP at the Remote Peer.
5.1. RDMAP Interactions with ULP for Immediate Data
For Send with Immediate Data operations, the following are the
interactions between the RDMAP Layer and the ULP:
. At the Data Source:
. The ULP passes to the RDMAP Layer the following:
. Eight bytes of ULP Immediate Data
. When the Immediate Data operation Completes, an indication
of the Completion results.
. At the Data Sink:
. When any of the Send with Immediate Data variants Completes
successfully, the RDMAP Layer passes the following
information to the ULP Layer:
. Eight bytes of Immediate Data
. An Event, if the Data Sink is configured to generate an
Event.
. When any of the Send with Immediate Data variants Completes
in error, the Data Sink RDMAP Layer will pass up the
corresponding error information to the Data Sink ULP and
send a Terminate Message to the Data Source RDMAP Layer. The
Data Source RDMAP Layer will then pass up the Terminate
Message to the ULP.
Wood et al. Expires May 26, 2014 [Page 10]
Internet-Draft RDMA Protocol Extensions November 2013
5.2. Ordering and Completions
Ordering and completion rules for Immediate Data are the same as
those for a Send operation as described in section 5.5 of RFC 5040.
5.3. Send with Immediate Data Operations
The Send with Immediate Data, Send with Invalidate and Immediate
Data, Send with Solicited Event and Immediate Data, and Send with
Solicited Event and Invalidate and Immediate Data messages follow
the same model as described in section 5.3 of RFC 5040 with the
following differences:
. The opcodes for the Send with Immediate Data variants have
different values from the RDMA Send (without Immediate Data
Messages).
. The L bit MUST be set to 1 only in the ULPDU that contains
immediate data.
. The immediate data MUST be the only data allowed in the ULPDU
with the L bit set to 1.
. At the data sink, if the operation is completed successfully,
the RDMAP Layer MUST pass the eight bytes of immediate data to
the ULP Layer.
When any Send with Immediate Data variant has a message length of
zero, the only ULDPU MUST have the immediate data and the L bit MUST
be set to 1.
6. RDMA Read V2
The definition of RDMA Read in RFC 5040 requires exposure of the
Data Sink STag and Data Sink Tagged Offset. Applications have to be
aware of this exposure since it is different from other RDMA
technologies. Dealing with the exposure in a secure manner causes
application overhead in the fast path operations specific to RDMAP.
Two new RDMA messages are needed to remove the exposure of the Data
Sink buffer information. The new RDMA Read message is composed of an
RDMA Read V2 Request that removes the SinkSTag and SinkTO
parameters. The RDMA Read V2 Response is a simple untagged DDP
message targeting queue number 3.
RDMA Read V2 Response Messages MUST use the Untagged Buffer model
with QN=3. Queue number 3 MUST be used to track outstanding RDMA
Read V2 Request messages at the Requester. When the RDMA Read V2
Wood et al. Expires May 26, 2014 [Page 11]
Internet-Draft RDMA Protocol Extensions November 2013
Response message is received, the MSN MUST be used to locate the
corresponding RDMA Read V2 request in order to place the data and
Complete the Operation.
6.1. RDMA Read V2 Request Header Format
The RDMA Read V2 Request Message carries an RDMA Read V2 Request
Header that describes the Data Source Buffers used by the RDMA Read
operation. The RDMA Read Request Header immediately follows the DDP
header. The RDMAP layer passes to the DDP layer an RDMAP Control
Field. The following figure depicts the RDMA Read V2 Request Header
that MUST be used for all RDMA Read V2 Request Messages:
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| RDMA Read Message Size (RDMARDSZ) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Data Source STag (SrcSTag) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Data Source Tagged Offset (SrcTO) |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 4 RDMA Read V2 Message Header
The RDMA Read Message Size, Data Source STag, and Data Source Tagged
Offset parameters are the same as defined in RFC 5040 section 4.4.
6.2. RDMA Read V2 Response Header Format
The RDMA Read V2 Response Message does not include an RDMAP header.
The RDMAP layer passes to the DDP layer an RDMAP Control Field. The
RDMA Read V2 Response Message is fully described by the DDP Headers
of the DDP Segments associated with the Message.
6.3. Ordering and Completions
Ordering and completion rules for RDMA Read V2 Request are the same
as those for a Send operation as described in section 5.2.1 of RFC
5040 with one exception.
Wood et al. Expires May 26, 2014 [Page 12]
Internet-Draft RDMA Protocol Extensions November 2013
. The Local Peer is no longer required to use multiple RDMA Read
Request Messages if the Local Peer wishes to reference multiple
data sink buffers. This is because RDMA Read V2 Response is
untagged.
Ordering and completion rules for the RDMA Read V2 Response are the
same as the Send operation described in section 5.3 of RFC 5040 for
a Remote Peer with one exception.
. The queue number field for the DDP layer MUST be 3.
7. Ordering and Completions Table
For reference, the following table is copied from [RFCYYYY] and pared
down to show only Send and Read Operations. It summarizes the ordering
relationships for from the standpoint of Local Peer issuing the
Operations. Note that in the table that follows, Send includes all
variants: Send, Send with Invalidate, Send with Solicited Event, and
Send with Solicited Event and Invalidate with and without immediate
data. Finally note that RDMA Read includes the original RDMA Read and
the newly defined RDMA Read V2.
----------+------------+-------------+-------------+-------------------
First | Second | Placement | Placement | Ordering
Operation | Operation | Guarantee at| Guarantee at| Guarantee at
| | Remote Peer | Local Peer | Remote Peer
----------+------------+-------------+-------------+-------------------
Immediate | Send | No Placement| Not | Completed in
Data | | Guarantee | Applicable | Order
| | between Send| |
| | Payload and | |
| | Immediate | |
| | Data | |
----------+------------+-------------+-------------+-------------------
Immediate | RDMA | No Placement| RDMA Read | RDMA Read
Data | Read | Guarantee | Response | Response
| | between | will not be | Message will
| | Immediate | Placed until| not be
| | Data and | Immediate | generated
| | RDMA Read | Data is | until
| | Request | Placed at | Immediate Data
Wood et al. Expires May 26, 2014 [Page 13]
Internet-Draft RDMA Protocol Extensions November 2013
| | | Remote Peer | has been
| | | | Completed
----------+------------+-------------+-------------+-------------------
Immediate | Immediate | No Placement| Not | Completed in
Data or | Data | Guarantee | Applicable | Order
Send | | | |
----------+------------+-------------+-------------+-------------------
RDMA Read | Immediate | No Placement| Immediate | Not Applicable
| Data | Guarantee | Data MAY be |
| | between | Placed |
| | Immediate | before |
| | Data and | RDMA Read |
| | RDMA Read | Response is |
| | Request | generated |
----------+------------+-------------+-------------+-------------------
Atomic | Send | No Placement| Send Payload| Not Applicable
| | Guarantee | MAY be |
| | between Send| Placed |
| | Payload and | before |
| | Atomic | Atomic |
| | Request | Response is |
| | | generated |
----------+------------+-------------+-------------+-------------------
Atomic | RDMA | No Placement| No Placement| RDMA Read
| Read | Guarantee | Guarantee | Response
| | between | between | Message will
| | Atomic | Atomic | not be
| | Request and | Response | generated
| | RDMA Read | and RDMA | until Atomic
| | Request | Read | Response Message
| | | Response | has been
| | | | generated
----------+------------+-------------+-------------+-------------------
Send | Atomic | No Placement| Atomic | Atomic Response
| | Guarantee | Response | Message will not
| | between Send| will not be | be generated until
| | Payload and | Placed at | Send has been
| | Atomic | the Local | Completed
| | Request | Peer Until |
| | | Send Payload|
| | | is Placed |
| | | at the |
| | | Remote Peer |
----------+------------+-------------+-------------+-------------------
RDMA | Atomic | No Placement| No Placement| Atomic Response
Wood et al. Expires May 26, 2014 [Page 14]
Internet-Draft RDMA Protocol Extensions November 2013
Read | | Guarantee | Guarantee | Message will
| | between | between | not be generated
| | Atomic | Atomic | until RDMA
| | Request and | Response | Read Response
| | RDMA Read | and RDMA | has been
| | Request | Read | generated
| | | Response |
----------+------------+-------------+-------------+-------------------
8. Error Processing
In addition to error processing described in section 7 of [RFC5040],
the following rules apply for the new RDMA Messages defined in this
specification.
8.1. Errors Detected at the Local Peer
The Local Peer MUST send a Terminate Message for each of the
following cases:
1. For errors detected while creating a RDMA Read V2 Request, RDMA
Read V2 Response, or Immediate Data with SE Message, or other
reasons not directly associated with an incoming Message, the
Terminate Message and Error code are sent instead of the Message.
In this case, the Error Type and Error Code fields are included
in the Terminate Message, but the Terminated DDP Header and
Terminated RDMA Header fields are set to zero.
2. For errors detected on an incoming RDMA Read V2 Request, RDMA
Read V2 Response, or Immediate Data with Solicited Event (after
the Message has been Delivered by DDP), the Terminate Message is
sent at the earliest possible opportunity, preferably in the next
outgoing RDMA Message. In this case, the Error Type, Error Code,
and Terminated DDP Header fields are included in the Terminate
Message, but the Terminated RDMA Header field is set to zero.
8.2. Errors Detected at the Remote Peer
Wood et al. Expires May 26, 2014 [Page 15]
Internet-Draft RDMA Protocol Extensions November 2013
9. Security Considerations
This document specifies extensions to the RDMA Protocol
specification in [RFC5040], and as such the Security Considerations
discussed in Section 8 of [RFC5040] apply.
10. IANA Considerations
IANA is requested to add the following entries to the "RDMAP Message
Operation Codes" registry of "RDDP Registries":
0x11, RDMA Read V2 Request, [RFCXXXX]
0x12, RDMA Read V2 Response, [RFCXXXX]
0x13, Send with Immediate Data, [RFCXXXX]
0x14, Send with Invalidate and Immediate Data, [RFCXXXX]
0x15, Send with Solicited Event and Immediate Data, [RFCXXXX]
0x16, Send with Invalidate and Solicited Event and Immediate Data,
[RFCXXXX]
RFC Editor: Please replace XXXX in all instances of [RFCXXXX] above
with the RFC number of this document and remove this note.
RFC Editor: Please replace YYYY in all instances of [RFCYYYY] above
with the RFC number of the RDMA Extensions document and remove this
note.
RFC Editor: Please replace ZZZZ in all instances of [RFCZZZZ] above
with the RFC number of the MPA Extensions document and remove this
note.
11. References
11.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
Wood et al. Expires May 26, 2014 [Page 16]
Internet-Draft RDMA Protocol Extensions November 2013
[RFC5040] Recio, R. et al., "A Remote Direct Memory Access Protocol
Specification", RFC 5040, October 2007.
[RFC5041] Shah, H. et al., "Direct Data Placement over Reliable
Transports", RFC 5041, October 2007.
[RFC5226] T. Narten and H. Alvestrand, "Guidelines for Writing an
IANA Considerations Section in RFCs", RFC 5226, BCP 26,
May 2008.
[RFCYYYY] Shah, H. et al., "RDMA Protocol Extensions", RFC YYYY,
October 2013.
[RFCZZZZ] "MPA Extensions" (not yet written)
11.2. Informative References
12. Acknowledgments
The authors would like to acknowledge the following contributors who
provided valuable comments and suggestions.
This document was prepared using 2-Word-v2.0.template.dot.
Wood et al. Expires May 26, 2014 [Page 17]
Internet-Draft RDMA Protocol Extensions November 2013
Appendix A. DDP Segment Formats for RDMA Messages
This appendix is for information only and is NOT part of the
standard. It simply depicts the DDP Segment format for the various
RDMA Messages.
A.1. DDP Segment for RDMA Read V2 Request
The following figure depicts an RDMA Read V2 Request 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 Control | RDMA Control |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reserved (Not Used) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| DDP (RDMA Read V2 Request) Queue Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| DDP (RDMA Read V2 Request) Message Sequence Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| DDP (RDMA Read V2 Request) Message Offset |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| RDMA Read Message Size (RDMARDSZ) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Data Source STag (SrcSTag) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Data Source Tagged Offset (SrcTO) |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 5 RDMA Read V2 Request, DDP Segment Format
A.2. DDP Segment for RDMA Read V2 Response
The following figure depicts an RDMA Read V2 Response, DDP Segment:
Wood et al. Expires May 26, 2014 [Page 18]
Internet-Draft RDMA Protocol Extensions November 2013
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 Control | RDMA Control |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reserved (Not Used) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| DDP (RDMA Read V2 Response) Queue Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| DDP (RDMA Read V2 Response) Message Sequence Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| DDP (RDMA Read V2 Response) Message Offset |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source Data |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 6 RDMA Read V2 Response, DDP Segment Format
A.3. DDP Segment for Send with Immediate Data and Send with Solicited
Event and Immediate Data
The following figure depicts a Send with Immediate Data and Send
with Solicited and Immediate Data Request, DDP Segment:
Wood et al. Expires May 26, 2014 [Page 19]
Internet-Draft RDMA Protocol Extensions November 2013
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| DDP Control | RDMA Control |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reserved (Not Used) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| (Send) Queue Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| (Send) Message Sequence Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| (Send) Message Offset |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Send ULP Payload |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 7 Send with Immediate Data and Send with Solicited Event and
Immediate Data (L bit = 0, payload only), DDP Segment Format
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| DDP Control | RDMA Control |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reserved (Not Used) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| (Send) Queue Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| (Send) Message Sequence Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| (Send) Message Offset |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Immediate Data |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 8 Send with Immediate Data and Send with Solicited Event and
Immediate Data Operations (L bit = 1, Immediate Data only), DDP
Segment Format
Wood et al. Expires May 26, 2014 [Page 20]
Internet-Draft RDMA Protocol Extensions November 2013
This is the same format that is used in section A.4 of RFC 5040. The
differences are:
. The opcodes for the immediate data operations are different.
. The L bit will be set to 1 only in the ULPDU that contains
immediate data.
. The only data allowed in the ULPDU with the L bit set to 1 is
the immediate data itself.
If the send message length is zero, the only ULPDU sent has the
immediate data (also, the L bit is set to 1).
A.4. DDP Segment for Send with Invalidate and Immediate Data and Send
with Invalidate and Solicited Event and Immediate Data
The following figure depicts a Send with Invalidate and Immediate
Data and Send with Invalidate and Solicited and Immediate Data
Request, 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 Control | RDMA Control |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Invalidate STag |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| (Send) Queue Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| (Send) Message Sequence Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| (Send) Message Offset |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Send ULP Payload |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 9 Send with Invalidate and Immediate Data and Send with
Invalidate and Solicited Event and Immediate Data (L bit = 0,
payload only), DDP Segment Format
Wood et al. Expires May 26, 2014 [Page 21]
Internet-Draft RDMA Protocol Extensions November 2013
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 Control | RDMA Control |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Invalidate STag |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| (Send) Queue Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| (Send) Message Sequence Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| (Send) Message Offset |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Immediate Data |
+ +
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 10 Send with Invalidate and Immediate Data and Send with
Invalidate and Solicited Event and Immediate Data (L bit = 1,
Immediate Data only), DDP Segment Format
This is the same format that is used in section A.5 of RFC 5040. The
differences are:
. The opcodes for the immediate data operations are different.
. The L bit will be set to 1 only in the ULPDU that contains
immediate data.
. The only data allowed in the ULPDU with the L bit set to 1 is
the immediate data itself.
If the send message length is zero, the only ULPDU sent has the
immediate data (also, the L bit is set to 1).
Wood et al. Expires May 26, 2014 [Page 22]
Internet-Draft RDMA Protocol Extensions November 2013
Authors' Addresses
Donald Wood
Intel Corporation
1300 South Mopac Expressway, Mailstop: AN4-4B
Austin, TX 78746
Phone: 1-512-362-1440
Email: donald.e.wood@intel.com
Robert Sharp
Intel Corporation
1300 South Mopac Expressway, Mailstop: AN4-4B
Austin, TX 78746
Phone: 1-512-362-1407
Email: robert.o.sharp@intel.com
Kenneth Keels
Intel Corporation
1300 South Mopac Expressway, Mailstop: AN4-4B
Austin, TX 78746
Phone: 1-512-362-1419
Email: kenneth.g.keels@intel.com
Wood et al. Expires May 26, 2014 [Page 23]