Draft tutorial for IEEE company_id based SCSI identifiers

Bob Snively bob.snively at Eng.Sun.COM
Wed Nov 27 13:10:49 PST 1996


* From the SCSI Reflector (scsi at symbios.com), posted by:
* bob.snively at Eng.Sun.COM (Bob Snively)
*
------------------------------------------------------------------------

Use of the IEEE Registration Authority assigned "company_id" with the 
SCSI-3 Primary Commands, SCSI Enclosure Services commands, and all SCSI 
extensions. 

Bob Snively						Nov 27.1996

------------------------------------------------------------------------

Caution:

The IEEE administers the assignments of 24-bit company_id values.  The
assignments of these values are public, so that a user of an SCSI
defined identifier can identify the manufacturer that provided the value.
The IEEE/RAC has no control over the assignments of the vendor-specified
fields and assumes no liability for assignments of duplicate identifiers.

A company shall use the same IEEE company_id
for all its IEEE Registration Authority based identifiers until the
identifier spaces using that company_id are substantially exhausted.


1.0  Introduction

The IEEE Registration Authority assigned "company_id" is the registration
basis for object identifiers that may be obtained through two
separate SCSI commands.  

In the SCSI-3 Primary Commands (SPC) standard, X3T10 Project 995D, 
Revision 10, the INQUIRY command allows a host device to determine the
world wide identifier of a logical unit or other SCSI object.  
Two of the options defined for this identification are based on 
the IEEE company_id.

In the SCSI-3 Enclosure Services (SES) standard, X3T10 Project 1212D,
Revision 8.0, the RECEIVE DIAGNOSTIC RESULTS configuration diagnostic
page allows a host device to determine the world wide identifier of
an enclosure.

References for the required documents are contained in clause 4 of this
tutorial.

The following paragraphs define how those identifiers are used.

1.1   Glossary

Identified Company:  The company that has purchased and is identified by
	a particular value of the IEEE company_id.

2.0  SCSI access to identifiers

2.1  SPC use of INQUIRY command

By setting the EVPD (enable vital product data) bit in the INQUIRY 
command (see 7.5 of SPC), access to special information pages can be 
performed.  The Page Code field of the INQUIRY command indicates which 
of the information pages are to be accessed.  A Page Code field of
83h requests the device identification page from the device.
The device identification page (see 8.4.3 of SPC) contains a list of one or 
more identification descriptors that identify the peripheral device 
and objects within the peripheral device.  The device identification
page indicates in the code set field for each identifier 
whether it is expressed in ASCII 
text or in binary code values. The association field specifies for
each identifier specifies which type of object is identified, the 
device server or a port to the device server.  The device indicates
for each identifer which of the following identifier formats it uses.


	Identifier type 	Description of identifier format
	  field value
      |__________________|______________________________________|
      |        0         |   No assignment authority is used.   |
      |                  |   The value may not be globally      |
      |                  |   unique.                            |
      |__________________|______________________________________|
      |        1         |   The identifier field is based on   |
      |                  |   the Vendor ID (see SPC, annex C)   |
      |__________________|______________________________________|
      |        2         |   The identifier field contains an   |
      |                  |   IEEE Extended Unique Identifer     |
      |                  |   (EUI-64)                           |
      |__________________|______________________________________|
      |        3         |   The identifier field contains an   |
      |                  |   FC-PH Name_Identifier.  Any FC-PH  |
      |                  |   identifier may be used, including  |
      |                  |   one of the four based on the IEEE  |
      |                  |   company_id.                        |
      |__________________|______________________________________|

The identifier formats using the IEEE company_id as a registration
value are described in clause 3 of this tutorial.

The identifier length field specifies the number of bytes contained in the
selected identifier.

If the identifier for an object is accessed by more than one mechanism, 
the same identifier format and identifier value should be provided through
both mechanisms.  If more than one identifier format or value is used
for the same object, all applicable formats and values shall be presented 
by the SCSI-3 INQUIRY command.  Specific cases are considered below.

