|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] iSCSI : Rev 05 Review CommentsJulian & All, Enclosed is some review comments on rev 05 of the iSCSI draft. Regards, Santosh Comments on iSCSI Rev 05 : ========================== 1) Section 2.10.7, pg 52. Login ------------------------------- "Is significant only if TSID is zero and indicates the starting Command Sequence Number for this session; it SHOULD be zero for all other instances." The above SHOULD to be replaced by MUST. 2) Section 2.11, pg 55. Login Response -------------------------------------- Section 2.11.5 refers to the use of a 0 value for TSID to indicate Login Reject. This can be removed since a status of 0206 indicates the same. Also, are targets expected to populate all the fields of a login response when rejecting a login (i.e. non-0 status class) ? Needs to be called out explicitly one way or the other. 3) Section 2.12.4, pg 58. PingMaxReplyLength -------------------------------------------- "Ping data is reflected in the Ping Response. Note that the length of the reflected data is limited by a negotiated parameter and the initiator SHOULD avoid sending more than the negotiated limit. " Replace SHOULD by MUST. 4) Section 2.6, pg 41. SCSI Task Mgmt Response ---------------------------------------------- The Response Codes in the SCSI Task Mgmt Response are insufficient. The following additional response codes should be considered for addition to the existing list : a) Command Not Supported (ex : target does not support LUN Reset) b) Invalid LUN (ex : LUN Reset sent to a non-existent LUN) c) Busy (ex : Task Mgmt command cannot be executed since the task manager is busy.) 5) Section 2.12, pg 57. NOP-OUT -------------------------------- When does ExpStatSN can take a value of 0. Needs to be called out in the spec. 6) Section 2.13, pg 59. NOP-IN requires iSCSI to be LUN aware. --------------------------------------------------------------- In the NOP-IN PDU, when the P bit is 1, the spec requires the LUN field to contain a valid LUN (should not be 0 ?). This requires LUN knowledge at the iSCSI layer, since NOP-IN is generated at the iSCSI layer which is LUN-list unaware. The LUN field is not required for the NOP-IN PDU and should be removed. (As a side note, the figure states LUN or reserved, while the description states the field MUST contain a valid LUN.) 7) Section 2.12, pg 60. StatSN not required in NOP-IN. ------------------------------------------------------- "Whenever the NOP-In is not issued in response to a NOP-Out the StatSN field will contain as usual the next StatSN but StatSN for this connection is not advanced." Why is StatSN required in the NOP-IN PDU ? The above is adding extra code paths in StatSN assignment in the performance path.(conditional StatSN assignment based on opcode.). It is un-necessary complexity. 8) Section 2.16, pg 64. SACK should be included in "connection allegiance" --------------------------------------------------------------------------- The "connection allegiance" definition should be expanded to include the SACK in order to avoid spanning I/O state information across connections.(Needs to be explicitly stated in the spec.) 9) Section 2.16. Initiator Task Tag in SACK PDU. ------------------------------------------------- The spec needs to document when I.T.T can be reserved in a SACK. (A general comment is that all fields in all PDUs need describing and should be described in the order of the PDU layout.) 10) The layout of the Additional Runs for a SACK should be described in Section 2.16. 11) Per the spec, "The SACK also implicitly acknowledges data or status PDUs." How is this ? The SACK is meant as a request to re-transmit a missing PDU. How is it an implicit acknowledgement (?) 12) Section 2.17, pg 66, 67. Protocol rule regarding Target Transfer Tag. ------------------------------------------------------------------------- Section 2.17 contradicts itself by stating that "there is no protocol rule about Target Transfer Tag" and then, stating : "All outstanding R2Ts should have different Target Transfer Tags". The usage of the Target Transfer Tags is device dependent and the draft need not elaborate on this. 13) Section 2.18.2., pg 69 Asynch Message SCSI Event. ----------------------------------------------------- The draft refers to a non-existent "Length parameter" as : "The Length Parameter is set to the length of the sense data." 14) Section 2.20. pg 71. Reject PDU ----------------------------------- The draft must state that a reject PDU is not to be transmitted when the target detects any of the reasons to reject on a NOP-OUT PDU with the Target Transfer Tag set. (i.e. a NOP-OUT from initiator in response to the target having sent a NOP-IN.) 15) Section 6.1. pg 80. Format Errors ------------------------------------- "When an initiator receives an iSCSI PDU with a format error, for which it has an outstanding task, it MUST abort the target task and report the error through an appropriate service response" How can an initiator know which task to abort when it may not be able to extract the Initiator Task Tag from the PDU due to the format error ? Suggest re-wording the above to indicate that the initiator discard a PDU with a format error and recover the I/O through the timeout path. It should specify that on an I/O timeout, the initiator MUST abort the I/O. (As discussed during rev 03 review, a section on Abort handling would be useful.) 16) Section 6.3. pg 81. Sequence Errors --------------------------------------- "As a side effect of receiving the missing responses, the initiator may discover missing data PDUs. The initiator MUST NOT acknowledge (either explicitly through ExpStatRN or implicitly through a status SACK) the received responses until it has completed receiving all the data PDUs of a SCSI command. " The above is not clear. Does this imply it should not acknowledge the status until the I/O is "retried" and all the data PDUs are received ? 17) Section 6.6. pg 82. Session Errors. --------------------------------------- This section is not clear on the recovery action being prescribed. Can the initiator perform a logout with a reason of "closes the session" as session recovery ? 18) Section 6.7.1.1. pg 84. Recovery within a connection. --------------------------------------------------------- "(1)Status/Response not acknowledged for a long time. The target MAY issue a NOP-IN, with the P bit set to 1 or 0, which indicates in the StatSN field the next status number it is going to issue. This helps the initiator detect missing StatSN and issue a SACK-status. " StatSN is not required to be sent in NOP-IN. When the target sends a NOP-IN with P bit set, the initiator sends back ExpStatSN thereby acknowledging Status. 19) Section 1.2.2.1, pg 12 -------------------------- "If immediate delivery is used with task management commands, these commands may reach the SCSI target task management before the tasks they are supposed to act upon. Whenever those effects are undesirable, connection allegiance or ordered delivery MAY be used." The term "connection allegiance" is used above before its definition in Section 1.2.5. Recommend adding a list of acronyms and definitions to the document. 20) Section 2.3.2, pg 33 ------------------------ The use of "SCSI Execute Command" must be additionally qualified with [SAM2] reference or better still, a brief explanation of the SAM2 CRN to iSCSI CmdRN mapping added to this section. -- ################################# Santosh Rao Software Design Engineer, HP, Cupertino. email : santoshr@cup.hp.com Phone : 408-447-3751 #################################
Home Last updated: Tue Sep 04 01:05:18 2001 6315 messages in chronological order |