draft-ietf-ips-iwarp-da-04.txt   draft-ietf-ips-iwarp-da-05.txt 
INTERNET DRAFT Mallikarjun Chadalapaka INTERNET DRAFT Mallikarjun Chadalapaka
draft-ietf-ips-iwarp-da-04.txt HP draft-ietf-ips-iwarp-da-05.txt HP
John Hufferd John Hufferd
IBM IBM
Julian Satran Julian Satran
IBM IBM
Hemal Shah Hemal Shah
Intel Intel
Expires Expires
Datamover Architecture for iSCSI (DA) Datamover Architecture for iSCSI (DA)
skipping to change at page 1, line 31 skipping to change at page 1, line 31
Internet-Drafts are working documents of the Internet Internet-Drafts are working documents of the Internet
Engineering Task Force (IETF), its areas, and its working Engineering Task Force (IETF), its areas, and its working
groups. Note that other groups may also distribute working groups. Note that other groups may also distribute working
documents as Internet-Drafts. documents as Internet-Drafts.
Internet-Drafts are draft documents valid for a maximum of Internet-Drafts are draft documents valid for a maximum of
six months and may be updated, replaced, or obsoleted by six months and may be updated, replaced, or obsoleted by
other documents at any time. It is inappropriate to use other documents at any time. It is inappropriate to use
Internet-Drafts as reference material or to cite them other Internet-Drafts as reference material or to cite them other
than a "work in progress." than as "work in progress."
The list of current Internet-Drafts can be accessed at The list of current Internet-Drafts can be accessed at
http://www.ietf.org/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. Datamover Architecture of application protocols onto TCP/IP. Datamover Architecture
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 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and
skipping to change at page 8, line 32 skipping to change at page 8, line 32
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 DA 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 DA 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 DA architecture does not intend to impose However, note that DA architecture does not intend to impose
any implementation specifics per se. When a DA architectural any implementation specifics per se. When a DA architectural
concept (e.g., Operational Primitive) is described as concept (e.g., Operational Primitive) is described as
mandatory ("MUST") or recommended ("SHOULD") of a layer mandatory ("MUST") or recommended ("SHOULD") of a layer
(iSCSI or Datamover) in this document, the intent is that an (iSCSI or Datamover) in this document, the intent is that an
implementation respectively MUST or SHOULD produce the same implementation respectively MUST or SHOULD produce the same
protocol action as what the model describes. Specifically, protocol action as what the model describes. Specifically,
no implementation compliance in terms of names, modules or no implementation compliance in terms of names, modules or
API arguments etc. is implied by this Architecture by such API arguments etc. is implied by this Architecture by such
use of [RFC2119] terms, only a functional compliance is use of [RFC2119] terms, only a functional compliance 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 ([DDP]) layers in an iSCSI end
Note that RDMAP/DDP/MPA, and TCP protocol layers are shown node. Note that RDMAP/DDP/MPA, and TCP protocol layers are
here only as an example and in reality, DA is completely shown here only as an example and in reality, DA is
oblivious to protocol layers below the Datamover layer. The completely oblivious to protocol layers below the Datamover
RDMAP/DDP/MPA protocol stack provides a generic transport layer. The RDMAP/DDP/MPA protocol stack provides a generic
service with direct data placement. There is no need to transport service with direct data placement. There is no
tailor the implementation of this protocol stack to the need to tailor the implementation of this protocol stack to
specific ULP to benefit from these services. the specific ULP to benefit from these services.
Initiator stack Target stack Initiator stack Target stack
+----------------+ SCSI application +----------------+ +----------------+ SCSI application +----------------+
| SCSI Layer | protocols | SCSI Layer | | SCSI Layer | protocols | SCSI Layer |
+----------------+ +----------------+ +----------------+ +----------------+
^ ^ ^ ^
| | | |
v v v v
+----------------+ iSCSI protocol +----------------+ +----------------+ iSCSI protocol +----------------+
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 29 skipping to change at page 30, line 29
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 an ungraceful A target iSCSI layer being notified of an ungraceful
connection termination by the Datamover layer when the connection termination by the Datamover layer when the
underlying Transport Connection is torn down due to receiving underlying Transport Connection is torn down. Such a
a TCP RESET is one example when the Connection_Terminate_Notify Operational Primitive may be
Connection_Terminate_Notify Operational Primitive is invoked. triggered, for example, by a TCP RESET in cases where the
underlying Transport Connection uses TCP.
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 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
 End of changes. 37 change blocks. 
47 lines changed or deleted 48 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/