FCP_RSP Residual Checking.

Robert Snively rsnively at Brocade.COM
Thu Jul 5 13:18:42 PDT 2001


* From the T10 Reflector (t10 at t10.org), posted by:
* Robert Snively <rsnively at brocade.com>
*
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
 >  

*
* For T10 Reflector information, send a message with
* 'info t10' (no quotes) in the message body to majordomo at t10.org




More information about the T10 mailing list