summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc5048.txt
blob: a586df5e76793ee05aee3485768edc9033fdaa56 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
Network Working Group                                M. Chadalapaka, Ed.
Request for Comments: 5048                           Hewlett-Packard Co.
Updates: 3720                                               October 2007
Category: Standards Track


           Internet Small Computer System Interface (iSCSI)
                     Corrections and Clarifications

Status of This Memo

   This document specifies an Internet standards track protocol for the
   Internet community, and requests discussion and suggestions for
   improvements.  Please refer to the current edition of the "Internet
   Official Protocol Standards" (STD 1) for the standardization state
   and status of this protocol.  Distribution of this memo is unlimited.

Abstract

   The Internet Small Computer System Interface (iSCSI) is a SCSI
   transport protocol and maps the SCSI architecture and command sets
   onto TCP/IP.  RFC 3720 defines the iSCSI protocol.  This document
   compiles the clarifications to the original protocol definition in
   RFC 3720 to serve as a companion document for the iSCSI implementers.
   This document updates RFC 3720 and the text in this document
   supersedes the text in RFC 3720 when the two differ.

Table of Contents

   1. Introduction ....................................................3
   2. Definitions, Acronyms, and Document Summary .....................3
      2.1. Definitions ................................................3
      2.2. Acronyms ...................................................4
      2.3. Clarifications, Changes, and New Semantics .................5
   3. iSCSI Semantics for SCSI Tasks ..................................7
      3.1. Residual Handling ..........................................7
           3.1.1. Overview ............................................7
           3.1.2. SCSI REPORT LUNS and Residual Overflow ..............7
      3.2. R2T Ordering ...............................................9
      3.3. Model Assumptions for Response Ordering ....................9
           3.3.1. Model Description ..................................10
           3.3.2. iSCSI Semantics with the Interface Model ...........10
           3.3.3. Current List of Fenced Response Use Cases ..........11
   4. Task Management ................................................12
      4.1. Requests Affecting Multiple Tasks .........................12
           4.1.1. Scope of Affected Tasks ............................12
           4.1.2. Clarified Multi-Task Abort Semantics ...............13
           4.1.3. Updated Multi-Task Abort Semantics .................14



Chadalapaka                 Standards Track                     [Page 1]
^L
RFC 5048          iSCSI Corrections and Clarifications      October 2007


           4.1.4. Affected Tasks Shared across RFC 3720 and
                  FastAbort Sessions .................................16
           4.1.5. Implementation Considerations ......................17
           4.1.6. Rationale behind the New Semantics .................17
   5. Discovery Semantics ............................................19
      5.1. Error Recovery for Discovery Sessions .....................19
      5.2. Reinstatement Semantics of Discovery Sessions .............19
           5.2.1. Unnamed Discovery Sessions .........................20
           5.2.2. Named Discovery Sessions ...........................20
      5.3. Target PDUs during Discovery ..............................20
   6. Negotiation and Others .........................................21
      6.1. TPGT Values ...............................................21
      6.2. SessionType Negotiation ...................................21
      6.3. Understanding NotUnderstood ...............................21
      6.4. Outstanding Negotiation Exchanges .........................22
   7. iSCSI Error Handling and Recovery ..............................22
      7.1. ITT .......................................................22
      7.2. Format Errors .............................................22
      7.3. Digest Errors .............................................22
      7.4. Message Error Checking ....................................23
   8. iSCSI PDUs .....................................................23
      8.1. Asynchronous Message ......................................23
      8.2. Reject ....................................................24
   9. Login/Text Operational Text Keys ...............................24
      9.1. TaskReporting .............................................24
   10. Security Considerations .......................................25
   11. IANA Considerations ...........................................26
      11.1. iSCSI-Related IANA Registries ............................26
      11.2. iSCSI Opcodes ............................................26
      11.3. iSCSI Login/Text Keys ....................................28
      11.4. iSCSI Asynchronous Events ................................30
      11.5. iSCSI Task Management Function Codes .....................31
      11.6. iSCSI Login Response Status Codes ........................32
      11.7. iSCSI Reject Reason Codes ................................34
      11.8. iSER Opcodes .............................................35
   12. References ....................................................36
      12.1. Normative References .....................................36
      12.2. Informative References ...................................36
   Acknowledgements ..................................................37












Chadalapaka                 Standards Track                     [Page 2]
^L
RFC 5048          iSCSI Corrections and Clarifications      October 2007


1.  Introduction

   Several iSCSI implementations have been built since [RFC3720] was
   published and the iSCSI community is now richer by the resulting
   implementation expertise.  The goal of this document is to leverage
   this expertise both to offer clarifications to the [RFC3720]
   semantics and to address defects in [RFC3720] as appropriate.  This
   document intends to offer critical guidance to implementers with
   regard to non-obvious iSCSI implementation aspects so as to improve
   interoperability and accelerate iSCSI adoption.  This document,
   however, does not purport to be an all-encompassing iSCSI how-to
   guide for implementers, nor a complete revision of [RFC3720].
   Instead, this document is intended as a companion document to
   [RFC3720] for the iSCSI implementers.

   iSCSI implementers are required to reference [RFC3722] and [RFC3723]
   in addition to [RFC3720] for mandatory requirements.  In addition,
   [RFC3721] also contains useful information for iSCSI implementers.
   The text in this document, however, updates and supersedes the text
   in [RFC3720] whenever there is such a question.

2.  Definitions, Acronyms, and Document Summary

2.1.  Definitions

   I/O Buffer
      A buffer that is used in a SCSI Read or Write operation so SCSI
      data may be sent from or received into that buffer.  For a read or
      write data transfer to take place for a task, an I/O Buffer is
      required on the initiator and at least one is required on the
      target.

   SCSI-Presented Data Transfer Length (SPDTL)
      SPDTL is the aggregate data length of the data that the SCSI layer
      logically "presents" to the iSCSI layer for a Data-In or Data-Out
      transfer in the context of a SCSI task.  For a bidirectional task,
      there are two SPDTL values -- one for Data-In and one for Data-
      Out.  Note that the notion of "presenting" includes immediate data
      per the data transfer model in [SAM2], and excludes overlapping
      data transfers, if any, requested by the SCSI layer.

   Third-party
      A term used in this document to denote nexus objects (I_T or
      I_T_L) and iSCSI sessions that reap the side effects of actions
      that take place in the context of a separate iSCSI session, while
      being third parties to the action that caused the side effects.
      One example of a third-party session is an iSCSI session hosting




Chadalapaka                 Standards Track                     [Page 3]
^L
RFC 5048          iSCSI Corrections and Clarifications      October 2007


      an I_T_L nexus to an LU that is reset with an LU Reset TMF via a
      separate I_T nexus.

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in [RFC2119].

2.2.  Acronyms

   Acronym        Definition
   -------------------------------------------------------------

   EDTL           Expected Data Transfer Length

   IANA           Internet Assigned Numbers Authority

   IETF           Internet Engineering Task Force

   I/O            Input - Output

   IP             Internet Protocol

   iSCSI          Internet SCSI

   iSER           iSCSI Extensions for RDMA

   ITT            Initiator Task Tag

   LO             Leading Only

   LU             Logical Unit

   LUN            Logical Unit Number

   PDU            Protocol Data Unit

   RDMA           Remote Direct Memory Access

   R2T            Ready To Transfer

   R2TSN          Ready To Transfer Sequence Number

   RFC            Request For Comments

   SAM            SCSI Architecture Model

   SCSI           Small Computer Systems Interface




Chadalapaka                 Standards Track                     [Page 4]
^L
RFC 5048          iSCSI Corrections and Clarifications      October 2007


   SN             Sequence Number

   SNACK          Selective Negative Acknowledgment - also
                  Sequence Number Acknowledgement for data

   TCP            Transmission Control Protocol

   TMF            Task Management Function

   TTT            Target Transfer Tag

   UA             Unit Attention

2.3.  Clarifications, Changes, and New Semantics

   This document specifies certain changes to [RFC3720] semantics as
   well as defines new iSCSI semantics.  In addition, this document also
   clarifies the [RFC3720] semantics.  This section summarizes the
   contents of the document, categorizing each section into one or more
   of a clarification, change, or new semantic.

      Section 3.1.1: Clarification on iSCSI residuals computation
      general principles

      Section 3.1.2: Clarification on iSCSI residuals computation with
      an example

      Section 3.2: Clarification on R2T ordering requirements

      Section 3.3: New Semantics for Response Ordering in multi-
      connection iSCSI sessions

      Section 4.1.2: Clarifications, changes, and new semantics on
      multi-task abort semantics that all implementations must comply
      with

      Section 4.1.3: Changes and new semantics (FastAbort semantics) on
      multi-task abort semantics that implementations should use for
      faster error recovery

      Section 4.1.3.1: Changes in iSCSI clearing effects semantics
      resulting from new FastAbort semantics

      Section 4.1.4: New Semantics on third-party session interactions
      with the new FastAbort semantics






