Definition of Mandatory and Optional Features in SAM - resend
Charles Monia, SHR3-2/W3, 237-6757 30-Aug-1994 1811
monia at starch.enet.dec.com
Tue Aug 30 15:09:52 PDT 1994
My apologies to anyone receiving this for the second time. I am resending this
because of a problem with our gateway which has caused loss of internet traffic.
From: STARCH::MONIA "Charles Monia, SHR3-2/W3, 237-6757" 25-AUG-1994
Subj: Definition of Mandatory and Optional Features in SAM
From: Charles Monia
SAM Technical Editor
To: Members of X3T10
Subject: Definition of Mandatory and Optional Features in SAM
There has understandably, been some uncertainty about how require-
ments and options defined in one standard may affect others.
The purpose of this proposal is to resolve this issue by defining the
precedence, scope and relationships between optional and mandatory
features than span SCSI-3 standards and implementations. This docu-
ment, as approved by the X3T10 membership, will be the basis for a
detailed proposal containing exact textual changes to SAM.
1. In SCSI, an option is some feature that need not be supported
for an implementation to claim compliance with a standard. If
supported, the feature must be implemented in accordance with
2. Features are supported by standards and implementations. A
standard supports a feature by specifying how the feature shall
be implemented. An implementation supports a feature if the
feature is implemented in accordance with the standard.
3. Certain features apply across classes of SCSI standards. For
instance, even though command queuing may be thought of
as a logical unit option, the feature is unavailable to a device
driver unless the protocol standards and protocol implementa-
tions support it.
4. Features may apply to standards in different ways. SAM must
specify for each class of standard or implementation whether or
not an applicable feature is an option or requirement. That is,
SAM may specify that a feature is optional for a logical unit but
mandatory for the protocol implementation. SAM can also
delegate such control to another standard.
5. SAM must define each class of standard and the precedence
for resolving conflicts among classes of standards.
Given the above, I propose that text be added to SAM specifying the
1. A conflict between standards shall be resolved according to the
Other command standards
A subsidiary standard is one which is lower in precedence than
a referenced standard. A controlling standard is higher in
precedence than a referenced standard.
2. A standard supports a feature if the standard specifies how the
feature is to be implemented.
3. A standard requires a feature if it supports the feature and
requires that the feature be implemented and required by all
4. A standard shall require all mandatory features defined by a
controlling standard (obvious but probably needs to be said).
5. Unless otherwise specified in the controlling standard, a sub-
sidiary standard shall support all options specified in a control-
An SCSI-3 standard shall define the scope of requirements and options
using language based on that shown below.
1. "shall" -- Identifies a mandatory feature to be supported by an
implementation subject to the standard and by required by all
2. "...a logical unit shall support...." implies that the feature shall
also be required by the protocol and interconnect standards.
3. "...is a protocol option..." -- identifies a feature which may be
optionally supported by a protocol standard. The protocol
standard may also specify whether or not the feature shall be
4. "...shall be required by a protocol standard..." or "...a protocol
standard shall require..." -- identifies a feature that shall be
supported by all protocol standards and protocol implementa-
5. "...is a logical unit option..." -- identifies a feature that may be
optionally supported by a logical unit. Support by a protocol
standard is mandatory. A protocol standard may or may not
impose the requirement on implementations and subsidiary
6. "...a protocol standard shall support..." -- Indicates that the
feature shall be supported by the protocol standard. The proto-
col standard shall specify whether or not the feature shall be
required by implementations and subsidiary standards.
For an option supported by the logical unit but not by the protocol
implementation, the protocol standard may require a logical unit to
indicate that the option is unsupported. Alternatively, the initiator's
service delivery port may provide some way for an application client to
determine which logical unit options are unsupported by the protocol
More information about the T10