[T11.3] FCP-3 Work Item #4

Paul.A.Suhler at certance.com Paul.A.Suhler at certance.com
Tue Sep 23 11:26:38 PDT 2003


INCITS T11.3 Mail Reflector
********************************
I don't recall an in-depth discussion of this item at the meeting and the
minutes aren't out yet, so I thought that I'd raise a question here.

The issue is what to do with an FCP_CMND IU in which the CDB specifies a
data transfer longer than FCP_DL:

   4) - clause 9.3
   ... The target shall never request or deliver data outside the buffer
   length defined by FCP_DL. If the command requested that data beyond
   FCP_DL be transferred, the FCP_RSP IU shall contain the FCP_RESID_OVER
   bit set to one. The command is completed normally except that data
   beyond the FCP_DL count shall not be transferred and that the
   appropriate overrun condition is presented. See 9.4.4.

   How can the command ever request that data beyond FCP_DL be transferred?
   Maybe this would be for example, when a variable length read type
   command is issued to a tape device that results in data larger than the
   provided FCP_DL?

I'd argue that the last case should not occur.  The HBA driver should be
able to set FCP_DL correctly.

Nevertheless, a target must handle the error.  My main concern is a write
to tape where FCP_DL is too short.  I believe that transferring and writing
less data than the CDB specifies would be much worse than simply rejecting
the command.  I see three possible solutions:

1.  Reject the command with a transport-level error, i.e., RSP_CODE != 0.
Perhaps 02h, "FCP_CMND fields invalid"

2.  Reject the command with a status of Check Condition / Illegal Request
and an appropriate ASC

3.  Obsolete the FCP_DL field and ignore it, letting the target always
transfer the amount of data specified in the CDB.  We're taking this path
in ADT by not putting in such a field.


Thanks,

Paul Suhler
Senior Staff Firmware Engineer
Certance
1650 Sunflower Avenue
Costa Mesa, California  92626
(714) 641-2485 (voice)
(714) 966-7328 (fax)



To Unsubscribe:
mailto:t11_3-request at mail.t11.org?subject=unsubscribe






More information about the T10 mailing list