The SCSI command set may be transported across a number of interfaces.
When the Fibre Channel interface is used to transport SCSI commands, the
Fibre Channel login process normally provides an identification of the
device server and port using one of the IEEE Fibre Channel formats.  When the
IEEE 1394 interface is used to transport SCSI commands, the IEEE 1394
node identifier normally uses the EUI-64 format to identify the device server.
While more than one device identifier may be defined for a device and
while more than one object may be identified within the device, 
at least one of the identifiers shall be the same value
and format that is used by the transport medium.  For devices attached
using parallel SCSI, which has no identification mechanism at the
transport level, it is recommended that the FC-PH IEEE Registered 
Name be used.

For logical units that are actual physical devices, it is recommended
that the FC-PH IEEE Registered Name be used.  For logical units that are
virtual devices (e.g. RAID virtual volumes), it is recommended that the
FC-PH IEEE Registered Extended name be used.  In this case, the IEEE
company_id and the 36-bit vendor specified identifier (VSID) may
be the same for the RAID controller and for the virtual devices
managed by the controller.  The RAID controller may independently
assign unique values to the vendor specified identifier extension
to identify the individual logical units created under its management.

To guarantee uniqueness, the identifier type and length should be 
considered part of the identifier by SCSI application clients.

2.2  SES use of RECEIVE DIAGNOSTIC RESULTS command.

The SCSI-3 Enclosure Services document uses the RECEIVE DIAGNOSTIC
RESULTS command to obtain configuration and status information related
to various elements in an enclosure, including fans, devices, power supplies,
and other elements.  There are also a limited set of control functions
that can be performed on the various elements using the SEND DIAGNOSTIC
command.  The RECEIVE DIAGNOSTIC RESULTS command obtains the description
of the primary sub-enclosure and any attached sub-enclosures using the
diagnostic page code of 01h, configuration page (see SES, 6.1.1).
The enclosure logical identifier field is an 8-byte field that contains
one of the FC-PH unique world-wide identifier formats to uniquely
identify the sub-enclosure.  One of the three 8-byte FC-PH formats 
based on the IEEE company_id should be used in this field to avoid any 
possibility of accidental duplication of the unique identifier.

The enclosure should be designed in such a manner that the enclosure
world-wide name does not change if the enclosure services processor
must be replaced.

The identifier formats that may be used are described in clause 3 of
this tutorial.

3.0  Identifier formats for use in SCSI devices

The generation of those FC-PH world-wide identifiers based on the
IEEE company_id are also described in the Fibre Channel tutorial.
They are duplicated here for convenience.

The generation of the EUI-64 world-wide identifier is defined in the
64-bit global identifier format tutorial.

All FC-PH and EUI-64 identifiers shall use the binary value code set when 
presented in the INQUIRY command Device Identification page.  All FC-PH
identifiers shall use the binary value in the SES enclosure logical 
identifier field.


3.1  FC-PH IEEE 48-bit identifier format

This format is identified by the Name Address Authority (NAA) code
value of 0001b, as specified in X3.203-1994.

This format may be used with either the SPC INQUIRY command or the
SES RECEIVE DIAGNOSTIC RESULTS command, but is not recommended.

The FC-PH IEEE 48-bit world-wide identifier uses the 48-bit IEEE 802.1
universal LAN MAC address (ULA), which in turn is constructed from the
IEEE company_id.  This value is typically used to uniquely identify
a Fibre Channel node.  The format is shown in the following figure:

|   first byte    |                 |                 |                |
|63             56|55             48|47             40|39            32|
|________|________|________|________|_______|_________|________|_______|
| NAA =  |          Reserved        | ULA Byte 0| 0| 0|   ULA Byte 1   |
|        |                          |                 |                |
|  0001  |  0000  |  0000     0000  |11             04|03    00|35   32|
|________|________|_________________|_________________|________|_______|


|                 |                 |                 |    last byte   |
|31             24|23             16|15             08|07            00|
|________|________|________|________|________|________|________|_______|
|    ULA Byte 2   |    ULA Byte 3   |    ULA Byte 4   |   ULA Byte 5   |                                                       |                 |                 |                 |                |
|31             24|23             16|15             08|07            00|
|_________________|_________________|_________________|________________|


Bit 40 is the Individual/Group ID bit.  The bit shall be zero when
used with the FC-PH IEEE 48-bit address.

Bit 41 is the Universally Administered / Locally Administered Address
bit.  The bit shall be zero when used with the FC-PH IEEE 48-bit address.

