draft-ietf-ips-iwarp-da-03.txt   draft-ietf-ips-iwarp-da-04.txt 
INTERNET DRAFT Mallikarjun Chadalapaka INTERNET DRAFT Mallikarjun Chadalapaka
draft-ietf-ips-iwarp-da-03.txt HP draft-ietf-ips-iwarp-da-04.txt HP
John Hufferd John Hufferd
IBM IBM
Julian Satran Julian Satran
IBM IBM
Hemal Shah Hemal Shah
Intel Intel
Expires December 2005 Expires
Datamover Architecture for iSCSI (DA) Datamover Architecture for iSCSI (DA)
Status of this Memo Status of this Memo
By submitting this Internet-Draft, each author represents By submitting this Internet-Draft, each author represents
that any applicable patent or other IPR claims of which he or that any applicable patent or other IPR claims of which he or
she is aware have been or will be disclosed, and any of which she is aware have been or will be disclosed, and any of which
he or she becomes aware will be disclosed, in accordance with he or she becomes aware will be disclosed, in accordance with
Section 6 of BCP 79. Section 6 of BCP 79.
Internet-Drafts are working documents of the Internet Internet-Drafts are working documents of the Internet
skipping to change at page 1, line 42 skipping to change at page 1, line 41
than a "work in progress." than a "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/1id-abstracts.html http://www.ietf.org/1id-abstracts.html
The list of Internet-Draft Shadow Directories can be accessed The list of Internet-Draft Shadow Directories can be accessed
at http://www.ietf.org/shadow.html. at http://www.ietf.org/shadow.html.
Abstract Abstract
iSCSI is a SCSI transport protocol that maps the SCSI family iSCSI is a SCSI transport protocol that maps the SCSI family
of application protocols onto TCP/IP. The Datamover of application protocols onto TCP/IP. Datamover Architecture
Architecture for iSCSI (DA) defines an abstract model in for iSCSI (DA) defines an abstract model in which the
which the movement of data between iSCSI end nodes is movement of data between iSCSI end nodes is logically
logically separated from the rest of the iSCSI protocol in separated from the rest of the iSCSI protocol in order to
order to allow iSCSI to adapt to innovations available in new allow iSCSI to adapt to innovations available in new IP
IP transports. The new Datamover protocol provides a transports. While DA defines the architectural functions
required of the class of Datamover protocols, it does not
define any specific Datamover protocols. Each such Datamover
protocol, to be defined in a separate document, provides a
reliable transport for all iSCSI PDUs, but actually moves the reliable transport for all iSCSI PDUs, but actually moves the
data required for certain iSCSI PDUs without involving the data required for certain iSCSI PDUs without involving the
remote iSCSI layer itself. This document begins with an remote iSCSI layer itself. This document begins with an
introduction of a few new abstractions, defines a layered introduction of a few new abstractions, defines a layered
architecture for iSCSI and Datamover protocols, and then architecture for iSCSI and Datamover protocols, and then
models the interactions within an iSCSI end node between the models the interactions within an iSCSI end node between the
iSCSI layer and the Datamover layer that happen in order to iSCSI layer and the Datamover layer that happen in order to
transparently perform remote data movement within an IP transparently perform remote data movement within an IP
fabric. It is intended that this definition would help map fabric. It is intended that this definition would help map
iSCSI to generic RDMA-capable IP fabrics in the future iSCSI to generic RDMA-capable IP fabrics in the future
comprising TCP, SCTP, and possibly other underlying network comprising TCP, SCTP, and possibly other underlying network
transport layers. transport layers such as InfiniBand.
Table of Contents Table of Contents
1 Definitions and acronyms ...............................5 1 Definitions and acronyms ...............................5
1.1 Definitions ............................................5 1.1 Definitions ............................................5
1.2 Acronyms ...............................................5 1.2 Acronyms ...............................................5
2 Motivation .............................................7 2 Motivation .............................................7
2.1 Intent .................................................7 2.1 Intent .................................................7
2.2 Interpretation of Requirements .........................8 2.2 Interpretation of Requirements .........................8
3 Architectural layering of iSCSI and Datamover layers ...9 3 Architectural layering of iSCSI and Datamover layers ...9
skipping to change at page 5, line 9 skipping to change at page 5, line 9
Figure 8 An abnormal iSCSI connection termination...........59 Figure 8 An abnormal iSCSI connection termination...........59
Figure 9 A SCSI Write data transfer.........................60 Figure 9 A SCSI Write data transfer.........................60
Figure 10 A SCSI Read data transfer.........................61 Figure 10 A SCSI Read data transfer.........................61
Figure 11 A SCSI Read data acknowledgement..................62 Figure 11 A SCSI Read data acknowledgement..................62
Figure 12 Task resource cleanup on abort...................63 Figure 12 Task resource cleanup on abort...................63
1 Definitions and acronyms 1 Definitions and acronyms
1.1 Definitions 1.1 Definitions
I/O Buffer A buffer that is used in a SCSI Read or Write I/O Buffer A buffer that is used in a SCSI Read or Write
operation so SCSI data may be sent from or received into operation so SCSI data may be sent from or received into
that buffer. that buffer.
Datamover protocol A Datamover protocol is a data transfer Datamover protocol A Datamover protocol is a data transfer
wire protocol for iSCSI that meets the requirements wire protocol for iSCSI that meets the requirements
stated in section 6. stated in section 6.
Datamover layer A Datamover layer is a protocol layer Datamover layer A Datamover layer is a protocol layer
within an end node that implements the Datamover within an end node that implements the Datamover
protocol. protocol.
Datamover-assisted - An iSCSI connection is said to be Datamover-assisted - An iSCSI connection is said to be
"Datamover-assisted" when a Datamover layer is enabled "Datamover-assisted" when a Datamover layer is enabled
for moving control and data information on that iSCSI for moving control and data information on that iSCSI
connection. connection.
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].
1.2 Acronyms 1.2 Acronyms
Acronym Definition Acronym Definition
------------------------------------------------------------- -------------------------------------------------------------
DA Datamover Architecture for iSCSI DA Datamover Architecture for iSCSI
DDP Direct Data Placement Protocol DDP Direct Data Placement Protocol
skipping to change at page 7, line 9 skipping to change at page 7, line 9
Sequence Number Acknowledgement for data Sequence Number Acknowledgement for data
TCP Transmission Control Protocol TCP Transmission Control Protocol
TTT Target Transfer Tag TTT Target Transfer Tag
2 Motivation 2 Motivation
2.1 Intent 2.1 Intent
There are new industry and standards initiatives to develop There are relatively new standard protocols that enable
Remote Direct Memory Access (RDMA) and Remote Direct Data Remote Direct Memory Access (RDMA) and Remote Direct Data
Placement (RDDP) technologies to work over IP fabrics. The Placement (RDDP) technologies to work over IP fabrics. The
principal value proposition of these technologies is that principal value proposition of these technologies is that
they enable one end node to place data in the final intended they enable one end node to place data in the final intended
buffer on the remote end node, thus eliminating the data copy buffer on the remote end node, thus eliminating the data copy
that traditionally happens in the receive path to move the that traditionally happens in the receive path to move the
data to the final buffer. The data copy avoidance in turn data to the final buffer. The data copy avoidance in turn
eliminates unnecessary memory bandwidth consumption, substan- eliminates unnecessary memory bandwidth consumption, substan-
tially decreases the reassembly buffer size requirements, and tially decreases the reassembly buffer size requirements, and
preserves CPU cycles that would otherwise be spent in preserves CPU cycles that would otherwise be spent in
skipping to change at page 8, line 24 skipping to change at page 8, line 24
This draft introduces certain architectural abstractions and This draft introduces certain architectural abstractions and
builds an abstract functional interface model between iSCSI builds an abstract functional interface model between iSCSI
and Datamover protocol layers based on those abstractions. and Datamover protocol layers based on those abstractions.
This architectural style is motivated by the following This architectural style is motivated by the following
desires: desires:
a) Provide guidance to Datamover protocol designers a) Provide guidance to Datamover protocol designers
with respect to the functional boundary between with respect to the functional boundary between
iSCSI and the Datamover protocols. This guidance is iSCSI and the Datamover protocols. This guidance is
critical since a significant part of the [RFC3720] critical since a significant part of the [RFC3720]
protocol definition is left unchanged by this protocol definition is left unchanged by DA
Architecture and the iSCSI notions from [RFC3720] architecture and the iSCSI notions from [RFC3720]
(e.g., tasks, ITTs) are leveraged by the Datamover (e.g., tasks, ITTs) are leveraged by the Datamover
protocol. protocol.
b) Aid existing iSCSI implementations to rapidly adapt b) Aid existing iSCSI implementations to rapidly adapt
to this Architecture, largely by leveraging the to DA architecture, largely by leveraging the
architectural abstractions also into implementation architectural abstractions also into implementation
constructs e.g., functions, APIs, modules. constructs e.g., functions, APIs, modules.
However, note that this Architecture does not intend to However, note that DA architecture does not intend to impose
impose any implementation specifics per se. When a DA any implementation specifics per se. When a DA architectural
architectural concept (e.g., Operational Primitive) is concept (e.g., Operational Primitive) is described as
described as mandatory ("MUST") or recommended ("SHOULD") of mandatory ("MUST") or recommended ("SHOULD") of a layer
a layer (iSCSI or Datamover) in this document, the intent is (iSCSI or Datamover) in this document, the intent is that an
that an implementation respectively MUST or SHOULD produce implementation respectively MUST or SHOULD produce the same
the same protocol action as what the model describes. protocol action as what the model describes. Specifically,
Specifically, no implementation compliance in terms of names, no implementation compliance in terms of names, modules or
modules or API arguments etc. is implied by this Architecture API arguments etc. is implied by this Architecture by such
by such use of [RFC2119] terms, only a functional compliance use of [RFC2119] terms, only a functional compliance is
is sought. sought.
3 Architectural layering of iSCSI and Datamover layers 3 Architectural layering of iSCSI and Datamover layers
Figure 1 illustrates an example of the architectural layering Figure 1 illustrates an example of the architectural layering
of iSCSI and Datamover layers, in conjunction with a TCP/IP of iSCSI and Datamover layers, in conjunction with a TCP/IP
implementation of RDMAP/DDP layers in an iSCSI end node. implementation of RDMAP/DDP layers in an iSCSI end node.
Note that RDMAP/DDP/MPA, and TCP protocol layers are shown Note that RDMAP/DDP/MPA, and TCP protocol layers are shown
here only as an example and in reality, DA is completely here only as an example and in reality, DA is completely
oblivious to protocol layers below the Datamover layer. The oblivious to protocol layers below the Datamover layer. The
RDMAP/DDP/MPA protocol stack provides a generic transport RDMAP/DDP/MPA protocol stack provides a generic transport
skipping to change at page 10, line 15 skipping to change at page 10, line 15
1. Defining the notion of a Datamover layer and a Datamover 1. Defining the notion of a Datamover layer and a Datamover
protocol (section 6), protocol (section 6),
2. Defining the functionality distribution between the 2. Defining the functionality distribution between the
iSCSI layer and the Datamover layer along with the iSCSI layer and the Datamover layer along with the
communication model between the two (Operational communication model between the two (Operational
Primitives), and, Primitives), and,
3. Modeling the interactions between the blocks labeled as 3. Modeling the interactions between the blocks labeled as
"iSCSI Layer" and "Datamover Layer" in Figure 1 i.e. "iSCSI Layer" and "Datamover Layer" in Figure 1 i.e.
defining the interface labeled as "DI" in the figure - defining the interface labeled as "DI" in the figure -
for each defined iSCSI PDU, based on the Operational for each defined iSCSI PDU, based on the Operational
Primitives. Primitives.
4 Design Overview 4 Design Overview
This document discusses and defines a model for interactions This document discusses and defines a model for interactions
between the iSCSI layer and a "Datamover layer" (see section between the iSCSI layer and a "Datamover layer" (see section
6) operating within an iSCSI end node, presumably 6) operating within an iSCSI end node, presumably
communicating with one or more iSCSI end nodes with similar communicating with one or more iSCSI end nodes with similar
skipping to change at page 11, line 26 skipping to change at page 11, line 26
protocols as DA places certain requirements and functionality protocols as DA places certain requirements and functionality
expectations on the Datamover layer. However, this document expectations on the Datamover layer. However, this document
itself neither defines any new wire protocol for the itself neither defines any new wire protocol for the
Datamover layer, nor any potential modifications to the iSCSI Datamover layer, nor any potential modifications to the iSCSI
wire protocol to employ the Datamover layer. The scope of wire protocol to employ the Datamover layer. The scope of
this document is strictly limited to specifying the this document is strictly limited to specifying the
architectural framework and the minimally required architectural framework and the minimally required
interactions that happen within an iSCSI end node to leverage interactions that happen within an iSCSI end node to leverage
the Datamover layer. the Datamover layer.
The design ideas behind DA can be summarized thus The design ideas behind DA can be summarized thus
1) DA defines an abstract functional interface model of iSCSI 1) DA defines an abstract functional interface model of iSCSI
layer's interactions with a Datamover layer below i.e. DA layer's interactions with a Datamover layer below i.e. DA
models the interactions between the logical "bottom" models the interactions between the logical "bottom"
interface of iSCSI and the logical "top" interface of a interface of iSCSI and the logical "top" interface of a
Datamover. Datamover.
2) DA guides the wire protocol for a Datamover layer by 2) DA guides the wire protocol for a Datamover layer by
defining the iSCSI knowledge that the Datamover layer may defining the iSCSI knowledge that the Datamover layer may
utilize in its protocol definition (as an example, this utilize in its protocol definition (as an example, this
draft completely limits the notion of "iSCSI session" to draft completely limits the notion of "iSCSI session" to
the iSCSI layer). the iSCSI layer).
skipping to change at page 13, line 36 skipping to change at page 13, line 36
5.1.1 iSCSI data-type PDUs 5.1.1 iSCSI data-type PDUs
An iSCSI data-type PDU is defined as an iSCSI PDU that causes An iSCSI data-type PDU is defined as an iSCSI PDU that causes
data transfer, transparent to the remote iSCSI layer, to take data transfer, transparent to the remote iSCSI layer, to take
place between the peer iSCSI nodes on a full feature phase place between the peer iSCSI nodes on a full feature phase
iSCSI connection. A data-type PDU, when requested for iSCSI connection. A data-type PDU, when requested for
transmission by the sender iSCSI layer, results in the transmission by the sender iSCSI layer, results in the
associated data transfer without the participation of the associated data transfer without the participation of the
remote iSCSI layer, i.e. the PDU itself is not delivered as- remote iSCSI layer, i.e. the PDU itself is not delivered as-
is to the remote iSCSI layer. The following iSCSI PDUs is to the remote iSCSI layer. The following iSCSI PDUs
constitute the set of iSCSI data-type PDUs constitute the set of iSCSI data-type PDUs
1) SCSI Data-In PDU 1) SCSI Data-In PDU
2) R2T PDU 2) R2T PDU
In an iSCSI end node structured as an iSCSI layer and a In an iSCSI end node structured as an iSCSI layer and a
Datamover layer as defined in this document, the solicitation Datamover layer as defined in this document, the solicitation
for Data-out (i.e. R2T PDU) is not delivered to the initiator for Data-out (i.e. R2T PDU) is not delivered to the initiator
iSCSI layer, per the definition of an iSCSI data-type PDU. iSCSI layer, per the definition of an iSCSI data-type PDU.
The data transfer is instead performed via the mechanisms The data transfer is instead performed via the mechanisms
skipping to change at page 17, line 17 skipping to change at page 17, line 17
This section introduces the notion of a "Datamover layer" and This section introduces the notion of a "Datamover layer" and
"Datamover protocol" as meant in this document, and defines "Datamover protocol" as meant in this document, and defines
the requirements on a Datamover protocol. the requirements on a Datamover protocol.
A Datamover layer is the implementation component that A Datamover layer is the implementation component that
realizes a Datamover protocol functionality in an iSCSI- realizes a Datamover protocol functionality in an iSCSI-
capable end node, in communicating with other iSCSI end nodes capable end node, in communicating with other iSCSI end nodes
with similar capabilities. More specifically, a "Datamover with similar capabilities. More specifically, a "Datamover
layer" MUST provide the following functionality and the layer" MUST provide the following functionality and the
"Datamover protocol" MUST consist of the wire protocol "Datamover protocol" MUST consist of the wire protocol
required to realize the following functionality required to realize the following functionality
1) guarantee that all the necessary data transfers take place 1) guarantee that all the necessary data transfers take place
when the local iSCSI layer requests transmitting a command when the local iSCSI layer requests transmitting a command
(in order to complete a SCSI command, for an initiator),or (in order to complete a SCSI command, for an initiator),or
sending/receiving an iSCSI data sequence (in order to sending/receiving an iSCSI data sequence (in order to
complete part of a SCSI command, for a target). complete part of a SCSI command, for a target).
2) transport an iSCSI control-type PDU as-is to the peer 2) transport an iSCSI control-type PDU as-is to the peer
Datamover layer when requested to do so by the local iSCSI Datamover layer when requested to do so by the local iSCSI
layer. layer.
skipping to change at page 20, line 6 skipping to change at page 20, line 6
7.2 Full Feature Phase 7.2 Full Feature Phase
All iSCSI peer communication in the Full Feature Phase All iSCSI peer communication in the Full Feature Phase
happens through the Datamover layers if the iSCSI connection happens through the Datamover layers if the iSCSI connection
is Datamover-assisted. The Architecture assumes that a is Datamover-assisted. The Architecture assumes that a
Datamover layer may require a certain number of opaque local Datamover layer may require a certain number of opaque local
resources for each new iSCSI task. In the normal course of resources for each new iSCSI task. In the normal course of
execution, these task-level resources in the Datamover layer execution, these task-level resources in the Datamover layer
are assumed to be transparently allocated on each task are assumed to be transparently allocated on each task
initiation and deallocated on the conclusion of each task as initiation and deallocated on the conclusion of each task as
appropriate. In exception scenarios however in scenarios appropriate. In exception scenarios however in scenarios
that do not yield a SCSI Response for each task such as ABORT that do not yield a SCSI Response for each task such as ABORT
TASK operation the Architecture assumes that the Datamover TASK operation the Architecture assumes that the Datamover
layer needs to be notified of the individual task layer needs to be notified of the individual task
terminations to aid its task-level resource management. DA terminations to aid its task-level resource management. DA
thus defines the Deallocate_Task_Resources Operational thus defines the Deallocate_Task_Resources Operational
Primitive (section 8.9) to model this task-resource Primitive (section 8.9) to model this task-resource
management. In specifying the ITT qualifier for the management. In specifying the ITT qualifier for the
Deallocate_Task_Resources Primitive, the Architecture further Deallocate_Task_Resources Primitive, the Architecture further
assumes that the Datamover layer tracks its opaque task-level assumes that the Datamover layer tracks its opaque task-level
local resources by the iSCSI ITT. DA also defines local resources by the iSCSI ITT. DA also defines
Send_Control (section 8.1), Put_Data (section 8.2), Get_Data Send_Control (section 8.1), Put_Data (section 8.2), Get_Data
(section 8.3), Data_Completion_Notify(section 9.3), (section 8.3), Data_Completion_Notify(section 9.3),
Data_ACK_Notify (section 9.4), and Control_Notify (section Data_ACK_Notify (section 9.4), and Control_Notify (section
9.1) Operational Primitives to model the various Full Feature 9.1) Operational Primitives to model the various Full Feature
Phase interactions. Phase interactions.
Figure 9, Figure 10, and Figure 11 in section 16.2 show some Figure 9, Figure 10, and Figure 11 in section 16.2 show some
Full Feature Phase interactions SCSI Write task, SCSI Read Full Feature Phase interactions SCSI Write task, SCSI Read
task, and a SCSI Read Data acknowledgement respectively. task, and a SCSI Read Data acknowledgement respectively.
Figure 12 in section 16.2 illustrates how an ABORT TASK Figure 12 in section 16.2 illustrates how an ABORT TASK
operation can be modeled leading to deterministic resource operation can be modeled leading to deterministic resource
cleanup on the Datamover layer. cleanup on the Datamover layer.
7.3 Wrapup 7.3 Wrapup
Once an iSCSI connection becomes Datamover-assisted, the Once an iSCSI connection becomes Datamover-assisted, the
connection continues in that state till the end of the Full connection continues in that state till the end of the Full
Feature Phase, i.e. the termination of the connection. The Feature Phase, i.e. the termination of the connection. The
skipping to change at page 30, line 27 skipping to change at page 30, line 27
unsolicited termination or failure of an iSCSI connection unsolicited termination or failure of an iSCSI connection
providing the Connection_Handle associated with the iSCSI providing the Connection_Handle associated with the iSCSI
Connection. The iSCSI Layer MUST consider the Connection. The iSCSI Layer MUST consider the
Connection_Handle to be invalid upon being so notified. The Connection_Handle to be invalid upon being so notified. The
iSCSI layer processes the connection termination as defined iSCSI layer processes the connection termination as defined
in [RFC3720]. The Datamover layer MUST deallocate the in [RFC3720]. The Datamover layer MUST deallocate the
connection and task resources associated with the terminated connection and task resources associated with the terminated
connection before notifying the iSCSI layer of the connection before notifying the iSCSI layer of the
termination via this Operational Primitive. termination via this Operational Primitive.
A target iSCSI layer being notified of the arrival of TCP A target iSCSI layer being notified of an ungraceful
RESET is an example of when the Connection_Terminate_Notify connection termination by the Datamover layer when the
Operational Primitive is invoked. underlying Transport Connection is torn down due to receiving
a TCP RESET is one example when the
Connection_Terminate_Notify Operational Primitive is invoked.
9.3 Data_Completion_Notify 9.3 Data_Completion_Notify
Input qualifiers: Connection_Handle, ITT, SN Input qualifiers: Connection_Handle, ITT, SN
Return Results: Not specified. Return Results: Not specified.
A Datamover layer notifies its local iSCSI layer on A Datamover layer notifies its local iSCSI layer on
completing the retrieval of the data or upon sending the completing the retrieval of the data or upon sending the
data, as requested in a prior iSCSI data-type PDU, from/to data, as requested in a prior iSCSI data-type PDU, from/to
the peer Datamover layer on the remote iSCSI node via this the peer Datamover layer on the remote iSCSI node via this
Operational Primitive. The iSCSI layer processes the Operational Primitive. The iSCSI layer processes the
operation as defined in [RFC3720]. operation as defined in [RFC3720].
SN may be either the DataSN associated with the SCSI Data-In SN may be either the DataSN associated with the SCSI Data-In
PDU or R2TSN associated with the R2T PDU depending on the PDU or R2TSN associated with the R2T PDU depending on the
SCSI operation. Note that, for targets, a TTT (see SCSI operation. Note that, for targets, a TTT (see
[RFC3720]) could have been specified instead of an SN. [RFC3720]) could have been specified instead of an SN.
However, the considered choice was to leave the SN to be the However, the considered choice was to leave the SN to be the
qualifier for two reasons a) it is generic and applicable qualifier for two reasons a) it is generic and applicable
to initiators and targets as well as Data-in and Data-out, to initiators and targets as well as Data-in and Data-out,
and b) having both SN and TTT qualifiers for the notification and b) having both SN and TTT qualifiers for the notification
was considered onerous on the Datamover layer, in terms of was considered onerous on the Datamover layer, in terms of
state maintenance for each completion notification. The state maintenance for each completion notification. The
implication of this choice is that iSCSI target implication of this choice is that iSCSI target
implementations will have to adapt to using the ITT-SN tuple implementations will have to adapt to using the ITT-SN tuple
in associating the solicited data to the appropriate task, in associating the solicited data to the appropriate task,
rather than the ITT-TTT tuple for doing the same. rather than the ITT-TTT tuple for doing the same.
If Notify_Enable was set in either a Put_Data or a Get_Data If Notify_Enable was set in either a Put_Data or a Get_Data
skipping to change at page 36, line 35 skipping to change at page 36, line 35
The Send_Control Operational Primitive with the following The Send_Control Operational Primitive with the following
input qualifiers is used for requesting the transmission of a input qualifiers is used for requesting the transmission of a
Task Management Function Request PDU. Task Management Function Request PDU.
a) BHS of the Task Management Function Request PDU as defined a) BHS of the Task Management Function Request PDU as defined
in [RFC3720] in [RFC3720]
b) DataDescriptorOut: that defines the I/O Buffer meant for b) DataDescriptorOut: that defines the I/O Buffer meant for
Data-out for the entire command, in the case of a write or Data-out for the entire command, in the case of a write or
bidirectional command (Only valid if Function="TASK bidirectional command (Only valid if Function="TASK
REASSIGN" [RFC3720] ] REASSIGN" [RFC3720] ]
c) DataDescriptorIn: that defines the I/O Buffer meant for c) DataDescriptorIn: that defines the I/O Buffer meant for
Data-in for the entire command, in the case of a read or Data-in for the entire command, in the case of a read or
bidirectional command (Only valid if Function="TASK bidirectional command (Only valid if Function="TASK
REASSIGN" - [RFC3720] ) REASSIGN" - [RFC3720] )
10.3.4 Task Management Function Response 10.3.4 Task Management Function Response
The Send_Control Operational Primitive with the following The Send_Control Operational Primitive with the following
input qualifier is used for requesting the transmission of a input qualifier is used for requesting the transmission of a
skipping to change at page 45, line 30 skipping to change at page 45, line 30
flexibility in compliance in this area. To summarize, flexibility in compliance in this area. To summarize,
sending bulk data transfers (prompted by Put_Data and sending bulk data transfers (prompted by Put_Data and
Get_Data Primitive invocations) on a different transport Get_Data Primitive invocations) on a different transport
medium would be as ill-advised as sending just the Data- medium would be as ill-advised as sending just the Data-
out/Data-in PDUs on a different TCP connection in RFC 3720- out/Data-in PDUs on a different TCP connection in RFC 3720-
based iSCSI implementations. Consequently, all the iSCSI- based iSCSI implementations. Consequently, all the iSCSI-
related security text in [RFC3723] is directly applicable to related security text in [RFC3723] is directly applicable to
a DA-enabled iSCSI implementation. a DA-enabled iSCSI implementation.
Another area with security implications is the Datamover Another area with security implications is the Datamover
connection resource management model which DA defines connection resource management model which DA defines
particularly the Allocate_Connection_Resources Primitive. An particularly the Allocate_Connection_Resources Primitive. An
inadvertent realization of this model could leave an iSCSI inadvertent realization of this model could leave an iSCSI
implementation exposed to denial of service attacks. As implementation exposed to denial of service attacks. As
Figure 2 and Figure 3 in section 16.2 illustrate, the most Figure 2 and Figure 3 in section 16.2 illustrate, the most
effective countermeasure to this potential attack consists of effective countermeasure to this potential attack consists of
performing the Datamover resource allocation when the iSCSI performing the Datamover resource allocation when the iSCSI
layer is sufficiently far along in the iSCSI Login Phase that layer is sufficiently far along in the iSCSI Login Phase that
it is reasonably certain that the peer side is not an it is reasonably certain that the peer side is not an
attacker. In particular, if the Login Phase includes a attacker. In particular, if the Login Phase includes a
SecurityNegotiation stage, an iSCSI end node MUST defer the SecurityNegotiation stage, an iSCSI end node MUST defer the
skipping to change at page 47, line 7 skipping to change at page 47, line 7
refer to [RDDPSEC] for the types of security issues to refer to [RDDPSEC] for the types of security issues to
consider. While [RDDPSEC] elaborates on the security consider. While [RDDPSEC] elaborates on the security
considerations applicable to an RDDP-based Datamover considerations applicable to an RDDP-based Datamover
([iSER]), the document is representative of the type of ([iSER]), the document is representative of the type of
analysis of resource exhaustion and the application of analysis of resource exhaustion and the application of
countermeasures that needs to be done for any Datamover countermeasures that needs to be done for any Datamover
protocol. protocol.
12 IANA Considerations 12 IANA Considerations
If a well-known port is chosen as the mechanism to identify a DA architecture does not have any IANA considerations.
Datamover protocol on TCP, the well-known port must be
registered with IANA. Because the use of the well-known port
is specific to the Datamover protocol in such a case, the
resulting IANA considerations from such use must be specified
by the specific Datamover protocol. DA itself does not have
any specific IANA considerations.
13 References and Bibliography 13 References and Bibliography
13.1 Normative References 13.1 Normative References
[RFC3720] J. Satran, K. Meth, C. Sapuntzakis, M. Chadalapaka, [RFC3720] J. Satran, K. Meth, C. Sapuntzakis, M. Chadalapaka,
E. Zeidner, "Internet Small Computer Systems Interface E. Zeidner, "Internet Small Computer Systems Interface
(iSCSI)", RFC 3720, April 2004. (iSCSI)", RFC 3720, April 2004.
[RFC3723] B. Aboba, J. Tseng, J. Walker, V. Rangan, F. [RFC3723] B. Aboba, J. Tseng, J. Walker, V. Rangan, F.
Travostino, "Securing Block Storage Protocols over IP", Travostino, "Securing Block Storage Protocols over IP",
RFC 3723, April 2004. RFC 3723, April 2004.
[RFC2119] S. Bradner, "Key words for use in RFCs to Indicate
Requirement Levels", March 1997.
13.2 Informative References 13.2 Informative References
[DDP] H. Shah et al., "Direct Data Placement over Reliable [DDP] H. Shah et al., "Direct Data Placement over Reliable
Transports", IETF Internet Draft draft-ietf-rddp-ddp- Transports", IETF Internet Draft draft-ietf-rddp-ddp-
04.txt (work in progress), February 2005. 06.txt (work in progress), June 2006.
[iSER] M. Ko et al., "iSCSI Extensions for RDMA", IETF [iSER] M. Ko et al., "iSCSI Extensions for RDMA", IETF
Internet Draft draft-ietf-ips-iser-03.txt (work in Internet Draft draft-ietf-ips-iser-03.txt (work in
progress), April 2005. progress), April 2005.
[MPA] P. Culley et al., "Marker PDU Aligned Framing for TCP
Specification", IETF Internet Draft draft-ietf-rddp-mpa-
02.txt (work in progress), February 2005.
[RDDPSEC] J. Pinkerton et al., "DDP/RDMAP Security", IETF [RDDPSEC] J. Pinkerton et al., "DDP/RDMAP Security", IETF
Internet Draft draft-ietf-rddp-security-07.txt (work in Internet Draft draft-ietf-rddp-security-07.txt (work in
[RDMAP] R. Recio et al., "An RDMA Protocol Specification",
IETF Internet Draft draft-ietf-rddp-rdmap-03.txt (work in
progress), February 2005.
[RFC2119] Bradner, S. "Key Words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[SAM] ANSI X3.270-1998, SCSI-3 Architecture Model (SAM).
[SCTP] R. Stewart et al., "Stream Control Transmission
Protocol", RFC 2960, October 2000.
[SPC3]T10/1416-D, SCSI Primary Commands-3.
14 Authors' Addresses 14 Authors' Addresses
Mallikarjun Chadalapaka Mallikarjun Chadalapaka
Hewlett-Packard Company Hewlett-Packard Company
8000 Foothills Blvd. 8000 Foothills Blvd.
Roseville, CA 95747-5668, USA Roseville, CA 95747-5668, USA
Phone: +1-916-785-5621 Phone: +1-916-785-5621
E-mail: cbm@rose.hp.com E-mail: cbm@rose.hp.com
skipping to change at page 54, line 37 skipping to change at page 54, line 37
c) The onus is on a reliable Datamover (per requirements c) The onus is on a reliable Datamover (per requirements
stated in section 6) to realize end-to-end data stated in section 6) to realize end-to-end data
acknowledgements via Datamover-specific means. In view of acknowledgements via Datamover-specific means. In view of
this, even data-ACK-type SNACKs are unnecessary to be used. this, even data-ACK-type SNACKs are unnecessary to be used.
Consequently, an initiator may never request sending a Consequently, an initiator may never request sending a
SNACK Request in this model assuming that the proactive SNACK Request in this model assuming that the proactive
(timeout-driven) SNACK functionality is turned off in the (timeout-driven) SNACK functionality is turned off in the
legacy iSCSI code. legacy iSCSI code.
d) Note that the current DA model for bootstrapping a d) Note that the current DA model for bootstrapping a
Connection_Handle into service i.e. associating a new Connection_Handle into service i.e. associating a new
iSCSI connection with a Connection_Handle clearly implies iSCSI connection with a Connection_Handle clearly implies
that the iSCSI connection must already be in full feature that the iSCSI connection must already be in full feature
phase when the Datamover layer comes into the stack. This phase when the Datamover layer comes into the stack. This
further implies that the iSCSI login phase must be carried further implies that the iSCSI login phase must be carried
out in the traditional "Byte streaming mode" with no out in the traditional "Byte streaming mode" with no
assistance or involvement from the Datamover layer. assistance or involvement from the Datamover layer.
16.2 Examples of Datamover interactions 16.2 Examples of Datamover interactions
The figures described in this section provide some examples The figures described in this section provide some examples
of the usage of Operational Primitives in interactions of the usage of Operational Primitives in interactions
between the iSCSI layer and the Datamover layer. The between the iSCSI layer and the Datamover layer. The
following abbreviations are used in this section. following abbreviations are used in this section.
Avail Available Avail Available
Abted - Aborted Abted - Aborted
Buf I/O Buffer Buf I/O Buffer
Cmd Command Cmd Command
Compl Complete Compl Complete
Conn - Connection Conn - Connection
Ctrl_Ntfy Control_Notify Ctrl_Ntfy Control_Notify
Dal_Tk_Res Deallocate_Task_Resources Dal_Tk_Res Deallocate_Task_Resources
Data_Cmp_Nfy Data_Completion_Notify Data_Cmp_Nfy Data_Completion_Notify
Data_ACK_Nfy Data_ACK_Notify Data_ACK_Nfy Data_ACK_Notify
DM Datamover DM Datamover
Imm - Immediate Imm - Immediate
Snd_Ctrl Send_Control Snd_Ctrl Send_Control
Msg Message Msg Message
Resp Response Resp Response
Sol Solicited Sol Solicited
TMF Req Task Management Function Request TMF Req Task Management Function Request
TMF Res Task Management Function Response TMF Res Task Management Function Response
Trans Transfer Trans Transfer
Unsol Unsolicited Unsol Unsolicited
| | Allocate_Connection_Resources | D | ^ | | Allocate_Connection_Resources | D | ^
| |------------------------------->| a | | | |------------------------------->| a | |
| | Connection resources are | t | | | | Connection resources are | t | |
| i | successfully allocated | a | | iSCSI | i | successfully allocated | a | | iSCSI
| S | | m | | Login | S | | m | | Login
| C | | o | | Phase | C | | o | | Phase
| S | | v | | | S | | v | |
| I | | e | | | I | | e | |
| | | r | | Login Phase | | | r | | Login Phase
| L | Final Login Response (success) v succeeds | L | Final Login Response (success) v succeeds
skipping to change at page 64, line 7 skipping to change at page 64, line 7
| | | r| | r| | | | | | r| | r| | |
| | | | | | | | | | | | | | | |
| |Dal_Tk_Res| | | |Dal_Tk_Res | | | |Dal_Tk_Res| | | |Dal_Tk_Res | |
| |--------->| | | |<-----------| | | |--------->| | | |<-----------| |
| | | | | | | | | | | | | | | |
Figure 12 Task resource cleanup on abort Figure 12 Task resource cleanup on abort
17 Full Copyright Statement 17 Full Copyright Statement
Copyright (C) The Internet Society (2005). This document is Copyright (C) The IETF Trust (2006). This document is
subject to the rights, licenses and restrictions contained in subject to the rights, licenses and restrictions contained in
BCP 78, and except as set forth therein, the authors retain BCP 78, and except as set forth therein, the authors retain
all their rights. all their rights.
This document and the information contained herein are This document and the information contained herein are
provided on an "AS IS" basis and THE CONTRIBUTOR, THE provided on an "AS IS" basis and THE CONTRIBUTOR, THE
ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY),
THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE
DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT
NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
skipping to change at page 65, line 26 skipping to change at page 65, line 26
Copies of IPR disclosures made to the IETF Secretariat and Copies of IPR disclosures made to the IETF Secretariat and
any assurances of licenses to be made available, or the any assurances of licenses to be made available, or the
result of an attempt made to obtain a general license or result of an attempt made to obtain a general license or
permission for the use of such proprietary rights by permission for the use of such proprietary rights by
implementers or users of this specification can be obtained implementers or users of this specification can be obtained
from the IETF on-line IPR repository at from the IETF on-line IPR repository at
http://www.ietf.org/ipr. http://www.ietf.org/ipr.
The IETF invites any interested party to bring to its The IETF invites any interested party to bring to its
attention any copyrights, patents or patent applications, attention any copyrights, patents or patent applications, or
or other proprietary rights that may cover technology that other proprietary rights that may cover technology that may
may be required to implement this standard. Please address be required to implement this standard. Please address the
the information to the IETF at ietf-ipr@ietf.org. information to the IETF at ietf-ipr@ietf.org.
 End of changes. 50 change blocks. 
88 lines changed or deleted 77 lines changed or added

This html diff was produced by rfcdiff 1.33. The latest version is available from http://tools.ietf.org/tools/rfcdiff/