Chadalapaka                 Standards Track                     [Page 5]
^L
RFC 5048          iSCSI Corrections and Clarifications      October 2007


      Section 4.1.5: Clarification on implementation considerations
      related to outstanding data transfers in order to realize correct
      iSCSI protocol behavior

      Section 4.1.6: Clarification on the intent behind FastAbort
      semantics (not clarifications to [RFC3720] semantics)

      Section 5.1: Clarification on error recovery semantics as
      applicable to Discovery sessions

      Section 5.2.1: Clarification and new semantics on applying the
      Initiator Session Identifier (ISID) RULE ([RFC3720]) to Unnamed
      Discovery Sessions

      Section 5.2.2: Clarification on applying the ISID RULE to Named
      Discovery Sessions

      Section 5.3: Clarification on allowed PDU types and target Logout
      notification behavior on a Discovery session

      Section 6.1: Clarification on the legality of the Target Portal
      Group Tag (TPGT) value of zero

      Section 6.2: Clarification on the negotiating order of SessionType
      with respect to other keys

      Section 6.3: Clarification on the NotUnderstood negotiation
      response on declarative keys and the implied semantics

      Section 6.4: Clarification on the number of legal outstanding
      negotiation PDUs (Text or Login-related)

      Section 7.1: Clarification on usage of the ITT value of 0xffffffff

      Section 7.2: Clarification on what constitutes format errors for
      the purpose of error recovery defined in [RFC3720]

      Section 7.3: Change in error recovery semantics for the case of
      discarding unsolicited PDUs

      Section 7.4: Clarification on the intended level of error checking
      on inbound PDUs

      Section 8.1: New semantics for a new AsyncEvent code

      Section 8.2: Change of legal status for Reject reason code 0x0b;
      it is now deprecated




Chadalapaka                 Standards Track                     [Page 6]
^L
RFC 5048          iSCSI Corrections and Clarifications      October 2007


      Section 9.1: New semantics for a new text key TaskReporting

3.  iSCSI Semantics for SCSI Tasks

3.1.  Residual Handling

   Section 10.4.1 of [RFC3720] defines the notion of "residuals" and
   specifies how the residual information should be encoded into the
   SCSI Response PDU in the Counts and Flags fields.  Section 3.1.1
   clarifies the intent of [RFC3720] and explains the general
   principles.  Section 3.1.2 describes the residual handling in the
   REPORT LUNS scenario.

3.1.1.  Overview

   SCSI-Presented Data Transfer Length (SPDTL) is the term this document
   uses (see Section 1.1 for definition) to represent the aggregate data
   length that the target SCSI layer attempts to transfer using the
   local iSCSI layer for a task.  Expected Data Transfer Length (EDTL)
   is the iSCSI term that represents the length of data that the iSCSI
   layer expects to transfer for a task.  EDTL is specified in the SCSI
   Command PDU.

   When SPDTL = EDTL for a task, the target iSCSI layer completes the
   task with no residuals.  Whenever SPDTL differs from EDTL for a task,
   that task is said to have a residual.

   If SPDTL > EDTL for a task, iSCSI Overflow MUST be signaled in the
   SCSI Response PDU as specified in [RFC3720].  The Residual Count MUST
   be set to the numerical value of (SPDTL - EDTL).

   If SPDTL < EDTL for a task, iSCSI Underflow MUST be signaled in the
   SCSI Response PDU as specified in [RFC3720].  The Residual Count MUST
   be set to the numerical value of (EDTL - SPDTL).

   Note that the Overflow and Underflow scenarios are independent of
   Data-In and Data-Out.  Either scenario is logically possible in
   either direction of data transfer.

3.1.2.  SCSI REPORT LUNS and Residual Overflow

   This section discusses the residual overflow issues citing the
   example of the SCSI REPORT LUNS command.  Note however that there are
   several SCSI commands (e.g., INQUIRY) with ALLOCATION LENGTH fields
   following the same underlying rules.  The semantics in the rest of
   the section apply to all such SCSI commands.





Chadalapaka                 Standards Track                     [Page 7]
^L
RFC 5048          iSCSI Corrections and Clarifications      October 2007


   The specification of the SCSI REPORT LUNS command requires that the
   SCSI target limit the amount of data transferred to a maximum size
   (ALLOCATION LENGTH) provided by the initiator in the REPORT LUNS CDB.
   If the Expected Data Transfer Length (EDTL) in the iSCSI header of
   the SCSI Command PDU for a REPORT LUNS command is set to at least as
   large as that ALLOCATION LENGTH, the SCSI layer truncation prevents
   an iSCSI Residual Overflow from occurring.  A SCSI initiator can
   detect that such truncation has occurred via other information at the
   SCSI layer.  The rest of the section elaborates this required
   behavior.

   iSCSI uses the (O) bit (bit 5) in the Flags field of the SCSI
   Response and the last SCSI Data-In PDUs to indicate that an iSCSI
   target was unable to transfer all of the SCSI data for a command to
   the initiator because the amount of data to be transferred exceeded
   the EDTL in the corresponding SCSI Command PDU (see Section 10.4.1 of
   [RFC3720]).

   The SCSI REPORT LUNS command requests a target SCSI layer to return a
   logical unit inventory (LUN list) to the initiator SCSI layer (see
   Section 6.21 of SPC-3 [SPC3]).  The size of this LUN list may not be
   known to the initiator SCSI layer when it issues the REPORT LUNS
   command; to avoid transferring more LUN list data than the initiator
   is prepared for, the REPORT LUNS CDB contains an ALLOCATION LENGTH
   field to specify the maximum amount of data to be transferred to the
   initiator for this command.  If the initiator SCSI layer has under-
   estimated the number of logical units at the target, it is possible
   that the complete logical unit inventory does not fit in the
   specified ALLOCATION LENGTH.  In this situation, Section 4.3.3.6 in
   [SPC3] requires that the target SCSI layer "shall terminate transfers
   to the Data-In Buffer" when the number of bytes specified by the
   ALLOCATION LENGTH field have been transferred.

   Therefore, in response to a REPORT LUNS command, the SCSI layer at
   the target presents at most ALLOCATION LENGTH bytes of data (logical
   unit inventory) to iSCSI for transfer to the initiator.  For a REPORT
   LUNS command, if the iSCSI EDTL is at least as large as the
   ALLOCATION LENGTH, the SCSI truncation ensures that the EDTL will
   accommodate all of the data to be transferred.  If all of the logical
   unit inventory data presented to the iSCSI layer -- i.e., the data
   remaining after any SCSI truncation -- is transferred to the
   initiator by the iSCSI layer, an iSCSI Residual Overflow has not
   occurred and the iSCSI (O) bit MUST NOT be set in the SCSI Response
   or final SCSI Data-Out PDU.  This is not a new requirement but is
   already required by the combination of [RFC3720] with the
   specification of the REPORT LUNS command in [SPC3].  However, if the
   iSCSI EDTL is larger than the ALLOCATION LENGTH in this scenario,
   note that the iSCSI Underflow MUST be signaled in the SCSI Response



Chadalapaka                 Standards Track                     [Page 8]
^L
RFC 5048          iSCSI Corrections and Clarifications      October 2007


   PDU.  An iSCSI Underflow MUST also be signaled when the iSCSI EDTL is
   equal to the ALLOCATION LENGTH but the logical unit inventory data
   presented to the iSCSI layer is smaller than the ALLOCATION LENGTH.

   The LUN LIST LENGTH field in the logical unit inventory (the first
   field in the inventory) is not affected by truncation of the
   inventory to fit in ALLOCATION LENGTH; this enables a SCSI initiator
   to determine that the received inventory is incomplete by noticing
   that the LUN LIST LENGTH in the inventory is larger than the
   ALLOCATION LENGTH that was sent in the REPORT LUNS CDB.  A common
   initiator behavior in this situation is to re-issue the REPORT LUNS
   command with a larger ALLOCATION LENGTH.

3.2.  R2T Ordering

   Section 10.8 in [RFC3720] says the following:

      The target may send several R2T PDUs.  It, therefore, can have a
      number of pending data transfers.  The number of outstanding R2T
      PDUs is limited by the value of the negotiated key
      MaxOutstandingR2T.  Within a connection, outstanding R2Ts MUST be
      fulfilled by the initiator in the order in which they were
      received.

   The quoted [RFC3720] text was unclear on the scope of applicability
   -- either per task, or across all tasks on a connection -- and may be
   interpreted as either.  This section is intended to clarify that the
   scope of applicability of the quoted text is a task.  No R2T ordering
   relationship -- either in generation at the target or in fulfilling
   at the initiator -- across tasks is implied.  That is, outstanding
   R2Ts within a task MUST be fulfilled by the initiator in the order in
   which they were received on a connection.

