| < draft-ietf-storm-rdmap-ext-07.txt | draft-ietf-storm-rdmap-ext-08.txt > | |||
|---|---|---|---|---|
| Storage Maintenance (storm) Working Group Hemal Shah | Storage Maintenance (storm) Working Group Hemal Shah | |||
| Internet Draft Broadcom Corporation | Internet Draft Broadcom Corporation | |||
| Intended status: Standards Track Felix Marti | Intended status: Standards Track Felix Marti | |||
| Expires: March 2014 Wael Noureddine | Expires: April 2014 Wael Noureddine | |||
| Asgeir Eiriksson | Asgeir Eiriksson | |||
| Chelsio Communications, Inc. | Chelsio Communications, Inc. | |||
| Robert Sharp | Robert Sharp | |||
| Intel Corporation | Intel Corporation | |||
| September 16, 2013 | October 18, 2013 | |||
| RDMA Protocol Extensions | RDMA Protocol Extensions | |||
| draft-ietf-storm-rdmap-ext-07.txt | draft-ietf-storm-rdmap-ext-08.txt | |||
| Status of this Memo | Status of this Memo | |||
| This Internet-Draft is submitted to IETF in full conformance with | This Internet-Draft is submitted to IETF in full conformance with | |||
| the provisions of BCP 78 and BCP 79. | the provisions of BCP 78 and BCP 79. | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at http://datatracker.ietf.org/drafts/current. | Drafts is at http://datatracker.ietf.org/drafts/current. | |||
| Internet-Drafts are draft documents valid for a maximum of six | Internet-Drafts are draft documents valid for a maximum of six | |||
| months and may be updated, replaced, or obsoleted by other documents | months and may be updated, replaced, or obsoleted by other documents | |||
| at any time. It is inappropriate to use Internet-Drafts as | at any time. It is inappropriate to use Internet-Drafts as | |||
| reference material or to cite them other than as "work in progress." | reference material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on March 16, 2014. | This Internet-Draft will expire on April 18, 2014. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2013 IETF Trust and the persons identified as the | Copyright (c) 2013 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| skipping to change at page 3, line 41 ¶ | skipping to change at page 3, line 41 ¶ | |||
| following an RDMA Write Message, the combination of the two | following an RDMA Write Message, the combination of the two | |||
| messages is an implementation of RDMA Write with Immediate | messages is an implementation of RDMA Write with Immediate | |||
| message that is found in other RDMA transport protocols. | message that is found in other RDMA transport protocols. | |||
| Other RDMA transport protocols define the functionality added by | Other RDMA transport protocols define the functionality added by | |||
| these extensions leading to differences in RDMA applications and/or | these extensions leading to differences in RDMA applications and/or | |||
| Upper Layer Protocols. Removing these differences in the transport | Upper Layer Protocols. Removing these differences in the transport | |||
| protocols simplifies these applications and ULPs and that is the | protocols simplifies these applications and ULPs and that is the | |||
| main motivation for the extensions specified in this document. | main motivation for the extensions specified in this document. | |||
| [RSOCKETS] is an example of RDMA enabled middleware that provides a | RSockets [RSOCKETS] is an example of RDMA enabled middleware that | |||
| socket interface as the upper edge interface and utilizes RDMA to | provides a socket interface as the upper edge interface and utilizes | |||
| provide more efficient networking for sockets based applications. | RDMA to provide more efficient networking for sockets based | |||
| [RSOCKETS] is aware of Immediate Data support in [IB]. [RSOCKETS] | applications. RSockets [RSOCKETS] is aware of Immediate Data | |||
| cannot utilize the RDMA Write with Immediate Data operation from | support in [IB]. [RSOCKETS] cannot utilize the RDMA Write with | |||
| [IB] on iWARP. The addition of the Immediate Data operation | Immediate Data operation from [IB] on iWARP. The addition of the | |||
| specified in this draft will alleviate this difference in [RSOCKETS] | Immediate Data operation specified in this draft will alleviate this | |||
| when running on [IB] and iWARP. | difference in [RSOCKETS] when running on [IB] and iWARP. | |||
| [DAT_ATOMICS] is an example of RDMA enable middleware that provides | DAT Atomics [DAT_ATOMICS] is an example of RDMA enable middleware | |||
| a portable RDMA programming interface for various RDMA transport | that provides a portable RDMA programming interface for various RDMA | |||
| protocols. [DAT_ATOMICS] includes a primitive for [IB] that is not | transport protocols. [DAT_ATOMICS] includes a primitive for [IB] | |||
| supported by iWARP RNICs. The addition of Atomic Operations as | that is not supported by iWARP RNICs. The addition of Atomic | |||
| specified in this draft will allow atomic operations in | Operations as specified in this draft will allow atomic operations | |||
| [DAT_ATOMICS] to work for both [IB] and iWARP interchangeably. | in [DAT_ATOMICS] to work for both [IB] and iWARP interchangeably. | |||
| 1.1. Discovery of RDMAP Extensions | 1.1. Discovery of RDMAP Extensions | |||
| Today there are RDMA applications and/or ULPs that are aware of the | Today there are RDMA applications and/or ULPs that are aware of the | |||
| existence of Atomic and Immediate data operations for RDMA | existence of Atomic and Immediate data operations for RDMA | |||
| transports such as [IB] and application programming interfaces such | transports such as [IB] and application programming interfaces such | |||
| as [OFA Verbs]. Today, these applications need to be aware that | as [OFAVERBS]. Today, these applications need to be aware that | |||
| iWARP RNICs do not support these operations. Typically the | iWARP RNICs do not support these operations. Typically the | |||
| availability of these capabilities are exposed to the applications | availability of these capabilities are exposed to the applications | |||
| through adapter query interfaces in software. Applications then | through adapter query interfaces in software. Applications then | |||
| have to decide to use or not to use Immediate Data or Atomic | have to decide to use or not to use Immediate Data or Atomic | |||
| Operations based on the results of the query interfaces. | Operations based on the results of the query interfaces. | |||
| Negotiation of Atomic Operations typically are to determine the | Negotiation of Atomic Operations typically are to determine the | |||
| scope of atomicity guarantees, not down to the individual Atomic | scope of atomicity guarantees, not down to the individual Atomic | |||
| Operations supported. Therefore, this specification requires all | Operations supported. Therefore, this specification requires all | |||
| Atomic Operations defined within to be supported if an RNIC supports | Atomic Operations defined within to be supported if an RNIC supports | |||
| any Atomic Operations. | any Atomic Operations. | |||
| skipping to change at page 6, line 9 ¶ | skipping to change at page 6, line 9 ¶ | |||
| send Immediate Data to the Data Sink | send Immediate Data to the Data Sink | |||
| Immediate Data with Solicited Event (SE) Message - An RDMA Message | Immediate Data with Solicited Event (SE) Message - An RDMA Message | |||
| used by the Data Source to send Immediate Data with Solicited Event | used by the Data Source to send Immediate Data with Solicited Event | |||
| to the Data Sink | to the Data Sink | |||
| Requester - the sender of an RDMA Atomic Operation request. | Requester - the sender of an RDMA Atomic Operation request. | |||
| Responder - the receiver of an RDMA Atomic Operation request. | Responder - the receiver of an RDMA Atomic Operation request. | |||
| ULP - Upper Layer Protocol. The protocol layer above the one | ULP - Upper Layer Protocol. The protocol layer above the one | |||
| currently being referenced. The ULP for RDMAP[RFC5040]/DDP[RFC5041] | currently being referenced. The ULP for RDMAP [RFC5040] / DDP | |||
| is expected to be an OS, Application, adaptation layer, or | [RFC5041] is expected to be an OS, Application, adaptation layer, or | |||
| proprietary device. The RDMAP[RFC5040]/DDP[RFC5041] documents do not | proprietary device. The RDMAP [RFC5040] / DDP [RFC5041] documents do | |||
| specify a ULP -- they provide a set of semantics that allow a ULP to | not specify a ULP -- they provide a set of semantics that allow a | |||
| be designed to utilize RDMAP[RFC5040]/DDP[RFC5041]. | ULP to be designed to utilize RDMAP [RFC5040] / DDP [RFC5041]. | |||
| 4. Header Format Extensions | 4. Header Format Extensions | |||
| The control information of RDMA Messages is included in DDP protocol | The control information of RDMA Messages is included in DDP protocol | |||
| [RFC5041] defined header fields. [RFC5040] defines the RDMAP header | [RFC5041] defined header fields. [RFC5040] defines the RDMAP header | |||
| formats layered on the [RFC5041] DDP header definition. This | formats layered on the [RFC5041] DDP header definition. This | |||
| specification extends [RFC5040] with the following new formats: | specification extends [RFC5040] with the following new formats: | |||
| . Four new RDMA Messages carry additional RDMAP headers. The | . Four new RDMA Messages carry additional RDMAP headers. The | |||
| Immediate Data operation and Immediate Data with Solicited Event | Immediate Data operation and Immediate Data with Solicited Event | |||
| operation include 8 bytes of data following the RDMAP header. | operation include 8 bytes of data following the RDMAP header. | |||
| skipping to change at page 8, line 18 ¶ | skipping to change at page 8, line 18 ¶ | |||
| All RDMA Messages defined in this specification MUST have: | All RDMA Messages defined in this specification MUST have: | |||
| The RDMA Version (RV) field: 01b. | The RDMA Version (RV) field: 01b. | |||
| Opcode field: See Figure 2. | Opcode field: See Figure 2. | |||
| Invalidate STag: MUST be set to zero by the sender, ignored by the | Invalidate STag: MUST be set to zero by the sender, ignored by the | |||
| receiver. | receiver. | |||
| RDMA | Message | Tagged| STag | Queue | Invalidate| Message | -------+-----------+-------+------+-------+---------+------------- | |||
| Opcode | Type | Flag | and | Number| STag | Length | RDMA | Message | Tagged| STag | Queue | In- | Message | |||
| | | | TO | | | Communicated | Opcode | Type | Flag | and | Number| validate| Length | |||
| | | | | | | between DDP | | | | TO | | STag | Communicated | |||
| | | | | | | and RDMAP | | | | | | | between DDP | |||
| 1000b | Immediate | 0 | N/A | 0 | N/A | Yes | | | | | | | and RDMAP | |||
| | Data | | | | | | -------+-----------+-------+------+-------+---------+------------- | |||
| 1001b | Immediate | 0 | N/A | 0 | N/A | Yes | 1000b | Immediate | 0 | N/A | 0 | N/A | Yes | |||
| | Data with | | | | | | | Data | | | | | | |||
| | SE | | | | | | -------+-----------+---------------------------------------------- | |||
| 1010b | Atomic | 0 | N/A | 1 | N/A | Yes | 1001b | Immediate | 0 | N/A | 0 | N/A | Yes | |||
| | Request | | | | | | | Data with | | | | | | |||
| 1011b | Atomic | 0 | N/A | 3 | N/A | Yes | | SE | | | | | | |||
| | Response | | | | | | -------+-----------+---------------------------------------------- | |||
| 1010b | Atomic | 0 | N/A | 1 | N/A | Yes | ||||
| | Request | | | | | | ||||
| -------+-----------+---------------------------------------------- | ||||
| 1011b | Atomic | 0 | N/A | 3 | N/A | Yes | ||||
| | Response | | | | | | ||||
| -------+-----------+---------------------------------------------- | ||||
| Figure 2 Additional RDMA Usage of DDP Fields | Figure 2 Additional RDMA Usage of DDP Fields | |||
| Note: N/A means Not Applicable. | Note: N/A means Not Applicable. | |||
| This extension defines RDMAP use of Queue Number 3 for Untagged | This extension defines RDMAP use of Queue Number 3 for Untagged | |||
| Buffers for Atomic Responses. This queue is used for tracking | Buffers for Atomic Responses. This queue is used for tracking | |||
| outstanding Atomic Requests. | outstanding Atomic Requests. | |||
| All other DDP and RDMAP control fields MUST be set as described in | All other DDP and RDMAP control fields MUST be set as described in | |||
| [RFC5040]. | [RFC5040]. | |||
| 4.2. RDMA Message Definitions | 4.2. RDMA Message Definitions | |||
| The following figure defines which RDMA Headers MUST be used on each | The following figure defines which RDMA Headers MUST be used on each | |||
| new RDMA Message and which new RDMA Messages are allowed to carry | new RDMA Message and which new RDMA Messages are allowed to carry | |||
| ULP payload: | ULP payload: | |||
| RDMA | Message | RDMA Header Used | ULP Message allowed in | -------+-----------+-------------------+------------------------- | |||
| Message| Type | | the RDMA Message | RDMA | Message | RDMA Header Used | ULP Message allowed in | |||
| OpCode | | | | Message| Type | | the RDMA Message | |||
| | | | | OpCode | | | | |||
| 1000b | Immediate | Immediate Data | No | | | | | |||
| | Data | Header | | -------+-----------+-------------------+------------------------- | |||
| 1001b | Immediate | Immediate Data | No | 1000b | Immediate | Immediate Data | No | |||
| | Data with | Header | | | Data | Header | | |||
| | SE | | | -------+-----------+-------------------+------------------------- | |||
| 1010b | Atomic | Atomic Request | No | 1001b | Immediate | Immediate Data | No | |||
| | Request | Header | | | Data with | Header | | |||
| 1011b | Atomic | Atomic Response | No | | SE | | | |||
| | Response | Header | | -------+-----------+-------------------+------------------------- | |||
| 1010b | Atomic | Atomic Request | No | ||||
| | Request | Header | | ||||
| -------+-----------+-------------------+------------------------- | ||||
| 1011b | Atomic | Atomic Response | No | ||||
| | Response | Header | | ||||
| -------+-----------+-------------------+------------------------- | ||||
| Figure 3 RDMA Message Definitions | Figure 3 RDMA Message Definitions | |||
| 5. Atomic Operations | 5. Atomic Operations | |||
| The RDMA Protocol Specification in [RFC5040] does not include | The RDMA Protocol Specification in [RFC5040] does not include | |||
| support for Atomic Operations which are an important building block | support for Atomic Operations which are an important building block | |||
| for implementing distributed shared memory. | for implementing distributed shared memory. | |||
| This document extends the RDMA Protocol specification with a set of | This document extends the RDMA Protocol specification with a set of | |||
| basic Atomic Operations, and specifies their resource and ordering | basic Atomic Operations, and specifies their resource and ordering | |||
| rules. The Atomic Operations specified in this document provide | rules. The Atomic Operations specified in this document provide | |||
| equivalent functionality to the [IB] RDMA transport as well as | equivalent functionality to the [IB] RDMA transport as well as | |||
| extended Atomic Operations defined in [OFA Verbs], to allow | extended Atomic Operations defined in [OFAVERBS], to allow | |||
| applications that use these primitives to work interchangeably over | applications that use these primitives to work interchangeably over | |||
| iWARP. Other operations are left for future consideration. | iWARP. Other operations are left for future consideration. | |||
| Atomic operations as specified in this document execute a 64-bit | Atomic operations as specified in this document execute a 64-bit | |||
| memory operation at a specified destination ULP Buffer address on a | memory operation at a specified destination ULP Buffer address on a | |||
| Responder node using the Tagged Buffer data transfer model. The | Responder node using the Tagged Buffer data transfer model. The | |||
| operations atomically read, modify and write back the contents of | operations atomically read, modify and write back the contents of | |||
| the destination ULP Buffer address and guarantee that Atomic | the destination ULP Buffer address and guarantee that Atomic | |||
| Operations on this ULP Buffer address by other RDMAP Streams on the | Operations on this ULP Buffer address by other RDMAP Streams on the | |||
| same RNIC do not occur between the read and the write caused by the | same RNIC do not occur between the read and the write caused by the | |||
| Atomic Operation. Therefore, the Responder RNIC MUST implement | Atomic Operation. Therefore, the Responder RNIC MUST implement | |||
| mechanisms to prevent Atomic Operations to a memory registered for | mechanisms to prevent Atomic Operations to a memory registered for | |||
| Atomic Operations while an Atomic Operation targeting the memory is | Atomic Operations while an Atomic Operation targeting the memory is | |||
| in progress. The Requester of an atomic operation cannot rely on | in progress. The Requester of an atomic operation cannot rely on | |||
| atomic operation behavior at the Responder across multiple RNICs or | atomic operation behavior at the Responder across multiple RNICs or | |||
| with respect to other applications/ULPs running at the Responder | with respect to other applications/ULPs running at the Responder | |||
| that can access the ULP Buffer. Some RNIC implementations may | that can access the ULP Buffer. Some RNIC implementations may | |||
| provide such atomic behavior, but it is OPTIONAL for the atomic | provide such atomic behavior, but it is OPTIONAL for the atomic | |||
| operations specified in this document.. An RNIC that supports | operations specified in this document. An RNIC that supports Atomic | |||
| Atomic Operations as specified in this document MUST implement all | Operations as specified in this document MUST implement all Atomic | |||
| Atomic Operation Codes defined in Figure 5. The advertisement of | Operation Codes defined in Figure 5. The advertisement of Tagged | |||
| Tagged Buffer information for Atomic Operations is outside the scope | Buffer information for Atomic Operations is outside the scope of | |||
| of this specification and must be handled by the ULPs. | this specification and must be handled by the ULPs. | |||
| Implementation note: It is recommended that the applications do not | Implementation note: It is recommended that the applications do not | |||
| use the ULP Buffer addresses used for Atomic Operations for other | use the ULP Buffer addresses used for Atomic Operations for other | |||
| RDMA operations. | RDMA operations. | |||
| Implementation note: Errors related to the alignment in the | Implementation note: Errors related to the alignment in the | |||
| following sections cover Atomic Operations targeted at a ULP Buffer | following sections cover Atomic Operations targeted at a ULP Buffer | |||
| address that is not aligned to a 64-bit boundary. | address that is not aligned to a 64-bit boundary. | |||
| Atomic Operation Request Messages use the same remote addressing | Atomic Operation Request Messages use the same remote addressing | |||
| skipping to change at page 12, line 6 ¶ | skipping to change at page 12, line 6 ¶ | |||
| { | { | |||
| if (bit != 0 ) bit_location = bit_location << 1 | if (bit != 0 ) bit_location = bit_location << 1 | |||
| val1 = (Original Remote Data Value & bit_location) >> bit | val1 = (Original Remote Data Value & bit_location) >> bit | |||
| val2 = (Add Data & bit_location) >> bit | val2 = (Add Data & bit_location) >> bit | |||
| sum = carry + val1 + val2 | sum = carry + val1 + val2 | |||
| carry = !(!(sum & 2)) | carry = (sum & 2) >> 1 | |||
| sum = sum & 1 | sum = sum & 1 | |||
| if (sum) | if (sum) | |||
| Remote Data Value |= bit_location | Remote Data Value |= bit_location | |||
| carry = ((carry) && (!(Add Mask & bit_location))) | carry = ((carry) && (!(Add Mask & bit_location))) | |||
| } | } | |||
| skipping to change at page 21, line 7 ¶ | skipping to change at page 21, line 7 ¶ | |||
| 8. If more than one outstanding Atomic Request Messages are | 8. If more than one outstanding Atomic Request Messages are | |||
| supported by both peers, the Atomic Operation Request Messages | supported by both peers, the Atomic Operation Request Messages | |||
| MUST be processed in the order they were delivered by the DDP | MUST be processed in the order they were delivered by the DDP | |||
| layer on the Responder. Atomic Operation Response Messages MUST | layer on the Responder. Atomic Operation Response Messages MUST | |||
| be submitted to the DDP layer on the Responder in the order the | be submitted to the DDP layer on the Responder in the order the | |||
| Atomic Operation Request Messages were Delivered by DDP. | Atomic Operation Request Messages were Delivered by DDP. | |||
| 6. Immediate Data | 6. Immediate Data | |||
| The Immediate Data operation is typically used in conjunction with an | The Immediate Data operation is typically used in conjunction with | |||
| RDMA Write Operation to improve ULP processing efficiency. The | an RDMA Write Operation to improve ULP processing efficiency. The | |||
| efficiency is gained by causing an RDMA Completion to be generated | efficiency is gained by causing an RDMA Completion to be generated | |||
| immediately following the RDMA Write operation. This RDMA Completion | immediately following the RDMA Write operation. This RDMA Completion | |||
| delivers 8 bytes of immediate data at the Remote Peer. The | delivers 8 bytes of immediate data at the Remote Peer. The | |||
| combination of an RDMA Write Message followed by an Immediate Data | combination of an RDMA Write Message followed by an Immediate Data | |||
| Operation has the same behavior as the RDMA Write with Immediate Data | Operation has the same behavior as the RDMA Write with Immediate Data | |||
| operation found in [IB]. An Immediate Data operation that is not | operation found in [IB]. An Immediate Data operation that is not | |||
| preceded by an RDMA Write operation causes an RDMA Completion. | preceded by an RDMA Write operation causes an RDMA Completion. | |||
| 6.1. RDMAP Interactions with ULP for Immediate Data | 6.1. RDMAP Interactions with ULP for Immediate Data | |||
| skipping to change at page 23, line 28 ¶ | skipping to change at page 23, line 28 ¶ | |||
| layer. The DDP header carries the length field that is reported | layer. The DDP header carries the length field that is reported | |||
| by the DDP layer. | by the DDP layer. | |||
| 6.4. Ordering and Completions | 6.4. Ordering and Completions | |||
| Ordering and completion rules for Immediate Data are the same as | 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. | those for a Send operation as described in section 5.5 of RFC 5040. | |||
| 7. Ordering and Completions Table | 7. Ordering and Completions Table | |||
| The following table summarizes the ordering relationships for Atomic | The following table summarizes the ordering relationships for Atomic | |||
| and Immediate Data operations from the standpoint of Local Peer issuing | and Immediate Data operations from the standpoint of Local Peer | |||
| the Operations. Note that in the table that follows, Send includes | issuing the Operations. Note that in the table that follows, Send | |||
| Send, Send with Invalidate, Send with Solicited Event, and Send with | includes Send, Send with Invalidate, Send with Solicited Event, and | |||
| Solicited Event and Invalidate. Also note that in the table below, | Send with Solicited Event and Invalidate. Also note that in the | |||
| Immediate Data includes Immediate Data and Immediate Data with | table below, Immediate Data includes Immediate Data and Immediate | |||
| Solicited Event. | Data with Solicited Event. | |||
| First | Second | Placement | Placement | Ordering | ---------+----------+-------------+-------------+------------------ | |||
| Operation | Operation | Guarantee at| Guarantee at| Guarantee at | First | Second | Placement | Placement | Ordering | |||
| | | Remote Peer | Local Peer | Remote Peer | Operation| Operation| Guarantee at| Guarantee at| Guarantee at | |||
| Immediate | Send | No Placement| Not | Completed in | | | Remote Peer | Local Peer | Remote Peer | |||
| Data | | Guarantee | Applicable | Order | ---------+----------+-------------+-------------+------------------ | |||
| | | between Send| | | Immediate| Send | No Placement| Not | Completed in | |||
| | | Payload and | | | Data | | Guarantee | Applicable | Order | |||
| | | Immediate | | | | | between Send| | | |||
| | | Data | | | | | Payload and | | | |||
| Immediate | RDMA | No Placement| Not | Not | | | Immediate | | | |||
| Data | Write | Guarantee | Applicable | Applicable | | | Data | | | |||
| | | between RDMA| | | ---------+----------+-------------+-------------+------------------ | |||
| | | Write | | | Immediate| RDMA | No Placement| Not | Not | |||
| | | Payload and | | | Data | Write | Guarantee | Applicable | Applicable | |||
| | | Immediate | | | | | between RDMA| | | |||
| | | Data | | | | | Write | | | |||
| Immediate | RDMA | No Placement| RDMA Read | RDMA Read | | | Payload and | | | |||
| Data | Read | Guarantee | Response | Response | | | Immediate | | | |||
| | | between | will not be | Message will | | | Data | | | |||
| | | Immediate | Placed until| not be | ---------+----------+-------------+-------------+------------------ | |||
| | | Data and | Immediate | generated | Immediate| RDMA | No Placement| RDMA Read | RDMA Read | |||
| | | RDMA Read | Data is | until | Data | Read | Guarantee | Response | Response | |||
| | | Request | Placed at | Immediate Data | | | between | will not be | Message will | |||
| | | | Remote Peer | has been | | | Immediate | Placed until| not be | |||
| | | | | Completed | | | Data and | Immediate | generated | |||
| Immediate | Atomic | No Placement| Atomic | Atomic | | | RDMA Read | Data is | until | |||
| Data | | Guarantee | Response | Response | | | Request | Placed at | Immediate Data | |||
| | | between | will not be | Message will | | | | Remote Peer | has been | |||
| | | Immediate | Placed until| not be | | | | | Completed | |||
| | | Data and | Immediate | generated | ---------+----------+-------------+-------------+------------------ | |||
| | | Atomic | Data is | until | Immediate| Atomic | No Placement| Atomic | Atomic | |||
| | | Request | Placed at | Immediate Data | Data | | Guarantee | Response | Response | |||
| | | | Remote Peer | has been | | | between | will not be | Message will | |||
| | | | | Completed | | | Immediate | Placed until| not be | |||
| Immediate | Immediate | No Placement| Not | Completed in | | | Data and | Immediate | generated | |||
| Data or | Data | Guarantee | Applicable | Order | | | Atomic | Data is | until | |||
| Send | | | | | | | Request | Placed at | Immediate Data | |||
| RDMA Write| Immediate | No Placement| Not | Immediate Data | | | | Remote Peer | has been | |||
| | Data | Guarantee | Applicable | is Completed | | | | | Completed | |||
| | | | | after RDMA | ---------+----------+-------------+-------------+------------------ | |||
| | | | | Write is Placed | Immediate| Immediate| No Placement| Not | Completed in | |||
| | | | | and Delivered | Data or | Data | Guarantee | Applicable | Order | |||
| RDMA Read | Immediate | No Placement| Immediate | Not Applicable | Send | | | | | |||
| | Data | Guarantee | Data MAY be | | ---------+----------+-------------+-------------+------------------ | |||
| | | between | Placed | | RDMA | Immediate| No Placement| Not | Immediate Data | |||
| | | Immediate | before | | Write | Data | Guarantee | Applicable | is Completed | |||
| | | Data and | RDMA Read | | | | | | after RDMA | |||
| | | RDMA Read | Response is | | | | | | Write is Placed | |||
| | | Request | generated | | | | | | and Delivered | |||
| ---------+----------+-------------+-------------+------------------ | ||||
| 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 | Immediate | No Placement| Immediate | Not Applicable | ---------+----------+-------------+-------------+------------------ | |||
| | Data | Guarantee | Data MAY be | | Atomic | Immediate| No Placement| Immediate | Not Applicable | |||
| | | between | Placed | | | Data | Guarantee | Data MAY be | | |||
| | | Immediate | before | | | | between | Placed | | |||
| | | Data and | Atomic | | | | Immediate | before | | |||
| | | Atomic | Response is | | | | Data and | Atomic | | |||
| | | Request | generated | | | | Atomic | Response is | | |||
| Atomic | Send | No Placement| Send Payload| Not Applicable | | | Request | generated | | |||
| | | Guarantee | MAY be | | ---------+----------+-------------+-------------+------------------ | |||
| | | between Send| Placed | | Atomic | Send | No Placement| Send Payload| Not Applicable | |||
| | | Payload and | before | | | | Guarantee | MAY be | | |||
| | | Atomic | Atomic | | | | between Send| Placed | | |||
| | | Request | Response is | | | | Payload and | before | | |||
| | | | generated | | | | Atomic | Atomic | | |||
| Atomic | RDMA | No Placement| RDMA Write | Not | | | Request | Response is | | |||
| | Write | Guarantee | Payload MAY | Applicable | | | | generated | | |||
| | | between RDMA| be Placed | | ---------+----------+-------------+-------------+------------------ | |||
| | | Write | before | | Atomic | RDMA | No Placement| RDMA Write | Not | |||
| | | Payload and | Atomic | | | Write | Guarantee | Payload MAY | Applicable | |||
| | | Atomic | Response is | | | | between RDMA| be Placed | | |||
| | | Request | generated | | | | Write | before | | |||
| Atomic | RDMA | No Placement| No Placement| RDMA Read | | | Payload and | Atomic | | |||
| | Read | Guarantee | Guarantee | Response | | | Atomic | Response is | | |||
| | | between | between | Message will | | | Request | generated | | |||
| | | Atomic | Atomic | not be | ---------+----------+-------------+-------------+------------------ | |||
| | | Request and | Response | generated | Atomic | RDMA | No Placement| No Placement| RDMA Read | |||
| | | RDMA Read | and RDMA | until Atomic | | Read | Guarantee | Guarantee | Response | |||
| | | Request | Read | Response Message | | | between | between | Message will | |||
| | | | Response | has been | | | Atomic | Atomic | not be | |||
| | | | | generated | | | Request and | Response | generated | |||
| Atomic | Atomic | Placed in | No Placement| Second Atomic | | | RDMA Read | and RDMA | until Atomic | |||
| | | order | Guarantee | Request | | | Request | Read | Response Message | |||
| | | | between two | Message will | | | | Response | has been | |||
| | | | Atomic | not be | | | | | generated | |||
| | | | Responses | processed | ---------+----------+-------------+-------------+------------------ | |||
| | | | | until first | Atomic | Atomic | Placed in | No Placement| Second Atomic | |||
| | | | | Atomic Response | | | order | Guarantee | Request | |||
| | | | | has been | | | | between two | Message will | |||
| | | | | generated | | | | Atomic | not be | |||
| Send | Atomic | No Placement| Atomic | Atomic Response | | | | Responses | processed | |||
| | | Guarantee | Response | Message will not | | | | | until first | |||
| | | between Send| will not be | be generated until | | | | | Atomic Response | |||
| | | Payload and | Placed at | Send has been | | | | | has been | |||
| | | Atomic | the Local | Completed | | | | | generated | |||
| | | Request | Peer Until | | ---------+----------+-------------+-------------+------------------ | |||
| | | | Send Payload| | Send | Atomic | No Placement| Atomic | Atomic Response | |||
| | | | is Placed | | | | Guarantee | Response | Message will not | |||
| | | | at the | | | | between Send| will not be | be generated | |||
| | | | Remote Peer | | | | Payload and | Placed at | until Send has | |||
| RDMA | Atomic | No Placement| Atomic | Not | | | Atomic | the Local | been Completed | |||
| Write | | Guarantee | Response | Applicable | | | Request | Peer Until | | |||
| | | between RDMA| will not be | | | | | Send Payload| | |||
| | | Write | Placed at | | | | | is Placed | | |||
| | | Payload and | the Local | | | | | at the | | |||
| | | Atomic | Peer Until | | | | | Remote Peer | | |||
| | | Request | RDMA Write | | ---------+----------+-------------+-------------+------------------ | |||
| | | | Payload | | RDMA | Atomic | No Placement| Atomic | Not | |||
| | | | is Placed | | Write | | Guarantee | Response | Applicable | |||
| | | | at the | | | | between RDMA| will not be | | |||
| | | | Remote Peer | | | | Write | Placed at | | |||
| RDMA | Atomic | No Placement| No Placement| Atomic Response | | | Payload and | the Local | | |||
| Read | | Guarantee | Guarantee | Message will | | | Atomic | Peer Until | | |||
| | | between | between | not be generated | | | Request | RDMA Write | | |||
| | | Atomic | Atomic | until RDMA | | | | Payload | | |||
| | | Request and | Response | Read Response | | | | is Placed | | |||
| | | RDMA Read | and RDMA | has been | | | | at the | | |||
| | | Request | Read | generated | | | | Remote Peer | | |||
| | | | Response | | ---------+----------+-------------+-------------+------------------ | |||
| RDMA | Atomic | No Placement| No Placement| Atomic Response | ||||
| 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 | 8. Error Processing | |||
| In addition to error processing described in section 7 of [RFC5040], | In addition to error processing described in section 7 of [RFC5040], | |||
| the following rules apply for the new RDMA Messages defined in this | the following rules apply for the new RDMA Messages defined in this | |||
| specification. | specification. | |||
| 8.1. Errors Detected at the Local Peer | 8.1. Errors Detected at the Local Peer | |||
| The Local Peer MUST send a Terminate Message for each of the | The Local Peer MUST send a Terminate Message for each of the | |||
| skipping to change at page 28, line 32 ¶ | skipping to change at page 28, line 32 ¶ | |||
| 0x9, Immediate Data with Solicited Event, [RFCXXXX] | 0x9, Immediate Data with Solicited Event, [RFCXXXX] | |||
| 0xA, Atomic Request, [RFCXXXX] | 0xA, Atomic Request, [RFCXXXX] | |||
| 0xB, Atomic Response, [RFCXXXX] | 0xB, Atomic Response, [RFCXXXX] | |||
| In addition, the following registry is requested to be added to | In addition, the following registry is requested to be added to | |||
| "RDDP Registries". The following section specifies the registry, its | "RDDP Registries". The following section specifies the registry, its | |||
| initial contents and the administration policy in more detail. | initial contents and the administration policy in more detail. | |||
| RFC Editor: Please replace XXXX in all instances of [RFCXXXX] above | ||||
| with the RFC number of this document and remove this note. | ||||
| 10.1. RDMAP Message Atomic Operation Subcodes | 10.1. RDMAP Message Atomic Operation Subcodes | |||
| Name of the registry: "RDMAP Message Atomic Operation Subcodes" | Name of the registry: "RDMAP Message Atomic Operation Subcodes" | |||
| Namespace details: RDMAP Message Atomic Operation Subcodes are 4-bit | Namespace details: RDMAP Message Atomic Operation Subcodes are 4-bit | |||
| values [RFCXXXX]. | values [RFCXXXX]. | |||
| Information that must be provided to assign a new value: An IESG- | Information that must be provided to assign a new value: An IESG- | |||
| approved standards-track specification defining the semantics and | approved standards-track specification defining the semantics and | |||
| interoperability requirements of the proposed new value and the | interoperability requirements of the proposed new value and the | |||
| skipping to change at page 30, line 30 ¶ | skipping to change at page 30, line 36 ¶ | |||
| [RFC5041] Shah, H. et al., "Direct Data Placement over Reliable | [RFC5041] Shah, H. et al., "Direct Data Placement over Reliable | |||
| Transports", RFC 5041, October 2007. | Transports", RFC 5041, October 2007. | |||
| [RFC5042] Pinkerton, J. and E. Deleganes, "Direct Data Placement | [RFC5042] Pinkerton, J. and E. Deleganes, "Direct Data Placement | |||
| Protocol (DDP) / Remote Direct Memory Access Protocol | Protocol (DDP) / Remote Direct Memory Access Protocol | |||
| (RDMAP) Security", October 2007. | (RDMAP) Security", October 2007. | |||
| [RFC5226] T. Narten and H. Alvestrand, "Guidelines for Writing an | [RFC5226] T. Narten and H. Alvestrand, "Guidelines for Writing an | |||
| IANA Considerations Section in RFCs", May 2008. | IANA Considerations Section in RFCs", May 2008. | |||
| RFC Editor: Please remove reference to RFC5226 if the associated | ||||
| IANA Considerations reference is also removed before publication. | ||||
| 11.2. Informative References | 11.2. Informative References | |||
| [IB] Infiniband Trade Association, "Infiniband Architecture | [IB] Infiniband Trade Association, "Infiniband Architecture | |||
| Specification Volumes 1 and 2", Release 1.1, November | Specification Volumes 1 and 2", Release 1.1, November | |||
| 2002, available from http://www.infinibandta.org/specs. | 2002, available from http://www.infinibandta.org/specs. | |||
| [RSOCKETS] RSockets, RDMA enabled Sockets library for Open Fabrics, | [RSOCKETS] RSockets, RDMA enabled Sockets library for Open Fabrics, | |||
| available from | available from | |||
| http://git.openfabrics.org/git?p=~shefty/librdmacm.git;a=b | http://git.openfabrics.org/git?p=~shefty/librdmacm.git;a=b | |||
| lob;f=src/rsocket.c;h=d544dd097cda228de114173c8fe569dc1881 | lob;f=src/rsocket.c;h=d544dd097cda228de114173c8fe569dc1881 | |||
| f057;hb=HEAD. | f057;hb=HEAD. | |||
| [OFA Verbs] Open Fabrics Alliance Verbs Enhanced Atomic Operations, | [OFAVERBS] Open Fabrics Alliance Verbs Enhanced Atomic Operations, | |||
| "[PATCH 0/2] Add support for enhanced atomic operations", | "[PATCH 0/2] Add support for enhanced atomic operations", | |||
| available from | available from | |||
| http://comments.gmane.org/gmane.linux.drivers.rdma/2397. | http://comments.gmane.org/gmane.linux.drivers.rdma/2397. | |||
| [DAT_ATOMICS] DAT Collaborative, User Direct Access Programming | [DAT_ATOMICS] DAT Collaborative, User Direct Access Programming | |||
| Library, "Ratified DAT IB extension spec", available from | Library, "Ratified DAT IB extension spec", available from | |||
| http://www.datcollaborative.org/DAT_IB_Extensions.pdf. | http://www.datcollaborative.org/DAT_IB_Extensions.pdf. | |||
| 12. Acknowledgments | 12. Acknowledgments | |||
| End of changes. 20 change blocks. | ||||
| 185 lines changed or deleted | 220 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||