FCP_RSP Residual Checking.

Santosh Rao santoshr at cup.hp.com
Wed Jul 11 17:15:26 PDT 2001


* From the T10 Reflector (t10 at t10.org), posted by:
* Santosh Rao <santoshr at cup.hp.com>
*
This is a multi-part message in MIME format.
--------------447621DF240FC49085AEEC8C
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Bob & All,

With respect to the discussion below, that, FCP_RESID shall be correctly
initialized, regardless of the SCSI Status being returned, whenever the
data transferred during that command does not match FCP_DL .......

There is a statement in Section FC-PLDA Section 8.2.4.1 (FCP_RSP
Residual Checking) that states :

"During commands that do not contain an FCP_DATA IU, FCP_RESID_UNDER and
FCP_RESID_OVER shall both be set to 0, and the value of FCP_RESID is
undefined."

What is the intent of the above ? 

Does it cover for commands which may have got a CHECK CONDITION and
performed no data transfer ?

i.e. When a command requesting FCP_DL bytes of data xfer is errored back
by the target with a CHECK CONDITION and no data transfer has occurred,
should the target initialize the FCP_RESID information to indicate that
no data was transferred , or is the FCP_RESID set to 0 ?

If the behaviour is the latter, then, initiators cannot check FCP_RESID
regardlesss of SCSI STATUS.

Any comments would be much appreciated.

Thanks,
Santosh Rao



Robert Snively wrote:
> 
> Sub-clause 9.3 is pretty specific:
> 
>         If the command requested that data beyond FCP_DL be
>         transferred, the FC_RSP IU shall contain the FCP_RESID_OVER
>         bit set to one.
> 
>    and
> 
>         If the write operation requires a total amount of data
>         less than the amount of data provided by the initiator,
>         the target shall discard the excess bytes. Because there
>         were less bytes provided than required by FCP_DL,
>         the FCP_RESID_UNDER bit shall be set to 1 in the
>         FCP_RSP IU. The command is completed according to the
>         rules specified by the SCSI command set for that command.
> 
> The intent is that the answer to your first and second
> questions are "yes".
> 
> >  Is the target required to initialize the fields FCP_RESID_UNDER,
> >  FCP_RESID_OVER & FCP_RESID when any I/O is completed
> >  without the data phase having transferred exactly
> >  FCP_DL bytes, regardless of the SCSI Status being returned ?
> 
> >  When the target generates a CHECK CONDITION on an I/O
> >  and may have returned less than FCP_DL bytes in the data
> >  phase for that I/O, is it
> >  required to set the FCP_RESID_UNDER to 1 and indicate the number of
> >  bytes not transferred in the FCP_RESID field?
> 
> The intent is that the answer to your second question is:
> FCP_RESID should appropriately regardless of the SCSI Status
> being returned.  The classic errors of that class are those
> involving successful completion with reporting, like
> the "NO SENSE" and "RECOVERED ERROR" series of errors.
> 
> >
> >  What is the behaviour initiators can expect under the above
> >  condition ?
> 
> The intent is that there be no conflict.  I believe that FCP-2
> was a bit less bald than FC-PLDA in stating the requirement.
> 
> >  Is there a conflict in the behaviours described by FCP/FCP-2
> >  & FC-PLDA ?
> >
> 
> Bob Snively                        e-mail:    rsnively at brocade.com
> Brocade Communications Systems     phone:  408 487 8135
> 1745 Technology Drive
> San Jose, CA 95110
> 
> >  -----Original Message-----
> >  From: Santosh Rao [mailto:santoshr at cup.hp.com]
> >  Sent: Thursday, July 05, 2001 12:15 PM
> >  To: T10 Reflector; Fibre Channel T11 reflector
> >  Subject: FCP_RSP Residual Checking.
> >
> >
> >  All,
> >
> >  I've got a question on target behaviour while sending a
> >  CHECK CONDITION
> >  SCSI status in its FCP_RSP IU.
> >
> >  Is the target required to initialize the fields FCP_RESID_UNDER,
> >  FCP_RESID_OVER & FCP_RESID when any I/O is completed without the data
> >  phase having transferred exactly FCP_DL bytes, regardless of the SCSI
> >  Status being returned ?
> >
> >  When the target generates a CHECK CONDITION on an I/O and may have
> >  returned less than FCP_DL bytes in the data phase for that I/O, is it
> >  required to set the FCP_RESID_UNDER to 1 and indicate the number of
> >  bytes not transferred in the FCP_RESID field?
> >
> >  FC-PLDA Section 8.2.4.1 states that :
> >  "SCSI targets that transfer less than FCP_DL bytes during
> >  the FCP_DATA
> >  IUs shall set the FCP_RESID_UNDER to 1".
> >
> >  No exceptions are specified in the case of a CHECK CONDITION in the
> >  above definition, implying that FCP_RSP residual checking can be
> >  performed irrespective of the SCSI Status that was returned in the
> >  FCP_RSP.
> >
> >  However, the wording descriptions of FCP_RESID_UNDER,
> >  FCP_RESID_OVER &
> >  FCP_RESID in SCSI-FCP & FCP-2 are not as stringent as
> >  FC-PLDA and do not
> >  mandate that FCP_RESID_UNDER shall be set when the data
> >  transferred is <
> >  FCP_DL.
> >
> >  What is the behaviour initiators can expect under the above
> >  condition ?
> >  Is there a conflict in the behaviours described by FCP/FCP-2
> >  & FC-PLDA ?
> >
> >  Thanks,
> >  Santosh Rao
> >


--------------447621DF240FC49085AEEC8C
Content-Type: text/x-vcard; charset=us-ascii; name="santoshr.vcf"
Content-Transfer-Encoding: 7bit
Content-Disposition: ATTACHMENT; filename="santoshr.vcf"
Content-Description: Card for Santosh Rao

begin:vcard 
n:Rao;Santosh 
tel;work:408-447-3751
x-mozilla-html:FALSE
org:Hewlett Packard, Cupertino.;SISL
adr:;;19420, Homestead Road, M\S 43LN,	;Cupertino.;CA.;95014.;USA.
version:2.1
email;internet:santoshr at cup.hp.com
title:Software Design Engineer
x-mozilla-cpt:;21088
fn:Santosh Rao
end:vcard

--------------447621DF240FC49085AEEC8C--




More information about the T10 mailing list