3.3.  Model Assumptions for Response Ordering

   Whenever an iSCSI session is composed of multiple connections, the
   Response PDUs (task responses or TMF responses) originating in the
   target SCSI layer are distributed onto the multiple connections by
   the target iSCSI layer according to iSCSI connection allegiance
   rules.  This process generally may not preserve the ordering of the
   responses by the time they are delivered to the initiator SCSI layer.
   Since ordering is not expected across SCSI responses anyway, this
   approach works fine in the general case.  However, to address the
   special cases where some ordering is desired by the SCSI layer, the
   following "Response Fence" semantics are defined with respect to
   handling SCSI response messages as they are handed off from the SCSI
   protocol layer to the iSCSI layer.




Chadalapaka                 Standards Track                     [Page 9]
^L
RFC 5048          iSCSI Corrections and Clarifications      October 2007


3.3.1.  Model Description

   The target SCSI protocol layer hands off the SCSI response messages
   to the target iSCSI layer by invoking the "Send Command Complete"
   protocol data service ([SAM2], clause 5.4.2) and "Task Management
   Function Executed" ([SAM2], clause 6.9) service.  On receiving the
   SCSI response message, the iSCSI layer exhibits the Response Fence
   behavior for certain SCSI response messages (Section 3.3.3 describes
   the specific instances where the semantics must be realized).
   Whenever the Response Fence behavior is required for a SCSI response
   message, the target iSCSI layer MUST ensure that the following
   conditions are met in delivering the response message to the
   initiator iSCSI layer:

   (1) Response with Response Fence MUST be delivered chronologically
       after all the "preceding" responses on the I_T_L nexus, if the
       preceding responses are delivered at all, to the initiator iSCSI
       layer.

   (2) Response with Response Fence MUST be delivered chronologically
       prior to all the "following" responses on the I_T_L nexus.

   The "preceding" and "following" notions refer to the order of handoff
   of a response message from the target SCSI protocol layer to the
   target iSCSI layer.

3.3.2.  iSCSI Semantics with the Interface Model

   Whenever the TaskReporting key (Section 9.1) is negotiated to
   ResponseFence or FastAbort for an iSCSI session and the Response
   Fence behavior is required for a SCSI response message, the target
   iSCSI layer MUST perform the actions described in this section for
   that session.

      a) If it is a single-connection session, no special processing is
         required.  The standard SCSI Response PDU build and dispatch
         process happens.

      b) If it is a multi-connection session, the target iSCSI layer
         takes note of the last-sent and unacknowledged StatSN on each
         of the connections in the iSCSI session, and waits for an
         acknowledgement (NOP-In PDUs MAY be used to solicit
         acknowledgements as needed in order to accelerate this process)
         of each such StatSN to clear the fence.  The SCSI response
         requiring Response Fence behavior MUST NOT be sent to the
         initiator before acknowledgements are received for each of the
         unacknowledged StatSNs.




Chadalapaka                 Standards Track                    [Page 10]
^L
RFC 5048          iSCSI Corrections and Clarifications      October 2007


      c) The target iSCSI layer must wait for an acknowledgement of the
         SCSI Response PDU that carried the SCSI response requiring the
         Response Fence behavior.  The fence MUST be considered cleared
         only after receiving the acknowledgement.

      d) All further status processing for the LU is resumed only after
         clearing the fence.  If any new responses for the I_T_L nexus
         are received from the SCSI layer before the fence is cleared,
         those Response PDUs MUST be held and queued at the iSCSI layer
         until the fence is cleared.

3.3.3.  Current List of Fenced Response Use Cases

   This section lists the fenced response use cases that iSCSI
   implementations MUST comply with.  However, this is not an exhaustive
   enumeration.  It is expected that as SCSI protocol specifications
   evolve, the specifications will specify when response fencing is
   required on a case-by-case basis.

   Whenever the TaskReporting key (Section 9.1) is negotiated to
   ResponseFence or FastAbort for an iSCSI session, the target iSCSI
   layer MUST assume that the Response Fence is required for the
   following SCSI completion messages:

      1. The first completion message carrying the UA after the multi-
         task abort on issuing and third-party sessions.  See Section
         4.1.1 for related TMF discussion.

      2. The TMF Response carrying the multi-task TMF Response on the
         issuing session.

      3. The completion message indicating ACA establishment on the
         issuing session.

      4. The first completion message carrying the ACA ACTIVE status
         after ACA establishment on issuing and third-party sessions.

      5. The TMF Response carrying the Clear ACA response on the issuing
         session.

      6. The response to a PERSISTENT RESERVE OUT/PREEMPT AND ABORT
         command.

   Note: Due to the absence of ACA-related fencing requirements in
   [RFC3720], initiator implementations SHOULD NOT use ACA on multi-
   connection iSCSI sessions to targets complying only with [RFC3720].
   Initiators that want to employ ACA on multi-connection iSCSI sessions




Chadalapaka                 Standards Track                    [Page 11]
^L
RFC 5048          iSCSI Corrections and Clarifications      October 2007


   SHOULD first assess response-fencing behavior via negotiating for
   ResponseFence or FastAbort values for the TaskReporting (Section 9.1)
   key.

4.  Task Management

4.1.  Requests Affecting Multiple Tasks

   This section clarifies and updates the original text in Section
   10.6.2 of [RFC3720].  The clarified semantics (Section 4.1.2) are a
   superset of the protocol behavior required in the original text and
   all iSCSI implementations MUST support the new behavior.  The updated
   semantics (Section 4.1.3) on the other hand are mandatory only when
   the new key TaskReporting (Section 9.1) is negotiated to "FastAbort".

4.1.1.  Scope of Affected Tasks

   This section defines the notion of "affected tasks" in multi-task
   abort scenarios.  Scope definitions in this section apply to both the
   clarified protocol behavior (Section 4.1.2) and the updated protocol
   behavior (Section 4.1.3).

      ABORT TASK SET: All outstanding tasks for the I_T_L nexus
         identified by the LUN field in the ABORT TASK SET TMF Request
         PDU.

      CLEAR TASK SET: All outstanding tasks in the task set for the LU
         identified by the LUN field in the CLEAR TASK SET TMF Request
         PDU.  See [SPC3] for the definition of a "task set".

      LOGICAL UNIT RESET: All outstanding tasks from all initiators for
         the LU identified by the LUN field in the LOGICAL UNIT RESET
         Request PDU.

      TARGET WARM RESET/TARGET COLD RESET: All outstanding tasks from
         all initiators across all LUs to which the TMF-issuing session
         has access on the SCSI target device hosting the iSCSI session.

   Usage: An "ABORT TASK SET TMF Request PDU" in the preceding text is
   an iSCSI TMF Request PDU with the "Function" field set to "ABORT TASK
   SET" as defined in [RFC3720].  Similar usage is employed for other
   scope descriptions.









Chadalapaka                 Standards Track                    [Page 12]
^L
RFC 5048          iSCSI Corrections and Clarifications      October 2007


4.1.2.  Clarified Multi-Task Abort Semantics

   All iSCSI implementations MUST support the protocol behavior defined
   in this section as the default behavior.  The execution of ABORT TASK
   SET, CLEAR TASK SET, LOGICAL UNIT RESET, TARGET WARM RESET, and
   TARGET COLD RESET TMF Requests consists of the following sequence of
   actions in the specified order on the specified party.

   The initiator iSCSI layer:

      a. MUST continue to respond to each TTT received for the affected
         tasks.

      b. SHOULD process any responses received for affected tasks in the
         normal fashion.  This is acceptable because the responses are
         guaranteed to have been sent prior to the TMF response.

      c. SHOULD receive the TMF Response concluding all the tasks in the
         set of affected tasks unless the initiator has done something
         (e.g., LU reset, connection drop) that may prevent the TMF
         Response from being sent or received.  The initiator MUST thus
         conclude all affected tasks as part of this step in either
         case, and MUST discard any TMF Response received after the
         affected tasks are concluded.

   The target iSCSI layer:

      a. MUST wait for responses on currently valid target-transfer tags
         of the affected tasks from the issuing initiator.  MAY wait for
         responses on currently valid target-transfer tags of the
         affected tasks from third-party initiators.

      b. MUST wait (concurrent with the wait in Step a) for all commands
         of the affected tasks to be received based on the CmdSN
         ordering.  SHOULD NOT wait for new commands on third-party
         affected sessions -- only the instantiated tasks have to be
         considered for the purpose of determining the affected tasks.
         In the case of target-scoped requests (i.e., TARGET WARM RESET
         and TARGET COLD RESET), all of the commands that are not yet
         received on the issuing session in the command stream however
         can be considered to have been received with no command waiting
         period -- i.e., the entire CmdSN space up to the CmdSN of the
         task management function can be "plugged".

      c. MUST propagate the TMF request to and receive the response from
         the target SCSI layer.