ULA Bytes 0, 1, and 2 are generated using the IEEE company_id.  ULA Bytes
3, 4, and 5 represent a unique value provided by the identified company.

3.1.1  Example of IEEE 48-bit identifier format

In this example, the IEEE company_id value used is:

			AC DE 48

which has a binary representation of:

	    1010 1100 1101 1110 0100 1000

this value is combined with a value generated by the identified company 
of 00 00 80 to create a ULA of:

		  AC DE 48 00 00 80

The bit order is not changed for the Fibre Channel identifier as it
would be if transmitting a LAN address on a LAN link.

Using this ULA, the following 64-bit Fibre Channel IEEE 48-bit 
identifier format is created.

		10 00 AC DE   48 00 00 80

which would have a binary representation of:

         0001 0000   0000 0000   1010 1100   1101 1110 
         0100 1000   0000 0000   0000 0000   1000 0000

3.2	IEEE Extended format

This format is identified by the Name Address Authority (NAA) code
value of 0010b, as specified in X3.203-1994.

This format may be used with either the SPC INQUIRY command or the
SES RECEIVE DIAGNOSTIC RESULTS command, but is not recommended.

The IEEE extended format allows the high order 12 bits that
are unused in the IEEE 48-bit format to be used as a
vendor specified field that extends the vendor specified
field contained in the ULA.  The identified company shall 
ensure that the combination of the 12-bit vendor specified field 
and the 3-byte vendor specified portion of the ULA  are unique 
company-wide.  Together with the NAA and IEEE company_id portion of the
ULA,  this guarantees that the  the overall FC-PH IEEE extended 
identifier shall be unique world wide.

The format is shown in the following figure:

|   first byte    |                 |                 |                |
|63             56|55             48|47             40|39            32|
|________|________|________|________|_______|_________|________|_______|
| NAA =  |     Vendor Specified     | ULA Byte 0| 0| 0|   ULA Byte 1   |
|        |                          |                 |                |
|  0010  |        |        |        |11             04|03    00|35   32|
|________|________|________|________|_________________|________|_______|


|                 |                 |                 |    last byte   |
|31             24|23             16|15             08|07            00|
|________|________|________|________|________|________|________|_______|
|    ULA Byte 2   |    ULA Byte 3   |    ULA Byte 4   |   ULA Byte 5   |                                                       |                 |                 |                 |                |
|31             24|23             16|15             08|07            00|
|_________________|_________________|_________________|________________|


Bit 40 is the Individual/Group ID bit.  The bit shall be zero when
used with the FC-PH IEEE 48-bit address.

Bit 41 is the Universally Administered / Locally Administered Address
bit.  The bit shall be zero when used with the FC-PH IEEE 48-bit address.

3.2.1  Example of IEEE extended identifier format

In this example, the IEEE company_id value used is:

			AC DE 48

which has a binary representation of 

	    1010 1100 1101 1110 0100 1000

this value is combined with a value generated by the identified company 
of 00 00 80 to create a ULA of:

		  AC DE 48 00 00 80

The bit order is not changed for the Fibre Channel identifier as it
would be in transmitting a LAN address on a LAN link.

Using this ULA, the following 64-bit Fibre Channel IEEE extended identifier
can be created.  In this example, the vendor specified value selected
by the identified company is B17 hexadecimal, which has a binary 
representation of 1011 0001 0111.  The resulting Fibre Channel IEEE extended 
identifer is:

		2B 17 AC DE   48 00 00 80

which would have a binary representation of:

         0010 1011   0001 0111   1010 1100   1101 1110 
         0100 1000   0000 0000   0000 0000   1000 0000

3.3  IEEE Registered format

This format is identified by the Name Address Authority (NAA) code
value of 0101b, as specified in the proposal dated November 11, 1996
to the X3T11 committee.

This format is recommended for use with both the SPC INQUIRY command and the
SES RECEIVE DIAGNOSTIC RESULTS command.

The IEEE Registered format is based directly on the
IEEE company_id, avoiding the requirement for the manufacturer
to maintain a 48-bit ULA registry. Instead, the manufacturer 
shall maintain a registry of vendor specified identifier values that
guarantees that all identifiers are unique world wide.  The registry
mechanism should guarantee that the identified company uses substantially
all of the identifiers that can be created with a single IEEE company_id 
before a new IEEE company_id is purchased and used. 

