[t10] SPC-3 revision 12 REQUEST SENSE 18 byte rule change
Pat LaVarre
LAVARRE at iomega.com
Fri Mar 21 08:35:09 PST 2003
* From the T10 Reflector (t10 at t10.org), posted by:
* "Pat LaVarre" <LAVARRE at iomega.com>
*
> The application client is likely to use
> an ALLOCATION LENGTH of 252 bytes since it
> doesn't know the size of the sense data.
Dunno about "likely" here.
In my experience of bus traces, hosts fall into two camps.
There is a camp that asks for max when it doesn't know
e.g. -x "03 00 00 00 FF 00" -i xFF // e.g. Linux before the talk-like-Windows patches of 2.4/2.5
But there is another camp that asks for the min "everyone knows" is present
e.g. -x "03 00 00 00 12 00" -i x12 // e.g. Win 2K/XP
or even, gag blech:
-x "03 00 00 00 0E 00" -i x0E // e.g. Win 9X/ME
> If ... a device server returns less than eighteen bytes of data,
> the application client should assume
> that the bytes not transferred would have been zeros ...
Not all forms of Scsi-over-whatever cope well when the host fails
to predict accurately how many bytes the device will ask to copy In or Out.
In practice, this English therefore has been empty: it is accomplished
by building hosts that choose an AllocationLength small enough
that most devices in fact do agree to copy In precisely that many bytes.
Pat LaVarre
-----Original Message-----
From: Elliott, Robert (Server Storage) [mailto:Elliott at hp.com]
Sent: Thu 3/20/2003 6:04 PM
To: t10 at t10.org
Cc:
Subject: SPC-3 revision 12 REQUEST SENSE 18 byte rule change
* From the T10 Reflector (t10 at t10.org), posted by:
* "Elliott, Robert (Server Storage)" <Elliott at hp.com>
*
One of the changes to REQUEST SENSE in SPC-3 revision 12 might have
unintentionally
changed the meaning.
SPC-3 revision 11:
Device servers shall be capable of returning eighteen bytes of data in
response
to a REQUEST SENSE command. If the allocation length is eighteen or
greater, and
a device server returns less than eighteen bytes of data, the
application client
should assume that the bytes not transferred would have been zeros had
the device
server returned those bytes.
SPC-3 revision 12:
Device servers shall return at least eighteen bytes of data in response
to a
REQUEST SENSE command if the allocation length is eighteen or greater.
These sentences remained unchanged:
Application clients may determine how much sense data has been returned
by
examining the ALLOCATION LENGTH field in the CDB and the ADDITIONAL
SENSE LENGTH
field in the sense data. Device servers shall not adjust the additional
sense
length to reflect truncation if the allocation length is less than the
sense
data available.
The 18-byte references were based on the fixed sense data format. With
the
descriptor sense data format, the minimum size is 8 bytes, not 18 bytes.
The application client is likely to use an ALLOCATION LENGTH of 252
bytes since it
doesn't know the size of the sense data. Why should the device server
include 10
extra bytes if the descriptor format only needs the minimum size? What
would those
extra 10 bytes be set to?
I suggest just including this warning for application clients about old
targets,
and remaining silent about the device server:
If fixed format sense data is requested, the allocation length is
eighteen or greater,
and a device server returns less than eighteen bytes of data, the
application client
should assume that the bytes not transferred would have been zeros had
the device
server returned those bytes.
--
Rob Elliott, elliott at hp.com
Hewlett-Packard Industry Standard Server Storage Advanced Technology
https://ecardfile.com/id/RobElliott
*
* For T10 Reflector information, send a message with
* 'info t10' (no quotes) in the message body to majordomo at t10.org
*
* 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