|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Fwd: Review feedback on draft-ietf-ips-iSCSI-02.txt]Santosh, That is in my - "to consider" stack and that is the reason you did not hear back (don't get nervous!). Bu here is my position: (interspersed in text) Thanks, Julo Santosh Rao <santoshr@cup.hp.com> on 23/12/2000 02:06:03 Please respond to Santosh Rao <santoshr@cup.hp.com> To: Julian Satran/Haifa/IBM@IBMIL cc: santoshr@cup.hp.com Subject: [Fwd: Review feedback on draft-ietf-ips-iSCSI-02.txt] Julian, I am re-sending this message to you since I did'nt hear any response back on this. Your response on some/all of these issues would be highly appreciated. Thanks and Regards, Santosh Rao Santosh Rao wrote: > Julian/All, > > Enclosed is some review feedback on draft-ietf-ips-iSCSI-02.txt. > > Thanks, > Santosh Rao > > ------------------------------------------------------------------------ > Reference : draft-ietf-ips-iSCSI-02.txt > ======================================== > > o When command numbering is turned off (by setting InitCmdRN to 0), > what is the value of CmdRN to be used for commands ? > It would be preferrable to use a "don't care" value for the CmdRN > like 0xFFFFFFFF instead of using 0 which is intended to indicate > Immediate Delivery. > If you don't use numbering CmdRN is a reserved field. You are only after avoinding a test on the target? If the initiator is not using numbering having each command delivered as imediate convey the right intent. > o Normally, command ordering is enforced by the layer above > SCSI (ex : file systems, volume managers, etc) and in such > cases command ordering should not be required. > The spec iSCSI-02.txt states that "iSCSI initiators MUST implement the > command/request numbering scheme if they support more than 1 connection > per session" (Section 1.2.2.1). > Can the use of command numbering be made optional (using the existing > mechanism of setting InitCmdRN to 0 during LOGIN) if the initiator > stack does not require command ordering, but has chosen to use > multiple connections per session ? I don't see how this will ever work. How can the layer above enforce ordering and let iSCSI mess it up? > > o The reference to "Response Length" and "Response Data" in the SCSI > Response PDU (Section 2.3) is unclear about Response Data. Does this > refer to the same semantics as the Response Data used in Fibre > Channel's FCP_RSP terminology ? > Where is the Response Data defined in the standard ? > Will clarify in the next text > o It would be desirable to have a set of error codes in the SCSI Response > PDU that reflect any iSCSI PDU errors such as : > - iSCSI cmd PDU fields invalid > - Data Length different from desired length requested in R2T > - Data Relative Offset different from buffer offset requested in R2T > ... > Will clarify how this is done in the next draft. > o A standard REJECT response would be highly desirable for all command > type PDUs (ex : LOGIN, LOGOUT, TEXT, NOP). > The REJECT response could include reason code and reason explanations > which allow identification of the reasons for the REJECT. > as above (closer to a common iSCSI reject than the current command not understood) > o Section 2.1.5 : > "The initiator assigns a task tag to each SCSI task that it issues." > The above should read ..."to each task that it issues", since initiator > task tags are also used for non-scsi tasks like LOGIN, LOGOUT, NOP, > TEXT, etc. Thanks - will do > > o What are the "don't care" values to be used for ExpCmdRN and MaxCmdRN > when command numbering is turned off ? Can this be explicitly specified > in the draft ? > Will do (all reserved fields MUST be 0 unless specifically stated otherwise) > o iSCSI should avoid interpreting Sense Data and creating/using any iSCSI > specific check conditions, if possible. iSCSI specific errors should be > returned in Response Data in the SCSI Response PDU (when the response > data gets defined). THis allows for cleaner layering between SCSI and > iSCSI. > That is so now and will be even cleaner in the next text. > o The MaxCmdRN provides a form of dynamic queue depth management at the > target end, which complements the standard SCSI Queue Full mechanisms. > However, turning off command numbering (as in the case of single > connection per session) also implies that this mechanism is un-usable. > Any thoughts on some alternate schemes that would work even when using > single connections per session ? (Could command numbering be turned on > even for single connection sessions with a different meaning implying > use for queue depth management only and not ordering ?) The command numbering can be used for queue management even if you have a single connection. IF THE WG FEELS STRONGLY ABOUT IT THEN WE COULD raise command numbering to a MUST implement for every initiator and target. > o Section 2.7. The Response field in the SCSI Task Management Response > PDU could do with some enhancing. > - The "No Task Found" response can be removed since the target should > not REJECT an Abort Task received for a non-existent task. Targets > should respond with "Function Complete" for an Abort Task sent on a > completed task. This ensures that failure of Abort Task does not > trigger a higher level of error recovery from the initiator. > Pierre Labat found this hole. An abort can come after a reset by some other initiator. > - The following responses could be considered for addition to > the list : > i) "No such LUN" when Abort Task Set, CLear Task Set or LUN Reset > is attempted on an invalid LUN. > ii) "Logical Busy" when a 2nd task management function is attempted > while a prior conflicting task is in progress. > (ex: attempting LUN Reset while Target Reset is > in progress, etc.) > iii) "Function Not Supported" to allow targets to indicate no support > for certain task management requests. (ex: target reset !). > This should be treated differently from "Function Rejected" > which could be used to indicate an invalid request. > Those are allready fixed in the next text (some other way though). > o It is still not clear as to why WRITE SCSI Data PDUs need to specify > the LUN. (This is not done in the case of fibre channel.) > To let the targets choose liberaly the Target Task Tag > o Section 2.12 only specifies version major and version minor. A Version > High and Version Low would help initators and targets negotiate amongst > a range of versions. The major and minor versions can be made 4 bits in > size, using the same length as is currently used for version major and > version minor. (There have already been requests for this on the > reflector). Will consider > o Section 2.14. > The NOP Response PDU should allow a REJECT response for > the NOP to deal with an invalid NOP command PDU. > All rejects will be treated equal > o Section 2.14. NOP Response PDU. > "The target SHOULD also duplicate as much of the initiator ping data as > allowed by a configurable target parameter". > Is this referring to the PingMaxReplyLength login key ? If so, the > initiator should not be sending more than this length in its NOP > command PDU payload. Hence, the above could be re-worded to indicate > that initators should honor PingMaxReplyLength and targets SHOULD > duplicate all of the initiator ping data in their response. > So you are suggesting that the targets should not respond at all or reject a ping that does not comply with your rule? Our design rule was to be only as restrictive as needed. > o Section 2.15. > "The logout command is used by an initiator to 'clean up' the target > end of a failing connection and enable recovery to start". > > This should be re-phrased since a logout can be used as a form of a > graceful close of the I-T nexus. > Will consider > o Section 2.17. > "The buffer offsets and lengths for consecutive PDUs should form a > continuous range". > > Does the above imply targets are expected to request data in-order on > R2Ts ? This is not a requirement for Fibre Channel currently. If this > is not the intent, then, the above should be re-phrased to make this > more clear. > No - it is meant to convey that they should cover the whole range (will restate) > o Section 2.17. > "The present document does not limit the number of outstanding data > transfers". > This is not true, since MaxOutstandingR2T (as defined in Annexe C) is > used to pre-negotiate the limit on the number of outstanding data > transfers. > Will fix wording. > o Section 2.17. > "All outstanding R2T should have different target transfer tags". > Target transfer tags are used to track the state of the entire task > and should be the same value for all phases of that task. > The ability to have multiple concurrent R2Ts seems to call for an > additional qualifier for the task such as a task sub-id. Target > firmware would typically use the target task tag to lookup a per I/O > data structure that is tracking the state of that task. In order to > track multiple outstanding R2Ts within the same task, a different field > should be used. (something equivalent to a Sequence ID in Fibre Channel, > if the target task tag were to be thought of as the RX_ID of fibre > channel.) That's why you have the LUN. However within this any target can do as it pleases and the initiator will only echo the tag. - santoshr.vcf
Home Last updated: Tue Sep 04 01:06:01 2001 6315 messages in chronological order |