Chadalapaka                 Standards Track                    [Page 13]
^L
RFC 5048          iSCSI Corrections and Clarifications      October 2007


      d. MUST provide the Response Fence behavior for the TMF Response
         on the issuing session as specified in Section 3.3.2.

      e. MUST provide the Response Fence behavior on the first post-TMF
         Response on third-party sessions as specified in Section 3.3.2.
         If some tasks originate from non-iSCSI I_T_L nexuses, then the
         means by which the target ensures that all affected tasks have
         returned their status to the initiator are defined by the
         specific non-iSCSI transport protocol(s).

   Technically, the TMF servicing is complete in Step d.  Data transfers
   corresponding to terminated tasks may however still be in progress on
   third-party iSCSI sessions even at the end of Step e.  The TMF
   Response MUST NOT be sent by the target iSCSI layer before the end of
   Step d, and MAY be sent at the end of Step d despite these
   outstanding data transfers until after Step e.

4.1.3.  Updated Multi-Task Abort Semantics

   Protocol behavior defined in this section MUST be implemented by all
   iSCSI implementations complying with this document.  Protocol
   behavior defined in this section MUST be exhibited by iSCSI
   implementations on an iSCSI session when they negotiate the
   TaskReporting (Section 9.1) key to "FastAbort" on that session.  The
   execution of ABORT TASK SET, CLEAR TASK SET, LOGICAL UNIT RESET,
   TARGET WARM RESET, and TARGET COLD RESET TMF Requests consists of the
   following sequence of actions in the specified order on the specified
   party.

   The initiator iSCSI layer:

      a. MUST NOT send any more Data-Out PDUs for affected tasks on the
         issuing connection of the issuing iSCSI session once the TMF is
         sent to the target.

      b. SHOULD process any responses received for affected tasks in the
         normal fashion.  This is acceptable because the responses are
         guaranteed to have been sent prior to the TMF response.

      c. MUST respond to each Async Message PDU with AsyncEvent=5 as
         defined in Section 8.1.

      d. MUST treat the TMF response as terminating all affected tasks
         for which responses have not been received, and MUST discard
         any responses for affected tasks received after the TMF
         response is passed to the SCSI layer (although the semantics





Chadalapaka                 Standards Track                    [Page 14]
^L
RFC 5048          iSCSI Corrections and Clarifications      October 2007


         defined in this section ensure that such an out-of-order
         scenario will never happen with a compliant target
         implementation).

   The target iSCSI layer:

      a. MUST wait for all commands of the affected tasks to be received
         based on the CmdSN ordering on the issuing session.  SHOULD NOT
         wait for new commands on third-party affected sessions -- only
         the instantiated tasks have to be considered for the purpose of
         determining the affected tasks.  In the case of target-scoped
         requests (i.e., TARGET WARM RESET and TARGET COLD RESET), all
         the commands that are not yet received on the issuing session
         in the command stream can be considered to have been received
         with no command waiting period -- i.e., the entire CmdSN space
         up to the CmdSN of the task management function can be
         "plugged".

      b. MUST propagate the TMF request to and receive the response from
         the target SCSI layer.

      c. MUST leave all active "affected TTTs" (i.e., active TTTs
         associated with affected tasks) valid.

      d. MUST send an Asynchronous Message PDU with AsyncEvent=5
         (Section 8.1) on:

          i) each connection of each third-party session to which at
             least one affected task is allegiant if
             TaskReporting=FastAbort is operational on that third-party
             session, and

         ii) each connection except the issuing connection of the
             issuing session that has at least one allegiant affected
             task.

      If there are multiple affected LUs (say, due to a target reset),
      then one Async Message PDU MUST be sent for each such LU on each
      connection that has at least one allegiant affected task.  The LUN
      field in the Asynchronous Message PDU MUST be set to match the LUN
      for each such LU.

      e. MUST address the Response Fence flag on the TMF Response on the
         issuing session as defined in Section 3.3.2.

      f. MUST address the Response Fence flag on the first post-TMF
         Response on third-party sessions as defined in Section 3.3.2.
         If some tasks originate from non-iSCSI I_T_L nexuses, then the



Chadalapaka                 Standards Track                    [Page 15]
^L
RFC 5048          iSCSI Corrections and Clarifications      October 2007


         means by which the target ensures that all affected tasks have
         returned their status to the initiator are defined by the
         specific non-iSCSI transport protocol(s).

      g. MUST free up the affected TTTs (and STags, if applicable) and
         the corresponding buffers, if any, once it receives each
         associated NOP-Out acknowledgement that the initiator generated
         in response to each Async Message.

   Technically, the TMF servicing is complete in Step e.  Data transfers
   corresponding to terminated tasks may however still be in progress
   even at the end of Step f.  A TMF Response MUST NOT be sent by the
   target iSCSI layer before the end of Step e, and MAY be sent at the
   end of Step e despite these outstanding Data transfers until Step g.
   Step g specifies an event to free up any such resources that may have
   been reserved to support outstanding data transfers.

4.1.3.1.  Clearing Effects Update

   Appendix F.1 of [RFC3720] specifies the clearing effects of target
   and LU resets on "Incomplete TTTs" as "Y".  This meant that a target
   warm reset or a target cold reset or an LU reset would clear the
   active TTTs upon completion.  However, the TaskReporting=FastAbort
   (Section 9.1) semantics defined by this section do not guarantee that
   the active TTTs are cleared by the end of the reset operations.  In
   fact, the new semantics are designed to allow clearing the TTTs in a
   "lazy" fashion after the TMF Response is delivered.  Thus, when
   TaskReporting=FastAbort is operational on a session, the clearing
   effects of reset operations on "Incomplete TTTs" is "N".

4.1.4.  Affected Tasks Shared across RFC 3720 and FastAbort Sessions

   If an iSCSI target implementation is capable of supporting
   TaskReporting=FastAbort functionality (Section 9.1), it may end up in
   a situation where some sessions have TaskReporting=RFC3720
   operational (RFC 3720 sessions) while some other sessions have
   TaskReporting=FastAbort operational (FastAbort sessions) even while
   accessing a shared set of affected tasks (Section 4.1.1).

   If the issuing session is an RFC 3720 session, the iSCSI target
   implementation is FastAbort-capable, and the third-party affected
   session is a FastAbort session, the following behavior SHOULD be
   exhibited by the iSCSI target layer:

      a. Between Steps c and d of the target behavior in Section 4.1.2,
         send an Asynchronous Message PDU with AsyncEvent=5 (Section
         8.1) on each connection of each third-party session to which at
         least one affected task is allegiant.  If there are multiple



Chadalapaka                 Standards Track                    [Page 16]
^L
RFC 5048          iSCSI Corrections and Clarifications      October 2007


         affected LUs, then send one Async Message PDU for each such LU
         on each connection that has at least one allegiant affected
         task.  When sent, the LUN field in the Asynchronous Message PDU
         MUST be set to match the LUN for each such LU.

      b. After Step e of the target behavior in Section 4.1.2, free up
         the affected TTTs (and STags, if applicable) and the
         corresponding buffers, if any, once each associated NOP-Out
         acknowledgement is received that the third-party initiator
         generated in response to each Async Message sent in Step a.

   If the issuing session is a FastAbort session, the iSCSI target
   implementation is FastAbort-capable, and the third-party affected
   session is an RFC 3720 session, the following behavior MUST be
   exhibited by the iSCSI target layer: Asynchronous Message PDUs MUST
   NOT be sent on the third-party session to prompt the FastAbort
   behavior.

   If the third-party affected session is a FastAbort session and the
   issuing session is a FastAbort session, the initiator in the third-
   party role MUST respond to each Async Message PDU with AsyncEvent=5
   as defined in Section 8.1.  Note that an initiator MAY thus receive
   these Async Messages on a third-party affected session even if the
   session is a single-connection session.

4.1.5.  Implementation Considerations

   Both in clarified semantics (Section 4.1.2) and updated semantics
   (Section 4.1.3), there may be outstanding data transfers even after
   the TMF completion is reported on the issuing session.  In the case
   of iSCSI/iSER [iSER], these would be tagged data transfers for STags
   not owned by any active tasks.  Whether or not real buffers support
   these data transfers is implementation-dependent.  However, the data
   transfers logically MUST be silently discarded by the target iSCSI
   layer in all cases.  A target MAY, on an implementation-defined
   internal timeout, also choose to drop the connections on which it did
   not receive the expected Data-Out sequences (Section 4.1.2) or NOP-
   Out acknowledgements (Section 4.1.3) so as to reclaim the associated
   buffer, STag, and TTT resources as appropriate.

4.1.6.  Rationale behind the New Semantics

   There are fundamentally three basic objectives behind the semantics
   specified in Sections 4.1.2 and 4.1.3.

      1. Maintaining an ordered command flow I_T nexus abstraction to
         the target SCSI layer even with multi-connection sessions.




