SCSI-3 Reseved Fields and Codes
Bob.Snively at eng.sun.com
Tue May 3 19:30:54 PDT 1994
I believe that there are really two points that are not
completely addressed by the wording that was proposed
for the SAM.
1) Trusted systems should not have to cross check each
and every nit.
What this means to me is that I would try very hard
not to buy or get stuck with systems or devices that go around
putting illegal bits out on the SCSI bus.
I can check these out during qualification and I can
listen to the recommendations from other users about
which systems should be avoided and simply avoid them.
As a result of that, I would not expect a disk drive to
have to pay for the complexity and performance overhead
of determining that each and every bit emitted by a system
is valid according to a particular revision of the standard.
2) Default back compatability is best achieved by selecting
values that will work properly if ignored.
What this means to me is that the use of optional or
more recently standardized bits is best managed not by
providing a check condition that indicates that these
bits don't match the drive's somewhat limited knowledge of what
is right, but rather by ignoring them and continuing
with normal operation if possible.
That is why I explicitly suggested capturing FC-PH's wordings:
"The term "shall" is used to indicate a mandatory rule. If such a rule
is not followed, the results are unpredictable unless indicated otherwise."
"For all SCSI-3 standards, the term "reserved" is used to indicate
that a field or code value
within a data structure is set aside for future standardization.
A reserved field shall be set to zero or in accordance with a future
extension to the defining SCSI-3 standard. A reserved code value
shall not be used except in accordance with a future extension to the
defining SCSI-3 standard. If these rules are not
followed, the results are unpredictable unless indicated otherwise."
To achieve the same goal, but using wording more similar to
SAM, I would modify the wording that Charles
suggested to be the following:
"Reserved fields and code values within a data structure
specified by this or any other SCSI-3 standard are set aside for
future standardization. Their use and interpretation may be
specified by future extensions to these standards. A reserved
field shall be set to zero, or in accordance with a future
extension to the applicable SCSI-3 standard.
A logical unit which receives a command descriptor block or
command data containing a non-zero reserved field or reserved
code value should terminate the command with CHECK CONDITION
status. If a CHECK CONDITION status is provided, the
sense key shall be set to ILLEGAL REQUEST (see the
SPC standard). It shall also be acceptable for a logical unit
to interpret such fields or code values in accordance with a
future revision to an SCSI-3 standard. If the logical unit
chooses not to terminate the command with CHECK CONDITION, it
may ignore those values which are not defined for it and
continue operation as if those values were set to the default
or reserved state. The operation of a device in such an
environment may not be predictable."
More information about the T10