|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: iSCSI : Digest Error Problems & CmdSN/ExpCmdSN window issuesanswers in text - Julo Santosh Rao <santoshr@cup.hp.com> on 25/01/2001 04:06:59 Please respond to Santosh Rao <santoshr@cup.hp.com> To: IPS Reflector <ips@ece.cmu.edu> cc: Subject: iSCSI : Digest Error Problems & CmdSN/ExpCmdSN window issues Julian & All, There's a number of problems with the current iSCSI handling of digest errors (Section 5.5) : "When an initiator receives an iSCSI data PDU with a digest error or any other PDU with a header or data digest error, it must discard and re-start the task -provided it can recognize the Initiator Task Tag". 1) The initiator task tag cannot be trusted when a header digest error is seen. What does the phrase "provided it can recognize the initiator task tag" mean ? How can an initiator reliably claim that the initiator task tag is trustworthy ? <js> an initiator may choose to provide some redundancy in the tag itself </js> 2) The use of a "discard and re-start" policy can cause some problems. The target is un-aware that the initiator has discarded the task and will then receive a 2nd command with the same Initiator Task Tag and CmdSN for a task already in progress, which can cause transmission of duplicate sets of data on the same I.T.T. Any policy of "discard and re-start" must be modified to "discard, abort and then, re-start, and the draft MUST specify connection allegiance of the command and its Abort Task". <js> a restart is recognized as such through the restart bit. Why would you require abort? please explain </js> 3) The policy of "discard and restart" is also subject some race conditions in the CmdSN sliding window. At the time the digest error was detected at the initiator, the ExpCmdSN may not yet have acknowledged that command. This causes the initiator to restart the command with the same Initiator Task Tag, CmdSN and "retry" bit set. However, by the time the command gets to the target, the target may have updated its ExpCmdSN window having sent a later PDU which updated the ExpCmdSN. This results in the target discarding the received CmdSN since <js> at command restart you never really rely on the CmdSN. you will want to check the Initiator Task Tag and accept it in the above case. </js> it is outside the expected window of (ExpCmdSN, MaxCmdSN). The "discard & restart" policy cannot be reliably used unless it is on a connection failure, in which case, the failed connection is first logged out and an updated ExpCmdSN is received on the logout response. Following the logout response, the "retry" commands CmdSN can be based on the ExpCmdSN. <js> see above </js> In the case of digest errors, the CmdSN window can be moving forward and an attempt to "discard and restart" will result in a re-send of a CmdSN that is outside the CmdSN window, causing the target to discard the retried command. <js> the target has enough information to discard only true replicas </js> Regards, Santosh - santoshr.vcf
Home Last updated: Tue Sep 04 01:05:44 2001 6315 messages in chronological order |