SCSI-3 Inquiry

jmcgrath at jmcgrath at
Fri Mar 18 12:01:38 PST 1994

                      Subject:                              Time:  11:37 AM
  OFFICE MEMO         SCSI-3 Inquiry                        Date:  3/18/94
Below is a copy of 94-079r1 (in the next mailing).  Note that this
would affect SAM and all SCSI-3 protocols.  I would appreciate
feedback - Jim


The multiple documents of SCSI-3 and the creation of even
more implementation options threatens to make it impossible
to implement true plug and play of SCSI devices.  Second
sourcing of SCSI devices is difficult unless some reliable
mechanism can allow hosts to determine the level of SCSI
compliance and the feature set supported.   The current SCSI
standard revision level and the various bits indicating support
of specific features is inadequate.

I suggest we develop a new mechanism based on the power of
the paging capability of the INQUIRY command introduced in
SCSI-2.  At its simplest we can create a "compliance/features
profile" page to indicate which standard documents (e.g. SPI,
SSP, SIP, Block commands) the device implements.  At a more
extreme, we could allow the device to report of the level of
implementation within each document.  For example, which
type of SCSI connector is implemented, which optional commands
are supported, which options within the commands are supported. 


Specifically, I propose the following:

All standards claiming compliance with SAM shall decompose
their feature set into a set ot items.  Each item shall be
identified as either being mandatory or optional.  Groups of
optional items may be identified as option sets, where
implementation of the set requires implementation of all
the options within the set.

A device is in compliance with a standard if it implements
all mandatory items.  The purpose of the INQUIRY command
it to identify which standard(s) the device claims compliance
to, and to identify which additional optional items identified
by a standard which are implemented by the device.

Towards this end I would suggest we assign one INQUIRY page
code for claiming compliance to any of the standards which
in turn claim SAM compliance.  Each of these standards shall
specify which byte position in the page corresponds to their
standard, and it is the responsibility of X3T10 to coordinate
these assignments.  I suggest the following initial assignments:

Page 83h	Standard Compliance

4	SCSI-3 Primary Commands (X3T9.2-995D) (SPC)
5	SCSI-3 Block Commands (X3T9.2-996D) (SBC)
6	SCSI-3 Stream Commands (X3T9.2-997D) (SSC)
7	SCSI-3 Graphics Commands (X3T9.2-998D) (SGC)
8	SCSI-3 Medium Changer Commands (X3T9.2-999D) (SMC)
9	SCSI-3 Common Access Method (X3.332-199x) (CAM)
10	SCSI-3 Interlocked Protocol (X3T9.2-856D) (SIP)
11	SCSI-3 Serial Bus Protocol (X3T9.2-992D) (SBP)
12	Fibre Channel Protocol (X3T9.2-993D) (FCP)
13	SCSI-3 Serial Storage Protocol (X3T9.2-XXXX) (SSP)
14	SCSI-3 Parallel Interface (X3T9.2-885D) (SPI)
15	Fibre Channel - PH (X3T9.3-XXX)
16	High Performance Serial Bus (IEEE 1394)
17	Serial Storage Architecture - PH (X3T10.1-XXX) (SSA)

For each byte, the bits are implemented as follows:

|   7     6     5  |    4    |   3   |    2    |    1     |    0     |
|     RESERVED     | Current | Saved |Changable| Default  | Capable  |

Notice that the bit values are changed by other commands (e.g.
CHANGE DEFINITION), and are just reported in INQUIRY.  Current,
Saved, Changable, and Default are interpreted as usual; Capable
is used to indicate the device is capable of this option.  Note
that this is required since some options are mutually exclusive
(e.g. Soft vs Hard reset).

Further, pages be assigned as follows:

84h	SCSI-3 Primary Commands (X3T9.2-995D) (SPC)
85h	SCSI-3 Block Commands (X3T9.2-996D) (SBC)
86h	SCSI-3 Stream Commands (X3T9.2-997D) (SSC)
87h	SCSI-3 Graphics Commands (X3T9.2-998D) (SGC)
88h	SCSI-3 Medium Changer Commands (X3T9.2-999D) (SMC)
89h	SCSI-3 Common Access Method (X3.332-199x) (CAM)
8Ah	SCSI-3 Interlocked Protocol (X3T9.2-856D) (SIP)
8Bh	SCSI-3 Serial Bus Protocol (X3T9.2-992D) (SBP)
8Ch	Fibre Channel Protocol (X3T9.2-993D) (FCP)
8Dh	SCSI-3 Serial Storage Protocol (X3T9.2-XXXX) (SSP)
8Eh	SCSI-3 Parallel Interface (X3T9.2-885D) (SPI)
8Fh	Fibre Channel - PH (X3T9.3-XXX)
90h	High Performance Serial Bus (IEEE 1394)
91h	Serial Storage Architecture - PH (X3T10.1-XXX) (SSA)

The byte assignments within these pages are defined within each
of the standard documents, and the bits interpreted as:

|   7     6     5  |    4    |   3   |    2    |    1     |    0     |
|     RESERVED     | Current | Saved |Changable| Default  | Capable  |

To allow the (optional) selection between options, I propose
modifying the CHANGE DEFINITION command as follows:

                          Table 32 - CHANGE DEFINITION command
 |  Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
 |Byte |        |        |        |        |        |        |        |        |
 | 0   |                           Operation code (40h)                        |
 | 1   | Logical unit number      |              Reserved                      |
 | 2   |                  Reserved                            |  EVPD |  Save  |
 | 3   |Reserved|                  Definition parameter                        |
 | 4   |                           Page Code                                   |
 | 5   |                           Reserved                                    |
 | 6   |                           Reserved                                    |
 | 7   |                           Reserved                                    |
 | 8   |                           Parameter data length                       |
 | 9   |                           Control                                     |

What has been added is an EVPD bit similar to INQUIRY to activate
a paging mechanism.  The page is specified in the Page Code field.
The recommended procedure for changing options is to RESERVE
the unit, perform an INQUIRY of the appropriate page, change the
SAVED and/or CURRENT bits as appropriate, and send back the
page using the CHANGE DEFINITION command.  Note that we may
have to defer activation of the changes until all suitable pages
have been changed (perhaps when the unit is RELEASED).

I believe it is essential for all standards to implement the
INQUIRY changes, and that these changes be made mandatory
for device level implementations.  This will allow a comprehensive
reporting capability throughout the SCSI interconnects.  For the
time being I see the CHANGE DEFINITION command as being mandatory
at the SAM level (all protocols must support this function) but not
being mandatory for implementations of specific standards.

More information about the T10 mailing list