idnits 2.17.1 draft-ietf-storm-iscsi-sam-09.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (August 2013) is 3906 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Missing Reference: 'RFC-cons' is mentioned on line 1026, but not defined == Missing Reference: 'RFCxxx' is mentioned on line 1097, but not defined ** Obsolete normative reference: RFC 5048 (Obsoleted by RFC 7143) ** Obsolete normative reference: RFC 5226 (ref. 'IANA') (Obsoleted by RFC 8126) -- Possible downref: Non-RFC (?) normative reference: ref. 'SAM2' -- Possible downref: Non-RFC (?) normative reference: ref. 'SAM5' -- Possible downref: Non-RFC (?) normative reference: ref. 'SPC4' -- Obsolete informational reference (is this intentional?): RFC 3720 (Obsoleted by RFC 7143) Summary: 2 errors (**), 0 flaws (~~), 3 warnings (==), 5 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 1 Storage Maintenance (StorM) Working Group Frederick Knight 2 Internet Draft NetApp 3 Intended status: Standards Track M. Chadalapaka 4 Expires: February 2014 Microsoft 5 August 2013 7 Internet Small Computer Systems Interface (iSCSI) SCSI Features 8 Update 9 draft-ietf-storm-iscsi-sam-09.txt 11 Abstract 13 Internet Small Computer Systems Interface (iSCSI) is a SCSI 14 transport protocol that maps the SCSI family of protocols onto 15 TCP/IP. The iSCSI protocol as specified in RFCxxx (and as 16 previously specified by the combination of RFC 3720 and RFC 17 5048) is based on the SAM-2 (SCSI Architecture Model - 2) 18 version of the SCSI family of protocols. This document 19 defines enhancements to the iSCSI protocol to support certain 20 additional features of the SCSI protocol that were defined in 21 SAM-3, SAM-4, and SAM-5. 23 This document is a companion document to RFCxxx. 25 -------------------------------------------------------- 26 RFC EDITORS NOTE: The above two references to RFCxxx should 27 reference the RFC number assigned to the draft-ietf-storm- 28 iscsi-cons-xx document, and this note should be removed. 29 -------------------------------------------------------- 31 Status of this Memo 33 This Internet-Draft is submitted to IETF in full conformance with 34 the provisions of BCP 78 and BCP 79. 36 Internet-Drafts are working documents of the Internet Engineering 37 Task Force (IETF), its areas, and its working groups. Note that 38 other groups may also distribute working documents as Internet- 39 Drafts. 41 Internet-Drafts are draft documents valid for a maximum of six 42 months and may be updated, replaced, or obsoleted by other 43 documents at any time. It is inappropriate to use Internet- 44 Drafts as reference material or to cite them other than as "work 45 in progress." 47 The list of current Internet-Drafts can be accessed at 48 http://www.ietf.org/1id-abstracts.html. 50 The list of Internet-Draft Shadow Directories can be accessed at 51 http://www.ietf.org/shadow.html. 53 This Internet-Draft will expire February, 2014. 55 Copyright Notice 57 Copyright (c) 2013 IETF Trust and the persons identified as the 58 document authors. All rights reserved. 60 This document is subject to BCP 78 and the IETF Trust's Legal 61 Provisions Relating to IETF Documents 62 (http://trustee.ietf.org/license-info) in effect on the date of 63 publication of this document. Please review these documents 64 carefully, as they describe your rights and restrictions with 65 respect to this document. Code Components extracted from this 66 document must include Simplified BSD License text as described in 67 Section 4.e of the Trust Legal Provisions and are provided 68 without warranty as described in the Simplified BSD License. 70 Table of Contents 72 1. Introduction.................................................. 3 73 2. Definitions, Acronyms, and Document Summary................... 3 74 2.1 Definitions ........................................... 3 75 2.2 Acronyms .............................................. 3 76 2.3 New Semantics ......................................... 3 77 3. Terminology Mapping........................................... 4 78 4. New Feature Use............................................... 7 79 4.1 Negotiation of New Feature Use............................... 7 80 4.2 Impact on standard INQUIRY data.............................. 7 81 5. SCSI Commands................................................. 8 82 5.1 SCSI Command Additions ................................ 8 83 5.1.1 Command Priority (byte 2) ......................... 9 84 5.2 SCSI Response Additions .............................. 10 85 5.2.1 Status Qualifier ................................. 11 86 5.2.2 Data Segment - Sense and Response Data Segment ... 11 87 6. Task Management Functions.................................... 12 88 6.1 Task Management Function Request PDU ................. 12 89 6.2 Existing Task Management Functions ................... 12 90 6.3 Task Management Function Additions ................... 13 91 6.3.1 LUN field ........................................ 14 92 6.3.2 Referenced Task Tag .............................. 14 93 6.3.3 RefCmdSN ......................................... 15 94 6.4 Task Management Function Responses ................... 16 95 6.4.1 Task Management Function Response PDU ............ 16 96 6.4.2 Task Management Function Response Additions ...... 17 97 6.5 Task Management Requests Affecting Multiple Tasks .... 18 98 7. Login/Text Operational Text Keys............................. 18 99 7.1 New Operational Text Keys ............................ 18 100 7.1.1 iSCSIProtocolLevel ............................... 18 101 8. Security Considerations...................................... 19 102 9. IANA Considerations.......................................... 19 103 10. References.................................................. 22 104 11. Acknowledgements............................................ 23 105 1. Introduction 107 The original iSCSI protocol [RFC3720] was built based on the 108 [SAM2] model for SCSI. Several new features and capabilities 109 have been added to the SCSI Architecture Model in the intervening 110 years (at the time of publication of this document, SAM-5 was the 111 current version of the SCSI Architecture Model). This document 112 is not a complete revision of [RFC3720]. Instead, this document 113 is intended as a companion document to [draft-ietf-storm-iscsi- 114 cons-xx]; this document may also be used as a companion document 115 to the combination of [RFC3720] and [RFC5048], although both of 116 those RFCs have been obsolete by [draft-ietf-storm-iscsi-cons- 117 xx]. 119 -------------------------------------------------------- 120 RFC EDITORS NOTE: The above references to [draft-ietf-storm- 121 iscsi-cons-xx] should reference the RFC number assigned to 122 that document, and this note should be removed. 123 -------------------------------------------------------- 125 2. Definitions, Acronyms, and Document Summary 127 2.1 Definitions 129 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL 130 NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" 131 in this document are to be interpreted as described in 132 [RFC2119]. 134 2.2 Acronyms 136 ISID Initiator Session Identifier 137 LU Logical Unit 138 PDU Protocol Data Unit 139 SAM-5 SCSI Architecture Model - 5 (see [SAM5]) 140 TMF Task Management Function 142 2.3 New Semantics 144 This document specifies new iSCSI semantics. This section 145 summarizes the contents of the document. 147 Section 3: The mapping of iSCSI objects to SAM-5 objects 148 The iSCSI node may contain both initiator and 149 target capabilities. 151 Section 4: The protocol used to negotiate the use of the new 152 capabilities described in this document. 154 Section 5: New Command operations 155 The PRI field for SCSI command priority has been 156 added to the SCSI command PDU (see 5.1.1). 157 The Status Qualifier field has been added to the 158 SCSI response PDU (see 5.2.1). 159 Sense data may be returned (via autosense) for any 160 SCSI status, not just CHECK CONDITION (see 5.2.2). 162 Section 6: New Task Management Functions 163 Four new task management functions (QUERY TASK, 164 QUERY TASK SET, I_T NEXUS RESET, and QUERY 165 ASYNCHRONOUS EVENT have been added (see 6.3). 166 A new "function succeeded" response has been added 167 (see 6.4.2). 169 Section 7: New Negotiation key 170 A new negotiation key has been added to enable the 171 use of the new features in section 5 and section 6. 173 3. Terminology Mapping 175 The iSCSI model (defined in [RFC-cons]) uses different 176 terminology than the SCSI Architecture Model. In some cases, 177 iSCSI uses multiple terms to describe what in the SCSI 178 Architecture Model is described with a single term. The iSCSI 179 terms and SAM-5 terms are not necessarily equivalent, but rather, 180 the iSCSI terms represent examples of the objects or classes 181 described in SAM-5 as follows: 183 -------------------------------------------------------- 184 RFC EDITORS NOTE: The above reference to [RFC-cons] should 185 reference the RFC number assigned to [draft-ietf-storm-iscsi- 186 cons-xx], and this note should be removed. 187 -------------------------------------------------------- 189 +-----------------------------+---------------------------+ 190 | RFCxxx Terminology | SAM-5 Terminology | 191 +-----------------------------+---------------------------+ 192 | Network Entity | none | 193 +-----------------------------+---------------------------+ 194 | iSCSI Node | SCSI Device | 195 +-----------------------------+---------------------------+ 196 | iSCSI Name | SCSI Device Name | 197 +-----------------------------+---------------------------+ 198 | iSCSI Node Name | SCSI Device Name | 199 +-----------------------------+---------------------------+ 200 | iSCSI Initiator Node | SCSI Initiator Device | 201 +-----------------------------+---------------------------+ 202 | iSCSI Initiator Name | SCSI Device Name | 203 +-----------------------------+---------------------------+ 204 | iSCSI Initiator Port | SCSI Initiator Port | 205 | Identifier; (i.e., iSCSI | Identifier | 206 | Node Name + ,,,i, + ISID)*1 | | 207 +-----------------------------+---------------------------+ 208 | iSCSI Initiator Port Name; | SCSI Initiator Port Name | 209 | (i.e., iSCSI Node Name + | | 210 | ,,,i, + ISID)*1 | | 211 +-----------------------------+---------------------------+ 212 | iSCSI Target Node | SCSI Target Device | 213 +-----------------------------+---------------------------+ 214 | iSCSI Target Name | SCSI Device Name | 215 +-----------------------------+---------------------------+ 216 | iSCSI Target Port | SCSI Target Port | 217 | Identifier; (i.e., iSCSI | Identifier | 218 | Node Name + ,,,t, + | | 219 | Target Portal Group Tag)*1 | | 220 +-----------------------------+---------------------------+ 221 | iSCSI Target Port Name; | SCSI Target Port Name | 222 | (i.e., iSCSI Node Name + | | 223 | ,,,t, + Target Portal | | 224 | Group Tag)*1 | | 225 +-----------------------------+---------------------------+ 226 | iSCSI Target Portal Group | SCSI Target Port | 227 +-----------------------------+---------------------------+ 228 | iSCSI Initiator Name + | I_T Nexus Identifier | 229 | ',i,' + ISID + iSCSI | | 230 | Target Name + ',t,' + | | 231 | Target Portal Group Tag | | 232 +-----------------------------+---------------------------+ 233 | Target Portal Group Tag | Relative Port ID | 234 +-----------------------------+---------------------------+ 236 *1 The text encoding of the ISID value and the Target Portal 237 Group Tag value includes an initial ,,0X or ,,0x (see [RFC- 238 cons]). 240 -------------------------------------------------------- 241 RFC EDITORS NOTE: The above reference (in row 1) to [RFCxxx] 242 should reference this RFC, and this note should be removed. 244 The above reference to [RFC-cons] should reference the RFC 245 number assigned to [draft-ietf-storm-iscsi-cons-xx], and this 246 note should be removed. 247 -------------------------------------------------------- 249 The following diagram shows an example of a combination target 250 device and initiator device. Such a configuration may exist in a 251 target device that implements a SCSI Copy Manager. This example 252 shows how a session that shares Network Portals within a Portal 253 Group may be established (see Target Portal Group 1). In 254 addition, this example shows the Initiator using a different 255 Portal Group than the Target Portal Group, but the Initiator 256 Portal group sharing Network Portal A with the Target Portal 257 Group. 259 ----------------------------IP Network--------------------- 260 | | | 261 +----|---------------|-------+ +----|------------+ 262 | +----------+ +----------+ | | +----------+ | 263 | | Network | | Network | | | | Network | | 264 | | Portal A | | Portal B | | | | Portal A | | 265 | +----------+ +----------+ | | +----------+ | 266 | | Target | | | | Initiator | 267 | | Portal | | | | Portal | 268 | | Group 1 | | | | Group 2 | 269 +----|---------------|-------+ +----|------------+ 270 | | | 271 +----------|---------------|--------------------|--------------------+ 272 | +--------|---------------|----+ +-------------|------------------+ | 273 | |+-------|---------------|---+| |+------------|-----------------+| | 274 | ||iSCSI Session (Target side)|| ||iSCSI Session (Initiator side)|| | 275 | || || || || | 276 | || (TSIH = 56) || || (SSID = 48) || | 277 | |+---------------------------+| |+------------------------------+| | 278 | | | | | | 279 | | iSCSI Target Node | | iSCSI Initiator Node | | 280 | +-----------------------------+ +--------------------------------+ | 281 | iSCSI Node | 282 | (within Network Entity, not shown) | 283 +--------------------------------------------------------------------+ 284 4. New Feature Use 286 4.1 Negotiation of New Feature Use 288 The iSCSIProtocolLevel operational text key (see 7.1.1) 289 containing a value of "2" MUST be negotiated to enable the use of 290 features described in this RFC. 292 This is an iSCSI negotiation mechanism that enabled iSCSI support 293 for corresponding SCSI capabilities (see [SAM5] and [SPC4]. For 294 this reason, negotiation of this key to a value of "2" is 295 necessary, but not sufficient for use of the SCSI capabilities 296 enabled by the iSCSI features in this RFC. 298 For example, an iSCSI implementation may negotiate this new key 299 to "2" but respond to the new task management functions (see 6.3) 300 with a "Task management function not supported" (which indicates 301 a SCSI error that prevents the function from being performed). 302 In contrast, if the key is negotiated to "2", an iSCSI 303 implementation MUST NOT reject a task management function request 304 PDU that requests one of the new task management functions (as 305 such a reject would report an iSCSI protocol error). 307 4.2 Impact on standard INQUIRY data 309 The negotiated value of the iSCSIProtocolLevel key is an 310 increment from the base iSCSI version descriptor value 311 (0960h)(see [SPC4]). If the SCSI device server returns an iSCSI 312 version descriptor in the standard INQUIRY data, then the value 313 returned in that iSCSI version descriptor MUST be set to the sum 314 of the base value (0960h) plus the negotiated value of the 315 iSCSIProtocolLevel key (for example, if the negotiated 316 iSCSIProtocolLevel=2, then if an iSCSI version descriptor is 317 returned in the standard INQUIRY data it is set to 0962h). 319 -------------------------------------------------------- 320 RFC EDITORS NOTE: The specification text in this section 321 requires corresponding changes in a SCSI standard (SPC-4 or 322 SPC-5) that is developed by INCITS Technical Committee T10. 323 Confirmation that these T10 changes have been made is 324 necessary before publishing this draft as an RFC; the 325 contacts for obtaining this confirmation are the primary 326 draft author (Frederick Knight) and storm WG chair (David 327 Black). 328 -------------------------------------------------------- 330 5. SCSI Commands 332 5.1 SCSI Command Additions 334 The format of the SCSI Command PDU is: 336 Byte/ 0 | 1 | 2 | 3 | 337 / | | | | 338 |0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7| 339 +---------------+---------------+---------------+---------------+ 340 0|.|I| 0x01 |F|R|W|. .|ATTR | PRI | Reserved | 341 +---------------+---------------+---------------+---------------+ 342 4|TotalAHSLength | DataSegmentLength | 343 +---------------+---------------+---------------+---------------+ 344 8| Logical Unit Number (LUN) | 345 + + 346 12| | 347 +---------------+---------------+---------------+---------------+ 348 16| Initiator Task Tag | 349 +---------------+---------------+---------------+---------------+ 350 20| Expected Data Transfer Length | 351 +---------------+---------------+---------------+---------------+ 352 24| CmdSN | 353 +---------------+---------------+---------------+---------------+ 354 28| ExpStatSN | 355 +---------------+---------------+---------------+---------------+ 356 32/ SCSI Command Descriptor Block (CDB) / 357 +/ / 358 +---------------+---------------+---------------+---------------+ 359 48/ AHS (Optional) / 360 +---------------+---------------+---------------+---------------+ 361 x/ Header Digest (Optional) / 362 +---------------+---------------+---------------+---------------+ 363 y/ (DataSegment, Command Data) (Optional) / 364 +/ / 365 +---------------+---------------+---------------+---------------+ 366 z/ Data Digest (Optional) / 367 +---------------+---------------+---------------+---------------+ 369 The SCSI Command PDU above is duplicated from [RFC-cons] for 370 reference to show the PRI field. For any field other than the 371 PRI field, the text in [RFC-cons] supersedes the text in section 372 5.1 of this document in the event the two documents conflict. 374 -------------------------------------------------------- 375 RFC EDITORS NOTE: The above references to [RFC-cons] should 376 reference the RFC number assigned to [draft-ietf-storm-iscsi- 377 cons-xx], and this note should be removed. 378 -------------------------------------------------------- 380 5.1.1 Command Priority (byte 2) 382 The Command Priority (PRI) is a four (4) bit field that specifies 383 the relative scheduling importance of this command in relation to 384 other commands already in the task set with SIMPLE task 385 attributes(see [SAM5]). 387 Section 11, iSCSI PDU Formats of [RFC-cons], requires that 388 senders set this field to zero. A sender MUST NOT set this field 389 to a value other than zero unless the iSCSIProtocolLevel text key 390 defined in section 7.1.1 has been negotiated on the session with 391 a value of "2". 393 -------------------------------------------------------- 394 RFC EDITORS NOTE: The above reference to [RFC-cons] should 395 reference the RFC number assigned to [draft-ietf-storm-iscsi- 396 cons-xx], and this note should be removed. 397 -------------------------------------------------------- 399 This field MUST be ignored by iSCSI targets unless the 400 iSCSIProtocolLevel text key with a value of "2" as defined in 401 section 7.1.1 was negotiated on the session. 403 See [SAM5] for additional considerations on the use of the 404 command priority field. 406 5.2 SCSI Response Additions 408 The format of the SCSI Response PDU is: 410 Byte/ 0 | 1 | 2 | 3 | 411 / | | | | 412 |0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7| 413 +---------------+---------------+---------------+---------------+ 414 0|.|.| 0x21 |1|. .|o|u|O|U|.| Response | Status | 415 +---------------+---------------+---------------+---------------+ 416 4|TotalAHSLength | DataSegmentLength | 417 +---------------+---------------+---------------+---------------+ 418 8| Status Qualifier | Reserved | 419 +---------------+---------------+---------------+---------------+ 420 12| Reserved | 421 +---------------+---------------+---------------+---------------+ 422 16| Initiator Task Tag | 423 +---------------+---------------+---------------+---------------+ 424 20| SNACK Tag or Reserved | 425 +---------------+---------------+---------------+---------------+ 426 24| StatSN | 427 +---------------+---------------+---------------+---------------+ 428 28| ExpCmdSN | 429 +---------------+---------------+---------------+---------------+ 430 32| MaxCmdSN | 431 +---------------+---------------+---------------+---------------+ 432 36| ExpDataSN or Reserved | 433 +---------------+---------------+---------------+---------------+ 434 40| Bidirectional Read Residual Count or Reserved | 435 +---------------+---------------+---------------+---------------+ 436 44| Residual Count or Reserved | 437 +---------------+---------------+---------------+---------------+ 438 48| Header-Digest (Optional) | 439 +---------------+---------------+---------------+---------------+ 440 / Data Segment (Optional) / 441 +/ / 442 +---------------+---------------+---------------+---------------+ 443 | Data-Digest (Optional) | 444 +---------------+---------------+---------------+---------------+ 446 The SCSI Response PDU above is duplicated from [RFC-cons] for 447 reference to show the Status Qualifier field. For any field 448 other than the Status field, the Status Qualifier field, and the 449 Data Segment - Sense and Response Data Segment field, the text in 450 [RFC-cons] supersedes the text in section 5.2 of this document in 451 the event the two documents conflict. 453 -------------------------------------------------------- 454 RFC EDITORS NOTE: The above references to [RFC-cons] should 455 reference the RFC number assigned to [draft-ietf-storm-iscsi- 456 cons-xx], and this note should be removed. 457 -------------------------------------------------------- 459 5.2.1 Status Qualifier 461 The Status Qualifier provides additional status information (see 462 [SAM5]). 464 As defined in Section 11, iSCSI PDU Formats of [RFC-cons], 465 compliant senders already set this field to zero. Compliant 466 senders MUST NOT set this field to a value other than zero unless 467 the iSCSIProtocolLevel text key with a value of "2" as defined in 468 section 7.1.1 was negotiated on the session. 470 -------------------------------------------------------- 471 RFC EDITORS NOTE: The above reference to [RFC-cons] should 472 reference the RFC number assigned to [draft-ietf-storm-iscsi- 473 cons-xx], and this note should be removed. 474 -------------------------------------------------------- 476 This field MUST be ignored by receivers unless the 477 iSCSIProtocolLevel text key with a value of "2" as defined in 478 section 7.1.1 was negotiated on the session. 480 5.2.2 Data Segment - Sense and Response Data Segment 482 Section 11.4.7 of [RFC-cons] specifies that iSCSI targets MUST 483 support and enable autosense. If Status is CHECK CONDITION 484 (0x02), then the Data Segment MUST contain sense data for the 485 failed command. While [RFC-cons] does not make any statements 486 about the state of the Data Segment when the Status is not CHECK 487 CONDITION (0x02)(i.e., the Data Segment is not prohibited from 488 containing sense data when the Status is not CHECK CONDITION), 489 negotiation of the iSCSIProtocolLevel text key with a value of 490 "2" as defined in section 7.1.1 explicitly indicates that the 491 Data Segment MAY contain sense data at any time, no matter what 492 value is set in the Status field. 494 -------------------------------------------------------- 495 RFC EDITORS NOTE: The above references to [RFC-cons] should 496 reference the RFC number assigned to [draft-ietf-storm-iscsi- 497 cons-xx], and this note should be removed. 498 -------------------------------------------------------- 500 6. Task Management Functions 502 6.1 Task Management Function Request PDU 504 Byte/ 0 | 1 | 2 | 3 | 505 / | | | | 506 |0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7| 507 +---------------+---------------+---------------+---------------+ 508 0|.|I| 0x02 |1| Function | Reserved | 509 +---------------+---------------+---------------+---------------+ 510 4|TotalAHSLength | DataSegmentLength | 511 +---------------+---------------+---------------+---------------+ 512 8| Logical Unit Number (LUN) | 513 + + 514 12| | 515 +---------------+---------------+---------------+---------------+ 516 16| Initiator Task Tag | 517 +---------------+---------------+---------------+---------------+ 518 20| Referenced Task Tag or 0xffffffff | 519 +---------------+---------------+---------------+---------------+ 520 24| CmdSN | 521 +---------------+---------------+---------------+---------------+ 522 28| ExpStatSN | 523 +---------------+---------------+---------------+---------------+ 524 32| RefCmdSN or Reserved | 525 +---------------+---------------+---------------+---------------+ 526 36| ExpDataSN or Reserved | 527 +---------------+---------------+---------------+---------------+ 528 40| Reserved / 529 +/ / 530 +---------------+---------------+---------------+---------------+ 531 48| Header-Digest (Optional) | 532 +---------------+---------------+---------------+---------------+ 534 The Task Management Function Request PDU above is duplicated from 535 [RFC-cons] for reference only. [RFC-cons] supersedes the text in 536 section 6.1 and 6.2 of this document in the event the two 537 documents conflict. 539 -------------------------------------------------------- 540 RFC EDITORS NOTE: The above references to [RFC-cons] should 541 reference the RFC number assigned to [draft-ietf-storm-iscsi- 542 cons-xx], and this note should be removed. 543 -------------------------------------------------------- 545 6.2 Existing Task Management Functions 547 Section 11.5 of [RFC-cons] defines the semantics used to request 548 SCSI Task Management Functions be performed. The following task 549 management functions are defined: 551 1 - ABORT TASK 552 2 - ABORT TASK SET 553 3 - CLEAR ACA 554 4 - CLEAR TASK SET 555 5 - LOGICAL UNIT RESET 556 6 - TARGET WARM RESET 557 7 - TARGET COLD RESET 558 8 - TASK REASSIGN 560 -------------------------------------------------------- 561 RFC EDITORS NOTE: The above references to [RFC-cons] should 562 reference the RFC number assigned to [draft-ietf-storm-iscsi- 563 cons-xx], and this note should be removed. 564 -------------------------------------------------------- 566 6.3 Task Management Function Additions 568 Additional task Management function codes are listed below. For 569 a more detailed description of SCSI task management, see [SAM5]. 571 9 - QUERY TASK - determines if the command identified by the 572 Referenced Task Tag field is present in the task set. 574 10 - QUERY TASK SET - determine if any command is present in 575 the task set for the I_T_L Nexus on which the task management 576 function was received. 578 11 - I_T NEXUS RESET - perform an I_T nexus loss function (see 579 [SAM5]) for the I_T nexus on which the task management 580 function was received. 582 12 - QUERY ASYNCHRONOUS EVENT - determine if there is a unit 583 attention condition or a deferred error pending for the I_T_L 584 nexus on which the task management function was received. 586 These task management function requests MUST NOT be sent unless 587 the iSCSIProtocolLevel text key with a value of "2" as defined in 588 section 7.1.1 was negotiated on the session. 590 Any compliant initiator that sends any of the new task management 591 functions defined in this section MUST also support all new task 592 management function responses (as specified in section 6.4.2). 594 For all of the task management functions detailed in this 595 section, the Task Management function response MUST be returned 596 as detailed in section 6.4. 598 The iSCSI target MUST ensure that no responses for the commands 599 covered by a task management function are sent to the iSCSI 600 initiator port after the Task Management response except for a 601 commands covered by a TASK REASSIGN, QUERY TASK, or QUERY TASK 602 SET. 604 If a QUERY TASK is issued for a task created by an immediate 605 command then RefCmdSN MUST be that of the Task Management request 606 itself (i.e., CmdSN and RefCmdSN are equal); otherwise RefCmdSN 607 MUST be set to the CmdSN of the task to be queried (lower than 608 CmdSN). 610 If the connection is still active (it is not undergoing an 611 implicit or explicit logout), QUERY TASK MUST be issued on the 612 same connection to which the task to be queried is allegiant at 613 the time the Task Management request is issued. If the 614 connection is implicitly or explicitly logged out (i.e., no other 615 request will be issued on the failing connection and no other 616 response will be received on the failing connection), then a 617 QUERY TASK function request may be issued on another connection. 618 This Task Management request will then establish a new allegiance 619 for the command being queried. 621 At the target a QUERY TASK function MUST NOT be executed on a 622 Task Management request; such a request MUST result in Task 623 Management response of "Function rejected". 625 For the I_T NEXUS RESET function, the target device MUST respond 626 to the function as defined in [SAM5]. Each logical unit 627 accessible via the receiving I_T NEXUS MUST behave as dictated by 628 the I_T nexus loss function in [SAM5] for the I_T nexus on which 629 the task management function was received. The target device 630 MUST drop all connections in the session over which this function 631 is received. Independent of the DefaultTime2Wait and 632 DefaultTime2Retain value applicable to the session over which 633 this function is received, the target device MUST consider each 634 participating connection in the session to have immediately timed 635 out, leading to FREE state. The resulting timeouts cause the 636 session timeout event defined in [RFC-cons], which in turn 637 triggers the I_T nexus loss notification to the SCSI layer as 638 described in [RFC-cons]. 640 -------------------------------------------------------- 641 RFC EDITORS NOTE: The above references to [RFC-cons] should 642 reference the RFC number assigned to [draft-ietf-storm-iscsi- 643 cons-xx], and this note should be removed. 644 -------------------------------------------------------- 646 6.3.1 LUN field 648 This field is required for functions that address a specific LU 649 (i.e., ABORT TASK, CLEAR TASK SET, ABORT TASK SET, CLEAR ACA, 650 LOGICAL UNIT RESET, QUERY TASK, QUERY TASK SET, and QUERY 651 ASYNCHRONOUS EVENT) and is reserved in all others. 653 6.3.2 Referenced Task Tag 654 The Initiator Task Tag of the task to be aborted for the ABORT 655 TASK function, reassigned for the TASK REASSIGN function, or 656 queried for the QUERY TASK function. For all other functions 657 this field MUST be set to the reserved value 0xffffffff. 659 6.3.3 RefCmdSN 661 If a QUERY TASK is issued for a task created by an immediate 662 command then RefCmdSN MUST be that of the Task Management request 663 itself (i.e., CmdSN and RefCmdSN are equal). 665 For a QUERY TASK of a task created by non-immediate command 666 RefCmdSN MUST be set to the CmdSN of the task identified by the 667 Referenced Task Tag field. Targets must use this field as 668 described in section 11.6.1 of [RFC-cons] when the task 669 identified by the Referenced Task Tag field is not in the task 670 set. 672 -------------------------------------------------------- 673 RFC EDITORS NOTE: The above references to [RFC-cons] should 674 reference the RFC number assigned to [draft-ietf-storm-iscsi- 675 cons-xx], and this note should be removed. 676 -------------------------------------------------------- 678 6.4 Task Management Function Responses 680 6.4.1 Task Management Function Response PDU 682 Byte/ 0 | 1 | 2 | 3 | 683 / | | | | 684 |0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7| 685 +---------------+---------------+---------------+---------------+ 686 0|.|.| 0x22 |1| Reserved | Response | Reserved | 687 +---------------+---------------+---------------+---------------+ 688 4|TotalAHSLength | DataSegmentLength | 689 +-----------------------------------------------+---------------+ 690 8| Additional Response Information | Reserved | 691 +-----------------------------------------------+---------------+ 692 12| Reserved | 693 +---------------+---------------+---------------+---------------+ 694 16| Initiator Task Tag | 695 +---------------+---------------+---------------+---------------+ 696 20| Reserved | 697 +---------------+---------------+---------------+---------------+ 698 24| StatSN | 699 +---------------+---------------+---------------+---------------+ 700 28| ExpCmdSN | 701 +---------------+---------------+---------------+---------------+ 702 32| MaxCmdSN | 703 +---------------+---------------+---------------+---------------+ 704 36/ Reserved / 705 +/ / 706 +---------------+---------------+---------------+---------------+ 707 48| Header-Digest (Optional) | 708 +---------------+---------------+---------------+---------------+ 710 Section 11.6 of [RFC-cons] defines the semantics used for 711 responses to SCSI Task Management Functions. The following 712 responses are defined in [RFC-cons]: 714 0 - Function Complete. 715 1 - Task does not exist. 716 2 - LUN does not exist. 717 3 - Task still allegiant. 718 4 - Task allegiance reassignment not supported. 719 5 - Task management function not supported. 720 6 - Function authorization failed. 721 255 - Function rejected. 723 The Task Management Function Response PDU above and the list of 724 task management function responses above are duplicated from 725 [RFC-cons] for reference only. [RFC-cons] supersedes the text in 726 section 6.4.1 of this document in the event the two documents 727 conflict. 729 -------------------------------------------------------- 730 RFC EDITORS NOTE: The above references to [RFC-cons] should 731 reference the RFC number assigned to [draft-ietf-storm-iscsi- 732 cons-xx], and this note should be removed. 733 -------------------------------------------------------- 735 Responses to new task management functions (see 6.4.2) are listed 736 below. In addition, a new task Management response is listed 737 below. For a more detailed description of SCSI task management 738 responses, see [SAM5]. 740 For the functions QUERY TASK, QUERY TASK SET, I_T NEXUS RESET, 741 and QUERY ASYNCHRONOUS EVENT, the target performs the requested 742 Task Management function and sends a Task Management response 743 back to the initiator. 745 6.4.2 Task Management Function Response Additions 747 The new response is listed below: 749 7 - Function succeeded. 751 In symbolic terms Response value 7 maps to the SCSI service 752 response of FUNCTION SUCCEEDED in [SAM5]. 754 The task management function response of "Function succeeded" 755 MUST be supported by an initiator that sends any of the new task 756 management functions (see 6.3). 758 For the QUERY TASK function, if the specified task is in the task 759 set, then the logical unit returns a Response value of Function 760 succeeded and additional response information is returned as 761 specified in [SAM5]. If the specified task is not in the task 762 set, then the logical unit returns a Response value of Function 763 complete. 765 For the QUERY TASK SET function, if there is any command present 766 in the task set from the specified I_T_L nexus, then the logical 767 unit returns a Response value of Function succeeded. If there 768 are no commands present in the task set from the specified I_T_L 769 nexus, then the logical unit returns a Response value of Function 770 complete. 772 For the I_T NEXUS RESET function, after completion of the events 773 described in section 6.3 for this function, the logical unit 774 returns a Response value of Function complete. However, because 775 the target drops all connections, the Service Response (defined 776 by [SAM5]) for this SCSI task management function may not be 777 reliably delivered to the issuing initiator port. 779 For the QUERY ASYNCHRONOUS EVENT, if there is a unit attention 780 condition or deferred error pending for the specified I_T_L 781 nexus, then the logical unit returns a Response value of Function 782 succeeded and additional response information is returned as 783 specified in [SAM5]. If there is no unit attention or deferred 784 error pending for the specified I_T_L nexus then the logical unit 785 returns a Response value of Function complete. 787 6.5 Task Management Requests Affecting Multiple Tasks 789 Section 4.1 of [RFC5048] defines the notion of "affected tasks" 790 in multi-task abort scenarios. This section adds to the list 791 include in that section by defining the tasks affected by the I_T 792 NEXUS RESET function. 794 I_T NEXUS RESET: All outstanding tasks received on the I_T 795 nexus on which the function request was received for all 796 logical units accessible to the I_T nexus. 798 Section 4.1.2 of [RFC5048] and section 4.1.3 of [RFC5048] 799 identify semantics for task management functions that involve 800 multi-task abort operations. If an iSCSI implementation supports 801 the I_T NEXUS RESET function, it MUST also support the protocol 802 behavior as defined in those sections and follow the sequence of 803 actions as described in those sections when processing the I_T 804 NEXUS RESET function. 806 7. Login/Text Operational Text Keys 808 7.1 New Operational Text Keys 810 7.1.1 iSCSIProtocolLevel 812 Use: LO, IO 813 Irrelevant when: SessionType = Discovery 814 Senders: Initiator and Target 815 Scope: SW 817 iSCSIProtocolLevel= 819 Default is 1. 820 Result function is Minimum. 822 This key is used to negotiate the use of iSCSI features that 823 require different levels of protocol support (e.g., PDU formats, 824 end node semantics) for proper operation. 826 Negotiation of the iSCSIProtocolLevel key to a value 827 corresponding to an RFC indicates that both negotiating parties 828 are compliant to the RFC in question, and agree to support the 829 corresponding PDU formats and semantics on that iSCSI session. 830 Features using this key are expected to be cumulative. 832 An iSCSIProtocolLevel key negotiated to "0" indicates that the 833 implementation does not claim a specific iSCSI protocol level. 835 An iSCSIProtocolLevel key negotiated to "1" indicates that the 836 implementation claims compliance with [RFC-cons]. 838 -------------------------------------------------------- 839 RFC EDITORS NOTE: The above reference to [RFC-cons] should 840 reference the RFC number assigned to [draft-ietf-storm-iscsi- 841 cons-xx], and this note should be removed. 842 -------------------------------------------------------- 844 An iSCSIProtocolLevel key negotiated to "2" is required to enable 845 use of features defined in this RFC. 847 If the negotiation answer is ignored by the acceptor, or the 848 answer from the remote iSCSI end point is key=NotUnderstood, then 849 the features defined in this RFC, and the features defined in any 850 RFC requiring a key value greater than "2" MUST NOT be used. 852 8. Security Considerations 854 Command priorities are relative values, not absolute values (see 855 [SAM5] and affect collections of commands, not necessarily 856 individual commands (see [SAM5]); if command priority is 857 supported, it should be implemented in a fashion that avoids 858 unwanted reduction or denial of service. 860 All the iSCSI-related security text in [RFC3723] and the security 861 text in [RFC-cons] is also directly applicable to this document. 863 -------------------------------------------------------- 864 RFC EDITORS NOTE: The above reference to [RFC-cons] should 865 reference the RFC number assigned to [draft-ietf-storm-iscsi- 866 cons-xx], and this note should be removed. 867 -------------------------------------------------------- 869 9. IANA Considerations 871 This document modifies or creates a number of iSCSI-related 872 registries. The following iSCSI-related registries are modified: 874 1. iSCSI Task Management Functions Codes 876 Name of the existing registry: "iSCSI Task Management Function 877 Codes" 879 Additional entries: 881 9, QUERY TASK, [RFCxxx] 883 10, QUERY TASK SET, [RFCxxx] 885 11, I_T NEXUS RESET, [RFCxxx] 887 12, QUERY ASYNCHRONOUS EVENT, [RFCxxx] 889 13-127, Unassigned, [RFCxxx] 891 --------------------------------------------------------- 892 RFC EDITORS NOTE: The above reference to [RFCxxx] should 893 reference this RFC, and this note should be removed. The last 894 entry (values 13-127 in the above list) should replace the 895 existing entry for the "Unassigned" values. 896 --------------------------------------------------------- 898 2. iSCSI Login/Text Keys 900 Name of the existing registry: "iSCSI Login/Text Keys" 902 Fields to record in the registry: Assigned value and its 903 associated RFC reference: 905 iSCSIProtocolLevel, [RFCxxx] 907 --------------------------------------------------------- 908 RFC EDITORS NOTE: The above references to [RFCxxx] should 909 reference this RFC, and this note should be removed. 910 --------------------------------------------------------- 912 This document creates the following iSCSI-related registries for 913 IANA to manage. 915 3. iSCSI Protocol Level 917 Name of new registry: "iSCSI Protocol Level" 919 Namespace details: Numerical values from 0 to 31 921 Information that must be provided to assign a new value: An 922 IESG-approved standards track specification defining the 923 semantics and interoperability requirements of the proposed 924 new value and the fields to be recorded in the registry. 926 Assignment policy: 928 The assignments of these values must be coordinated with the 929 INCITS T10 committee; therefore review by an expert that 930 maintains an association with that committee is required prior 931 to IESG approval of the associated specification. After 932 creation of the registry, values are to be assigned 933 sequentially (for example, any value greater than 4 will not 934 be assigned until after the value 4 has been assigned). 936 Special care must be taken in the assignment of new values in 937 this registry. Compatibility and interoperability will be 938 adversely impacted if proper care is not exercised. Features 939 using this key are expected to be cumulative. For example, 940 since this draft explicitly lists only value 2 for the 941 features listed in this draft, it is expected that a new RFC 942 assigning value 3 will also have the features listed in this 943 RFC and therefore such an RFC is expected to either revise or 944 replace this RFC. Assignments that do not follow this policy 945 should be reviewed and approved by the INCITS T10 committee. 947 3-31: range available to IANA for assignment in this registry. 949 Fields to record in the registry: Assigned value, description, 950 and its associated RFC reference. 952 0, No version claimed, [RFCxxx] 954 1, RFC-cons, [RFCxxx] 956 2, RFCxxx, [RFCxxx] 958 3-31, Unassigned 960 --------------------------------------------------------- 961 RFC EDITORS NOTE: The above references to [RFCxxx] should 962 reference this RFC, and this note should be removed. The 963 above reference to RFC-cons should be replaced with the name 964 of the [draft-ietf-storm-iscsi-cons-xx] document, and this 965 note should be removed. All associated RFC references are to 966 this document; even the reference for value 1. The 967 description for value 1 however contains the RFC-cons name but 968 should not have [] around the description (it is a description 969 not a formal reference). The description for value 2 is the 970 name of this RFC but should not contain the [] (again, a 971 description not a formal reference). This note should be 972 removed. 973 --------------------------------------------------------- 975 Allocation Policy: 977 Expert review ([IANA]) and Standards Action ([IANA]) 979 4. iSCSI Task Management Function Response Codes 981 Name of new registry: "iSCSI Task Management Function Response 982 Codes" 984 Namespace details: Numerical values that can fit in 8 bits. 986 Information that must be provided to assign a new value: An 987 IESG-approved specification defining the semantics and 988 interoperability requirements of the proposed new value and 989 the fields to be recorded in the registry. 991 Assignment policy: 993 If the requested value is not already assigned, it may be 994 assigned to the requester. 996 8-254: Range available to IANA for assignment in this 997 registry. 999 Fields to record in the registry: Assigned value, Operation 1000 Name, and its associated RFC reference. 1002 0, Function complete, [RFC-cons] 1004 1, Task does not exist, [RFC-cons] 1006 2, LUN does not exist, [RFC-cons] 1008 3, Task still allegiant, [RFC-cons] 1010 4, Task allegiance reassignment not supported, [RFC-cons] 1012 5, Task management function not supported, [RFC-cons] 1014 6, Function authorization failed, [RFC-cons] 1016 7, Function succeeded, [RFCxxx] 1018 8-254, Unassigned 1020 255, Function rejected, [RFC-cons] 1022 ------------------------------------------------------------ 1023 RFC EDITORS NOTE: The above reference to [RFCxxx] should 1024 reference this RFC, and this note should be removed. 1026 The above references to [RFC-cons] should reference the 1027 [draft-ietf-storm-iscsi-cons-xx] document, and this note 1028 should be removed. 1029 ------------------------------------------------------------ 1031 Allocation Policy: 1033 Standards Action ([IANA]) 1035 10. References 1037 10.1 Normative References 1039 [RFC2119] Bradner, S. "Key Words for use in RFCs to Indicate 1040 Requirement Levels", BCP 14, RFC 2119, March 1997. 1042 [RFC3723] Aboba, B., Tseng, J., Walker, J., Rangan, V., and 1043 Travostino, F., "Securing Block Storage Protocols 1044 over IP", RFC 3723, April 2004. 1046 [RFC5048] Chadalapaka, M., "Internet Small Computer System 1047 Interface (iSCSI) Corrections and Clarifications", 1048 RFC 5048, October 2007. 1050 [draft-ietf-storm-iscsi-cons-xx] Chadalapaka, M., Satran, J., 1051 Kalman, M., "iSCSI Protocol (consolidated)", RFC xxx, 1052 Date 2013. 1054 ------------------------------------------------------------ 1055 RFC EDITORS NOTE: The above references to [draft-ietf-storm- 1056 iscsi-cons-xx] and RFC xxx should reference the RFC number 1057 assigned to that draft, and this note should be removed. 1058 ------------------------------------------------------------ 1060 [IANA] Narten, T. and H. Alvestrand, "Guidelines for Writing 1061 an IANA Considerations Section in RFCs", BCP 26, RFC 1062 5226, May 2008. 1064 [SAM2] T10/1157D, SCSI Architecture Model - 2 (SAM-2). 1066 [SAM5] T10/2104D rev r04, SCSI Architecture Model - 5 (SAM- 1067 5), Committee Draft. 1069 [SPC4] T10/1731D rev r36, SCSI Primary Commands - 4 (SPC-4), 1070 Committee Draft. 1072 10.2 Informative References 1074 [RFC3720] Satran, J., Meth, K., Sapuntzakis, C., Chadalapaka, 1075 M., and E. Zeidner, "Internet Small Computer Systems 1076 Interface (iSCSI)", RFC 3720, April 2004. 1078 10.3 Additional Reference Sources 1080 For more information on the SCSI Architecture Model and SCSI 1081 Primary Commands - 4, contact the INCITS T10 Technical Committee 1082 for SCSI Storage Interfaces at http://www.t10.org. 1084 11. Acknowledgements 1086 The Storage Maintenance (STORM) Working Group in the Transport 1087 Area of the IETF has been responsible for defining these 1088 additions to the iSCSI protocol (apart from other relevant IP 1089 Storage protocols). The editor acknowledges the contributions of 1090 the entire working group and other IETF reviewers. 1092 The following individuals directly contributed to identifying 1093 [RFCxxx] issues and/or suggesting resolutions to the issues 1094 clarified in this document: David Black, Rob Elliott. This 1095 document benefited from all of these contributions. 1096 ------------------------------------------------------------ 1097 RFC EDITORS NOTE: The above reference to [RFCxxx] should 1098 reference this RFC, and this note should be removed. 1099 ------------------------------------------------------------ 1101 Author's Addresses: 1102 Frederick Knight 1103 7301 Kit Creek Road 1104 P.O. Box 13917 1105 Research Triangle Park, NC 27709, USA 1106 Phone: +1-919-476-5362 1107 Email: knight@netapp.com 1109 Mallikarjun Chadalapaka 1110 Microsoft 1111 One Microsoft Way 1112 Redmond, WA 98052 USA 1113 Email: cbm@chadalapaka.com