SPC Inquiry for Quad-Aligned Zero -- deprecated since SPC-4 maybe
Elliott, Robert (Server Storage)
Elliott at hp.com
Wed Dec 12 11:52:15 PST 2007
* From the T10 Reflector (t10 at t10.org), posted by:
* "Elliott, Robert (Server Storage)" <Elliott at hp.com>
> -----Original Message-----
> From: owner-t10 at t10.org [mailto:owner-t10 at t10.org] On Behalf
> Of plavarre at lexar.com
> Sent: Wednesday, December 12, 2007 11:50 AM
> To: T10 at t10.org
> Subject: SPC Inquiry for Quad-Aligned Zero -- deprecated
> since SPC-4 maybe
> * From the T10 Reflector (t10 at t10.org), posted by:
> * <plavarre at lexar.com>
> > http://t10.org/scsi-3.htm
> > http://t10.org/ftp/t10/drafts/spc4/spc4r11.pdf
> > 14 May 2007
> > ...
> > 6.4 INQUIRY command
> > 6.4.1 INQUIRY command introduction
> > ...
> > The ALLOCATION LENGTH field is defined in 188.8.131.52.
> > If EVPD is set to zero,
> > the allocation length should be at least five,
> > so that the ADDITIONAL LENGTH field
> > in the parameter data (see 6.4.2) is returned.
> > If EVPD is set to one,
> > the allocation length should be should be at least four,
> > so that the PAGE LENGTH field
> > in the parameter data (see 7.6) is returned.
> Do we actually now mean to be so explicitly deprecating the SCSI test
> tradition of SPC Inquiry for zero?
> "12 00 00 00 00 00" is the six byte hex CDB I mean.
> The tradition I knew was: "The host may send this CDB to discover if
> Command Out and Status In works without simultaneously
> testing Data Out,
> Data In, and Sense In and without risk of popping a Unit Attention
> (though with the risk of wiping out some read-and-clear Sense data)."
> So in future SPC do we mean "any nonzero allocation length
> should be at
> least four" or do we mean "every allocation length should be at least
> four" or do we mean something else?
Those are just "should" not "shall" rules, so zero doesn't violate them. The
sentences explain why the advice is provided - a value less than 4 or 5
results in a truncated LENGTH field, which could be misinterpreted.
The general ALLOCATION LENGTH field definition in 184.108.40.206 (used by most but
not all commands that have a field with that name) specifically says zero is
not an error. INQUIRY uses the 220.127.116.11 definition.
One editorial clarification: "should be should be" should be "should be"
> Curiously yours, thanks in advance,
> P.S. And while we're here does anyone happen to know where
> our language
> is that recommends SPC Inquiry Allocation Lengths be quad-aligned for
> SCSI transports that require quad-aligned data phases?
The SCSI Architecture Model requires SCSI transports to support
byte precision for transfer lengths.
The wording in SAM-4 revision 13b section 18.104.22.168 is:
"All SCSI transport protocol standards shall define support for
a resolution of one byte for the Application Client Buffer
It allows transports to ensure that interim transfers are aligned
on larger boundaries, as long as the last transfer can deliver
any specific number of bytes:
"SCSI transport protocol standards may define restrictions on
the resolution of the Application Client Buffer Offset argument.
SCSI transport protocol standards may define restrictions on the
resolution of the Request Byte Count argument for any call to
Send Data-In or any call to Receive Data-Out that does not
transfer the last byte of the Application Client Buffer."
Rob Elliott, elliott at hp.com
Hewlett-Packard Industry Standard Server Storage Advanced Technology
* 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