When NAA indicates that the format is IEEE registered, the 
identifier shall contain the 24-bit IEEE company_id 
followed by a 36-bit vendor specified identifier (VSID) which 
uniquely indicates a Node, an N_Port, an F_Port, a Fabric, or other  
object.

|   first byte    |                 |                 |                |
|63             56|55             48|47             40|39            32|
|________|________|________|________|________|________|________|_______|
| NAA =  |               IEEE company_id                       |  VSID |
|        |                                                     |       |
|  0101  |23    20|19             12|11             04|03    00|35   32|
|________|________|_________________|_________________|________|_______|


|                 |                 |                 |    last byte   |
|31             24|23             16|15             08|07            00|
|________|________|________|________|________|________|________|_______|
|                   Vendor Specified Identifier                        |
|                                                                      |
|31             24|23             16|15             08|07            00|
|_________________|_________________|_________________|________________|


3.3.1  Example of IEEE registered format

In this example, the IEEE company_id value used is:

			AC DE 48

which has a binary representation of 

	    1010 1100 1101 1110 0100 1000


In this example, the vendor specified value selected by the vendor is:

		 B 17 34 F6 2D

which has a binary representation of 

            1011  0001 0111  0011 0100  1111 0110  0010 1101
	  
The resulting IEEE registered format is:

		5A CD E4 8B 17 34 F6 2D

which would have a binary representation of:

         0101 1010   1100 1101   1110 0100   1000 1011 
         0001 0111   0011 0100   1111 0110   0010 1101

3.4    IEEE registered extended identifier format

This format is identified by the Name Address Authority (NAA) code
value of 0110b, as specified in the proposal dated November 11, 1996
to the X3T11 committee.

This format is recommended for use with the SPC INQUIRY command.
The value typically uses the same value as the IEEE registered format
for a controller, then allows the controller to assign the vendor
specified identifier extension field in a manner designed to guarantee
uniqueness for any logical units that are created by the controller.
The vendor specified identifier extension field may have many unused
values. An example of a device created by a controller is a RAID virtual
volume generated under control of a RAID controller.  The format
shall not be used for the SES RECEIVE DIAGNOSTIC RESULTS command, since
only 64 bits are available for the identifier in that command.

The IEEE Registered Extended format provides a world-wide unique identifier 
typically used to identify any Fibre Channel objects that require
identifiers that are generated by the Fibre Channel node.  This value is 
based directly on the IEEE company_id, avoiding the requirement 
for the manufacturer to maintain a 48-bit ULA registry. Instead, the 
manufacturer shall maintain a registry of vendor specified identifier 
values that guarantees that all identifiers are unique world wide.

When NAA indicates that the format is IEEE registered extended, 
the identifier shall contain the 24-bit IEEE company_id , 
a 36-bit vendor specified identifier (VSID), and a 64-bit vendor specified
identifier extension which uniquely identifies the specified
object.  The identified company should use substantially
all of the identifiers that can be created with a single IEEE company_id 
and the VSID before a new IEEE company_id is purchased and used. The
vendor specified identifier extension may be used sparsely or assigned
by the identified object as long as uniqueness of the full 128-bit 
IEEE registered extended identifier is guaranteed.

The location of the vendor specified identifier extension is 
defined for each type of object.  At present, the only usage 
defined for this format is with the SPC INQUIRY command.


|   first byte    |                 |                 |                |
|127           120|119           112|111           104|103           96|
|________|________|________|________|________|________|________|_______|
| NAA =  |                IEEE company_id                      |  VSID |
|        |                                                     |       |
|  0110  |23    20|19             12|11             04|03    00|35   32|
|________|________|_________________|_________________|________|_______|


|                 |                 |                 |                |
|95             88|87             80|79             72|71            64|
|________|________|________|________|________|________|________|_______|
|                                                                      |
|                   Vendor Specified Identifier                        |
|31             24|23             16|15             08|07            00|
|_________________|_________________|_________________|________________|

Vendor Specified Identifier Extension field

|                 |                 |                 |                |
|63             56|55             48|47             40|39            32|
|________|________|________|________|________|________|________|_______|
|                 Vendor Specified Identifier Extension                |
|                                                                      |
|63             56|55             48|47             40|39            32|
|_________________|_________________|_________________|________________|