Chadalapaka                 Standards Track                    [Page 17]
^L
RFC 5048          iSCSI Corrections and Clarifications      October 2007


         o  Target iSCSI processing of a TMF request must maintain the
            single flow illusion.  Target behavior in Step b of Section
            4.1.2 and Step a of Section 4.1.3 correspond to this
            objective.

      2. Maintaining a single ordered response flow I_T nexus
         abstraction to the initiator SCSI layer even with multi-
         connection sessions when one response (i.e., TMF response)
         could imply the status of other unfinished tasks from the
         initiator's perspective.

         o  The target must ensure that the initiator does not see "old"
            task responses (that were placed on the wire chronologically
            earlier than the TMF Response) after seeing the TMF
            response.  The target behavior in Step d of Section 4.1.2
            and Step e of Section 4.1.3 correspond to this objective.

         o  Whenever the result of a TMF action is visible across
            multiple I_T_L nexuses, [SAM2] requires the SCSI device
            server to trigger a UA on each of the other I_T_L nexuses.
            Once an initiator is notified of such an UA, the application
            client on the receiving initiator is required to clear its
            task state (clause 5.5 in [SAM2]) for the affected tasks.
            It would thus be inappropriate to deliver a SCSI Response
            for a task after the task state is cleared on the initiator,
            i.e., after the UA is notified.  The UA notification
            contained in the first SCSI Response PDU on each affected
            Third-party I_T_L nexus after the TMF action thus MUST NOT
            pass the affected task responses on any of the iSCSI
            sessions accessing the LU.  The target behavior in Step e of
            Section 4.1.2 and Step f of Section 4.1.3 correspond to this
            objective.

      3. Draining all active TTTs corresponding to affected tasks in a
         deterministic fashion.

         o  Data-Out PDUs with stale TTTs arriving after the tasks are
            terminated can create a buffer management problem even for
            traditional iSCSI implementations, and is fatal for the
            connection for iSCSI/iSER implementations.  Either the
            termination of affected tasks should be postponed until the
            TTTs are retired (as in Step a of Section 4.1.2), or the
            TTTs and the buffers should stay allocated beyond task
            termination to be deterministically freed up later (as in
            Steps c and g of Section 4.1.3).

   The only other notable optimization is the plugging.  If all tasks on
   an I_T nexus will be aborted anyway (as with a target reset), there



Chadalapaka                 Standards Track                    [Page 18]
^L
RFC 5048          iSCSI Corrections and Clarifications      October 2007


   is no need to wait to receive all commands to plug the CmdSN holes.
   The target iSCSI layer can simply plug all missing CmdSN slots and
   move on with TMF processing.  The first objective (maintaining a
   single ordered command flow) is still met with this optimization
   because the target SCSI layer only sees ordered commands.

5.  Discovery Semantics

5.1.  Error Recovery for Discovery Sessions

   The negotiation of the key ErrorRecoveryLevel is not required for
   Discovery sessions -- i.e., for sessions that negotiated
   "SessionType=Discovery" -- because the default value of 0 is
   necessary and sufficient for Discovery sessions.  It is however
   possible that some legacy iSCSI implementations might attempt to
   negotiate the ErrorRecoveryLevel key on Discovery sessions.  When
   such a negotiation attempt is made by the remote side, a compliant
   iSCSI implementation MUST propose a value of 0 (zero) in response.
   The operational ErrorRecoveryLevel for Discovery sessions thus MUST
   be 0.  This naturally follows from the functionality constraints that
   [RFC3720] imposes on Discovery sessions.

5.2.  Reinstatement Semantics of Discovery Sessions

   Discovery sessions are intended to be relatively short-lived.
   Initiators are not expected to establish multiple Discovery sessions
   to the same iSCSI Network Portal (see [RFC3720]).  An initiator may
   use the same iSCSI Initiator Name and ISID when establishing
   different unique sessions with different targets and/or different
   portal groups.  This behavior is discussed in Section 9.1.1 of
   [RFC3720] and is, in fact, encouraged as conservative reuse of ISIDs.
   The ISID RULE in [RFC3720] states that there must not be more than
   one session with a matching 4-tuple: <InitiatorName, ISID,
   TargetName, TargetPortalGroupTag>.  While the spirit of the ISID RULE
   applies to Discovery sessions the same as it does for Normal
   sessions, note that some Discovery sessions differ from the Normal
   sessions in two important aspects:

      Because [RFC3720] allows a Discovery session to be established
      without specifying a TargetName key in the Login Request PDU (let
      us call such a session an "Unnamed" Discovery session), there is
      no Target Node context to enforce the ISID RULE.

      Portal Groups are defined only in the context of a Target Node.
      When the TargetName key is NULL-valued (i.e., not specified), the
      TargetPortalGroupTag thus cannot be ascertained to enforce the
      ISID RULE.




Chadalapaka                 Standards Track                    [Page 19]
^L
RFC 5048          iSCSI Corrections and Clarifications      October 2007


   The following sections describe the two scenarios -- Named Discovery
   sessions and Unnamed Discovery sessions -- separately.

5.2.1.  Unnamed Discovery Sessions

   For Unnamed Discovery sessions, neither the TargetName nor the
   TargetPortalGroupTag is available to the targets in order to enforce
   the ISID RULE.  So the following rule applies.

   UNNAMED ISID RULE: Targets MUST enforce the uniqueness of the
   following 4-tuple for Unnamed Discovery sessions: <InitiatorName,
   ISID, NULL, TargetAddress>.  The following semantics are implied by
   this uniqueness requirement.

   Targets SHOULD allow concurrent establishment of one Discovery
   session with each of its Network Portals by the same initiator port
   with a given iSCSI Node Name and an ISID.  Each of the concurrent
   Discovery sessions, if established by the same initiator port to
   other Network Portals, MUST be treated as independent sessions --
   i.e., one session MUST NOT reinstate the other.

   A new Unnamed Discovery session that has a matching <InitiatorName,
   ISID, NULL, TargetAddress> to an existing Discovery session MUST
   reinstate the existing Unnamed Discovery session.  Note thus that
   only an Unnamed Discovery session may reinstate an Unnamed Discovery
   session.

5.2.2.  Named Discovery Sessions

   For a Named Discovery session, the TargetName key is specified by the
   initiator and thus the target can unambiguously ascertain the
   TargetPortalGroupTag as well.  Since all the four elements of the 4-
   tuple are known, the ISID RULE MUST be enforced by targets with no
   changes from [RFC3720] semantics.  A new session with a matching
   <InitiatorName, ISID, TargetName, TargetPortalGroupTag> thus will
   reinstate an existing session.  Note in this case that any new iSCSI
   session (Discovery or Normal) with the matching 4-tuple may reinstate
   an existing Named Discovery iSCSI session.

5.3.  Target PDUs during Discovery

   Targets SHOULD NOT send any responses other than a Text Response and
   Logout Response on a Discovery session, once in Full Feature Phase.

   Implementation Note: A target may simply drop the connection in a
   Discovery session when it would have requested a Logout via an Async
   Message on Normal sessions.




Chadalapaka                 Standards Track                    [Page 20]
^L
RFC 5048          iSCSI Corrections and Clarifications      October 2007


6.  Negotiation and Others

6.1.  TPGT Values

   [SAM2] and [SAM3] specifications incorrectly note in their
   informative text that TPGT value should be non-zero, although
   [RFC3720] allows the value of zero for TPGT.  This section is to
   clarify that a zero value is expressly allowed as a legal value for
   TPGT.  This discrepancy currently stands corrected in [SAM4].

6.2.  SessionType Negotiation

   During the Login Phase, the SessionType key is offered by the
   initiator to choose the type of session it wants to create with the
   target.  The target may accept or reject the offer.  Depending on the
   type of the session, a target may decide on resources to allocate and
   the security to enforce, etc. for the session.  If the SessionType
   key is thus going to be offered as "Discovery", it SHOULD be offered
   in the initial Login request by the initiator.

6.3.  Understanding NotUnderstood

   [RFC3720] defines NotUnderstood as a valid answer during a
   negotiation text key exchange between two iSCSI nodes.  NotUnderstood
   has the reserved meaning that the sending side did not understand the
   proposed key semantics.  This section seeks to clarify that
   NotUnderstood is a valid answer for both declarative and negotiated
   keys.  The general iSCSI philosophy is that comprehension precedes
   processing for any iSCSI key.  A proposer of an iSCSI key, negotiated
   or declarative, in a text key exchange MUST thus be able to properly
   handle a NotUnderstood response.

   The proper way to handle a NotUnderstood response depends on where
   the key is specified and whether the key is declarative vs.
   negotiated.  All keys defined in [RFC3720] MUST be supported by all
   compliant implementations; a NotUnderstood answer on any of the
   [RFC3720] keys therefore MUST be considered a protocol error and
   handled accordingly.  For all other later keys, a NotUnderstood
   answer concludes the negotiation for a negotiated key whereas for a
   declarative key, a NotUnderstood answer simply informs the declarer
   of a lack of comprehension by the receiver.

   In either case, a NotUnderstood answer always requires that the
   protocol behavior associated with that key not be used within the
   scope of the key (connection/session) by either side.






Chadalapaka                 Standards Track                    [Page 21]
^L
RFC 5048          iSCSI Corrections and Clarifications      October 2007


