draft-ietf-ips-iscsi-impl-guide-08.txt   draft-ietf-ips-iscsi-impl-guide-09.txt 
INTERNET DRAFT Mallikarjun Chadalapaka INTERNET DRAFT Mallikarjun Chadalapaka
draft-ietf-ips-iscsi-impl-guide-08.txt Hewlett-Packard Co. draft-ietf-ips-iscsi-impl-guide-09.txt Hewlett-Packard Co.
Editor Editor
Updates: RFC 3720 Updates: RFC 3720
Intended status: Proposed Standard Intended status: Proposed Standard
Expires Expires December 2007
November 2007
iSCSI Corrections and Clarifications iSCSI Corrections and Clarifications
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.
skipping to change at page 3, line 7 skipping to change at page 3, line 7
architecture and command sets onto TCP/IP. RFC 3720 defines architecture and command sets onto TCP/IP. RFC 3720 defines
the iSCSI protocol. This document compiles the the iSCSI protocol. This document compiles the
clarifications to the original protocol definition in RFC clarifications to the original protocol definition in RFC
3720 to serve as a companion document for the iSCSI 3720 to serve as a companion document for the iSCSI
implementers. This document updates RFC 3720 and the text in implementers. This document updates RFC 3720 and the text in
this document supersedes the text in RFC 3720 when the two this document supersedes the text in RFC 3720 when the two
differ. differ.
Table of Contents Table of Contents
1 Definitions and acronyms ...............................5 1 Definitions, Acronyms and Document Summary............. 5
1.1 Definitions ............................................5 1.1 Definitions ............................................5
1.2 Acronyms ...............................................5 1.2 Acronyms ...............................................5
2 Introduction ...........................................7 1.3 Clarifications, Changes and New Semantics.............. 6
3 iSCSI semantics for SCSI tasks .........................8 2 Introduction........................................... 9
3.1 Residual handling ......................................8 3 iSCSI semantics for SCSI tasks........................ 10
3.1.1 Overview..............................................8 3.1 Residual handling..................................... 10
3.1.2 SCSI REPORT LUNS and Residual Overflow................9 3.1.1 Overview ............................................ 10
3.2 R2T Ordering ..........................................10 3.1.2 SCSI REPORT LUNS and Residual Overflow .............. 11
3.3 Model Assumptions for Response Ordering ...............11 3.2 R2T Ordering.......................................... 12
3.3.1 Model Description....................................11 3.3 Model Assumptions for Response Ordering............... 13
3.3.2 iSCSI Semantics with the Interface Model.............12 3.3.1 Model Description ................................... 13
3.3.3 Current List of Fenced Response Use Cases............12 3.3.2 iSCSI Semantics with the Interface Model ............ 14
4 Task Management .......................................14 3.3.3 Current List of Fenced Response Use Cases ........... 14
4.1 Requests Affecting Multiple Tasks .....................14 4 Task Management....................................... 16
4.1.1 Scope of affected tasks..............................14 4.1 Requests Affecting Multiple Tasks..................... 16
4.1.2 Clarified multi-task abort semantics.................14 4.1.1 Scope of affected tasks ............................. 16
4.1.3 Updated multi-task abort semantics...................16 4.1.2 Clarified multi-task abort semantics ................ 16
4.1.3 Updated multi-task abort semantics .................. 18
4.1.4 Affected tasks shared across RFC3720 & FastAbort 4.1.4 Affected tasks shared across RFC3720 & FastAbort
sessions....................................................18 sessions ................................................... 20
4.1.5 Implementation considerations........................19 4.1.5 Implementation considerations ....................... 21
4.1.6 Rationale behind the new semantics...................20 4.1.6 Rationale behind the new semantics .................. 22
5 Discovery semantics ...................................22 5 Discovery semantics................................... 24
5.1 Error Recovery for Discovery Sessions .................22 5.1 Error Recovery for Discovery Sessions................. 24
5.2 Reinstatement Semantics of Discovery Sessions .........22 5.2 Reinstatement Semantics of Discovery Sessions......... 24
5.2.1 Unnamed Discovery Sessions...........................23 5.2.1 Unnamed Discovery Sessions .......................... 25
5.2.2 Named Discovery Sessions.............................23 5.2.2 Named Discovery Sessions ............................ 25
5.3 Target PDUs during Discovery ..........................24 5.3 Target PDUs during Discovery.......................... 26
6 Negotiation and Others ................................25 6 Negotiation and Others................................ 27
6.1 TPGT Values ...........................................25 6.1 TPGT Values........................................... 27
6.2 SessionType Negotiation ...............................25 6.2 SessionType Negotiation............................... 27
6.3 Understanding NotUnderstood ...........................25 6.3 Understanding NotUnderstood........................... 27
6.4 Outstanding Negotiation Exchanges .....................26 6.4 Outstanding Negotiation Exchanges..................... 28
7 iSCSI Error Handling and Recovery .....................27 7 iSCSI Error Handling and Recovery..................... 29
7.1 ITT ...................................................27 7.1 ITT................................................... 29
7.2 Format Errors .........................................27 7.2 Format Errors......................................... 29
7.3 Digest Errors .........................................27 7.3 Digest Errors......................................... 29
7.4 Message Error Checking ................................28 7.4 Message Error Checking................................ 30
8 iSCSI PDUs ............................................29 8 iSCSI PDUs............................................ 31
8.1 Asynchronous Message ..................................29 8.1 Asynchronous Message.................................. 31
8.2 Reject ................................................29 8.2 Reject................................................ 31
9 Login/Text Operational Text Keys ......................31 9 Login/Text Operational Text Keys...................... 33
9.1 TaskReporting .........................................31 9.1 TaskReporting......................................... 33
10 Security Considerations ...............................33 10 Security Considerations............................... 35
11 IANA Considerations ...................................34 11 IANA Considerations................................... 36
11.1 iSCSI-related IANA registries........................34 11.1 iSCSI-related IANA registries ....................... 36
11.2 iSCSI Opcodes........................................34 11.2 iSCSI Opcodes ....................................... 36
11.3 iSCSI Login/Text Keys................................37 11.3 iSCSI Login/Text Keys ............................... 39
11.4 iSCSI Asynchronous Events............................39 11.4 iSCSI Asynchronous Events ........................... 41
11.5 iSCSI Task Management Function Codes.................40 11.5 iSCSI Task Management Function Codes ................ 42
11.6 iSCSI Login Response Status Codes....................41 11.6 iSCSI Login Response Status Codes ................... 43
11.7 iSCSI Reject Reason Codes............................43 11.7 iSCSI Reject Reason Codes ........................... 45
11.8 iSER Opcodes.........................................45 11.8 iSER Opcodes ........................................ 47
12 References and Bibliography ...........................46 12 References and Bibliography........................... 49
12.1 Normative References.................................46 12.1 Normative References ................................ 49
12.2 Informative References...............................46 12.2 Informative References .............................. 49
13 Editor's Address ......................................47 13 Editor's Address...................................... 50
14 Acknowledgements ......................................48 14 Acknowledgements...................................... 51
15 Full Copyright Statement ..............................49 15 Full Copyright Statement.............................. 52
16 Intellectual Property Statement .......................50 16 Intellectual Property Statement....................... 53
1 Definitions and acronyms 1 Definitions, Acronyms and Document Summary
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. For a read or write data transfer to take that buffer. For a read or write data transfer to take
place for a task, an I/O Buffer is required on the place for a task, an I/O Buffer is required on the
initiator and at least one required on the target. initiator and at least one required on the target.
SCSI-Presented Data Transfer Length (SPDTL): SPDTL is the SCSI-Presented Data Transfer Length (SPDTL): SPDTL is the
skipping to change at page 7, line 5 skipping to change at page 6, line 40
Sequence Number Acknowledgement for data Sequence Number Acknowledgement for data
TCP Transmission Control Protocol TCP Transmission Control Protocol
TMF Task Management Function TMF Task Management Function
TTT Target Transfer Tag TTT Target Transfer Tag
UA Unit Attention UA Unit Attention
1.3 Clarifications, Changes and New Semantics
This document specifies certain changes to [RFC3720] semantics
as well as defines new iSCSI semantics. In addition, this
document also clarifies the [RFC3720] semantics. This section
summarizes the contents of the document, categorizing each
section into one or more of a Clarification, a Change or a New
Semantic.
Section 3.1.1: Clarification on iSCSI residuals computation
general principles
Section 3.1.2: Clarification on iSCSI residuals computation
with an example
Section 3.2: Clarification on R2T ordering requirements
Section 3.3: New Semantics for Response Ordering in multi-
connection iSCSI sessions
Section 4.1.2: Clarifications, Changes and New Semantics on
multi-task abort semantics that all implementations must
comply with
Section 4.1.3: Changes and New Semantics (FastAbort
semantics) on multi-task abort semantics that
implementations should use for faster error recovery
Section 4.1.3.1: Changes in iSCSI Clearing effects semantics
resulting out of new FastAbort semantics
Section 4.1.4: New Semantics on third-party session
interactions with the new FastAbort semantics
Section 4.1.5: Clarification on implementation considerations
related to outstanding data transfers in order to realize
right iSCSI protocol behavior
Section 4.1.6: Clarification on the intent behind FastAbort
semantics (not clarifications to [RFC3720] semantics)
Section 5.1: Clarification on error recovery semantics as
applicable to Discovery sessions
Section 5.2.1: Clarification and New Semantics on applying
ISID RULE ([RFC3720]) to Unnamed Discovery Sessions
Section 5.2.2: Clarification on applying ISID RULE to Named
Discovery Sessions
Section 5.3: Clarification on allowed PDU types and target
Logout notification behavior on a Discovery session
Section 6.1: Clarification on the legality of TPGT value of
zero
Section 6.2: Clarification on the negotiating order of
SessionType with respect to other keys
Section 6.3: Clarification on NotUnderstood negotiation
response on declarative keys and the implied semantics
Section 6.4: Clarification on the number of legal outstanding
negotiation PDUs (Text or Login-related)
Section 7.1: Clarification on usage of ITT value of
0xffffffff
Section 7.2: Clarification on what constitute format errors
for the purpose of error recovery defined in [RFC3720]
Section 7.3: Change in error recovery semantics for the case
of discarding unsolicited PDUs
Section 7.4: Clarification on the intended level of error
checking on inbound PDUs
Section 8.1: New Semantics for a new AsyncEvent code
Section 8.2: Change of legal status for Reject reason code
0x0b, it is now deprecated
Section 9.1: New Semantics for a new text key TaskReporting
2 Introduction 2 Introduction
Several iSCSI implementations had been built after [RFC3720] was Several iSCSI implementations had been built after [RFC3720] was
published and the iSCSI community is now richer by the resulting published and the iSCSI community is now richer by the resulting
implementation expertise. The goal of this document is to implementation expertise. The goal of this document is to
leverage this expertise both to offer clarifications to the leverage this expertise both to offer clarifications to the
[RFC3720] semantics and to address defects in [RFC3720] as [RFC3720] semantics and to address defects in [RFC3720] as
appropriate. This document intends to offer critical guidance appropriate. This document intends to offer critical guidance
to implementers with regard to non-obvious iSCSI implementation to implementers with regard to non-obvious iSCSI implementation
aspects so as to improve interoperability and accelerate iSCSI aspects so as to improve interoperability and accelerate iSCSI
skipping to change at page 10, line 40 skipping to change at page 12, line 40
than the ALLOCATION LENGTH that was sent in the REPORT LUNS CDB. than the ALLOCATION LENGTH that was sent in the REPORT LUNS CDB.
A common initiator behavior in this situation is to re-issue the A common initiator behavior in this situation is to re-issue the
REPORT LUNS command with a larger ALLOCATION LENGTH. REPORT LUNS command with a larger ALLOCATION LENGTH.
3.2 R2T Ordering 3.2 R2T Ordering
Section 10.8 in [RFC3720] says the following: Section 10.8 in [RFC3720] says the following:
The target may send several R2T PDUs. It, therefore, can have The target may send several R2T PDUs. It, therefore, can have
a number of pending data transfers. The number of outstanding a number of pending data transfers. The number of outstanding
R2T PDUs are limited by the value of the negotiated key R2T PDUs is limited by the value of the negotiated key
MaxOutstandingR2T. Within a connection, outstanding R2Ts MUST MaxOutstandingR2T. Within a connection, outstanding R2Ts MUST
be fulfilled by the initiator in the order in which they were be fulfilled by the initiator in the order in which they were
received. received.
The quoted [RFC3720] text was unclear on the scope of The quoted [RFC3720] text was unclear on the scope of
applicability - either per task, or across all tasks on a applicability - either per task, or across all tasks on a
connection - and may be interpreted as either. This section is connection - and may be interpreted as either. This section is
intended to clarify that the scope of applicability of the intended to clarify that the scope of applicability of the
quoted text is a task. No R2T ordering relationship - either in quoted text is a task. No R2T ordering relationship - either in
generation at the target or in fulfilling at the initiator - generation at the target or in fulfilling at the initiator -
skipping to change at page 15, line 15 skipping to change at page 17, line 15
The initiator iSCSI layer: The initiator iSCSI layer:
a. MUST continue to respond to each TTT received for the a. MUST continue to respond to each TTT received for the
affected tasks. affected tasks.
b. SHOULD process any responses received for affected tasks in b. SHOULD process any responses received for affected tasks in
the normal fashion. This is acceptable because the the normal fashion. This is acceptable because the
responses are guaranteed to have been sent prior to the TMF responses are guaranteed to have been sent prior to the TMF
response. response.
c. Should receive the TMF Response concluding all the tasks in c. SHOULD receive the TMF Response concluding all the tasks in
the set of affected tasks. the set of affected tasks unless the initiator has done
something (e.g.,LU reset, connection drop) that may prevent
the TMF Response from being sent or received. The
initiator MUST thus conclude all affected tasks as part of
this step in either case, and MUST discard any TMF Response
received after the affected tasks are concluded.
The target iSCSI layer: The target iSCSI layer:
a. MUST wait for responses on currently valid target transfer a. MUST wait for responses on currently valid target transfer
tags of the affected tasks from the issuing initiator. MAY tags of the affected tasks from the issuing initiator. MAY
wait for responses on currently valid target transfer tags wait for responses on currently valid target transfer tags
of the affected tasks from third-party initiators. of the affected tasks from third-party initiators.
b. MUST wait (concurrent with the wait in Step.a) for all b. MUST wait (concurrent with the wait in Step.a) for all
commands of the affected tasks to be received based on the commands of the affected tasks to be received based on the
skipping to change at page 25, line 42 skipping to change at page 27, line 42
not understand the proposed key semantics. This section seeks not understand the proposed key semantics. This section seeks
to clarify that NotUnderstood is a valid answer for both to clarify that NotUnderstood is a valid answer for both
declarative and negotiated keys. The general iSCSI philosophy declarative and negotiated keys. The general iSCSI philosophy
is that comprehension precedes processing for any iSCSI key. A is that comprehension precedes processing for any iSCSI key. A
proposer of an iSCSI key, negotiated or declarative, in a text proposer of an iSCSI key, negotiated or declarative, in a text
key exchange MUST thus be able to properly handle a key exchange MUST thus be able to properly handle a
NotUnderstood response. NotUnderstood response.
The proper way to handle a NotUnderstood response depends on The proper way to handle a NotUnderstood response depends on
where the key is specified and whether the key is declarative where the key is specified and whether the key is declarative
vs. negotiated All keys defined in [RFC3720] MUST be supported vs. negotiated. All keys defined in [RFC3720] MUST be supported
by all compliant implementations; a NotUnderstood answer on any by all compliant implementations; a NotUnderstood answer on any
of the [RFC3720] keys therefore MUST be considered a protocol of the [RFC3720] keys therefore MUST be considered a protocol
error and handled accordingly. For all other later keys, a error and handled accordingly. For all other later keys, a
NotUnderstood answer concludes the negotiation for a negotiated NotUnderstood answer concludes the negotiation for a negotiated
key whereas for a declarative key, a NotUnderstood answer simply key whereas for a declarative key, a NotUnderstood answer simply
informs the declarer of lack of comprehension by the receiver. informs the declarer of lack of comprehension by the receiver.
In either case, a NotUnderstood answer always requires that the In either case, a NotUnderstood answer always requires that the
protocol behavior associated with that key be not used within protocol behavior associated with that key be not used within
the scope of the key (connection/session) by either side. the scope of the key (connection/session) by either side.
skipping to change at page 36, line 52 skipping to change at page 38, line 52
0x32, Target, Asynchronous Message, [RFC3720] 0x32, Target, Asynchronous Message, [RFC3720]
0x3c-0x3e, Target, Vendor specific codes, [RFC3720] 0x3c-0x3e, Target, Vendor specific codes, [RFC3720]
0x3f, Target, Reject, [RFC3720] 0x3f, Target, Reject, [RFC3720]
"Reserved to IANA" opcodes: 0x11, 0x12, 0x1f, 0x30 "Reserved to IANA" opcodes: 0x11, 0x12, 0x1f, 0x30
Allocation Policy: Allocation Policy:
Standards Action ([IANA]), Expert Review ([IANA]) Standards Action ([IANA]): This is required for defining the
semantics of the opcode
Expert Review ([IANA]): This is required for selecting the
specific opcode(s) to allocate in order to ensure compliance
with the earlier "Allocation request guidance to requesters"
11.3 iSCSI Login/Text Keys 11.3 iSCSI Login/Text Keys
Name of the registry: "iSCSI Text Keys" Name of the registry: "iSCSI Text Keys"
Namespace details: Key=value pairs with "Key" names in UTF-8 Namespace details: Key=value pairs with "Key" names in UTF-8
Unicode, and the permissible "value" options for the "Key" are Unicode, and the permissible "value" options for the "Key" are
Key-dependent. [RFC3720] defines the rules on key names and Key-dependent. [RFC3720] defines the rules on key names and
allowed values allowed values
skipping to change at page 46, line 41 skipping to change at page 49, line 41
(iSCSI) Naming and Discovery", RFC 3721, April 2004. (iSCSI) Naming and Discovery", RFC 3721, April 2004.
[RFC3723] Aboba, B., Tseng, J., Walker, J., Rangan, V., and [RFC3723] Aboba, B., Tseng, J., Walker, J., Rangan, V., and
F. Travostino, "Securing Block Storage Protocols over IP", F. Travostino, "Securing Block Storage Protocols over IP",
RFC 3723, April 2004. RFC 3723, April 2004.
[RFC3722] Bakke, M., "String Profile for Internet Small [RFC3722] Bakke, M., "String Profile for Internet Small
Computer Systems Interface (iSCSI) Names", RFC 3722, April Computer Systems Interface (iSCSI) Names", RFC 3722, April
2004. 2004.
[RFC2119] Bradner, S. "Key Words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[SAM2] ANSI INCITS 366-2003, SCSI Architecture Model-2 (SAM- [SAM2] ANSI INCITS 366-2003, SCSI Architecture Model-2 (SAM-
2). 2).
[SAM3] ANSI INCITS 402-2005, SCSI Architecture Model-3 (SAM- [SAM3] ANSI INCITS 402-2005, SCSI Architecture Model-3 (SAM-
3). 3).
[SAM4] T10 Project: 1683-D, SCSI Architecture Model-4 (SAM- [SAM4] T10 Project: 1683-D, SCSI Architecture Model-4 (SAM-
4), Work in Progress. 4), Work in Progress.
13 Editor's Address 13 Editor's Address
 End of changes. 13 change blocks. 
70 lines changed or deleted 158 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/