FCP_RSP Residual Checking.
Robert Snively
rsnively at Brocade.COM
Thu Jul 12 10:50:16 PDT 2001
* From the T10 Reflector (t10 at t10.org), posted by:
* Robert Snively <rsnively at brocade.com>
*
The intent of the statement was to indicate that commands
like TEST UNIT READY and other commands with a known zero
data length shall have the FCP_DL set to 0 and shall have
the FCP_RESID_UNDER/OVER also set to zero in the response.
However, if FCP_DL is non-zero, then FCP-2 indicates that
the FCP_RESID_UNDER/OVER should be set to reflect the
residue (if any) and the FCP_RESID should be set to the
correct value.
If neither FCP_RESID_UNDER nor FCP_RESID_OVER are set, then
FCP_RESID is not defined, according to FCP-2.
The FC-PLDA information is thus all properly contained in
FCP-2 with the traditional meaning. However, FC-PLDA did not
have the advantage of the clarifying text of FCP-2, and
in trying to clarify the issue itself, only confused the issue.
To your questions directly:
"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."
1) What is the intent of the above ?
See the intent above
2) Does it cover for commands which may have got a CHECK CONDITION and
performed no data transfer ?
It covers commands with FCP_DL = 0 only.
3) 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 ?
Less than the expected number of transfers occurred and the
residual value is set accordingly.
4) If the behaviour is the latter, then, initiators cannot check FCP_RESID
regardlesss of SCSI STATUS.
Right. That is why it is not done that way.
*
* 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