6.4.  Outstanding Negotiation Exchanges

   There was some uncertainty around the number of outstanding Login
   Response PDUs on a connection.  [RFC3720] offers the analogy of SCSI
   linked commands to Login and Text negotiations in Sections 5.3 and
   10.10.3, respectively, but does not make it fully explicit.  This
   section is to offer a clarification in this regard.

   There MUST NOT be more than one outstanding Login Request, Login
   Response, Text Request, or Text Response PDU on an iSCSI connection.
   An outstanding PDU in this context is one that has not been
   acknowledged by the remote iSCSI side.

7.  iSCSI Error Handling and Recovery

7.1.  ITT

   An ITT value of 0xffffffff is reserved and MUST NOT be assigned for a
   task by the initiator.  The only instance in which it may be seen on
   the wire is in a target-initiated NOP-In PDU (and in the initiator
   response to that PDU, if necessary).  Section 10.19 in [RFC3720]
   mentions this in passing but is noted here again to make it obvious
   since the semantics apply to the initiators in general.

7.2.  Format Errors

   Section 6.6 of [RFC3720] discusses format error handling.  This
   section elaborates on the "inconsistent" PDU field contents noted in
   [RFC3720].

   All initiator-detected PDU construction errors MUST be considered as
   format errors.  Some examples of such errors are:

      -  NOP-In with a valid TTT but an invalid LUN

      -  NOP-In with a valid ITT (i.e., a NOP-In response) and also a
         valid TTT

      -  SCSI Response PDU with Status=CHECK CONDITION, but
         DataSegmentLength = 0

7.3.  Digest Errors

   Section 6.7 of [RFC3720] discusses digest error handling.  It states
   that "No further action is necessary for initiators if the discarded
   PDU is an unsolicited PDU (e.g., Async, Reject)" on detecting a
   payload digest error.  This is incorrect.




Chadalapaka                 Standards Track                    [Page 22]
^L
RFC 5048          iSCSI Corrections and Clarifications      October 2007


   An Asynchronous Message PDU or a Reject PDU carries the next StatSN
   value on an iSCSI connection, advancing the StatSN.  When an
   initiator discards one of these PDUs due to a payload digest error,
   the entire PDU including the header MUST be discarded.  Consequently,
   the initiator MUST treat the exception like a loss of any other
   solicited response PDU -- i.e., it MUST use one of the following
   options noted in [RFC3720]:

      a) Request PDU retransmission with a status SNACK.

      b) Logout the connection for recovery and continue the tasks on a
         different connection instance.

      c) Logout to close the connection (abort all the commands
         associated with the connection).

7.4.  Message Error Checking

   There has been some uncertainty on the extent to which incoming
   messages have to be checked for protocol errors, beyond what is
   strictly required for processing the inbound message.  This section
   addresses this question.

   Unless [RFC3720] or this document requires it, an iSCSI
   implementation is not required to do an exhaustive protocol
   conformance check on an incoming iSCSI PDU.  The iSCSI implementation
   especially is not required to double-check the remote iSCSI
   implementation's conformance to protocol requirements.

8.  iSCSI PDUs

8.1.  Asynchronous Message

   This section defines additional semantics for the Asynchronous
   Message PDU defined in Section 10.9 of [RFC3720] using the same
   conventions.

   The following new legal value for the AsyncEvent is defined:

   5: all active tasks for LU with a matching LUN field in the Async
   Message PDU are being terminated.

   The receiving initiator iSCSI layer MUST respond to this Message by
   taking the following steps in order.

       i) Stop Data-Out transfers on that connection for all active TTTs
          for the affected LUN quoted in the Async Message PDU.




Chadalapaka                 Standards Track                    [Page 23]
^L
RFC 5048          iSCSI Corrections and Clarifications      October 2007


      ii) Acknowledge the StatSN of the Async Message PDU via a NOP-Out
          PDU with ITT=0xffffffff (i.e., non-ping flavor), while copying
          the LUN field from the Async Message to NOP-Out.

   The new AsyncEvent defined in this section however MUST NOT be used
   on an iSCSI session unless the new TaskReporting text key defined in
   Section 9.1 was negotiated to FastAbort on the session.

8.2.  Reject

   Section 10.17.1 of [RFC3720] specifies the Reject reason code of 0x0b
   with an explanation of "Negotiation Reset".  At this point, we do not
   see any legitimate iSCSI protocol use case for using this reason
   code.  Thus, reason code 0x0b MUST be considered as deprecated and
   MUST NOT be sent by implementations that comply with the requirements
   of this document.  An implementation receiving reason code 0x0b MUST
   treat it as a negotiation failure that terminates the Login Phase and
   the TCP connection, as specified in Section 6.10 of [RFC3720].

   Section 5.4 of [RFC3720] states:

      Neither the initiator nor the target should attempt to declare or
      negotiate a parameter more than once during any negotiation
      sequence without an intervening operational parameter negotiation
      reset, except for responses to specific keys that explicitly allow
      repeated key declarations (e.g., TargetAddress).

   The deprecation of reason code 0x0b eliminates the possibility of an
   operational parameter negotiation reset, causing the phrase "without
   an intervening operational parameter negotiation reset" in [RFC3720]
   to refer to an impossible event.  The quoted phrase SHOULD be ignored
   by receivers that handle reason code 0x0b in the manner specified in
   this section.

9.  Login/Text Operational Text Keys

   This section follows the same conventions as Section 12 of [RFC3720].

9.1.  TaskReporting

   Use: LO
   Senders: Initiator and Target
   Scope: SW

   Irrelevant when: SessionType=Discovery
   TaskReporting=<list-of-values>





Chadalapaka                 Standards Track                    [Page 24]
^L
RFC 5048          iSCSI Corrections and Clarifications      October 2007


   Default is RFC3720.
   Result function is AND.

   This key is used to negotiate the task completion reporting semantics
   from the SCSI target.  The following table describes the semantics
   that an iSCSI target MUST support for respective negotiated key
   values.  Whenever this key is negotiated, at least the RFC3720 and
   ResponseFence values MUST be offered as options by the negotiation
   originator.

   +--------------+------------------------------------------+
   | Name         |             Description                  |
   +--------------+------------------------------------------+
   | RFC3720      | RFC 3720-compliant semantics.  Response  |
   |              | fencing is not guaranteed and fast       |
   |              | completion of multi-task aborting is not |
   |              | supported                                |
   +--------------+------------------------------------------+
   | ResponseFence| Response Fence (Section 3.3.1) semantics |
   |              | MUST be supported in reporting task      |
   |              | completions                              |
   +--------------+------------------------------------------+
   | FastAbort    | Updated fast multi-task abort semantics  |
   |              | defined in Section 4.1.3 MUST be         |
   |              | supported.  Support for Response Fence is|
   |              | implied -- i.e., Section 3.3.1 semantics |
   |              | MUST be supported as well                |
   +--------------+------------------------------------------+

   When TaskReporting is not negotiated to FastAbort, the [RFC3720] TMF
   semantics as clarified in Section 4.1.2 MUST be used.

10.  Security Considerations

   This document does not introduce any new security considerations
   other than those already noted in [RFC3720].  Consequently, all the
   iSCSI-related security text in [RFC3723] is also directly applicable
   to this document.













Chadalapaka                 Standards Track                    [Page 25]
^L
RFC 5048          iSCSI Corrections and Clarifications      October 2007


11.  IANA Considerations

11.1.  iSCSI-Related IANA Registries

   This document creates the following iSCSI-related registries for IANA
   to manage.

      1. iSCSI Opcodes

      2. iSCSI Login/Text Keys

      3. iSCSI Asynchronous Events

      4. iSCSI Task Management Function Codes

      5. iSCSI Login Response Status Codes

      6. iSCSI Reject Reason Codes

      7. iSER Opcodes

   Each of the following sections describes a registry, its sub-
   registries if any, and their administration policies in more detail.
   IANA has registered what this document calls the main "registries" as
   sub-registries of a larger iSCSI registry.  However, wherever
   registry-to-sub-registry relationships are specified by this
   document, they have been preserved intact.

   [RFC3720] specifies three iSCSI-related registries -- extended key,
   authentication methods, and digests.  This document recommends that
   these registries be published together with the registries defined by
   this document.  Further, this document recommends that the three
   [RFC3720] registries be listed in between items 6 and 7 in the
   registry list above.

11.2.  iSCSI Opcodes

   Name of the registry: "iSCSI Opcodes"

   Namespace details: Numerical values that can fit in one octet with
   the most significant two bits (bits 0 and 1) already designated by
   [RFC3720], bit 0 being reserved and bit 1 for immediate delivery.
   Bit 2 is designated to identify the originator of the opcode.  Bit 2
   = 0 for initiator and Bit 2 = 1 for target.







