From: Christoph Hellwig Date: Thu, 30 Jun 2022 06:53:09 +0000 (+0200) Subject: update the Volume Identification section X-Git-Tag: draft-hellwig-nfsv4-scsi-layout-nvme-03~12 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=d272cde2db0b417f75c71a7f3452ef966c284f59;p=users%2Fhch%2Fscsi-layout-nvme.git update the Volume Identification section Be more specific about the identifiers. From David Black, with updates from me to list all the different places to retrieve the identifiers and to avoid the 'NVMe device' term. --- diff --git a/scsi_nvme_back_references.xml b/scsi_nvme_back_references.xml index d6fbea8..3bbfe93 100644 --- a/scsi_nvme_back_references.xml +++ b/scsi_nvme_back_references.xml @@ -126,14 +126,4 @@ - - - - NVM Express: SCSI Translation Reference Revision 1.5 - - NVM Express, Inc. - - - - diff --git a/scsi_nvme_middle.xml b/scsi_nvme_middle.xml index ff861fc..839b8f0 100644 --- a/scsi_nvme_middle.xml +++ b/scsi_nvme_middle.xml @@ -76,20 +76,24 @@ The pNFS SCSI layout uses the Device Identification VPD page (page code 0x83) from to identify the devices used by - a layout. Implementation using NVMe device shall use a mapping from - NVMe identifier to the SPC Device Identification VPD page that is - compatible to that defined in Section 6.1.4 of - . + a layout. Implementations that use NVMe namespaces as storage devices + map NVMe namespace identifiers to a subset of the identifiers + that the Device Identification VPD page supports for SCSI logical + units. To be used as storage devices for the pNFS SCSI layout, NVMe namespaces - MUST support either the EUI64 or NGUID value in the Identify Namespace - data, as the methods based on the Serial Number are not be suitable for - unique addressing needs and thus MUST NOT be used. - If available, the NGUID value SHOULD be used as it is the larger - identifier. - + MUST support either the EUI64 or NGUID value reported in an Namespace + Identification Descriptor, the I/O Command Set Independent Identify + Namespace Data Structure, and the Identify Namespace Data Structure, + NVM Command Set. If available, the NGUID value SHOULD be used as it is + the larger identifier. + + + + Methods based on the Serial Number are not be suitable for unique + addressing needs and thus MUST NOT be used. @@ -99,11 +103,20 @@ The "sbv_code_set" field SHALL be set to PS_CODE_SET_BINARY. The "pnfs_scsi_designator_type" field SHALL be set to PS_DESIGNATOR_EUI64. - The "sbv_designator" field shall contain either the NGUID or EUI64 - fields from the Identify Namespace data. + The "sbv_designator" field SHALL contain either the NGUID or + the EUI64 identifier from NVMe Identify Namespace data. If + both NGUID and EUI64 identifiers are available, then the NGUID + identifier SHOULD be used as it is the larger identifier. + + RFC 8154 specifies the "sbv_designator" field as an XDR variable length + opaque<>. The length of that XDR opaque<> value (part of + its XDR representation) indicates which NVMe identifier is present. + That length MUST be 16 octets for an NVMe NGUID identifier and + MUST be 8 octets for an NVMe EUI64 identifier. All other lengths + MUST NOT be used with NVMe.