idnits 2.17.1 draft-ietf-storm-iscsi-sam-08.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 (July 2013) is 3938 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 1017, but not defined == Missing Reference: 'RFCxxx' is mentioned on line 1089, 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: January 2014 Microsoft 5 July 2013 7 Internet Small Computer Systems Interface (iSCSI) SCSI Features 8 Update 9 draft-ietf-storm-iscsi-sam-08.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 January, 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 Existing Task Management Functions ................... 12 89 6.2 Task Management Function Additions ................... 13 90 6.2.1 LUN field ........................................ 14 91 6.2.2 Referenced Task Tag .............................. 14 92 6.2.3 RefCmdSN ......................................... 15 93 6.3 Task Management Function Responses ................... 16 94 6.3.1 Task Management Function Response Additions ...... 17 95 6.4 Task Management Requests Affecting Multiple Tasks .... 18 96 7. Login/Text Operational Text Keys............................. 18 97 7.1 New Operational Text Keys ............................ 18 98 7.1.1 iSCSIProtocolLevel ............................... 18 99 8. Security Considerations...................................... 19 100 9. IANA Considerations.......................................... 19 101 10. References.................................................. 22 102 11. Acknowledgements............................................ 23 103 1. Introduction 105 The original iSCSI protocol [RFC3720] was built based on the 106 [SAM2] model for SCSI. Several new features and capabilities 107 have been added to the SCSI Architecture Model in the intervening 108 years (at the time of publication of this document, SAM-5 was the 109 current version of the SCSI Architecture Model). This document 110 is not a complete revision of [RFC3720]. Instead, this document 111 is intended as a companion document to [draft-ietf-storm-iscsi- 112 cons-xx]; this document may also be used as a companion document 113 to the combination of [RFC3720] and [RFC5048], although both of 114 those RFCs have been obsolete by [draft-ietf-storm-iscsi-cons- 115 xx]. 117 -------------------------------------------------------- 118 RFC EDITORS NOTE: The above references to [draft-ietf-storm- 119 iscsi-cons-xx] should reference the RFC number assigned to 120 that document, and this note should be removed. 121 -------------------------------------------------------- 123 2. Definitions, Acronyms, and Document Summary 125 2.1 Definitions 127 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL 128 NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" 129 in this document are to be interpreted as described in 130 [RFC2119]. 132 2.2 Acronyms 134 ISID Initiator Session Identifier 135 LU Logical Unit 136 PDU Protocol Data Unit 137 SAM-5 SCSI Architecture Model - 5 (see [SAM5]) 138 TMF Task Management Function 140 2.3 New Semantics 142 This document specifies new iSCSI semantics. This section 143 summarizes the contents of the document. 145 Section 3: The mapping of iSCSI objects to SAM-5 objects 146 The iSCSI node may contain both initiator and 147 target capabilities. 149 Section 4: The protocol used to negotiate the use of the new 150 capabilities described in this document. 152 Section 5: New Command operations 153 The PRI field for SCSI command priority has been 154 added to the SCSI command PDU (see 5.1.1). 155 The Status Qualifier field has been added to the 156 SCSI response PDU (see 5.2.1). 157 Sense data may be returned (via autosense) for any 158 SCSI status, not just CHECK CONDITION (see 5.2.2). 160 Section 6: New Task Management Functions 161 Four new task management functions (QUERY TASK, 162 QUERY TASK SET, I_T NEXUS RESET, and QUERY 163 ASYNCHRONOUS EVENT have been added (see 6.3). 164 A new "function succeeded" response has been added 165 (see 6.4.2). 167 Section 7: New Negotiation key 168 A new negotiation key has been added to enable the 169 use of the new features in section 5 and section 6. 171 3. Terminology Mapping 173 The iSCSI model (defined in [RFC-cons]) uses different 174 terminology than the SCSI Architecture Model. In some cases, 175 iSCSI uses multiple terms to describe what in the SCSI 176 Architecture Model is described with a single term. The iSCSI 177 terms and SAM-5 terms are not necessarily equivalent, but rather, 178 the iSCSI terms represent examples of the objects or classes 179 described in SAM-5 as follows: 181 -------------------------------------------------------- 182 RFC EDITORS NOTE: The above reference to [RFC-cons] should 183 reference the RFC number assigned to [draft-ietf-storm-iscsi- 184 cons-xx], and this note should be removed. 185 -------------------------------------------------------- 187 +-----------------------------+---------------------------+ 188 | RFCxxx Terminology | SAM-5 Terminology | 189 +-----------------------------+---------------------------+ 190 | Network Entity | none | 191 +-----------------------------+---------------------------+ 192 | iSCSI Node | SCSI Device | 193 +-----------------------------+---------------------------+ 194 | iSCSI Name | SCSI Device Name | 195 +-----------------------------+---------------------------+ 196 | iSCSI Node Name | SCSI Device Name | 197 +-----------------------------+---------------------------+ 198 | iSCSI Initiator Node | SCSI Initiator Device | 199 +-----------------------------+---------------------------+ 200 | iSCSI Initiator Name | SCSI Device Name | 201 +-----------------------------+---------------------------+ 202 | iSCSI Initiator Port | SCSI Initiator Port | 203 | Identifier; (i.e., iSCSI | Identifier | 204 | Node Name + ,,,i, + ISID)*1 | | 205 +-----------------------------+---------------------------+ 206 | iSCSI Initiator Port Name; | SCSI Initiator Port Name | 207 | (i.e., iSCSI Node Name + | | 208 | ,,,i, + ISID)*1 | | 209 +-----------------------------+---------------------------+ 210 | iSCSI Target Node | SCSI Target Device | 211 +-----------------------------+---------------------------+ 212 | iSCSI Target Name | SCSI Device Name | 213 +-----------------------------+---------------------------+ 214 | iSCSI Target Port | SCSI Target Port | 215 | Identifier; (i.e., iSCSI | Identifier | 216 | Node Name + ,,,t, + | | 217 | Target Portal Group Tag)*1 | | 218 +-----------------------------+---------------------------+ 219 | iSCSI Target Port Name; | SCSI Target Port Name | 220 | (i.e., iSCSI Node Name + | | 221 | ,,,t, + Target Portal | | 222 | Group Tag)*1 | | 223 +-----------------------------+---------------------------+ 224 | iSCSI Target Portal Group | SCSI Target Port | 225 +-----------------------------+---------------------------+ 226 | iSCSI Initiator Name + | I_T Nexus Identifier | 227 | ',i,' + ISID + iSCSI | | 228 | Target Name + ',t,' + | | 229 | Target Portal Group Tag | | 230 +-----------------------------+---------------------------+ 231 | Target Portal Group Tag | Relative Port ID | 232 +-----------------------------+---------------------------+ 234 *1 The text encoding of the ISID value and the Target Portal 235 Group Tag value includes an initial ,,0X or ,,0x (see [RFC- 236 cons]). 238 -------------------------------------------------------- 239 RFC EDITORS NOTE: The above reference (in row 1) to [RFCxxx] 240 should reference this RFC, and this note should be removed. 242 The above reference to [RFC-cons] should reference the RFC 243 number assigned to [draft-ietf-storm-iscsi-cons-xx], and this 244 note should be removed. 245 -------------------------------------------------------- 247 The following diagram shows an example of a combination target 248 device and initiator device. Such a configuration may exist in a 249 target device that implements a SCSI Copy Manager. This example 250 shows how a session that shares Network Portals within a Portal 251 Group may be established (see Target Portal Group 1). In 252 addition, this example shows the Initiator using a different 253 Portal Group than the Target Portal Group, but the Initiator 254 Portal group sharing Network Portal A with the Target Portal 255 Group. 257 ----------------------------IP Network--------------------- 258 | | | 259 +----|---------------|-------+ +----|------------+ 260 | +----------+ +----------+ | | +----------+ | 261 | | Network | | Network | | | | Network | | 262 | | Portal A | | Portal B | | | | Portal A | | 263 | +----------+ +----------+ | | +----------+ | 264 | | Target | | | | Initiator | 265 | | Portal | | | | Portal | 266 | | Group 1 | | | | Group 2 | 267 +----|---------------|-------+ +----|------------+ 268 | | | 269 +----------|---------------|--------------------|--------------------+ 270 | +--------|---------------|----+ +-------------|------------------+ | 271 | |+-------|---------------|---+| |+------------|-----------------+| | 272 | ||iSCSI Session (Target side)|| ||iSCSI Session (Initiator side)|| | 273 | || || || || | 274 | || (TSIH = 56) || || (SSID = 48) || | 275 | |+---------------------------+| |+------------------------------+| | 276 | | | | | | 277 | | iSCSI Target Node | | iSCSI Initiator Node | | 278 | +-----------------------------+ +--------------------------------+ | 279 | iSCSI Node | 280 | (within Network Entity, not shown) | 281 +--------------------------------------------------------------------+ 282 4. New Feature Use 284 4.1 Negotiation of New Feature Use 286 The iSCSIProtocolLevel operational text key (see 7.1.1) 287 containing a value of "2" MUST be negotiated to enable the use of 288 features described in this RFC. 290 This is an iSCSI negotiation mechanism that enabled iSCSI support 291 for corresponding SCSI capabilities (see [SAM5] and [SPC4]. For 292 this reason, negotiation of this key to a value of "2" is 293 necessary, but not sufficient for use of the SCSI capabilities 294 enabled by the iSCSI features in this RFC. 296 For example, an iSCSI implementation may negotiate this new key 297 to "2" but respond to the new task management functions (see 6.3) 298 with a "Task management function not supported" (which indicates 299 a SCSI error that prevents the function from being performed). 300 In contrast, if the key is negotiated to "2", an iSCSI 301 implementation MUST NOT reject a task management function request 302 PDU that requests one of the new task management functions (as 303 such a reject would report an iSCSI protocol error). 305 4.2 Impact on standard INQUIRY data 307 The negotiated value of the iSCSIProtocolLevel key is an 308 increment from the base iSCSI version descriptor value 309 (0960h)(see [SPC4]). If the SCSI device server returns an iSCSI 310 version descriptor in the standard INQUIRY data, then the value 311 returned in that iSCSI version descriptor MUST be set to the sum 312 of the base value (0960h) plus the negotiated value of the 313 iSCSIProtocolLevel key (for example, if the negotiated 314 iSCSIProtocolLevel=2, then if an iSCSI version descriptor is 315 returned in the standard INQUIRY data it is set to 0962h). 317 -------------------------------------------------------- 318 RFC EDITORS NOTE: The specification text in this section 319 requires corresponding changes in a SCSI standard (SPC-4 or 320 SPC-5) that is developed by INCITS Technical Committee T10. 321 Confirmation that these T10 changes have been made is 322 necessary before publishing this draft as an RFC; the 323 contacts for obtaining this confirmation are the primary 324 draft author (Frederick Knight) and storm WG chair (David 325 Black). 326 -------------------------------------------------------- 328 5. SCSI Commands 330 5.1 SCSI Command Additions 332 The format of the SCSI Command PDU is: 334 Byte/ 0 | 1 | 2 | 3 | 335 / | | | | 336 |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| 337 +---------------+---------------+---------------+---------------+ 338 0|.|I| 0x01 |F|R|W|. .|ATTR | PRI | Reserved | 339 +---------------+---------------+---------------+---------------+ 340 4|TotalAHSLength | DataSegmentLength | 341 +---------------+---------------+---------------+---------------+ 342 8| Logical Unit Number (LUN) | 343 + + 344 12| | 345 +---------------+---------------+---------------+---------------+ 346 16| Initiator Task Tag | 347 +---------------+---------------+---------------+---------------+ 348 20| Expected Data Transfer Length | 349 +---------------+---------------+---------------+---------------+ 350 24| CmdSN | 351 +---------------+---------------+---------------+---------------+ 352 28| ExpStatSN | 353 +---------------+---------------+---------------+---------------+ 354 32/ SCSI Command Descriptor Block (CDB) / 355 +/ / 356 +---------------+---------------+---------------+---------------+ 357 48/ AHS (Optional) / 358 +---------------+---------------+---------------+---------------+ 359 x/ Header Digest (Optional) / 360 +---------------+---------------+---------------+---------------+ 361 y/ (DataSegment, Command Data) (Optional) / 362 +/ / 363 +---------------+---------------+---------------+---------------+ 364 z/ Data Digest (Optional) / 365 +---------------+---------------+---------------+---------------+ 367 The SCSI Command PDU above is duplicated from [RFC-cons] for 368 reference to show the PRI field. For any field other than the 369 PRI field, the text in [RFC-cons] supersedes the text in section 370 5.1 of this document in the event the two documents conflict. 372 -------------------------------------------------------- 373 RFC EDITORS NOTE: The above references to [RFC-cons] should 374 reference the RFC number assigned to [draft-ietf-storm-iscsi- 375 cons-xx], and this note should be removed. 376 -------------------------------------------------------- 378 5.1.1 Command Priority (byte 2) 380 The Command Priority (PRI) is a four (4) bit field that specifies 381 the relative scheduling importance of this command in relation to 382 other commands already in the task set with SIMPLE task 383 attributes(see [SAM5]). 385 Section 11, iSCSI PDU Formats of [RFC-cons], requires that 386 senders set this field to zero. A sender MUST NOT set this field 387 to a value other than zero unless the iSCSIProtocolLevel text key 388 defined in section 7.1.1 has been negotiated on the session with 389 a value of "2". 391 -------------------------------------------------------- 392 RFC EDITORS NOTE: The above reference to [RFC-cons] should 393 reference the RFC number assigned to [draft-ietf-storm-iscsi- 394 cons-xx], and this note should be removed. 395 -------------------------------------------------------- 397 This field MUST be ignored by iSCSI targets unless the 398 iSCSIProtocolLevel text key with a value of "2" as defined in 399 section 7.1.1 was negotiated on the session. 401 See [SAM5] for additional considerations on the use of the 402 command priority field. 404 5.2 SCSI Response Additions 406 The format of the SCSI Response PDU is: 408 Byte/ 0 | 1 | 2 | 3 | 409 / | | | | 410 |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| 411 +---------------+---------------+---------------+---------------+ 412 0|.|.| 0x21 |1|. .|o|u|O|U|.| Response | Status | 413 +---------------+---------------+---------------+---------------+ 414 4|TotalAHSLength | DataSegmentLength | 415 +---------------+---------------+---------------+---------------+ 416 8| Status Qualifier | Reserved | 417 +---------------+---------------+---------------+---------------+ 418 12| Reserved | 419 +---------------+---------------+---------------+---------------+ 420 16| Initiator Task Tag | 421 +---------------+---------------+---------------+---------------+ 422 20| SNACK Tag or Reserved | 423 +---------------+---------------+---------------+---------------+ 424 24| StatSN | 425 +---------------+---------------+---------------+---------------+ 426 28| ExpCmdSN | 427 +---------------+---------------+---------------+---------------+ 428 32| MaxCmdSN | 429 +---------------+---------------+---------------+---------------+ 430 36| ExpDataSN or Reserved | 431 +---------------+---------------+---------------+---------------+ 432 40| Bidirectional Read Residual Count or Reserved | 433 +---------------+---------------+---------------+---------------+ 434 44| Residual Count or Reserved | 435 +---------------+---------------+---------------+---------------+ 436 48| Header-Digest (Optional) | 437 +---------------+---------------+---------------+---------------+ 438 / Data Segment (Optional) / 439 +/ / 440 +---------------+---------------+---------------+---------------+ 441 | Data-Digest (Optional) | 442 +---------------+---------------+---------------+---------------+ 444 The SCSI Response PDU above is duplicated from [RFC-cons] for 445 reference to show the Status Qualifier field. For any field 446 other than the Status field, the Status Qualifier field, and the 447 Data Segment - Sense and Response Data Segment field, the text in 448 [RFC-cons] supersedes the text in section 5.2 of this document in 449 the event the two documents conflict. 451 -------------------------------------------------------- 452 RFC EDITORS NOTE: The above references to [RFC-cons] should 453 reference the RFC number assigned to [draft-ietf-storm-iscsi- 454 cons-xx], and this note should be removed. 455 -------------------------------------------------------- 457 5.2.1 Status Qualifier 459 The Status Qualifier provides additional status information (see 460 [SAM5]). 462 As defined in Section 11, iSCSI PDU Formats of [RFC-cons], 463 compliant senders already set this field to zero. Compliant 464 senders MUST NOT set this field to a value other than zero unless 465 the iSCSIProtocolLevel text key with a value of "2" as defined in 466 section 7.1.1 was negotiated on the session. 468 -------------------------------------------------------- 469 RFC EDITORS NOTE: The above reference to [RFC-cons] should 470 reference the RFC number assigned to [draft-ietf-storm-iscsi- 471 cons-xx], and this note should be removed. 472 -------------------------------------------------------- 474 This field MUST be ignored by receivers unless the 475 iSCSIProtocolLevel text key with a value of "2" as defined in 476 section 7.1.1 was negotiated on the session. 478 5.2.2 Data Segment - Sense and Response Data Segment 480 Section 11.4.7 of [RFC-cons] specifies that iSCSI targets MUST 481 support and enable autosense. If Status is CHECK CONDITION 482 (0x02), then the Data Segment MUST contain sense data for the 483 failed command. While [RFC-cons] does not make any statements 484 about the state of the Data Segment when the Status is not CHECK 485 CONDITION (0x02)(i.e., the Data Segment is not prohibited from 486 containing sense data when the Status is not CHECK CONDITION), 487 negotiation of the iSCSIProtocolLevel text key with a value of 488 "2" as defined in section 7.1.1 explicitly indicates that the 489 Data Segment MAY contain sense data at any time, no matter what 490 value is set in the Status field. 492 -------------------------------------------------------- 493 RFC EDITORS NOTE: The above references to [RFC-cons] should 494 reference the RFC number assigned to [draft-ietf-storm-iscsi- 495 cons-xx], and this note should be removed. 496 -------------------------------------------------------- 498 6. Task Management Functions 500 6.1 Task Management Function Request PDU 502 Byte/ 0 | 1 | 2 | 3 | 503 / | | | | 504 |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| 505 +---------------+---------------+---------------+---------------+ 506 0|.|I| 0x02 |1| Function | Reserved | 507 +---------------+---------------+---------------+---------------+ 508 4|TotalAHSLength | DataSegmentLength | 509 +---------------+---------------+---------------+---------------+ 510 8| Logical Unit Number (LUN) | 511 + + 512 12| | 513 +---------------+---------------+---------------+---------------+ 514 16| Initiator Task Tag | 515 +---------------+---------------+---------------+---------------+ 516 20| Referenced Task Tag or 0xffffffff | 517 +---------------+---------------+---------------+---------------+ 518 24| CmdSN | 519 +---------------+---------------+---------------+---------------+ 520 28| ExpStatSN | 521 +---------------+---------------+---------------+---------------+ 522 32| RefCmdSN or Reserved | 523 +---------------+---------------+---------------+---------------+ 524 36| ExpDataSN or Reserved | 525 +---------------+---------------+---------------+---------------+ 526 40| Reserved / 527 +/ / 528 +---------------+---------------+---------------+---------------+ 529 48| Header-Digest (Optional) | 530 +---------------+---------------+---------------+---------------+ 532 The Task Management Function Request PDU above is duplicated from 533 [RFC-cons] for reference only. [RFC-cons] supersedes the text in 534 section 6.1 and 6.2 of this document in the event the two 535 documents conflict. 537 -------------------------------------------------------- 538 RFC EDITORS NOTE: The above references to [RFC-cons] should 539 reference the RFC number assigned to [draft-ietf-storm-iscsi- 540 cons-xx], and this note should be removed. 541 -------------------------------------------------------- 543 6.2 Existing Task Management Functions 545 Section 11.5 of [RFC-cons] defines the semantics used to request 546 SCSI Task Management Functions be performed. The following task 547 management functions are defined: 549 1 - ABORT TASK 550 2 - ABORT TASK SET 551 3 - CLEAR ACA 552 4 - CLEAR TASK SET 553 5 - LOGICAL UNIT RESET 554 6 - TARGET WARM RESET 555 7 - TARGET COLD RESET 556 8 - TASK REASSIGN 558 -------------------------------------------------------- 559 RFC EDITORS NOTE: The above references to [RFC-cons] should 560 reference the RFC number assigned to [draft-ietf-storm-iscsi- 561 cons-xx], and this note should be removed. 562 -------------------------------------------------------- 564 6.3 Task Management Function Additions 566 Additional task Management function codes are listed below. For 567 a more detailed description of SCSI task management, see [SAM5]. 569 9 - QUERY TASK - determines if the command identified by the 570 Referenced Task Tag field is present in the task set. 572 10 - QUERY TASK SET - determine if any command is present in 573 the task set for the I_T_L Nexus on which the task management 574 function was received. 576 11 - I_T NEXUS RESET - perform an I_T nexus loss function (see 577 [SAM5]) for the I_T nexus on which the task management 578 function was received. 580 12 - QUERY ASYNCHRONOUS EVENT - determine if there is a unit 581 attention condition or a deferred error pending for the I_T_L 582 nexus on which the task management function was received. 584 These task management function requests MUST NOT be sent unless 585 the iSCSIProtocolLevel text key with a value of "2" as defined in 586 section 7.1.1 was negotiated on the session. 588 Any compliant initiator that sends any of the new task management 589 functions defined in this section MUST also support all new task 590 management function responses (as specified in section 6.4.2). 592 For all of the task management functions detailed in this 593 section, the Task Management function response MUST be returned 594 as detailed in section 6.4. 596 The iSCSI target MUST ensure that no responses for the commands 597 covered by a task management function are sent to the iSCSI 598 initiator port after the Task Management response except for a 599 commands covered by a TASK REASSIGN, QUERY TASK, or QUERY TASK 600 SET. 602 If a QUERY TASK is issued for a task created by an immediate 603 command then RefCmdSN MUST be that of the Task Management request 604 itself (i.e., CmdSN and RefCmdSN are equal); otherwise RefCmdSN 605 MUST be set to the CmdSN of the task to be queried (lower than 606 CmdSN). 608 If the connection is still active (it is not undergoing an 609 implicit or explicit logout), QUERY TASK MUST be issued on the 610 same connection to which the task to be queried is allegiant at 611 the time the Task Management request is issued. If the 612 connection is implicitly or explicitly logged out (i.e., no other 613 request will be issued on the failing connection and no other 614 response will be received on the failing connection), then a 615 QUERY TASK function request may be issued on another connection. 616 This Task Management request will then establish a new allegiance 617 for the command being queried. 619 At the target a QUERY TASK function MUST NOT be executed on a 620 Task Management request; such a request MUST result in Task 621 Management response of "Function rejected". 623 For the I_T NEXUS RESET function, the target device MUST respond 624 to the function as defined in [SAM5]. Each logical unit 625 accessible via the receiving I_T NEXUS MUST behave as dictated by 626 the I_T nexus loss function in [SAM5] for the I_T nexus on which 627 the task management function was received. The target device 628 MUST drop all connections in the session over which this function 629 is received. Independent of the DefaultTime2Wait and 630 DefaultTime2Retain value applicable to the session over which 631 this function is received, the target device MUST consider each 632 participating connection in the session to have immediately timed 633 out, leading to FREE state. The resulting timeouts cause the 634 session timeout event defined in [RFC-cons], which in turn 635 triggers the I_T nexus loss notification to the SCSI layer as 636 described in [RFC-cons]. 638 -------------------------------------------------------- 639 RFC EDITORS NOTE: The above references to [RFC-cons] should 640 reference the RFC number assigned to [draft-ietf-storm-iscsi- 641 cons-xx], and this note should be removed. 642 -------------------------------------------------------- 644 6.3.1 LUN field 646 This field is required for functions that address a specific LU 647 (i.e., ABORT TASK, CLEAR TASK SET, ABORT TASK SET, CLEAR ACA, 648 LOGICAL UNIT RESET, QUERY TASK, QUERY TASK SET, and QUERY 649 ASYNCHRONOUS EVENT) and is reserved in all others. 651 6.3.2 Referenced Task Tag 652 The Initiator Task Tag of the task to be aborted for the ABORT 653 TASK function, reassigned for the TASK REASSIGN function, or 654 queried for the QUERY TASK function. For all other functions 655 this field MUST be set to the reserved value 0xffffffff. 657 6.3.3 RefCmdSN 659 If a QUERY TASK is issued for a task created by an immediate 660 command then RefCmdSN MUST be that of the Task Management request 661 itself (i.e., CmdSN and RefCmdSN are equal). 663 For a QUERY TASK of a task created by non-immediate command 664 RefCmdSN MUST be set to the CmdSN of the task identified by the 665 Referenced Task Tag field. Targets must use this field as 666 described in section 11.6.1 of [RFC-cons] when the task 667 identified by the Referenced Task Tag field is not in the task 668 set. 670 -------------------------------------------------------- 671 RFC EDITORS NOTE: The above references to [RFC-cons] should 672 reference the RFC number assigned to [draft-ietf-storm-iscsi- 673 cons-xx], and this note should be removed. 674 -------------------------------------------------------- 676 6.4 Task Management Function Responses 678 6.4.1 Task Management Function Response PDU 680 Byte/ 0 | 1 | 2 | 3 | 681 / | | | | 682 |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| 683 +---------------+---------------+---------------+---------------+ 684 0|.|.| 0x22 |1| Reserved | Response | Reserved | 685 +---------------+---------------+---------------+---------------+ 686 4|TotalAHSLength | DataSegmentLength | 687 +-----------------------------------------------+---------------+ 688 8| Additional Response Information | Reserved | 689 +-----------------------------------------------+---------------+ 690 12| Reserved | 691 +---------------+---------------+---------------+---------------+ 692 16| Initiator Task Tag | 693 +---------------+---------------+---------------+---------------+ 694 20| Reserved | 695 +---------------+---------------+---------------+---------------+ 696 24| StatSN | 697 +---------------+---------------+---------------+---------------+ 698 28| ExpCmdSN | 699 +---------------+---------------+---------------+---------------+ 700 32| MaxCmdSN | 701 +---------------+---------------+---------------+---------------+ 702 36/ Reserved / 703 +/ / 704 +---------------+---------------+---------------+---------------+ 705 48| Header-Digest (Optional) | 706 +---------------+---------------+---------------+---------------+ 708 Section 11.6 of [RFC-cons] defines the semantics used for 709 responses to SCSI Task Management Functions. The following 710 responses are defined in [RFC-cons]: 712 0 - Function Complete. 713 1 - Task does not exist. 714 2 - LUN does not exist. 715 3 - Task still allegiant. 716 4 - Task allegiance reassignment not supported. 717 5 - Task management function not supported. 718 6 - Function authorization failed. 719 255 - Function rejected. 721 The Task Management Function Response PDU above and the list of 722 task management function responses above are duplicated from 723 [RFC-cons] for reference only. [RFC-cons] supersedes the text in 724 section 6.4.1 of this document in the event the two documents 725 conflict. 727 -------------------------------------------------------- 728 RFC EDITORS NOTE: The above references to [RFC-cons] should 729 reference the RFC number assigned to [draft-ietf-storm-iscsi- 730 cons-xx], and this note should be removed. 731 -------------------------------------------------------- 733 Responses to new task management functions (see 6.4.2) are listed 734 below. In addition, a new task Management response is listed 735 below. For a more detailed description of SCSI task management 736 responses, see [SAM5]. 738 For the functions QUERY TASK, QUERY TASK SET, I_T NEXUS RESET, 739 and QUERY ASYNCHRONOUS EVENT, the target performs the requested 740 Task Management function and sends a Task Management response 741 back to the initiator. 743 6.4.2 Task Management Function Response Additions 745 The new response is listed below: 747 7 - Function succeeded. 749 In symbolic terms Response value 7 maps to the SCSI service 750 response of FUNCTION SUCCEEDED in [SAM5]. 752 The task management function response of "Function succeeded" 753 MUST be supported by an initiator that sends any of the new task 754 management functions (see 6.3). 756 For the QUERY TASK function, if the specified task is in the task 757 set, then the logical unit returns a Response value of Function 758 succeeded and additional response information is returned as 759 specified in [SAM5]. If the specified task is not in the task 760 set, then the logical unit returns a Response value of Function 761 complete. 763 For the QUERY TASK SET function, if there is any command present 764 in the task set from the specified I_T_L nexus, then the logical 765 unit returns a Response value of Function succeeded. If there 766 are no commands present in the task set from the specified I_T_L 767 nexus, then the logical unit returns a Response value of Function 768 complete. 770 For the I_T NEXUS RESET function, after completion of the events 771 described in section 6.3 for this function, the logical unit 772 returns a Response value of Function complete. However, because 773 the target drops all connections, the Service Response (defined 774 by [SAM5]) for this SCSI task management function may not be 775 reliably delivered to the issuing initiator port. 777 For the QUERY ASYNCHRONOUS EVENT, if there is a unit attention 778 condition or deferred error pending for the specified I_T_L 779 nexus, then the logical unit returns a Response value of Function 780 succeeded and additional response information is returned as 781 specified in [SAM5]. If there is no unit attention or deferred 782 error pending for the specified I_T_L nexus then the logical unit 783 returns a Response value of Function complete. 785 6.5 Task Management Requests Affecting Multiple Tasks 787 Section 4.1 of [RFC5048] defines the notion of "affected tasks" 788 in multi-task abort scenarios. This section adds to the list 789 include in that section by defining the tasks affected by the I_T 790 NEXUS RESET function. 792 I_T NEXUS RESET: All outstanding tasks received on the I_T 793 nexus on which the function request was received for all 794 logical units accessible to the I_T nexus. 796 Section 4.1.2 of [RFC5048] and section 4.1.3 of [RFC5048] 797 identify semantics for task management functions that involve 798 multi-task abort operations. If an iSCSI implementation supports 799 the I_T NEXUS RESET function, it MUST also support the protocol 800 behavior as defined in those sections and follow the sequence of 801 actions as described in those sections when processing the I_T 802 NEXUS RESET function. 804 7. Login/Text Operational Text Keys 806 7.1 New Operational Text Keys 808 7.1.1 iSCSIProtocolLevel 810 Use: LO, IO 811 Irrelevant when: SessionType = Discovery 812 Senders: Initiator and Target 813 Scope: SW 815 iSCSIProtocolLevel= 817 Default is 1. 818 Result function is Minimum. 820 This key is used to negotiate the use of iSCSI features that 821 require different levels of protocol support (e.g., PDU formats, 822 end node semantics) for proper operation. 824 Negotiation of the iSCSIProtocolLevel key to a value 825 corresponding to an RFC indicates that both negotiating parties 826 are compliant to the RFC in question, and agree to support the 827 corresponding PDU formats and semantics on that iSCSI session. 828 Features using this key are expected to be cumulative. 830 An iSCSIProtocolLevel key negotiated to "0" indicates that the 831 implementation does not claim a specific iSCSI protocol level. 833 An iSCSIProtocolLevel key negotiated to "1" indicates that the 834 implementation claims compliance with [RFC-cons]. 836 -------------------------------------------------------- 837 RFC EDITORS NOTE: The above reference to [RFC-cons] should 838 reference the RFC number assigned to [draft-ietf-storm-iscsi- 839 cons-xx], and this note should be removed. 840 -------------------------------------------------------- 842 An iSCSIProtocolLevel key negotiated to "2" is required to enable 843 use of features defined in this RFC. 845 If the negotiation answer is ignored by the acceptor, or the 846 answer from the remote iSCSI end point is key=NotUnderstood, then 847 the features defined in this RFC, and the features defined in any 848 RFC requiring a key value greater than "2" MUST NOT be used. 850 8. Security Considerations 852 Command priorities are relative values, not absolute values (see 853 [SAM5] and affect collections of commands, not necessarily 854 individual commands (see [SAM5]); if command priority is 855 supported, it should be implemented in a fashion that avoids 856 unwanted reduction or denial of service. 858 All the iSCSI-related security text in [RFC3723] and the security 859 text in [RFC-cons] is also directly applicable to this document. 861 -------------------------------------------------------- 862 RFC EDITORS NOTE: The above reference to [RFC-cons] should 863 reference the RFC number assigned to [draft-ietf-storm-iscsi- 864 cons-xx], and this note should be removed. 865 -------------------------------------------------------- 867 9. IANA Considerations 869 This document modifies or creates a number of iSCSI-related 870 registries. The following iSCSI-related registries are modified: 872 1. iSCSI Task Management Functions Codes 874 Name of the existing registry: "iSCSI TMF Codes" 876 The name of this registry should be changed to: "iSCSI Task 877 Management Function 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 --------------------------------------------------------- 890 RFC EDITORS NOTE: The above reference to [RFCxxx] should 891 reference this RFC, and this note should be removed. 892 --------------------------------------------------------- 894 2. iSCSI Login/Text Keys 896 Name of the existing registry: "iSCSI Text Keys" 898 Fields to record in the registry: Assigned value and its 899 associated RFC reference: 901 iSCSIProtocolLevel, [RFCxxx] 903 --------------------------------------------------------- 904 RFC EDITORS NOTE: The above references to [RFCxxx] should 905 reference this RFC, and this note should be removed. 906 --------------------------------------------------------- 908 This document creates the following iSCSI-related registries for 909 IANA to manage. 911 3. iSCSI Protocol Level 913 Name of new registry: "iSCSI Protocol Level" 915 Namespace details: Numerical values from 0 to 31 917 Information that must be provided to assign a new value: An 918 IESG-approved standards track specification defining the 919 semantics and interoperability requirements of the proposed 920 new value and the fields to be recorded in the registry. 922 Assignment policy: 924 The assignments of these values must be coordinated with the 925 INCITS T10 committee; therefore review by an expert that 926 maintains an association with that committee is required prior 927 to IESG approval of the associated specification. After 928 creation of the registry, values are to be assigned 929 sequentially (for example, any value greater than 4 will not 930 be assigned until after the value 4 has been assigned). 932 Special care must be taken in the assignment of new values in 933 this registry. Compatibility and interoperability will be 934 adversely impacted if proper care is not exercised. Features 935 using this key are expected to be cumulative. For example, 936 since this draft explicitly lists only value 2 for the 937 features listed in this draft, it is expected that a new RFC 938 assigning value 3 will also have the features listed in this 939 RFC and therefore such an RFC is expected to either revise or 940 replace this RFC. Assignments that do not follow this policy 941 should be reviewed and approved by the INCITS T10 committee. 943 3-31: range reserved by IANA for assignment in this registry. 945 Fields to record in the registry: Assigned value, description, 946 and its associated RFC reference. 948 0, No version claimed, [RFCxxx] 950 1, RFC-cons, [RFCxxx] 952 2, RFCxxx, [RFCxxx] 954 --------------------------------------------------------- 955 RFC EDITORS NOTE: The above references to [RFCxxx] should 956 reference this RFC, and this note should be removed. The 957 above reference to RFC-cons should be replaced with the name 958 of the [draft-ietf-storm-iscsi-cons-xx] document, and this 959 note should be removed. All associated RFC references are to 960 this document; even the reference for value 1. The 961 description for value 1 however contains the RFC-cons name but 962 should not have [] around the description (it is a description 963 not a formal reference). The description for value 2 is the 964 name of this RFC but should not contain the [] (again, a 965 description not a formal reference). This note should be 966 removed. 967 --------------------------------------------------------- 969 Allocation Policy: 971 Expert review ([IANA]) and Standards Action ([IANA]) 973 4. iSCSI Task Management Response Codes 975 Name of new registry: "iSCSI Task Management Function Response 976 Codes" 978 Namespace details: Numerical values that can fit in 8 bits. 980 Information that must be provided to assign a new value: An 981 IESG-approved specification defining the semantics and 982 interoperability requirements of the proposed new value and 983 the fields to be recorded in the registry. 985 Assignment policy: 987 If the requested value is not already assigned, it may be 988 assigned to the requester. 990 8-254: Range reserved by iANA for assignment in this registry. 992 Fields to record in the registry: Assigned value, Operation 993 Name, and its associated RFC reference. 995 0x0, Function complete, [RFC-cons] 997 0x1, Task does not exist, [RFC-cons] 999 0x2, LUN does not exist, [RFC-cons] 1001 0x3, Task still allegiant, [RFC-cons] 1003 0x4, Task allegiance reassignment not supported, [RFC-cons] 1005 0x5, Task management function not supported, [RFC-cons] 1007 0x6, Function authorization failed, [RFC-cons] 1009 0x7, Function succeeded, [RFCxxx] 1011 255, Function rejected, [RFC-cons] 1013 ------------------------------------------------------------ 1014 RFC EDITORS NOTE: The above reference to [RFCxxx] should 1015 reference this RFC, and this note should be removed. 1017 The above references to [RFC-cons] should reference the 1018 [draft-ietf-storm-iscsi-cons-xx] document, and this note 1019 should be removed. 1020 ------------------------------------------------------------ 1022 Allocation Policy: 1024 Standards Action ([IANA]) 1026 10. References 1028 10.1 Normative References 1030 [RFC2119] Bradner, S. "Key Words for use in RFCs to Indicate 1031 Requirement Levels", BCP 14, RFC 2119, March 1997. 1033 [RFC3723] Aboba, B., Tseng, J., Walker, J., Rangan, V., and 1034 Travostino, F., "Securing Block Storage Protocols 1035 over IP", RFC 3723, April 2004. 1037 [RFC5048] Chadalapaka, M., "Internet Small Computer System 1038 Interface (iSCSI) Corrections and Clarifications", 1039 RFC 5048, October 2007. 1041 [draft-ietf-storm-iscsi-cons-xx] Chadalapaka, M., Satran, J., 1042 Kalman, M., "iSCSI Protocol (consolidated)", RFC xxx, 1043 Date 2013. 1045 ------------------------------------------------------------ 1046 RFC EDITORS NOTE: The above references to [draft-ietf-storm- 1047 iscsi-cons-xx] and RFC xxx should reference the RFC number 1048 assigned to that draft, and this note should be removed. 1049 ------------------------------------------------------------ 1051 [IANA] Narten, T. and H. Alvestrand, "Guidelines for Writing 1052 an IANA Considerations Section in RFCs", BCP 26, RFC 1053 5226, May 2008. 1055 [SAM2] T10/1157D, SCSI Architecture Model - 2 (SAM-2). 1057 [SAM5] T10/2104D rev r04, SCSI Architecture Model - 5 (SAM- 1058 5), Committee Draft. 1060 [SPC4] T10/1731D rev r36, SCSI Primary Commands - 4 (SPC-4), 1061 Committee Draft. 1063 10.2 Informative References 1065 [RFC3720] Satran, J., Meth, K., Sapuntzakis, C., Chadalapaka, 1066 M., and E. Zeidner, "Internet Small Computer Systems 1067 Interface (iSCSI)", RFC 3720, April 2004. 1069 10.3 Additional Reference Sources 1071 For more information on the SCSI Architecture Model and SCSI 1072 Primary Commands - 4, contact the INCITS T10 Technical Committee 1073 for SCSI Storage Interfaces at http://www.t10.org. 1075 11. Acknowledgements 1077 The Storage Maintenance (STORM) Working Group in the Transport 1078 Area of the IETF has been responsible for defining these 1079 additions to the iSCSI protocol (apart from other relevant IP 1080 Storage protocols). The editor acknowledges the contributions of 1081 the entire working group and other IETF reviewers. 1082 The following individuals directly contributed to identifying 1083 [RFCxxx] issues and/or suggesting resolutions to the issues 1084 clarified in this document: David Black, Rob Elliott. This 1085 document benefited from all of these contributions. 1087 ------------------------------------------------------------ 1089 RFC EDITORS NOTE: The above reference to [RFCxxx] should 1090 reference this RFC, and this note should be removed. 1091 ------------------------------------------------------------ 1093 Author's Addresses: 1094 Frederick Knight 1095 7301 Kit Creek Road 1096 P.O. Box 13917 1097 Research Triangle Park, NC 27709, USA 1098 Phone: +1-919-476-5362 1099 Email: knight@netapp.com 1101 Mallikarjun Chadalapaka 1102 Microsoft 1103 One Microsoft Way 1104 Redmond, WA 98052 USA 1105 Email: cbm@chadalapaka.com