Chadalapaka                 Standards Track                    [Page 26]
^L
RFC 5048          iSCSI Corrections and Clarifications      October 2007


   Information that must be provided to assign a new value: An IESG-
   approved standards-track specification defining the semantics and
   interoperability requirements of the proposed new value and the
   fields to be recorded in the registry.

   Allocation request guidance to requesters:

      1) If the initiator opcode and target opcode used to identify the
         request and response of a new type of protocol operation are
         requested, assign the same lower five bits (i.e., Bit 3 through
         Bit 7) for both opcodes, e.g., 0x13 and 0x33.

      2) If only the initiator opcode or target opcode is requested to
         identify a one-way protocol message (i.e., request without a
         response or a "response" without a request), assign an unused
         number from the appropriate category (i.e., Bit 2 set to 0 or 1
         for initiator category or target category) and add the other
         pair member (i.e., same opcode with Bit 2 set to 1 or 0,
         respectively) to "no opcode pair is available" list.

      3) If there are no other opcodes available in the appropriate
         "Reserved to IANA" list to assign on a request for a new opcode
         except the reserved opcodes in the "no opcode pair is
         available" list, allocate the opcode from the appropriate
         category (initiator or target) of the "no opcode pair is
         available" list.

   Fields to record in the registry: Assigned value, Who can originate
   (Initiator or Target), Operation Name, and its associated RFC
   reference.

   Initial registry contents:

   0x00, Initiator, NOP-Out, [RFC3720]

   0x01, Initiator, SCSI Command, [RFC3720]

   0x02, Initiator, SCSI Task Management function request, [RFC3720]

   0x03, Initiator, Login Request, [RFC3720]

   0x04, Initiator, Text Request, [RFC3720]

   0x05, Initiator, SCSI Data-Out, [RFC3720]

   0x06, Initiator, Logout Request, [RFC3720]

   0x10, Initiator, SNACK Request, [RFC3720]



Chadalapaka                 Standards Track                    [Page 27]
^L
RFC 5048          iSCSI Corrections and Clarifications      October 2007


   0x1c-0x1e, Initiator, Vendor specific codes, [RFC3720]

   0x20, Target, NOP-In, [RFC3720]

   0x21, Target, SCSI Response, [RFC3720]

   0x22, Target, SCSI Task Management function response, [RFC3720]

   0x23, Target, Login Response, [RFC3720]

   0x24, Target, Text Response, [RFC3720]

   0x25, Target, SCSI Data-In, [RFC3720]

   0x26, Target, Logout Response, [RFC3720]

   0x31, Target, Ready To Transfer (R2T), [RFC3720]

   0x32, Target, Asynchronous Message, [RFC3720]

   0x3c-0x3e, Target, Vendor specific codes, [RFC3720]

   0x3f, Target, Reject, [RFC3720]

   Reserved to IANA:
       0x07-0x0f, 0x13-0x1b (initiator codes)
       0x27-0x2f, 0x33-0x3b (target codes)

   No opcode pair is available:
       0x11, 0x12, 0x1f (initiator codes)
       0x30 (target codes)

   Allocation Policy:

   Standards Action ([IANA]): This is required for defining the
   semantics of the opcode.

   Expert Review ([IANA]): This is required for selecting the specific
   opcode(s) to allocate in order to ensure compliance with the earlier
   "Allocation request guidance to requesters".

11.3.  iSCSI Login/Text Keys

   Name of the registry: "iSCSI Text Keys"

   Namespace details: Key=value pairs with "Key" names in UTF-8 Unicode,
   and the permissible "value" options for the "Key" are Key-dependent.
   [RFC3720] defines the rules on key names and allowed values.



Chadalapaka                 Standards Track                    [Page 28]
^L
RFC 5048          iSCSI Corrections and Clarifications      October 2007


   Information that must be provided to assign a new value: An IESG-
   approved standards-track specification defining the semantics and
   interoperability requirements of the proposed new Key per [RFC3720]
   key specification template and the fields to be recorded in the
   registry.

   Assignment policy:

   If the requested Key name is not already assigned and is roughly
   representative of its proposed semantics, it may be assigned to the
   requester.

   Given the arbitrary nature of text strings, there is no maximum
   reserved by IANA for assignment in this registry.

   Fields to record in the registry: Assigned Key Name and its
   associated RFC reference.

   Initial registry contents:

   AuthMethod, [RFC3720]

   HeaderDigest, [RFC3720]

   DataDigest, [RFC3720]

   MaxConnections, [RFC3720]

   SendTargets, [RFC3720]

   TargetName, [RFC3720]

   InitiatorName, [RFC3720]

   TargetAlias, [RFC3720]

   InitiatorAlias, [RFC3720]

   TargetAddress, [RFC3720]

   TargetPortalGroupTag, [RFC3720]

   InitialR2T, [RFC3720]

   ImmediateData, [RFC3720]

   MaxRecvDataSegmentLength, [RFC3720]




Chadalapaka                 Standards Track                    [Page 29]
^L
RFC 5048          iSCSI Corrections and Clarifications      October 2007


   MaxBurstLength, [RFC3720]

   FirstBurstLength, [RFC3720]

   DefaultTime2Wait, [RFC3720]

   DefaultTime2Retain, [RFC3720]

   MaxOutstandingR2T, [RFC3720]

   DataPDUInOrder, [RFC3720]

   DataSequenceInOrder, [RFC3720]

   ErrorRecoveryLevel, [RFC3720]

   SessionType, [RFC3720]

   RDMAExtensions, [iSER]

   TargetRecvDataSegmentLength, [iSER]

   InitiatorRecvDataSegmentLength, [iSER]

   MaxOutstandingUnexpectedPDUs, [iSER]

   TaskReporting, this document

   Allocation Policy:

   Standards Action ([IANA])

11.4.  iSCSI Asynchronous Events

   Name of the registry: "iSCSI Asynchronous Events"

   Namespace details: Numerical values that can fit in one octet.

   Information that must be provided to assign a new value: An IESG-
   approved standards-track specification defining the semantics and
   interoperability requirements of the proposed new Event and the
   fields to be recorded in the registry.

   Assignment policy:

   If the requested value is not already assigned, it may be assigned to
   the requester.




Chadalapaka                 Standards Track                    [Page 30]
^L
RFC 5048          iSCSI Corrections and Clarifications      October 2007


   6-247: range reserved by IANA for assignment in this registry.

   Fields to record in the registry: Assigned Event number, Description
   and its associated RFC reference.

   Initial registry contents:

   0, SCSI Async Event, [RFC3720]

   1, Logout Request, [RFC3720]

   2, Connection drop notification, [RFC3720]

   3, Session drop notification, [RFC3720]

   4, Negotiation Request, [RFC3720]

   5, Task termination, this document

   248-254, Vendor-unique, this document

   255, Vendor-unique, [RFC3720]

   Allocation Policy:

   Standards Action ([IANA])

11.5.  iSCSI Task Management Function Codes

   Name of the registry: "iSCSI TMF Codes"

   Namespace details: Numerical values that can fit in 7 bits.

   Information that must be provided to assign a new value: An IESG-
   approved standards-track specification defining the semantics and
   interoperability requirements of the proposed new Code and the fields
   to be recorded in the registry.

   Assignment policy:

   If the requested value is not already assigned, it may be assigned to
   the requester.

   9-127: range reserved by IANA for assignment in this registry.

   Fields to record in the registry: Assigned Code, Description, and its
   associated RFC reference.




Chadalapaka                 Standards Track                    [Page 31]
^L
RFC 5048          iSCSI Corrections and Clarifications      October 2007


   Initial registry contents:

   1, ABORT TASK, [RFC3720]

   2, ABORT TASK SET, [RFC3720]

   3, CLEAR ACA, [RFC3720]

   4, CLEAR TASK SET, [RFC3720]

   5, LOGICAL UNIT RESET, [RFC3720]

   6, TARGET WARM RESET, [RFC3720]

   7, TARGET COLD RESET, [RFC3720]

   8, TASK REASSIGN, [RFC3720]

   Allocation Policy:

   Standards Action ([IANA])

11.6.  iSCSI Login Response Status Codes

   Name of the registry: "iSCSI Login Response Status Codes"

   Namespace details: Numerical values; Status-Class (one octet),
   Status-Detail (one octet) for each possible value of Status-Class
   except for Vendor-Unique Status-Class (0x0f).

   Information that must be provided to assign a new value: An IESG-
   approved specification defining the semantics and interoperability
   requirements of the proposed new Code, its Status-Class affiliation
   (only if a new Status-Detail value is being proposed for a Status-
   Class), Status-Class definition (only if a new Status-Class is being
   proposed), and the fields to be recorded in the registry.

   Assignment policy:

   If the requested value is not already assigned, it may be assigned to
   the requester.

   4-14 and 16-255: range reserved by IANA for assignment in this
   registry.

   Fields to record in the Status-Class main registry: Assigned Code,
   Description, and its associated RFC reference.




