Subject: Re: iSCSI : Digest Error Problems & CmdSN/ExpCmdSN window issues

From: Matt Wakeley <[email-masked]>
Date: Fri, 26 Jan 2001 10:22:11 -0800

Santosh,

I guess I don't understand what it is that you think needs clarification.

-Matt

Santosh Rao wrote:
> 
> Matt,
> 
> (You may want to take another look at the thread.). Here's the details again :
> 
> > 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>
> 
> The draft states the following on this subject :
> 
> Section 5.1
> =========
> -    the initiator will reissue all outstanding commands with their
>       original Initiator Task Tag and their original CmdRN if they
>       are not acknowledged yet or a CmdRN of 0 (not-numbered) if they
>       were acknowledged; the retry (X) flag in the command PDU will
>       be set
> 
> Section 1.2.2.1
> ===========
> - The target MUST silently ignore any command
>    outside this range or duplicates within the range not flagged with
>    the retry bit (the X bit in the opcode).
> 
> This, to me, means :
> - ignore all commands outside the (ExpCmdSN, MaxCmdSN) range.
> - ignore all duplicate commands within the range that are not flagged with the
> retry
> bit. << "duplicate" added this time >>
> 
> Can you please clarify the intent of the text ?
> 
> Matt Wakeley wrote:
> 
> > Santosh Rao wrote:
> > > Alright (so the cut & paste did'nt work)  ;-}
> > >
> > > The issue under discussion is a retried command [and thereby, a duplicate
> > > CmdSN] that is OUTSIDE the (ExpCmdSn, MaxCmdSN) range. That falls under the
> > > first criteria.
> >
> > And the point is?  What am I missing?
> >
> > -Matt

---

From: Pierre Labat <[email-masked]>
Date: Fri, 26 Jan 2001 15:14:13 -0800

Santosh Rao wrote:

> Matt,
>
> The description of CmdSN window mangement in Section 1.2.2.1 reads :
>
>  "- The target MUST silently ignore any command
>      the retry bit (the X bit in the opcode)."
>
> Does this imply :
> ?
> If so, a command with the "retry" bit set and received outside the
> (ExpCmdSN, MaxCmdSN) window causes the target to drop the
> received retry. Is this a valid interpretation of the draft ?

I think so, normally an initiator before issuing a "retry" does a Logout.
In the Logout response it receives an ExpCmdSN.
Form this value the initiator decides to retry the command
not numbered if the original CmdSN is less than ExpCmdSN.
It avoids the "retry" to be rejected.

Regards,

Pierre

> Regards,
> Santosh

---

From: Santosh Rao <[email-masked]>
Date: Fri, 26 Jan 2001 14:30:52 -0800

Matt,

Does this imply :

Regards,
Santosh