legal but rude

Kenneth Hallam khallam at
Fri Feb 21 11:56:39 PST 2003

* From the T10 Reflector (t10 at, posted by:
* Kenneth Hallam <khallam at>


You are right to characterize poorly designed interoperational behavior as
"rude". In fact, Jeff Stai wrote an entire chapter on "SCSI Ettiquette" in
his book "The SCSI Encyclopedia, Vol-2" published by ENDL Publications way
back in 1994. Also many years ago when I taught classes on SCSI design, the
concept of "legal but rude" was a key part of every class. Every formal
interface standard has sufficient lattitude within it's legaly defined
behavior models to allow 2 products designed by different teams to fail to
work properly when connected. That's why ANSI sanctioned standards are
often followed by official Technical Reports that define specific device
profiles and even those are followed by what ever commercial product grabs
the most market share that becomes the de facto standard as far as behavior
is concerned. For most of us, it's easier to change vendors than to change
internal software.


Ken Hallam
Storage Architecture
IBM Storage Systems Group            Voice T/L 321-5689 or 520-799-5689
Tucson, AZ 85744                                  Fax  T/L 321-5410 or
khallam at

                      "Pat LaVarre"                                                                                                    
                      <LAVARRE at iomega.c        To:       <t10 at>                                                                 
                      om>                      cc:                                                                                     
                      Sent by:                 Subject:  legal but rude                                                                
                      owner-t10 at                                                                                                
                      02/21/2003 11:28                                                                                                 

* From the T10 Reflector (t10 at, posted by:
* "Pat LaVarre" <LAVARRE at>
By the way, I find a number of engineers find the "legal but rude" concept
difficult to learn.

Anybody got a better way to explain it?

The kind of design I mean by this phrase includes choosing plug 'n play
descriptors, such as op x12 Inquiry data, formed strictly in accord with
the merely public merely standard paper specs ... that in fact don't
interoperate well because they aren't normal.  Of course I can't easily
discuss any real & current examples, but here's an analogous hypothetical.

Suppose someone actually built a device with an op x12 Inquiry that
returned x00 DASD as the byte 0 & x1F PDT (PeripheralDeviceType) but then
responded to op x25 ReadCapacity with a blockLength larger than x1000 B =

All the paper specs say this is utterly legit.  But if you actually go
build such a thing, the host i/o chokes, because "everyone knows" that the
block size of any HDD is supposed to be as small or smaller than a virtual
memory page, and "almot everyone knows" that the block size of x00 DASD is
supposed to be x200 B = 512 B = 0.5KiB.

I say the device and the host here are being "rude".  This other engineer
said only the host was "rude", because the paper spec covers the device, so
the device is "legal", and there is no paper spec for the host.  I say
neither would have got caught being rude if the other had been polite.  I
say we know they are mutually rude because the system breaks, despite half
of the system, the device, being completely legal by any reasonable reading
of the merely public merely standard paper specs.

What can this engineer be thinking, to say only the host is rude?

How can I explain that the device here is equally rude?

Cluelessly, curiously, thankfully yours, and a Happy Friday to you, Pat

P.S. If by chance I err and some paper spec does tell us that block size
other than 0.5 KiB isn't legal for PDT = x00 DASD, that rather misses the
point.  The point is we can tell it's rude before we even ask if it's

* For T10 Reflector information, send a message with
* 'info t10' (no quotes) in the message body to majordomo at

* For T10 Reflector information, send a message with
* 'info t10' (no quotes) in the message body to majordomo at

More information about the T10 mailing list