Chadalapaka                 Standards Track                    [Page 32]
^L
RFC 5048          iSCSI Corrections and Clarifications      October 2007


   Fields to record in the Status-Detail sub-registries: Status-Class,
   Assigned Code, Description, and its associated RFC reference.

   Initial registry contents (Status-Class):

   0x00, Success, [RFC3720]

   0x01, Redirection, [RFC3720]

   0x02, Initiator Error, [RFC3720]

   0x03, Target Error, [RFC3720]

   0x0f, Vendor-Unique, this document

   Initial sub-registry contents (Status-Detail for Status-Class=0x00):

   0x00, 0x00, Success, [RFC3720]

   1-255: range reserved by IANA for assignment in Status-Class=0 sub-
   registry.

   Initial sub-registry contents (Status-Detail for Status-Class=0x01):

   0x01, 0x01, Temporary move, [RFC3720]

   0x01, 0x02, Permanent move, [RFC3720]

   3-255: range reserved by IANA for assignment in Status-Class=1 sub-
   registry.

   Initial sub-registry contents (Status-Detail for Status-Class=0x02):

   0x02, 0x00, Miscellaneous, [RFC3720]

   0x02, 0x01, Authentication failure, [RFC3720]

   0x02, 0x02, Authorization failure, [RFC3720]

   0x02, 0x03, Not found, [RFC3720]

   0x02, 0x04, Target removed, [RFC3720]

   0x02, 0x05, Unsupported version, [RFC3720]

   0x02, 0x06, Too many connections, [RFC3720]

   0x02, 0x07, Missing parameter, [RFC3720]



Chadalapaka                 Standards Track                    [Page 33]
^L
RFC 5048          iSCSI Corrections and Clarifications      October 2007


   0x02, 0x08, Can't include in session, [RFC3720]

   0x02, 0x09, Unsupported session type, [RFC3720]

   0x02, 0x0a, Non-existent session, [RFC3720]

   0x02, 0x0b, Invalid during login, [RFC3720]

   12-255: range reserved by IANA for assignment in Status-Class=2 sub-
   registry.

   Initial sub-registry contents (Status-Detail for Status-Class=0x03):

   0x03, 0x00, Target error, [RFC3720]

   0x03, 0x01, Service unavailable, [RFC3720]

   0x03, 0x02, Out of resources, [RFC3720]

   3-255: range reserved by IANA for assignment in Status-Class=3 sub-
   registry.

   Allocation Policy:

   Standards Action ([IANA])

11.7.  iSCSI Reject Reason Codes

   Name of the registry: "iSCSI Reject Reason Codes"

   Namespace details: Numerical values that can fit in a single octet.

   Information that must be provided to assign a new value: A published
   specification defining the semantics and interoperability
   requirements of the proposed new Code and the fields to be recorded
   in the registry.

   Assignment policy:

   If the requested value is not already assigned, it may be assigned to
   the requester.

   13-255: range reserved by IANA for assignment in this registry.

   Fields to record in the registry: Assigned Code, Description, and its
   associated RFC reference.





Chadalapaka                 Standards Track                    [Page 34]
^L
RFC 5048          iSCSI Corrections and Clarifications      October 2007


   Initial registry contents:

   0x01, Reserved, [RFC3720]

   0x02, Data digest error, [RFC3720]

   0x03, SNACK Reject, [RFC3720]

   0x04, Protocol Error, [RFC3720]

   0x05, Command not supported, [RFC3720]

   0x06, Immediate command reject, [RFC3720]

   0x07, Task in progress, [RFC3720]

   0x08, Invalid data ack, [RFC3720]

   0x09, Invalid PDU field, [RFC3720]

   0x0a, Long op reject, [RFC3720]

   0x0b, "Deprecated reason code", this document

   0x0c, Waiting for Logout, [RFC3720]

   Allocation Policy:

   Standards Action ([IANA])

11.8.  iSER Opcodes

   Name of the registry: "iSER Opcodes"

   Namespace details: Numerical values that can fit in 4 bits.

   Information that must be provided to assign a new value: An IESG-
   approved specification defining the semantics and interoperability
   requirements of the proposed new value and the fields to be recorded
   in the registry.

   Assignment policy:

   If the requested value is not already assigned, it may be assigned to
   the requester.

   4-15: range reserved by IANA for assignment in this registry.




Chadalapaka                 Standards Track                    [Page 35]
^L
RFC 5048          iSCSI Corrections and Clarifications      October 2007


   Fields to record in the registry: Assigned value, Operation Name, and
   its associated RFC reference.

   Initial registry contents:

   0x1, iSCSI control-type, [iSER]

   0x2, iSER Hello, [iSER]

   0x3, iSER HelloReply, [iSER]

   Allocation Policy:

   Standards Action ([IANA])

12.  References

12.1.  Normative References

   [RFC3720] Satran, J., Meth, K., Sapuntzakis, C., Chadalapaka, M., and
             E. Zeidner, "Internet Small Computer Systems Interface
             (iSCSI)", RFC 3720, April 2004.

   [SPC3]    ANSI INCITS 408-2005, SCSI Primary Commands-3.

   [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
             Requirement Levels", BCP 14, RFC 2119, March 1997.

   [IANA]    Narten, T. and H. Alvestrand, "Guidelines for Writing an
             IANA Considerations Section in RFCs", BCP 26, RFC 2434,
             October 1998.

   [iSER]    Ko, M., Chadalapaka, M., Hufferd, J., Elzur, U., Shah, H.,
             and P. Thaler, "Internet Small Computer System Interface
             (iSCSI) Extensions for Remote Direct Memory Access (RDMA)",
             RFC 5046, October 2007.

12.2.  Informative References

   [RFC3721] Bakke, M., Hafner, J., Hufferd, J., Voruganti, K., and M.
             Krueger, "Internet Small Computer Systems Interface (iSCSI)
             Naming and Discovery", RFC 3721, April 2004.

   [RFC3723] Aboba, B., Tseng, J., Walker, J., Rangan, V., and F.
             Travostino, "Securing Block Storage Protocols over IP", RFC
             3723, April 2004.





Chadalapaka                 Standards Track                    [Page 36]
^L
RFC 5048          iSCSI Corrections and Clarifications      October 2007


   [RFC3722] Bakke, M., "String Profile for Internet Small Computer
             Systems Interface (iSCSI) Names", RFC 3722, April 2004.

   [SAM2]    ANSI INCITS 366-2003, SCSI Architecture Model-2 (SAM-2).

   [SAM3]    ANSI INCITS 402-2005, SCSI Architecture Model-3 (SAM-a3).

   [SAM4]    T10 Project: 1683-D, SCSI Architecture Model-4 (SAM-4),
             Work in Progress.

Acknowledgements

   The IP Storage (IPS) Working Group in the Transport Area of the IETF
   has been responsible for defining the iSCSI protocol (apart from a
   host of other relevant IP Storage protocols).  The editor
   acknowledges the contributions of the entire working group.

   The following individuals directly contributed to identifying
   [RFC3720] issues and/or suggesting resolutions to the issues
   clarified in this document: David Black, Gwendal Grignou, Mike Ko,
   Dmitry Fomichev, Bill Studenmund, Ken Sandars, Bob Russell, Julian
   Satran, Rob Elliott, Joseph Pittman, Somesh Gupta, Eddy Quicksall,
   Paul Koning.  This document benefited from all of these
   contributions.

Editor's Address

   Mallikarjun Chadalapaka
   Hewlett-Packard Company
   8000 Foothills Blvd.
   Roseville, CA 95747-5668, USA
   Phone: +1-916-785-5621
   EMail: cbm@rose.hp.com


















Chadalapaka                 Standards Track                    [Page 37]
^L
RFC 5048          iSCSI Corrections and Clarifications      October 2007


Full Copyright Statement

   Copyright (C) The IETF Trust (2007).

   This document is subject to the rights, licenses and restrictions
   contained in BCP 78, and except as set forth therein, the authors
   retain all their rights.

   This document and the information contained herein are provided on an
   "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
   OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND
   THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS
   OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
   THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
   WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

Intellectual Property

   The IETF takes no position regarding the validity or scope of any
   Intellectual Property Rights or other rights that might be claimed to
   pertain to the implementation or use of the technology described in
   this document or the extent to which any license under such rights
   might or might not be available; nor does it represent that it has
   made any independent effort to identify any such rights.  Information
   on the procedures with respect to rights in RFC documents can be
   found in BCP 78 and BCP 79.

   Copies of IPR disclosures made to the IETF Secretariat and any
   assurances of licenses to be made available, or the result of an
   attempt made to obtain a general license or permission for the use of
   such proprietary rights by implementers or users of this
   specification can be obtained from the IETF on-line IPR repository at
   http://www.ietf.org/ipr.

   The IETF invites any interested party to bring to its attention any
   copyrights, patents or patent applications, or other proprietary
   rights that may cover technology that may be required to implement
   this standard.  Please address the information to the IETF at
   ietf-ipr@ietf.org.












Chadalapaka                 Standards Track                    [Page 38]
^L