[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