[T10] SPC5r20a - 220.127.116.11 - Allocation length confusing.
davidf at terabyteunlimited.com
Wed Feb 27 16:31:30 PST 2019
Thanks guys, I get it.
How about text that reads:
If the amount of information that is available to be transferred exceeds the maximum value that the ALLOCATION LENGTH field (in combination with other fields in the CDB) is capable of specifying, then no data shall be transferred and the command shall be terminated with CHECK CONDITION status, with the sense key set to ILLEGAL REQUEST, and the additional sense code set to INVALID FIELD IN CDB.
For example, if a target has 300 bytes of mode data to transfer for the MODE SENSE(6) command, which is only capable of specifying 255 for the ALLOCATION LENGTH, then the command shall be terminated with CHECK CONDITION status, with the sense key set to ILLEGAL REQUEST, and the additional sense code set to INVALID FIELD IN CDB.
Added items in red; parenthesis around “in combination with other fields in the CDB” and the example at the end.
From: t10-bounces at t10.org [mailto:t10-bounces at t10.org] On Behalf Of Gerry Houlder
Sent: Wednesday, February 27, 2019 3:40 PM
To: Kevin D Butt
Cc: T10 Reflector; t10 at terabyteunlimited.com
Subject: Re: [T10] SPC5r20a - 18.104.22.168 - Allocation length confusing.
That wording was intended to cover the case where There are different size commands that can do the same function. For example, MODE SENSE(6) has only a one byte transfer length and MODE SENSE(10) has a two byte transfer length. If a target has 300 bytes of mode data to transfer and the host issues a MODE SENSE(6) command, the command should end with CHECK CONDITION status with the allocation length error. This is supposed to clue the host to use the MODE SENSE(10) command to return the data. If more than FFFFh bytes of mode data was available, a MODE SENSE(10) command should truncate the data (return as much as it can) and it is up to the host to send a different MODE SENSE(10) command that will retrieve a different set of data If the host didn't get the data it wanted.
On Wed, Feb 27, 2019 at 5:30 PM Kevin D Butt <kdbutt at us.ibm.com> wrote:
The key is to pay attention to the words, "exceeds the maximum value that the ALLOCATION LENGTH field in combination with other fields in the CDB is capable of specifying". This is not talking about what value is in the allocation length field, but the maximum value that could be specified. If there is more data to transfer than what can be specified, then return the CHECK CONDITION. e.g., allocation length field is 4 bytes. Information available to be transferred is greater than 2^32 (4294967296), then Check Condition is returned.
Kevin D. Butt
SCSI Architect, Tape Firmware, Data Retention Infrastructure
MS 6TYA, 9000 S. Rita Rd., Tucson, AZ 85744
Fax: 520-799-2723 (T/L:321)
Email address: kdbutt at us.ibm.com
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the T10