|                 |                 |                 |    last byte   |
|31             24|23             16|15             08|07            00|
|________|________|________|________|________|________|________|_______|
|                                                                      |
|                 Vendor Specified Identifier Extension                |
|31             24|23             16|15             08|07            00|
|_________________|_________________|_________________|________________|


3.4.1  Example of IEEE registered extended format

In this example, the IEEE company_id value used is:

			AC DE 48

which has a binary representation of 

	    1010 1100 1101 1110 0100 1000


In this example, the vendor specified value selected by the vendor is:

		 B 17 34 F6 2D

which has a binary representation of 

            1011  0001 0111  0011 0100  1111 0110  0010 1101

The vendor specified identifier extension, which may be selected by
the vendor or assigned uniquely by the object itself, has the
following value in this example:

		12 34 56 78 9A BC DE 31
	  
The resulting IEEE extended registered format is:

		6A CD E4 8B 17 34 F6 2D
                12 34 56 78 9A BC DE 31


which would have a binary representation of:

         0101 1010   1100 1101   1110 0100   1000 1011 
         0001 0111   0011 0100   1111 0110   0010 1101
         0001 0010   0011 0100   0101 0110   0111 1000
         1001 1010   1011 1100   1101 1110   0011 0001

3.5  EUI-64 format

This format is specified by the 64-bit Global Identifier Tutorial.  The
64-bit identifier is a concatenation of the 24-bit IEEE company_id value and
a 40-bit extension identifier (Ext Id) assigned by the organization with that
company_id assignment.

This format is recommended for use with the SPC INQUIRY command when
access to the SCSI command set is made through an IEEE 1394-1995 interface.
It is not recommended for use for enclosure services devices.


|   first byte    |                 |                 |                |
|63             56|55             48|47             40|39            32|
|________|________|________|________|________|________|________|_______|
|                     IEEE company_id                 |     Ext ID     |
|                                                     |
|23             16|15             08|07             00|39            32|
|_________________|_________________|_________________|________________|


|                 |                 |                 |    last byte   |
|31             24|23             16|15             08|07            00|
|________|________|________|________|________|________|________|_______|
|                         Extension Identifier                         |
|                                                                      |
|31             24|23             16|15             08|07            00|
|_________________|_________________|_________________|________________|


3.5.1  Example EUI-64 format

In this example, the IEEE company_id value used is:

			AC DE 48

which has a binary representation of 

	    1010 1100 1101 1110 0100 1000


In this example, the vendor specified value selected by the vendor is:

			23 45 67 AB CDh

which has a binary representation of 

            0010 0011  0100 0101  0110 0111  1010 1011  1100 1101
	  
The resulting IEEE registered format is:

		    AC DE 48 23 45 67 AB CDh

which would have a binary representation of:

         1010 1100   1101 1110   0100 1000   0010 0011 
         0100 0101   0110 0111   1010 1011   1100 1101



4.0  Availability of references

Copies of the following documents can be obtained from ANSI: Approved ANSI 
standards, approved and draft international and regional standards (ISO, IEC, 
CEN/CENELEC, ITUT), and approved and draft foreign standards (including BSI, 
JIS, and DIN). For further information, contact ANSI Customer Service 
Department at 212-642-4900 (phone), 212-302-1286 (fax) or via the World Wide 
Web at http://www.ansi.org.

    ANSI X3.230-1995, Fibre Channel Physical and Signaling Interface (FC-PH)

Copies of these X3T10 draft documents are available for purchase from Global 
Engineering Documents. For further information, contact Global Engineering 
Documents at 800-854-7179 (phone) or 303-792-2181 (phone) or by mail at 15 
Inverness Way East, Englewood, CO 80122-5704 


    ANSI X3.301-199X, SCSI-3 Primary Commands (SPC)

    X3T10/Project 1212-D/Revision 8, SCSI-3 Enclosure Services Commands (SES)

Copies of the following document will be available from the IEEE
web site as final approval by the IEEE-RAC takes place.

    64-bit Global Identifier Format Tutorial
*
* For SCSI Reflector information, send a message with
* 'info scsi' (no quotes) in the message body to majordomo at symbios.com




More information about the T10 mailing list