ABSTRACT: The Swordfish NVMe Model Overview and Mapping Guide defines the model to manage NVMe and NVMe-oF storage systems with Redfish and Swordfish. It provides the detailed mapping information between the NVMe, NVMe-oF specifications and the Redfish and Swordfish specifications.
Publication of this Working Draft for review and comment has been approved by the Scalable Storage Management Technical Work Group. This draft represents a ‘best effort’ attempt by the Scalable Storage Management Technical Work Group to reach preliminary consensus, and it may be updated, replaced, or made obsolete at any time. This document should not be used as reference material or cited as other than a ‘work in progress.’ Suggestions for revision should be directed to http://www.snia.org/feedback.
This document has been released and approved by SNIA. The SNIA believes that the ideas, methodologies, and technologies described in this document accurately represent SNIA goals and are appropriate for widespread distribution. Suggestion for revision should be directed to http://www.snia.org/feedback/.
Copyright (c) 2016 - 2024 Storage Networking Industry Association. All rights reserved. All other trademarks or registered trademarks are the property of their respective owners.
Storage Networking Industry Association (SNIA) hereby grants permission for individuals to use this document for personal use only, and for corporations and other business entities to use this document for internal use only (including internal copying, distribution, and display) provided that:
Any text, diagram, chart, table or definition reproduced must be reproduced in its entirety with no alteration, and,
Any document, printed or electronic, in which material from this document (or any portion hereof) is reproduced must acknowledge SNIA copyright on that material, and must credit SNIA for granting permission for its reuse.
Other than as explicitly provided above, you may not make any commercial use of this document, or any portion thereof, or distribute this document to third parties. All rights not explicitly granted are expressly reserved to SNIA.
Permission to use this document for purposes other than those enumerated above may be requested by emailing tcmd@snia.org. Please include the identity of the requesting individual and/or company and a brief description of the purpose, nature, and scope of the requested use.
All code fragments, scripts, data tables, and sample code in this SNIA document are made available under the following license:
BSD 3-Clause Software License
Copyright (c) 2024, Storage Networking Industry Association.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
Neither the name of Storage Networking Industry Association nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
The information contained in this publication is subject to change without notice. SNIA makes no warranty of any kind with regard to this publication, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose. The SNIA shall not be liable for errors contained herein or for incidental or consequential damages in connection with the furnishing, performance, or use.
Suggestions for revisions should be directed to http://www.snia.org/feedback/.
SNIA is actively engaged in expanding and refining the Swordfish
documentation. The most current revision can be found on the SNIA web site at
https://www.snia.org/tech_activities/standards/curr_standards/swordfish.
Current SNIA practice is to make updates and other information available through their web site at http://www.snia.org.
Requests for interpretation, suggestions for improvement and addenda, or defect reports are welcome. They should be sent via the SNIA Feedback Portal at http://www.snia.org/feedback/ or by mail to SNIA, 5201 Great America Parkway, Suite 320, Santa Clara, CA 95054, USA.
This document is intended for use by individuals and companies engaged in storage management.
This document is versioned material. Versioned material shall have a three-level revision identifier, comprised of a version number ‘v’, a release number ‘r’ and an errata number ‘e’. Future publications of this document are subject to specific constraints on the scope of change that is permissible from one revision to the next and the degree of interoperability and backward compatibility that should be assumed between products designed to this standard. This versioning policy applies to all SNIA Swordfish versioned materials.
Version Number: Versioned material having version number ‘v’ shall be backwards compatible with all of revisions of that material that have the same version number ‘v’. There is no assurance of interoperability or backward compatibility between revisions of a versioned material with different version numbers.
Release Number: Versioned material with a version number ‘v’ and release number ‘r’ shall be backwards compatible with previous revisions of the material with the same version number, and a lower release number. A minor revision represents a technical change to existing content or an adjustment to the scope of the versioned material. Each minor revision causes the release number to be increased by one.
Errata Number: Versioned material having version number ‘v’, a release number ‘r’, and an errata number ‘e’ should be backwards compatible with previous revisions of the material with the same version number and release number (“errata versions”). An errata revision of versioned material is limited to minor corrections or clarifications of existing versioned material. An errata revision may be backwards incompatible, if the incompatibility is necessary for correct operation of implementations of the versioned material.
Revisions to this document are summarized in Table 293.
Date | Rev | Notes |
---|---|---|
18 August 2020 | 1.2.1 | Initial Release |
31 October 2020 | 1.2.1c | Released as SNIA Approved Publication |
2 March 2021 | 1.2.2 | Added detailed mapping information to match information in NVMe drive profiles for many new referenced properties, and included guidance for mandatory/recommended implementation as reflected in the profiles. |
Added sections for firmware update, with details for NVMe Drive implementation requirements. | ||
Added cross-references to User’s Guide NVMe-specific use cases. | ||
Errata fixes – correct diagram, correct table headers. | ||
30 August 2021 | 1.2.3 | Update Mapping Guide with new mapping guidance, corresponding to the Swordfish NVMe Front End profile. |
5 December 2021 | 1.2.3 | Release as SNIA Approved Publication |
12 April 2022 | 1.2.4 | Release as SNIA Working Draft. Errata fixes throughout. Added section for EBOF configuration, and additions to appendix A to correspond to EBOF, JBOF, and NVMe-oF configurations. |
12 July 2022 | 1.2.4a | Release as SNIA Standard. |
16 March 2023 | 1.2.5 | Updated all references from NVMe 1.4 Specification to the NVM Express Base Specification 2.0c throughout. Update references to figures in NVMe 2.0 Base Specification as well as the NVM Express NVM Command Set Specification 1.0c, NVMe over PCIe Transport Specification 1.0c, and NVMe-MI 1.2c Specification. |
Document usage of SecuritySend and SecurityReceive Actions on StorageController | ||
Define usage for Links.Controllers in Namespace (volume) | ||
Errata Fixes: | ||
&nbps; Clarify references to CapacitySource collection vs instance | ||
Standardize nomenclature for Mandatory instances throughout | ||
20 June 2023 | 1.2.5a | Release as SNIA Standard |
22 January 2024 | 1.2.6 | Release as Working Draft |
Updated cross-references. | ||
Copyrights updated to 2024. | ||
Updates to SNIA Front Matter. | ||
Updated Contributing members. | ||
Added NVMeDomains Object, and updated corresponding mockups. | ||
Added missing reference to Drives and EBOFs in HTML version of document. | ||
Updated NVMeNamespaceProperties to new guidance for LBAFormats representation (in both mockups and mapping properties). Removed/deprecated NVMeNamespaceProperties.NumberLBAFormats. | ||
Added new section Namespace Capabilities. | ||
Errata fixes - corrected references to PredictedMediaLifetLeftPercent and NVMeoFDiscoverySubsystems properties. | ||
9 April 2024 | 1.2.6 | Release as SNIA Standard |
Errata fix - include missing NVMeDomainds section in doc from build error. | ||
21 May 2024 | 1.2.7 | Release as Working Draft |
- Added ConfigurationLock ,
TargetConfigurationLockLevel , and |
||
ConfigurationLockState definitions,
mappings, and guidance. |
||
- Added Domain and Implicit Domain examples and guidance. | ||
- Added NVMeDomains Object, and updated corresponding mockups. | ||
- Added guidance for StoragePools in Subsystem | ||
- Added new NVMeSubsystemProperties for Namespace Management: | ||
MaxNamespacesSupported and |
||
SharedNamespaceControllerAttachmentSupported |
||
- Add updated mapping guidance for
DisplayName to use Namespace Admin Label |
||
- Errata Fixes: | ||
- corrected references to PredictedMediaLifetLeftPercent and | ||
NVMeoFDiscoverySubsystems properties. | ||
1.2.7 | 8/13/24 | Release as SNIA Publication |
NVMe Mapping Guide: | ||
- Updated ConfigurationLock ,
TargetConfigurationLockLevel , and |
||
ConfigurationLockState definitions,
mappings, and guidance. |
SNIA is a not-for-profit global organization made up of corporations, universities, startups, and individuals. The members collaborate to develop and promote vendor-neutral architectures, standards, and education for management, movement, and security for technologies related to handling and optimizing data. SNIA focuses on the transport, storage, acceleration, format, protection, and optimization of infrastructure for data. Learn more at www.snia.org.
The SNIA Scalable Storage Management Technical Work Group, which developed and reviewed this work in progress, would like to recognize the significant contributions made by the members listed in Table 294.
Member | Representatives (* – prior employer) |
---|---|
Broadcom Inc. | Richelle Ahlvers* |
Celestica | Krishnakumar Gowravaram |
Cisco Systems, Inc. | Krishnakumar Gowravaram* |
Code Construct | Jeremy Kerr |
Dell Inc. | David Black |
Jim Pendergraft | |
Michael Raineri | |
Hewlett Packard Enterprise | Curtis Ballard |
Jeff Hilland | |
Chris Lionetti | |
Intel Corporation | Richelle Ahlvers |
Rajalaxmi Angadi | |
Phil Cayton | |
Slawek Putyrski | |
Kioxia | Mark Carlson |
Lenovo | Keith Campbell |
NetApp, Inc. | Don Deel |
Fred Knight | |
Samsung Corporation | Lu Fan |
Bill Martin | |
Tom Rainey | |
VMware, Inc. | Murali Rajagopal |
1. Abstract
2. Scope
2.1. Document Goals
2.2. Audience Assumptions
3. Normative References
3.1. Overview
3.2. Approved references
3.3. References under
development
3.4. Other references
4. NVMe Model Overview
4.1. Introduction
4.1.1. Fundamental Model Design
Assertions
4.2. Overall NVMe Subsystem Model
4.2.1. Major NVM Objects Mapped to
RF/SF
4.2.1.1. NVM Subsystem
4.2.1.2. NVM Controller (IO, Admin
and Discovery)
4.2.1.3. Namespace
4.2.1.4. Endurance Group
4.2.1.5. NVM Set
4.2.1.6. NVM Domain
4.2.2. Unmapped objects
4.2.3. NVM Subsystem Model
4.2.4. NVMe-oF Subsystem Model
5. Example Instances
5.1. Introduction
5.2. Simple SSD
5.2.1. Overview
5.2.2. Explanation of Object use
5.2.3. Redfish / Swordfish
Object Representation
5.2.4. Mockup
5.3. Complex SSD
5.3.1. Overview
5.3.2. Explanation of Object use
5.3.3. Redfish / Swordfish
Object Representation
5.3.3.1. Mockup
5.4. Simple SSD with IP (NVMe-oF)
Attach
5.4.1. Overview
5.4.2. Explanation of Object use
5.4.3. Redfish / Swordfish
Object Representation
5.4.4. Mockup
5.5. JBOF
5.5.1. Overview
5.5.2. Explanation of Object use
5.5.3. Redfish / Swordfish
Object Representation
5.5.4. Mockup
5.6. EBOF
5.6.1. Overview
5.6.2. Explanation of Object use
5.6.3. Redfish / Swordfish
Object Representation
5.6.4. Mockup
5.7. Opaque Array / NVMe Front End
Device
5.7.1. Overview
5.7.2. Explanation of Object use
5.7.3. Redfish / Swordfish
Object Representation
5.7.4. Mockup
5.8. Subsystem
(Fabric) Model - NVMe-oF: Fabric Attach Subsystem
5.8.1. Overview
5.8.2. Explanation of Object use
5.8.3. Redfish / Swordfish
Object Representation
5.8.4. Mockup
5.9. NVMe Domain Model
5.9.1. Overview
5.9.2. Explanation of Object use
5.9.2.1. Implicit or Default
Domains
5.9.3. Redfish / Swordfish
Object Representation
5.9.4. Mockup
6. Property Mapping
6.1. Introduction
6.2. Property Mapping Template
6.3. NVM subsystem
6.3.1. Mockup
6.3.2. Property Mapping
6.3.2.1. Actions.#StorageController.SetEncryptionKey
6.3.2.2. ConfigurationLock
6.3.2.3. Controllers
6.3.2.4. Description
6.3.2.5. Drives
6.3.2.6. Identifiers
6.3.2.7. Identifiers.DurableNameFormat
6.3.2.8. Identifiers.DurableName
6.3.2.9. Links.Enclosures
6.3.2.10. Links.Enclosures@odata.count
6.3.2.11. Links.HostingStorageSystems
6.3.2.12. Links.NVMeoFDiscoverySubsystems
6.3.2.13. Links.SimpleStorage
6.3.2.14. NVMeSubsystemProperties.NVMeConfigurationLockState
6.3.2.15. NVMeSubsystemProperties.NVMeConfigurationLockState.FirmwareCommit
6.3.2.16. NVMeSubsystemProperties.NVMeConfigurationLockState.FirmwareImageDownload
6.3.2.17. NVMeSubsystemProperties.NVMeConfigurationLockState.Lockdown
6.3.2.18. NVMeSubsystemProperties.NVMeConfigurationLockState.SecuritySend
6.3.2.19. NVMeSubsystemProperties.NVMeConfigurationLockState.VPDWrite
6.3.2.20. NVMeSubsystemProperties.MaxNamespacesSupported
6.3.2.21. NVMeSubsystemProperties.SharedNamespaceControllerAttachmentSupported
6.3.2.22. Name
6.3.2.23. Status.State
6.3.2.24. Status.Health
6.3.2.25. Status.HealthRollup
6.3.2.26. StorageControllers
6.3.2.27. StorageGroups
6.3.2.28. StoragePools
6.3.2.29. TargetConfigurationLockLevel
6.3.2.30. Volumes
6.4. NVM Controllers
6.4.1. Admin Controller
6.4.1.1. Mockup
6.4.1.2. Property Mapping
6.4.1.2.1. Actions.#StorageController.RunSelfTest
6.4.1.2.2. Assembly
6.4.1.2.3. AssetTag
6.4.1.2.4. CacheSummary
6.4.1.2.5. ControllerRates
6.4.1.2.6. Description
6.4.1.2.7. FirmwareVersion
6.4.1.2.8. Identifiers
6.4.1.2.9. Identifiers.DurableName
6.4.1.2.10. Identifiers.DurableNameFormat
6.4.1.2.11. Links.AttachedVolumes
6.4.1.2.12. Links.NetworkDeviceFunctions
6.4.1.2.13. Location
6.4.1.2.14. Manufacturer
6.4.1.2.15. Model
6.4.1.2.16. Name
6.4.1.2.17. NVMeControllerProperties.ControllerType
6.4.1.2.18. NVMeControllerProperties.NVMeVersion
6.4.1.2.19. NVMeControllerProperties.NVMeControllerAttributes.ReportsNamespaceGranularity
6.4.1.2.20. NVMeControllerProperties.NVMeControllerAttributes.SupportsSQAssociations
6.4.1.2.21. NVMeControllerProperties.NVMeControllerAttributes.SupportsTrafficBasedKeepAlive
6.4.1.2.22. NVMeControllerProperties.NVMeControllerAttributes.SupportsExceedingPowerOfNonOperationalState
6.4.1.2.23. NVMeControllerProperties.NVMeControllerAttributes.Supports128BitHostId
6.4.1.2.24. NVMeControllerProperties.MaxQueueSize
6.4.1.2.25. NVMeControllerProperties.ANACharacteristics
6.4.1.2.26. NVMeControllerProperties.NVMeSMARTCriticalWarnings.OverallSystemDegraded
6.4.1.2.27. NVMeControllerProperties.NVMeSMARTCriticalWarnings.PowerBackupFailed
6.4.1.2.28. SKU
6.4.1.2.29. SpeedGbps
6.4.1.2.30. Status.Health
6.4.1.2.31. Status.State
6.4.1.2.32. SupportedControllerProtocols
6.4.1.2.33. SupportedDeviceProtocols
6.4.2. Discovery Controller
6.4.2.1. Mockup
6.4.2.2. Property Mapping
6.4.2.2.1. Assembly
6.4.2.2.2. AssetTag
6.4.2.2.3. CacheSummary
6.4.2.2.4. ControllerRates
6.4.2.2.5. Description
6.4.2.2.6. FirmwareVersion
6.4.2.2.7. Identifiers
6.4.2.2.8. Identifiers.DurableName
6.4.2.2.9. Identifiers.DurableNameFormat
6.4.2.2.10. Links.AttachedVolumes
6.4.2.2.11. Links.Endpoints
6.4.2.2.12. Links.Connections
6.4.2.2.13. Links.NetworkDeviceFunctions
6.4.2.2.14. Links.NVMeDiscoveredSubsystems
6.4.2.2.15. Location
6.4.2.2.16. Manufacturer
6.4.2.2.17. Model
6.4.2.2.18. Name
6.4.2.2.19. NVMeControllerProperties.ControllerType
6.4.2.2.20. NVMeControllerProperties.NVMeVersion
6.4.2.2.21. NVMeControllerProperties.NVMeControllerAttributes.SupportsTrafficBasedKeepAlive
6.4.2.2.22. NVMeControllerProperties.NVMeControllerAttributes.SupportsExceedingPowerOfNonOperationalState
6.4.2.2.23. NVMeControllerProperties.NVMeControllerAttributes.Supports128BitHostId
6.4.2.2.24. NVMeControllerProperties.MaxQueueSize
6.4.2.2.25. NVMeControllerProperties.NVMeSMARTCriticalWarnings.OverallSubsystemDegraded
6.4.2.2.26. NVMeControllerProperties.NVMeSMARTCriticalWarnings.SpareCapacityWornOut
6.4.2.2.27. NVMeControllerProperties.NVMeSMARTCriticalWarnings.PowerBackupFailed
6.4.2.2.28. Status.Health
6.4.2.2.29. Status.State
6.4.2.2.30. SupportedControllerProtocols
6.4.2.2.31. SupportedDeviceProtocols
6.4.3. IO Controller
6.4.3.1. Mockup
6.4.3.2. Property Mapping
6.4.3.2.1. Actions.#StorageController.RunSelfTest
6.4.3.2.2. AssetTag
6.4.3.2.3. CacheSummary
6.4.3.2.4. ControllerRates
6.4.3.2.5. Description
6.4.3.2.6. FirmwareVersion
6.4.3.2.7. Identifiers
6.4.3.2.8. Identifiers.DurableName
6.4.3.2.9. Identifiers.DurableNameFormat
6.4.3.2.10. Links.AttachedVolumes
6.4.3.2.11. Links.Endpoints
6.4.3.2.12. Links.Connections
6.4.3.2.13. Links.NetworkDeviceFunctions
6.4.3.2.14. Location
6.4.3.2.15. Manufacturer
6.4.3.2.16. Model
6.4.3.2.17. Name
6.4.3.2.18. NVMeControllerProperties.ControllerType
6.4.3.2.19. NVMeControllerProperties.NVMeVersion
6.4.3.2.20. NVMeControllerProperties.NVMeControllerAttributes.ReportsUUIDList
6.4.3.2.21. NVMeControllerProperties.NVMeControllerAttributes.SupportsSQAssociations
6.4.3.2.22. NVMeControllerProperties.NVMeControllerAttributes.ReportsNamespaceGranularity
6.4.3.2.23. NVMeControllerProperties.NVMeControllerAttributes.SupportsReservations
6.4.3.2.24. NVMeControllerProperties.NVMeControllerAttributes.SupportsTrafficBasedKeepAlive
6.4.3.2.25. NVMeControllerProperties.NVMeControllerAttributes.SupportsPredictableLatencyMode
6.4.3.2.26. NVMeControllerProperties.NVMeControllerAttributes.SupportsEnduranceGroups
6.4.3.2.27. NVMeControllerProperties.NVMeControllerAttributes.SupportsReadRecoveryLevels
6.4.3.2.28. NVMeControllerProperties.NVMeControllerAttributes.SupportsNVMSets
6.4.3.2.29. NVMeControllerProperties.NVMeControllerAttributes.SupportsExceedingPowerOfNonOperationalState
6.4.3.2.30. NVMeControllerProperties.NVMeControllerAttributes.Supports128BitHostId
6.4.3.2.31. NVMeControllerProperties.MaxQueueSize
6.4.3.2.32. NVMeControllerProperties.ANACharacteristics
6.4.3.2.33. NVMeControllerProperties.ANACharacteristics.AccessState
6.4.3.2.34. NVMeControllerProperties.ANACharacteristics.Volume
6.4.3.2.35. NVMeControllerProperties.NVMeSMARTCriticalWarnings.PRMUnreliable
6.4.3.2.36. NVMeControllerProperties.NVMeSMARTCriticalWarnings.PowerBackupFailed
6.4.3.2.37. NVMeControllerProperties.NVMeSMARTCriticalWarnings.MediaInReadOnly
6.4.3.2.38. NVMeControllerProperties.NVMeSMARTCriticalWarnings.OverallSystemDegraded
6.4.3.2.39. NVMeControllerProperties.NVMeSMARTCriticalWarnings.SpareCapacityWornOut
6.4.3.2.40. PCIeInterface.PCIeType
6.4.3.2.41. PCIeInterface.MaxPCIeType
6.4.3.2.42. PCIeInterface.LanesInUse
6.4.3.2.43. PCIeInterface.MaxLanes
6.4.3.2.44. Ports
6.4.3.2.45. SKU
6.4.3.2.46. SpeedGbps
6.4.3.2.47. Status.State
6.4.3.2.48. Status.Health
6.4.3.2.49. SupportedControllerProtocols
6.4.3.2.50. SupportedDeviceProtocols
6.5. Namespace
6.5.1. Mockup
6.5.2. Property Mapping
6.5.2.1. ALUA
6.5.2.2. ALUA.ANAGroupID
6.5.2.3. BlockSizeBytes
6.5.2.4. Capacity.Data.ConsumedBytes
6.5.2.5. Capacity.Data.ProvisionedBytes
6.5.2.6. Capacity.Data.AllocatedBytes
6.5.2.7. Capacity.Metadata
6.5.2.8. CapacitySources
6.5.2.9. Description
6.5.2.10. DisplayName
6.5.2.11. Identifiers
6.5.2.12. Identifiers.DurableName
6.5.2.13. Identifiers.DurableNameFormat
6.5.2.14. InitializeMethod
6.5.2.15. Links.Controllers
6.5.2.16. Links.Drives
6.5.2.17. LogicalUnitNumber
6.5.2.18. MaxBlockSizeBytes
6.5.2.19. Name
6.5.2.20. NVMeNamespaceProperties.NamespaceId
6.5.2.21. NVMeNamespaceProperties.IsBootCapable
6.5.2.22. NVMeNamespaceProperties.IsShareable
6.5.2.23. NVMeNamespaceProperties.NamespaceFeatures.SupportsThinProvisioning
6.5.2.24. NVMeNamespaceProperties.NamespaceFeatures.SupportsDeallocatedOrUnwrittenLBError
6.5.2.25. NVMeNamespaceProperties.NamespaceFeatures.SupportsNGUIDReuse
6.5.2.26. NVMeNamespaceProperties.NamespaceFeatures.SupportsAtomicTransactionSize
6.5.2.27. NVMeNamespaceProperties.NamespaceFeatures.SupportsIOPerformanceHints
6.5.2.28. NVMeNamespaceProperties.LBAFormat.LBAFormatType
6.5.2.29. NVMeNamespaceProperties.LBAFormat.RelativePerformance
6.5.2.30. NVMeNamespaceProperties.LBAFormat.LBADataSizeBytes
6.5.2.31. NVMeNamespaceProperties.LBAFormat.LBAMetaDataSizeBytes
6.5.2.32.
6.5.2.33. NVMeNamespaceProperties.MetadataTransferredAtEndOfDataLBA
6.5.2.34. NVMeNamespaceProperties.NVMeVersion
6.5.2.35. OptimumIOSizeBytes
6.5.2.36. ProvisioningPolicy
6.5.2.37. Status.State
6.5.2.38. Status.Health
6.5.2.39. Status.HealthRollup
6.5.2.40. StorageGroups
6.5.2.41. WriteCachePolicy
6.6. Endurance Group
6.6.1. Mockup
6.6.2. Property Mapping
6.6.2.1. AllocatedPools
6.6.2.2. Capacity.Data.AllocatedBytes
6.6.2.3. Capacity.Data.ConsumedBytes
6.6.2.4. CapacitySources
6.6.2.5. CapacitySources@odata.count
6.6.2.6. Description
6.6.2.7. Links.OwningStorageResource
6.6.2.8. Name
6.6.2.9. NVMeProperties.NVMePoolType
6.6.2.10. NVMeEnduranceGroupProperties.PredictedMediaLifeLeftPercent
6.6.2.11. NVMeEnduranceGroupProperties.EndGrpLifetime.PercentUsed
6.6.2.12. NVMeEnduranceGroupProperties.EndGrpLifetime.EnduranceEstimate
6.6.2.13. NVMeEnduranceGroupProperties.EndGrpLifetime.DataUnitsRead
6.6.2.14. NVMeEnduranceGroupProperties.EndGrpLifetime.DataUnitsWritten
6.6.2.15. NVMeEnduranceGroupProperties.EndGrpLifetime.MediaUnitsWritten
6.6.2.16. NVMeEnduranceGroupProperties.EndGrpLifetime.HostReadCommandCount
6.6.2.17. NVMeEnduranceGroupProperties.EndGrpLifetime.HostWriteCommandCount
6.6.2.18. NVMeEnduranceGroupProperties.EndGrpLifetime.MediaAndDataIntegrityErrorCount
6.6.2.19. NVMeEnduranceGroupProperties.EndGrpLifetime.ErrorInformationLogEntryCount
6.6.2.20. NVMeSetProperties.SetIdentifier
6.6.2.21. NVMeSetProperties.OptimalWriteSizeBytes
6.6.2.22. NVMeSetProperties.EnduranceGroupIdentifier
6.6.2.23. NVMeSetProperties.Random4kReadTypicalNanoSeconds
6.6.2.24. Status.Health
6.6.2.25. Status.State
6.7. NVM Set
6.7.1. Mockup
6.7.2. Property Mapping
6.7.2.1. AllocatedVolumes
6.7.2.2. Capacity.Data.AllocatedBytes
6.7.2.3. Capacity.Data.ConsumedBytes
6.7.2.4. CapacitySources
6.7.2.5. CapacitySources@odata.count
6.7.2.6. Description
6.7.2.7. Links.OwningStorageResource
6.7.2.8. Name
6.7.2.9. NVMeProperties.NVMePoolType
6.7.2.10. NVMeEnduranceGroupProperties.PredictedMediaLifeLeftPercent
6.7.2.11. NVMeEnduranceGroupProperties.EndGrpLifetime.PercentUsed
6.7.2.12. NVMeEnduranceGroupProperties.EndGrpLifetime.EnduranceEstimate
6.7.2.13. NVMeEnduranceGroupProperties.EndGrpLifetime.DataUnitsRead
6.7.2.14. NVMeEnduranceGroupProperties.EndGrpLifetime.DataUnitsWritten
6.7.2.15. NVMeEnduranceGroupProperties.EndGrpLifetime.MediaUnitsWritten
6.7.2.16. NVMeEnduranceGroupProperties.EndGrpLifetime.HostReadCommandCount
6.7.2.17. NVMeEnduranceGroupProperties.EndGrpLifetime.HostWriteCommandCount
6.7.2.18. NVMeEnduranceGroupProperties.EndGrpLifetime.MediaAndDataIntegrityErrorCount
6.7.2.19. NVMeEnduranceGroupProperties.EndGrpLifetime.ErrorInformationLogEntryCount
6.7.2.20. NVMeSetProperties.SetIdentifier
6.7.2.21. NVMeSetProperties.OptimalWriteSizeBytes
6.7.2.22. NVMeSetProperties.EnduranceGroupIdentifier
6.7.2.23. NVMeSetProperties.Random4kReadTypicalNanoSeconds
6.7.2.24. NVMeSetProperties.UnallocatedNVMNamespaceCapacityBytes
6.7.2.25. Status.State
6.7.2.26. Status.Health
6.8. Drive
6.8.1. Mockup
6.8.2. Property Mapping
6.8.2.1. Actions.#Drive.Reset
6.8.2.2. Actions.#Drive.SecureErase
6.8.2.3. Assembly.BinaryDataURI
6.8.2.4. BlockSizeBytes
6.8.2.5. CapableSpeedGpbs
6.8.2.6. CapacityBytes
6.8.2.7. ConfigurationLock
6.8.2.8. Description
6.8.2.9. EncryptionAbility
6.8.2.10. EncryptionStatus
6.8.2.11. FailurePredicted
6.8.2.12. Identifiers
6.8.2.13. Identifiers.DurableNameFormat
6.8.2.14. Identifiers.DurableName
6.8.2.15. IndicatorLED
6.8.2.16. Links.Volumes
6.8.2.17. Links.Volumes@odata.count
6.8.2.18. Location
6.8.2.19. LocationIndicatorActive
6.8.2.20. Manufacturer
6.8.2.21. MediaType
6.8.2.22. Metrics
6.8.2.23. Model
6.8.2.24. Multipath
6.8.2.25. Name
6.8.2.26. NegotiatedSpeedGbps
6.8.2.27. NVMe.NVMeConfigurationLockState
6.8.2.28. NVMe.NVMeConfigurationLockState.FirmwareCommit
6.8.2.29. NVMe.NVMeConfigurationLockState.FirmwareImageDownload
6.8.2.30. NVMe.NVMeConfigurationLockState.Lockdown
6.8.2.31. NVMe.NVMeConfigurationLockState.SecuritySend
6.8.2.32. NVMe.NVMeConfigurationLockState.VPDWrite
6.8.2.33. PhysicalLocation.Info
6.8.2.34. PhysicalLocation.InfoFormat
6.8.2.35. PhysicalLocation.PartLocation
6.8.2.36. PredictedMediaLifetLeftPercent
6.8.2.37. Protocol
6.8.2.38. Revision
6.8.2.39. RotationSpeedRPM
6.8.2.40. SKU
6.8.2.41. SerialNumber
6.8.2.42. Status.State
6.8.2.43. Status.Health
6.8.2.44. StatusIndicator
6.8.2.45. TargetConfigurationLockLevel
6.8.2.46. WriteCacheEnabled
6.8.3. NVMe Domains
6.8.3.1. Overview
6.8.3.2. Explanation of Object use
6.8.4. Mockup
6.8.5. Property Mapping
6.8.5.1. ANAGroupID
6.8.5.2. FirmwareImages
6.8.5.3. TotalDomainCapacityBytes
6.8.5.4. UnallocatedDomainCapacityBytes
6.8.5.5. MaximumCapacityPerEnduranceGroupBytes
6.8.5.6. MaxNamespacesSupportedPerController
6.9. Drive
6.9.1. Mockup
6.9.2. Property Mapping
6.9.2.1. Actions.#Drive.Reset
6.9.2.2. Actions.#Drive.SecureErase
6.9.2.3. Assembly.BinaryDataURI
6.9.2.4. BlockSizeBytes
6.9.2.5. CapableSpeedGpbs
6.9.2.6. CapacityBytes
6.9.2.7. ConfigurationLock
6.9.2.8. Description
6.9.2.9. EncryptionAbility
6.9.2.10. EncryptionStatus
6.9.2.11. FailurePredicted
6.9.2.12. Identifiers
6.9.2.13. Identifiers.DurableNameFormat
6.9.2.14. Identifiers.DurableName
6.9.2.15. IndicatorLED
6.9.2.16. Links.Volumes
6.9.2.17. Links.Volumes@odata.count
6.9.2.18. Location
6.9.2.19. LocationIndicatorActive
6.9.2.20. Manufacturer
6.9.2.21. MediaType
6.9.2.22. Metrics
6.9.2.23. Model
6.9.2.24. Multipath
6.9.2.25. Name
6.9.2.26. NegotiatedSpeedGbps
6.9.2.27. NVMe.NVMeConfigurationLockState
6.9.2.28. NVMe.NVMeConfigurationLockState.FirmwareCommit
6.9.2.29. NVMe.NVMeConfigurationLockState.FirmwareImageDownload
6.9.2.30. NVMe.NVMeConfigurationLockState.Lockdown
6.9.2.31. NVMe.NVMeConfigurationLockState.SecuritySend
6.9.2.32. NVMe.NVMeConfigurationLockState.VPDWrite
6.9.2.33. PhysicalLocation.Info
6.9.2.34. PhysicalLocation.InfoFormat
6.9.2.35. PhysicalLocation.PartLocation
6.9.2.36. PredictedMediaLifetLeftPercent
6.9.2.37. Protocol
6.9.2.38. Revision
6.9.2.39. RotationSpeedRPM
6.9.2.40. SKU
6.9.2.41. SerialNumber
6.9.2.42. Status.State
6.9.2.43. Status.Health
6.9.2.44. StatusIndicator
6.9.2.45. TargetConfigurationLockLevel
6.9.2.46. WriteCacheEnabled
7. Other Feature Mapping
7.1. Introduction
7.2. Firmware Update
7.2.1. Firmware update for NVMe
Drives
7.2.1.1. Mapping Images to NVMe
Capabilities
7.3. Security Management
Protocols
7.4. Reporting
Redfish/Swordfish Service URI to NVMe Subsystem
7.4.1. Implementation Guidance
7.4.2. Background
7.5. Mapping
NVMe Command and Feature Lockdown to “ConfigurationLocked”
7.5.1. NVMe Lockdown Command
7.5.2. ConfigurationLock,
TargetConfigurationLockLevel, and ConfigurationLockState
7.5.2.1. ConfigurationLock
7.5.2.2. TargetConfigurationLockLevel
7.5.2.3. ConfigurationLockState
7.5.3. Lockdown State Management
7.5.3.1. Expected Behavior from
ConfigurationLock
7.5.4. Implementing
ConfigurationLock in Storage and Drive Resources
8. Appendix A:
Objects without a direct mapping to the NVMe model {-}
8.1. A.1: Overview {-}
8.2. A.2: Related Use Cases {-}
9. Annex B: Bibliography {-}
9.1. B.1 Overview {-}
9.2. B.2 Informational references
{-}
The Swordfish NVMe Model Overview and Mapping Guide defines the model to manage NVMe and NVMe-oF storage systems with Redfish and Swordfish. It provides the detailed mapping information between the NVMe, NVMe-oF specifications and the Redfish and Swordfish specifications.
This document describes how both the NVMe Subsystem model and the NVMe-oF fabric system model should be mapped consistently to Redfish and Swordfish constructs for implementations to be managed within Redfish and Swordfish management environments.
This model and mapping information does not describe or assert any specific implementation recommendation technologies.
This document also provides the mapping information for properties recommended to be implemented in Redfish/Swordfish for NVMe and NVMe-oF devices and the corresponding reference information from the NVMe and NVMe-oF specifications.
This document assumes that the reader of this document is familiar with NVMe and NVMe-oF technologies and concepts. It also assumes the reader has knowledge of the Redfish and Swordfish concepts.
The documents listed in Table 295 are indispensable for the application of this document. For dated references, only the edition cited applies. For undated references, the latest edition of the referenced document (including any amendments) applies.
Table 295: Approved normative references
Tag | Title (Version) | Author | URL |
---|---|---|---|
ISO-8601 | Data elements and interchange formats – Information interchange – Representation of dates and times – Part 1: Basic rules | ISO / IEC | http://www.iso.org/iso/home/store/catalogue_ics/catalogue_detail_ics.htm?csnumber=70907 |
ISO-Direct | ISO/IEC Directives, Part 2 Principles and rules for the structure and drafting of ISO and IEC documents (Eigth Edition, 2018) | ISO / IEC | https://www.iso.org/sites/directives/current/part2/index.xhtml |
Redfish | Redfish Scalable Platforms Management API Specification (v1.11.0) | DMTF | http://www.dmtf.org/sites/default/files/standards/documents/DSP0266_1.4.0.pdf |
Swordfish | Swordfish Scalable Storage Management API Specification (v1.2.5) | SNIA | https://www.snia.org/tech_activities/standards/curr_standards/swordfish |
NVMe-Base | NVM Express Base Specification 2.0c | NVM Express |
https://nvmexpress.org/developers/nvme-specification/ |
NVMe-Command | NVM Express NVM Command Set Specification 1.0c | NVM Express |
https://nvmexpress.org/developers/nvme-command-set-specifications/ |
NVMe-Transport | NVMe over PCIe Transport Specification 1.0c | NVM Express |
https://nvmexpress.org/developers/nvme-transport-specifications/ |
NVMe-MI | NVMe-MI 1.2c Specification | NVM Express |
https://nvmexpress.org/developers/nvme-mi-specification/ |
SPC-5 | SCSI Primary Commands - 5 | INCITS | https://webstore.ansi.org/standards/incits/incits5022019 |
URI | Uniform Resource Identifier (URI): Generic Syntax | IETF | https://datatracker.ietf.org/doc/html/rfc3986 |
None defined in this document.
None defined in this document.
In order to manage NVMe and NVMe-oF devices and systems in a large scale environment, a higher level management ecosystem is needed. The Redfish/Swordfish management specifications are designed to manage multi-system environments, including multiple types of fabrics, covering not only multiple technologies, but also inclusive of system management, storage management and fabric management, making it the ideal ecosystem in which to add not only the integration of NVMe devices for system and storage management, but NVMe-oF for fabric management.
This document describes how both the NVMe Subsystem model and the NVMe-oF fabric system model should be mapped consistently to Redfish and Swordfish constructs for implementations to be managed within Redfish and Swordfish management environments. This model and mapping information does not describe or assert any specific implementation recommendation technologies.
Similar implementations will have similar Redfish and Swordfish constructs. Mockups are used to show static examples of sample representations. Requirements and recommendations for implementations are provided separately through the Swordfish NVMe and NVMe-oF profiles. The profiles use the Redfish interoperability profile schema to specify the required, recommended and optional properties and schema for specific configurations and functionality that correspond to classes of implementations.
There shall be a unified model across all types of NVMe devices.
There shall not be a different model for “drives” vs other types of NVMe devices
The model will cover an appropriate level of abstraction for all types of NVMe devices based on modeling and mockups reflected in the documented permutations (e.g., from simple drives through to complex fabric virtual systems)
The logical model for NVMe-oF shall leverage the NVMe Subsystem model
Logical subsystems, controllers, and namespaces are the same objects with the same relationships as in the NVMe Subystem Model. Unneeded objects are not instantiated (e.g., Endurance Groups, sets)
The NVMe native model should map to the existing Redfish and Swordfish constructs when and where possible
Key Tenets:
Model reflects a unified view of all NVMe device types.
Devices will instantiate an appropriate subset of the model
The model diagrams do not reflect all available schema elements.
Model leverages and coarsely maps to existing (Redfish and) Swordfish storage model
An NVM subsystem includes one or more controllers, zero or more namespaces, and one or more ports. Examples of NVM subsystems include Enterprise and Client systems that utilize PCI Express based solid state drives and/or fabric connectivity.
The interface between a host and an NVM subsystem
Admin controller: controller that exposes capabilities that allow a host to manage an NVM subsystem
Discovery: controller that exposes capabilities that allow a host to retrieve a Discovery Log Page
I/O: controller that implements I/O queues and is intended to be used to access a non-volatile memory storage medium
A quantity of non-volatile memory that may be formatted into logical blocks. When formatted, a namespace of size n is a collection of logical blocks with logical block addresses from 0 to (n-1).
A portion of NVM in the NVM subsystem whose endurance is managed as a group
An NVM Set is a collection of NVM that is separate (logically and potentially physically) from NVM in other NVM Sets.
A domain is the smallest indivisible unit that shares state (e.g., power state, capacity information). Domain members can be NVM controllers, endurance groups, sets or namespaces.
There are a number of objects that are required for the proper integration of NVMe support within Redfish and Swordfish, but which are not supported by an entity that can be mapped directly from the various NVM Specifications. Information about these related but un-mapped objects are defined elsewhere in the documentation provided with each Swordfish release.
They are summarized in Appendix A.
The following diagram reflects the high level mapping of the key NVM objects into Redfish / Swordfish schema objects. These largely follow existing relationships used by the Swordfish storage specification for non-NVMe implementations as well, which provides a great deal of consistency for storage clients, as well as for implementations such as NVMe arrays that may be delivering solutions that combine NVMe and other technologies.
This model covers a wide range of instantiations ranging from individual SSDs, to multi-rack storage systems. All of these can be represented by this NVM Subsystem model, shown in Figure .
Figure shows the high level mapping of the key NVMe-oF objects to Redfish / Swordfish schema objects. Following the tenets described in the model overview section, these extend the mapping used in the NVM Subsystem for the logical versions of the objects.
This model also includes the use of the Redfish Fabric model to cover the connectivity aspects of the fabric.
The grey shaded portion of this diagram reflects the logical / exported portion of the NVMe-oF environment represented in Redfish / Swordfish.
This section of the document provides a series of example usages of the model that represent common instantiations of NVMe devices, and how those devices may use the various NVMe, and correspondingly, Redfish and Swordfish objects and schema. This section will not provide comprehensive representations of all potential device types; rather, a representation of several common device types, in order to provide an illustration of the application of the model for those that are unfamiliar with either the NVMe or Redfish / Swordfish ecosystems.
Further, the following sections describe the examples and do not attempt to cover all potential permutations for alternate representations of each device class or possible implementations.
Figure shows a sample representation of a simple NVMe SSD, with a PCIe interface. It is implemented with no endurance group or NVM set functionality; it has only a single namespace capability, and a single IO controller.
Simple SSDs are SSDs that do not use Endurance Groups or sets. Correspondingly, they only use Storage, Controllers, Volumes (Namespaces), and the Drive schema to represent the fundamental components.
Many SSD implementations support exactly one namespace. These are described by this model, and the mockups reflect this configuration.
This model can also support extensions to cover dual-ported configurations, as well as support for multiple IO controllers per port.
Figure shows the representation, as expressed in the mockup indicated below, of a sample instantiation using Redfish / Swordfish objects.
Note that this mockup does not represent a complete service instantiation; it contains only objects of interest for this context.
A corresponding mockup for this configuration can be found at http://simple-ssd-mockups.swordfishmockups.com/redfish/v1/.
Figure shows a sample representation of a complex NVMe SSD, with a PCIe interface. This example shares many similarities to the simple device model, but adds the representation of NVMe Endurance Groups and NVM Sets using the Swordfish StoragePool schema, with additional NVMe specific properties.
Complex SSDs are SSDs that use Endurance Groups and NVM sets. They also use Storage, Controllers, Volumes (Namespaces), and the Drive schema to represent the fundamental components.
This model can also support extensions to cover dual-ported configurations, as well as support for multiple IO controllers per port.
Endurance Groups divide the media into distinct wear-leveling domains. How this happens is implementation specific.
NVM Sets further subdivide an endurance group in order to limit performance interference within and across these domains.
When this type of device supports dynamic namespace allocation and NVM Sets, the management of the namespaces is done within an NVM Set as the underlying capacity source (e.g., the storage pool).
Figure shows the representation, as expressed in the mockup indicated below, of a sample instantiation using Redfish / Swordfish objects.
Note that this mockup does not represent a complete service instantiation; it contains only objects of interest for this context.
A corresponding mockup for this configuration can be found at http://simple-ssd-eg-set-mockups.swordfishmockups.com/redfish/v1/.
This example reflects an IP-attached drive configuration, with a single ethernet port configured, as illustrated in Figure . It includes a drive configured with a default endurance group and NVM Set, and is instantiated in the Storage Collection off the Service Root.The network configuration is modeled in the Chassis.
Simple SSDs with IP attach are also SSDs that do not use Endurance Groups or sets, but that have IP-based network interfaces. Correspondingly, they only use Storage, Controllers, Volumes (Namespaces), and the Drive schema to represent the fundamental components. In addition, they use the Redfish Network Adapter, Port and Network Device Function to model the configuration of the IP interface port(s).
As with the Simple SSD configuration, Many SSD with IP-attach implementations support exactly one namespace. These are described by this model, and the mockups reflect this configuration.
This model can also support extensions to cover multi-ported configurations, as well as support for multiple IO controllers per port.
Figure shows the representation, as expressed in the mockup indicated below, of a sample instantiation using Redfish / Swordfish objects.
Note that this mockup does not represent a complete service instantiation; it contains only objects of interest for this context.
A corresponding mockup for this configuration can be found at http://ethernet-attach-drive-mockups.swordfishmockups.com/redfish/v1/.
This example covers a representation of a JBOF (“just a bunch of flash”) enclosure and contained drives. This mockup reflects a PCIe front-end attach configuration with a set of drives.
Figure shows only the controller object representation for this JBOF configuration. This includes the admin controller function for enclosure management.
Figure shows the combined object representations for the JBOF system, with both the JBOF controller and NVMe drives (using the Simple SSD style drives) represented in the system. Note that the full mockup represented has 7 drives, while this diagram only represents two for the sake of visual clarity.
This type of JBOF system uses the Chassis, Storage and Controller objects to reflect physical component modeling, Subsystem and Admin Controller functionality.
The Chassis model and Admin controller represent NVM’s SES (SCSI enclosure services) usage.
Figure shows the representation, as expressed in the mockup indicated below, of a sample instantiation using Redfish / Swordfish objects.
Note that this mockup does not represent a complete service instantiation; it contains only objects of interest for this context.
A corresponding mockup for this configuration can be found at http://nvme-jbof-mockups.swordfishmockups.com/redfish/v1/
This example covers a representation of a EBOF (“Ethernet bunch of flash”) enclosure and contained drives. This mockup reflects a Ethernet front-end attach enclosure configuration containing a set of Ethernet-attach drives.
Figure shows the combined object representations for the EBOF system, with both the EBOF controller and Ethernet-attach drives (using the Simple SSD with IP drives) represented in the system. Note that the full mockup represented has multiple drives, while this diagram only represents one for the sake of visual clarity.
This type of EBOF system uses the Storage and Controller objects to reflect component modeling of the NVMe Subsystem and controller functionality.
Connectivity is represented through the Chassis model’s NetworkAdapter, NetworkPort, NetworkDeviceFunction and EthernetInterface objects, the Fabric model’s Switch and Port objects, as well as the Manager model’s EthernetInterface and ManagerProtocol. In-band management capability is also modeled via Admin controllers, consistent with other NVMe devices.
Figure shows the representation, as expressed in the mockup indicated below, of a sample instantiation using Redfish / Swordfish objects.
Note that this mockup does not represent a complete service instantiation; it contains only objects of interest for this context.
A corresponding mockup for this configuration can be found at http://nvme-ebof-mockups.swordfishmockups.com/redfish/v1/
The “opaque” array reflects a system with an NVMe front end, but the internal implementation is vendor specific, and not necessarily presented by the vendor (aka “opaque”). Figure shows a system that presents an NVMe front-end but also exposes a SATA drive backend. This could be done to support both FRU management and volume/namespace creation.
Requirements for the NVMe portion of this type of configuration is documented in the SwordfishNVMeFrontEnd profile; opaque arrays should implement both traditional Swordfish block profiles, in addition to the SwordfishNVMeFrontEnd profile.
The opaque array example presents NVMe specific information in Redfish/Swordfish objects, using the Storage, Controller, and Volume objects.
In addition, device management information is presented through StoragePool and Drive objects, providing internal, non-NVMe implementation specific information to the user, for configuration, diagnosis and other storage management functions. (This set of objects is subject to the standard Swordfish specification and profiles.)
Figure shows the representation, as expressed in the mockup indicated below, of a sample instantiation using Redfish / Swordfish objects.
Note that this mockup does not represent a complete service instantiation; it contains only objects of interest for this context.
A corresponding mockup for this configuration can be found at http://nvme-opaque-array-mockups.swordfishmockups.com/redfish/v1/.
Figure shows a logical/exported NVMe-oF subsystem presenting one logical subsystem, one I/O controller, one namespace, one port and representing one allowed host, using the Redfish Fabric model. The fabric model uses the Connection schema to characterize the allowed host information, and Endpoints and Zones to show the network connectivity from the device’s perspective.
The fabric attach subsystem example shows the representation of logical, or exported, subsystems, controllers, and namespaces using the Storage, Controller and Volume objects respectively.
It also uses portions of the Redfish fabric model to represent the host attachment information - allowed hosts and logical port - using the Connections and Endpoints objects respectively.
Figure shows the representation, as expressed in the mockup indicated below, of a sample instantiation using Redfish / Swordfish objects.
Note that this mockup does not represent a complete service instantiation; it contains only objects of interest for this context.
There are multiple mockups that show the representation for this configuration:
A mockup for this configuration using an Ethernet attach front-end can be found at http://nvmeof-mockups.swordfishmockups.com/redfish/v1/.
A mockup for this configuration using an RDMA attach front-end can be found at http://nvmeof-RDMA-mockup.swordfishmockups.com/redfish/v1.
Figure shows a representation of a simple domain representation, with a single IO controller and namespace in a domain.
Note that as this configuration only has a single domain, it could be represented as an implicit domain.
NVMeDomains contain a collection of domain members; these can be NVM controllers, endurance groups, NVM sets, or namespaces. Domains can constrain the set of firmware images available to apply to like members. Other domain-level properties include ALUA (asymmetric logical unit access) group definitions, indicating common access characteristics and path prioritization behaviors across the namespaces in the domain.
In an NVM subsystem that does not support multiple domains, there is, by definition, a single domain. For single domain configurations, it is up to the Swordfish service implementer to determine whether or not to instrument the NVMe Domain objects.
Figure shows the representation, as expressed in the mockup indicated below, of a sample instantiation using Redfish / Swordfish objects.
Note that this mockup does not represent a complete service instantiation; it contains only objects of interest for this context.
Note that as this configuration only has a single domain, it could be represented as an implicit domain.
A mockup for this configuration using NVMe Domains can be found at http://nvme-domains-mockups.swordfishmockups.com/redfish/v1/.
The property mapping provided defines the preferred translation between the Redfish/Swordfish schema objects and properties, and the corresponding NVMe and NVMe-oF specification properties. The information is ordered within the Redfish/Swordfish objects; each cross-referenced property within the Redfish/Swordfish structure therefore contains a detailed reference to its mapped property in the NVMe ecosystem.
Each section also includes a sample Redfish/Swordfish mockup presenting an example usage for that object.
Table 296 provides the template and an example for the property mapping provided in the following sections of this document.
For each property (whether a reference, collection, complex type or actual property), there is a comparison between the property in Redfish/Swordfish to the corresponding property in either the NVMe or NVMe-oF specification. The RF/SF property is provided within its schema context; the NVMe/NVMe-oF specification reference is provided within the table, showing both which specification, as well as the section and, if appropriate, the figure in which the property is specified.
Similarly, the type of each property is correspondingly specified. The RF/SF type is specified, and the NVM Spec property type is shown, as well as, where appropriate, any additional identifying information, such as byte offset and data structure.
The Mandatory field is used to specify whether properties are Mandatory or Optional on the NVMe specification side, and in the rare instance where properties are Mandatory in the Redfish/Swordfish schema. (Recommended / required properties for specific implementation types in Redfish/Swordfish will be done separately, through the use of profiles.)
The Notes field can / will be used to include any relevant information about either the purpose of the property, additional context, or other useful information to implementers, such as inter-relationships with other properties.
Table 296: Property Mapping Template and Example
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Redfish / Swordfish Schema Property: RecommendedArbitrationBurstSize | NVM Spec Property / Field:
Identify Command / Identify Controller (CNS 01h) /
RecommendedArbitrationBurst(RAB) NVM Spec: Section:Figure NVMe 2.0: Section 5.17.2.1, Figure 275 (Identify Controller Data Structure, I/O Command Set Independent) / RecommendedArbitrationBurst(RAB): Bytes 72 |
Type | Redfish / Swordfish Schema Type: String | Power of 2^n |
Description | The Recommended Arbitration Burst Size indicates the maximum number of commands that the controller may launch at one time from a particular Submission Queue. | This is the recommended Arbitration Burst size. |
LongDescription | This property shall contain the Recommended Arbitration Burst Size indicates the maximum number of commands that the controller may launch at one time from a particular Submission Queue. The value is expressed as a power of two (e.g., 000b indicates one, 011b indicates eight). A value of 111b indicates no limit. | This is the recommended Arbitration Burst size. The value is in commands and is reported as a power of two (2^n). This is the same units as the Arbitration Burst size. |
Mandatory | Mandatory | I/O Controller: Mandatory Admin Controller: Mandatory Discovery Controller: Restricted |
Notes |
The Redfish/Swordfish Storage schema is used to represent an NVM Subsystem.
The following mockup shows a sample representation of the Storage schema used to represent an NVM Subysystem.
{
"@odata.type": "#Storage.v1_16_0.Storage",
"Id": "1",
"Name": "NVMe Simple SSD Configuration",
"Description": "An NVM Express Subsystem is an NVMe device that contains one or more NVM Express controllers and may contain one or more namespaces.",
"Status": {
"State": "Enabled",
"Health": "OK",
"HealthRollup": "OK"
},
"Identifiers": [
{
"DurableNameFormat": "NQN",
"DurableName": "nqn.2014-08.org.nvmexpress:uuid:6c5fe566-10e6-4fb6-aad4-8b4159f50245"
}
],
"ConfigurationLock": "Partial",
"TargetConfigurationLockLevel": "Standard",
"NVMeSubsystemProperties": {
"ConfigurationLockState": {
"FirmwareCommit": "Unlocked",
"Lockdown": "Locked",
"SecureSend": "LockdownUnsupported",
"FirmwareImageDownload": "LockdownUnsupported",
"VPDWrite": "CommandUnsupported"
},
"MaxNamespacesSupported": 2,
"SharedNamespaceControllerAttachmentSupported": true
},
"Controllers": {
"@odata.id": "/redfish/v1/Systems/Sys-1/Storage/NVMeSSD-EG/Controllers"
},
"Drives": [
{
"@odata.id": "/redfish/v1/Chassis/Sys-1Chassis/Drives/NVMeDrive1"
}
],
"Volumes": {
"@odata.id": "/redfish/v1/Systems/Sys-1/Storage/NVMeSSD-EG/Volumes"
},
"StoragePools": {
"@odata.id": "/redfish/v1/Systems/Sys-1/Storage/NVMeSSD-EG/StoragePools"
},
"Links": {
"Enclosures": [
{
"@odata.id": "/redfish/v1/Chassis/Sys-1Chassis"
}
]
},
"@odata.id": "/redfish/v1/Systems/Sys-1/Storage/NVMeSSD-EG",
"@Redfish.Copyright": "Copyright 2015-2024 SNIA. All rights reserved."
}
The mapping for Actions.#StorageController.SetEncryptionKey
is
summarized in Table 297.
Table 297: Actions.#StorageController.SetEncryptionKey mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Actions.#StorageController.SetEncryptionKey | N/A |
Type | Action (Special form of POST) | N/A |
Description | The available OEM-specific actions for this resource. | N/A |
LongDescription | This property shall contain the available OEM-specific actions for this resource. | N/A |
Mandatory | Optional Do Not Implement for NVMe Drives, or for devices with an NVMe front end interface, e.g., opaque arrays. |
DNI |
Notes | N/A for NVMe (drives or for devices with an NVMe front end interface). Drives will generate their own key for CryptoErase, this requires passing a new key. |
The mapping for ConfigurationLock
is summarized in
Table 298.
Table 298: ConfigurationLock mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | ConfigurationLock | NVM Spec: Property /
Field: NVMe 2.0d: Identify Command / Identify Controller data structure (CNS 01h) - Optional Admin Command Support (OACS) NVM Spec: Section:Figure NVMe 2.0d: Section 5.17.2.1: Figure 275 - 257:256, Bit 10) Get log page specifying the Command and Feature Lockdown (Log Page Identifier 14h) NVM Spec: Section:Figure NVMe 2.0d: Section 5.16.1.20 |
Type | enum (ConfigurationLock) | Log Page |
Description | The ConfigurationLock ,
TargetConfigurationLockLevel , and
ConfigurationLockState properties are jointly used to manage
lockdown of NVMe devices. |
The Lockdown command is used to control the
Command and Feature Lockdown capability which configures the prohibition or
allowance of execution of the specified command or Set Features command
targeting a specific Feature Identifier. After a successful completion of a Lockdown command prohibiting a command or Feature Identifier, all controllers, if applicable, and all management endpoints, if applicable, in the NVM subsystem behave as requested. |
LongDescription | This has three states: Enabled, Disabled, and
Partial. • Enabled : All supported properties, as reported in
the ConfigurationLockState , that are part of the
TargetConfigurationLockLevel are locked. • Disabled : All supported properties, as reported in the
ConfigurationLockState , that are part of the
TargetConfigurationLockLevel are unlocked.• Partial : The properties, as reported in the
ConfigurationLockState , that are part of the
TargetConfigurationLockLevel are not consistently locked or
unlocked. Services shall reject modification requests that contain the value
Partial . |
Command and Feature Lockdown is used to prohibit
the execution of commands submitted to NVM Express controllers and/or Management
Endpoints in an NVM subsystem. Commands and Feature Identifiers are defined with
the following scopes: • Admin Command Set commands defined by the Opcode field; • Set Features command features defined by the Feature Identifier field; • Management Interface Command Set commands defined by the Opcode field; and • PCIe Command Set commands defined by the Opcode field (refer to the NVM Express Management Interface Specification). |
Mandatory | Optional | Mandatory to implement OACS; Lockdown feature is optional. |
Notes | See section
Mapping NVMe Command and Feature Lockdown to "ConfigurationLocked"
for detailed behavior and mapping description. |
The mapping for Controllers
is summarized in
Table 299.
Table 299: Controllers mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Controllers | NVM Spec Property / Field:
Identify Command / Controller List (CNS 13h) NVM Spec: Section:Figure NVMe 2.0: Section 5.17.2.12 |
Type | StorageControllerCollection. | Controller list. |
Description | The set of controllers instantiated by this storage subsystem. | A List of controllers that exist in the NVM subsystem. |
LongDescription | This property shall contain a link to a Resource of type StorageControllerCollection that contains the set of storage controllers allocated to this instance of an storage subsystem. | A Controller List of up to 2,047 controller identifiers is returned containing a controller identifier greater than or equal to the value specified in the Controller Identifier (CDW10.CNTID) field. The list contains controller identifiers in the NVM subsystem that may or may not be attached to namespace(s). Reference Section 4.4.1, Figure 134 (Controller List Format) |
Mandatory | Mandatory. | No (see note) |
Notes | This is a collection of StorageControllers. Refer to the StorageController schema for details of the instance information. These are used to provide information on NVM IO, Admin and Discovery controllers. | This property is only mandatory for controllers that support the Namespace Management capability. |
The mapping for Description
is summarized in
Table 300.
Table 300: Description mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Description | N/A |
Type | String | N/A |
Description | The description of this resource. | N/A |
LongDescription | This object represents the description of this resource. The resource values shall comply with the Redfish Specification-described requirements. | N/A |
Mandatory | Mandatory | |
Notes | In Redfish, Description is a read-only field. | Return the common description: “An NVM Express Subsystem is an NVMe device that contains one or more NVM Express controllers and may contain one or more namespaces.” |
The mapping for Drives
is summarized in Table
301.
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Drives | N/A |
Type | Collection(Drive.Drive) | N/A |
Description | The set of drives attached to the storage controllers that this resource represents. | N/A |
LongDescription | This property shall contain a set of the drives attached to the storage controllers that this resource represents. | N/A |
Mandatory | Optional Mandatory for NVMe Drives. |
|
Notes | For NVMe Drive implementation, this links to “Drive” object, which contains the physical representation of NVMe Drive information. |
The mapping for Identifiers
is summarized in
Table 302.
Table 302: Identifiers mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Identifiers | N/A |
Type | Collection(Resource.Identifier) | N/A |
Description | The Durable names for the subsystem. | N/A |
LongDescription | This property shall contain a list of all known durable names for the associated subsystem. | N/A |
Mandatory | Mandatory | |
Notes | This is an array of unique identifiers for the NVM Subsystem. There will only be one instance in this array for Subsystem. Refer to the Identify Controller data structure (CNS 01h) bits 1023:768 in figure 275 (Identify – Identify Controller Data Structure, I/O Command Set Independent) of the NVMe Base Specification. |
The mapping for Identifiers.DurableNameFormat
is summarized in
Table 303.
Table 303: Identifiers.DurableNameFormat mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Identifiers.DurableNameFormat | NVM Spec Property / Field: NVMe
Qualified Names NVM Spec: Section:Figure NVMe 2.0: Section 4.5 |
Type | Resource.v1_1_0.DurableNameFormat | UTF-8 null-terminated string |
Description | The format of the Durable names for the subsystem. | This specifies the NVM Subsystem NVMe Qualified Name as a UTF-8 null-terminated string. |
LongDescription | This specifies the format of the associated NVM Subsystem NVMe Qualified Name of type NQN. Support for this field is mandatory if the controller supports revision 1.2.1 or later as indicated in the Version register (refer to section 3.1.2). | This specifies the NVM Subsystem NVMe Qualified Name as a UTF-8 null-terminated string. |
Mandatory | Optional | Yes if the controller supports revision 1.2.1 or later as indicated in the Version register. |
Notes | This is an enum with multiple potential values. For this particular usage in Subsystem, there will only be one instance populated, of type NQN which is a UTF-8 null-terminated string. |
The mapping for Identifiers.DurableName
is summarized in
Table 304.
Table 304: Identifiers.DurableName mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Identifiers.DurableName | NVM Spec Property / Field:
Identify Command / Identify Controller (CNS 01h) NVM Spec: Section:Figure NVMe 2.0: Section 5.17.2.1, Figure 275 (Identify Controller Data Structure, I/O Command Set Independent), Bits 768-1023 - NVM Subsystem NVMe Qualified Name (SUBNQN) |
Type | Edm.String | UTF-8 null-terminated string |
Description | The format of the Durable names for the subsystem. | This field specifies the NVM Subsystem NVMe Qualified Name (SUBNQN) |
LongDescription | This specifies the NVM Subsystem NVMe Qualified Name as a UTF-8 null-terminated string. | This field specifies the NVM Subsystem NVMe Qualified Name as a UTF-8 null-terminated string. Refer to NVMe Base Specification, section 4.5, for the definition of NVMe Qualified Name. |
Mandatory | Optional | Yes if the controller supports revision 1.2.1 or later as indicated in the Version register (refer to section 3.1.3.2). |
Notes | For this particular usage in Subsystem, there will only be one instance populated in the identifiers array. |
The mapping for Links.Enclosures
is summarized in
Table 305.
Table 305: Links.Enclosures mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Links.Enclosures | N/A |
Type | Collection(Chassis.Chassis) | N/A |
Description | An array of links to the chassis to which this storage subsystem is attached. | N/A |
LongDescription | This property shall contain an array of links to resources of type Chassis that represent the physical containers attached to this resource. | N/A |
Mandatory | Mandatory | |
Notes | For NVMe Drive implementation, this links to a chassis collection that contains the subsystem’s “Drive” object, which contains the physical representation of NVMe Drive information. For devices with an NVMe front end interface, e.g., opaque arrays), this refers to the appropriate chassis instance for the device/system; there may be multiple chassis instances, reflecting different physical entities in the system, such as controllers, drive enclosures, racks, etc). | The functionality comes from the underlying implementation and does not originate in the NVMe specs |
The mapping for Links.Enclosures@odata.count
is summarized in
Table 306.
Table 306: Links.Enclosures@odata.count mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Links.Enclosures@odata.countt | N/A |
Type | (odata property)int64 | N/A |
Description | Count of the number of items in the Links.Enclosures array. | N/A |
LongDescription | N/A | |
Mandatory | Mandatory | |
Notes | The functionality comes from the underlying implementation and does not originate in the NVMe specs |
The mapping for Links.HostingStorageSystems
is summarized in Table 307.
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Links.HostingStorageSystems | N/A |
Type | Collection(ComputerSystem.ComputerSystem) | N/A |
Description | The storage systems that host this storage subsystem. | N/A |
LongDescription | This property shall contain an array of links to resources of type ComputerSystem that represent the storage systems that host this storage subsystem. The members of this array shall be in the StorageSystems resource collection off the service root. | N/A |
Mandatory | Optional Recommended for devices with an NVMe front end interface such as opaque arrays. |
|
Notes | For devices with an NVMe front end interface, e.g., opaque arrays), this refers to the ComputerSystem instances providing the NVMe front end, modeling the device’s controller(s). | The functionality comes from the underlying implementation and does not originate in the NVMe specs |
The mapping for Links.NVMeoFDiscoverySubsystems
is summarized in
Table
308.
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Links.NVMeoFDiscoverySubsystems | N/A |
Type | Collection(Storage.Storage) | N/A |
Description | An array of links to the discovery subsystems that discovered this subsystem in an NVMe-oF environment. | N/A |
LongDescription | This property shall contain an array of links to resources of type Storage that represent the discovery subsystems that discovered this subsystem in an NVMe-oF environment. | N/A |
Mandatory | Optional Recommended for devices with an NVMe front end interface such as opaque arrays; required for use in NVMe-oF environments and environments using discovery controllers. |
|
Notes | This information should be constructed from the Swordfish service. There is not a known mapping to NVMe-oF information at this time. |
The mapping for Links.SimpleStorage
is summarized in
Table 309.
Table 309: Links.SimpleStorage mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Links.SimpleStorage | N/A |
Type | SimpleStorage.SimpleStorage | N/A |
Description | The link to the simple storage instance that corresponds to this storage. | N/A |
LongDescription | This property shall contain a link to a resource of type SimpleStorage that represents the same storage subsystem as this resource. | N/A |
Mandatory | Do Not Implement | |
Notes |
The mapping for
NVMeSubsystemProperties.NVMeConfigurationLockState
is summarized in
Table 310.
Table 310: NVMeSubsystemProperties.NVMeConfigurationLockState mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeSubsystemProperties.NVMeConfigurationLockState | N/A (Sub-properties map to NVMe Command and Feature Lockdown) |
Type | ComplexType | N/A |
Description | Set of configurable features that are able to be locked on an NVMe Subsystem, and their current lock state. | |
LongDescription | ||
Mandatory | Optional | |
Notes | See section
Mapping NVMe Command and Feature Lockdown to "ConfigurationLocked"
for detailed behavior and mapping description. |
The mapping for
NVMeSubsystemProperties.NVMeConfigurationLockState.FirmwareCommit
is summarized in Table 311.
Table 311: NVMeSubsystemProperties.NVMeConfigurationLockState.FirmwareCommit mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeSubsystemProperties.NVMeConfigurationLockState.FirmwareCommit | NVM Spec: Property /
Field: NVMe 2.0d: Identify Command / Identify Controller data structure (CNS 01h) - Optional Admin Command Support (OACS) NVM Spec: Section:Figure NVMe 2.0d: Section 5.17.2.1: Figure 275 - 257:256, Bytes 13:08) Get log page specifying the Command and Feature Lockdown (Log Page Identifier 14h) NVM Spec: Section:Figure NVMe 2.0d: Section 5.16.1.20 (Figure 260) |
Type | Storage.v1_17_0.ConfigLockOptions • Unlocked : Command is supported, able to be locked, and the current
state is unlocked. • Locked : Command is supported, able to be
locked, and the current state is locked. • LockdownUnsupported :
Command is supported, able to be locked, and the current state is locked. • CommandUnsupported : Command is not supported, therefore lockdown
does not apply. |
Log Page |
Description | Ability to perform the NVMe defined FirmwareCommit command. | If the FirmwareCommit feature is able to be locked down, it’s corresponding opcode, 10h, will be reported in the command and feature lockdown log page (bytes 13:08). |
LongDescription | This has three states: Enabled, Disabled, and
Partial. • Enabled : All supported properties, as reported in
the ConfigurationLockState , that are part of the
TargetConfigurationLockLevel are locked. • Disabled : All supported properties, as reported in the
ConfigurationLockState , that are part of the
TargetConfigurationLockLevel are unlocked.• Partial : The properties, as reported in the
ConfigurationLockState , that are part of the
TargetConfigurationLockLevel are not consistently locked or
unlocked. Services shall reject modification requests that contain the value
Partial . |
Command and Feature Lockdown is used to prohibit
the execution of commands submitted to NVM Express controllers and/or Management
Endpoints in an NVM subsystem. Commands and Feature Identifiers are defined with
the following scopes: • Admin Command Set commands defined by the Opcode field; • Set Features command features defined by the Feature Identifier field; • Management Interface Command Set commands defined by the Opcode field; and • PCIe Command Set commands defined by the Opcode field (refer to the NVM Express Management Interface Specification). |
Mandatory | Optional | Mandatory to implement OACS; FirmwareCommit feature lockdown support is optional. If able to be supported (in log page 14), use the lockdown command to lock and unlock correspond to client requests. |
Notes | See section
Mapping NVMe Command and Feature Lockdown to "ConfigurationLocked"
for detailed behavior and mapping description. |
The mapping for
NVMeSubsystemProperties.NVMeConfigurationLockState.FirmwareImageDownload
is summarized in Table 312.
Table 312: NVMeSubsystemProperties.NVMeConfigurationLockState.FirmwareImageDownload mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeSubsystemProperties.NVMeConfigurationLockState.FirmwareImageDownload | NVM Spec: Property /
Field: NVMe 2.0d: Lockdown - NVM Spec: Section:Figure NVMe 2.0d: Section 5.19: Figure 292 - 06:00) Get log page specifying and controlling the Command and Feature Lockdown (Log Page Identifier 14h) NVM Spec: Section:Figure NVMe 2.0d: Section 5.16.1.20 (Figure 260), bytes 13:08 Log page indicating which commands and features are supported and currently set. |
Type | Storage.v1_17_0.ConfigLockOptions • Unlocked : Command is supported, able to be locked, and the current
state is unlocked. • Locked : Command is supported, able to be
locked, and the current state is locked. • LockdownUnsupported :
Command is supported, able to be locked, and the current state is locked. • CommandUnsupported : Command is not supported, therefore lockdown
does not apply. |
Log Page |
Description | Ability to perform the NVMe defined FirmwareImageDownload command. | If the FirmwareImageDownload feature is able to be locked down, it’s corresponding opcode, 11h, will be reported in the command and feature lockdown log page (bytes 13:08). |
LongDescription | This has three states: Enabled, Disabled, and
Partial. • Enabled : All supported properties, as reported in
the ConfigurationLockState , that are part of the
TargetConfigurationLockLevel are locked. • Disabled : All supported properties, as reported in the
ConfigurationLockState , that are part of the
TargetConfigurationLockLevel are unlocked.• Partial : The properties, as reported in the
ConfigurationLockState , that are part of the
TargetConfigurationLockLevel are not consistently locked or
unlocked. Services shall reject modification requests that contain the value
Partial . |
Command and Feature Lockdown is used to prohibit
the execution of commands submitted to NVM Express controllers and/or Management
Endpoints in an NVM subsystem. Commands and Feature Identifiers are defined with
the following scopes: • Admin Command Set commands defined by the Opcode field; • Set Features command features defined by the Feature Identifier field; • Management Interface Command Set commands defined by the Opcode field; and • PCIe Command Set commands defined by the Opcode field (refer to the NVM Express Management Interface Specification). |
Mandatory | Optional | Mandatory to implement OACS; FirmwareImageDownload feature lockdown support is optional. If able to be supported (in log page 14), use the lockdown command to lock and unlock correspond to client requests. |
Notes | See section
Mapping NVMe Command and Feature Lockdown to "ConfigurationLocked"
for detailed behavior and mapping description. |
The mapping for
NVMeSubsystemProperties.NVMeConfigurationLockState.Lockdown
is
summarized in Table 313.
Table 313: NVMeSubsystemProperties.NVMeConfigurationLockState.Lockdown mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeSubsystemProperties.NVMeConfigurationLockState.Lockdown | NVM Spec: Property /
Field: NVMe 2.0d: Identify Command / Identify Controller data structure (CNS 01h) - Optional Admin Command Support (OACS) NVM Spec: Section:Figure NVMe 2.0d: Section 5.17.2.1: Figure 275 - 257:256, Bit 10) Get log page specifying the Command and Feature Lockdown (Log Page Identifier 14h) NVM Spec: Section:Figure NVMe 2.0d: Section 5.16.1.20 |
Type | Storage.v1_17_0.ConfigLockOptions • Unlocked : Command is supported, able to be locked, and the current
state is unlocked. • Locked : Command is supported, able to be
locked, and the current state is locked. • LockdownUnsupported :
Command is supported, able to be locked, and the current state is locked. • CommandUnsupported : Command is not supported, therefore lockdown
does not apply. |
Log Page |
Description | Ability to perform the NVMe defined Lockdown command. | The Lockdown command is used to control the
Command and Feature Lockdown capability which configures the prohibition or
allowance of execution of the specified command or Set Features command
targeting a specific Feature Identifier. After a successful completion of a Lockdown command prohibiting a command or Feature Identifier, all controllers, if applicable, and all management endpoints, if applicable, in the NVM subsystem behave as requested. |
LongDescription | This has three states: Enabled, Disabled, and
Partial. • Enabled : All supported properties, as reported in
the ConfigurationLockState , that are part of the
TargetConfigurationLockLevel are locked. • Disabled : All supported properties, as reported in the
ConfigurationLockState , that are part of the
TargetConfigurationLockLevel are unlocked.• Partial : The properties, as reported in the
ConfigurationLockState , that are part of the
TargetConfigurationLockLevel are not consistently locked or
unlocked. Services shall reject modification requests that contain the value
Partial . |
Command and Feature Lockdown is used to prohibit
the execution of commands submitted to NVM Express controllers and/or Management
Endpoints in an NVM subsystem. Commands and Feature Identifiers are defined with
the following scopes: • Admin Command Set commands defined by the Opcode field; • Set Features command features defined by the Feature Identifier field; • Management Interface Command Set commands defined by the Opcode field; and • PCIe Command Set commands defined by the Opcode field (refer to the NVM Express Management Interface Specification). |
Mandatory | Optional | Mandatory to implement OACS; Lockdown feature is optional. If able to be supported (in log page 14), use the lockdown command to lock and unlock correspond to client requests. |
Notes | See section
Mapping NVMe Command and Feature Lockdown to "ConfigurationLocked"
for detailed behavior and mapping description. |
The mapping for
NVMeSubsystemProperties.NVMeConfigurationLockState.SecuritySend
is
summarized in Table 314.
Table 314: NVMeSubsystemProperties.NVMeConfigurationLockState.SecuritySend mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeSubsystemProperties.NVMeConfigurationLockState.SecuritySend | NVM Spec: Property /
Field: NVMe 2.0d: Identify Command / Identify Controller data structure (CNS 01h) - Optional Admin Command Support (OACS) NVM Spec: Section:Figure NVMe 2.0d: Section 5.17.2.1: Figure 275 - 257:256, Bytes 13:08) Get log page specifying the Command and Feature Lockdown (Log Page Identifier 14h) NVM Spec: Section:Figure NVMe 2.0d: Section 5.16.1.20 (Figure 260) |
Type | Storage.v1_17_0.ConfigLockOptions • Unlocked : Command is supported, able to be locked, and the current
state is unlocked. • Locked : Command is supported, able to be
locked, and the current state is locked. • LockdownUnsupported :
Command is supported, able to be locked, and the current state is locked. • CommandUnsupported : Command is not supported, therefore lockdown
does not apply. |
Log Page |
Description | Ability to perform the NVMe defined SecuritySend command. | If the SecuritySend feature is able to be locked down, it’s corresponding opcode, 81h, will be reported in the command and feature lockdown log page (bytes 13:08). |
LongDescription | This has three states: Enabled, Disabled, and
Partial. • Enabled : All supported properties, as reported in
the ConfigurationLockState , that are part of the
TargetConfigurationLockLevel are locked. • Disabled : All supported properties, as reported in the
ConfigurationLockState , that are part of the
TargetConfigurationLockLevel are unlocked.• Partial : The properties, as reported in the
ConfigurationLockState , that are part of the
TargetConfigurationLockLevel are not consistently locked or
unlocked. Services shall reject modification requests that contain the value
Partial . |
Command and Feature Lockdown is used to prohibit
the execution of commands submitted to NVM Express controllers and/or Management
Endpoints in an NVM subsystem. Commands and Feature Identifiers are defined with
the following scopes: • Admin Command Set commands defined by the Opcode field; • Set Features command features defined by the Feature Identifier field; • Management Interface Command Set commands defined by the Opcode field; and • PCIe Command Set commands defined by the Opcode field (refer to the NVM Express Management Interface Specification). |
Mandatory | Optional | Mandatory to implement OACS; SecuritySend feature lockdown support is optional. If able to be supported (in log page 14), use the lockdown command to lock and unlock correspond to client requests. |
Notes | See section
Mapping NVMe Command and Feature Lockdown to "ConfigurationLocked"
for detailed behavior and mapping description. |
The mapping for
NVMeSubsystemProperties.NVMeConfigurationLockState.VPDWrite
is
summarized in Table 315.
Table 315: NVMeSubsystemProperties.NVMeConfigurationLockState.VPDWrite mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeSubsystemProperties.NVMeConfigurationLockState.VPDWrite | NVM Spec: Property /
Field: NVMe 2.0d: Identify Command / Identify Controller data structure (CNS 01h) - Optional Admin Command Support (OACS) NVM Spec: Section:Figure NVMe 2.0d: Section 5.17.2.1: Figure 275 - 257:256) Get log page specifying the Command and Feature Lockdown (Log Page Identifier 14h) NVM Spec: Section:Figure NVMe 2.0d: Section 5.16.1.20 (Figure 260) |
Type | Storage.v1_17_0.ConfigLockOptions • Unlocked : Command is supported, able to be locked, and the current
state is unlocked. • Locked : Command is supported, able to be
locked, and the current state is locked. • LockdownUnsupported :
Command is supported, able to be locked, and the current state is locked. • CommandUnsupported : Command is not supported, therefore lockdown
does not apply. |
Log Page |
Description | Ability to perform the NVMe defined VPDWrite command. | If the VPDWrite feature is able to be locked down, it’s corresponding opcode, 81h, will be reported in the command and feature lockdown log page (bytes 13:08). |
LongDescription | This has three states: Enabled, Disabled, and
Partial. • Enabled : All supported properties, as reported in
the ConfigurationLockState , that are part of the
TargetConfigurationLockLevel are locked. • Disabled : All supported properties, as reported in the
ConfigurationLockState , that are part of the
TargetConfigurationLockLevel are unlocked.• Partial : The properties, as reported in the
ConfigurationLockState , that are part of the
TargetConfigurationLockLevel are not consistently locked or
unlocked. Services shall reject modification requests that contain the value
Partial . |
Command and Feature Lockdown is used to prohibit
the execution of commands submitted to NVM Express controllers and/or Management
Endpoints in an NVM subsystem. Commands and Feature Identifiers are defined with
the following scopes: • Admin Command Set commands defined by the Opcode field; • Set Features command features defined by the Feature Identifier field; • Management Interface Command Set commands defined by the Opcode field; and • PCIe Command Set commands defined by the Opcode field (refer to the NVM Express Management Interface Specification). |
Mandatory | Optional | Mandatory to implement OACS; VPDWrite feature lockdown support is optional. If able to be supported (in log page 14), use the lockdown command to lock and unlock correspond to client requests. |
Notes | See section
Mapping NVMe Command and Feature Lockdown to "ConfigurationLocked"
for detailed behavior and mapping description. |
The mapping for NVMeSubsystemProperties.MaxNamespacesSupported
is summarized in Table 316.
Table 316: NVMeSubsystemProperties.MaxNamespacesSupported mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeSubsystemProperties.MaxNamespacesSupported | NVM Spec Property / Field:
Identify Controller Data Structure (CNS 01h) NVM Spec: Section:Figure NVMe 2.0: Section 5.17.2.1, Figure 276 (Identify Controller Data Structure, I/O Command Set Independent), Bytes 543:540 - Maximum Number of Allowed Namespaces (MNAN) |
Type | Edm.Decimal | Integer |
Description | The maximum number of namespace attachments supported by this NVMe Subsystem. | This field indicates the maximum number of namespaces supported by the NVM subsystem. |
LongDescription | This property shall contain the maximum number of namespace attachments supported by this NVMe Subsystem. If there are no limits imposed, this property should not be implemented. | This field indicates the maximum number of namespaces supported by the NVM subsystem. If this field is cleared to 0h, then the maximum number of namespaces supported by the NVM subsystem is less than or equal to the value in the NN field. If the controller supports Asymmetric Namespace Access Reporting, then this field shall be set to a non-zero value that is less than or equal to the NN value. |
Mandatory | Optional Used when Namespace Management is implemented. |
Optional |
Notes | If MNAN is 0h, the NVMeSubsystemProperties.MaxNamespacesSupported property should not be implemented. |
The mapping for
NVMeSubsystemProperties.SharedNamespaceControllerAttachmentSupported
is summarized in Table 317.
Table 317: NVMeSubsystemProperties.SharedNamespaceControllerAttachmentSupported mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeSubsystemProperties.SharedNamespaceControllerAttachmentSupported | NVM Spec Property / Field: I/O
Command Set Independent Identify Namespace data structure (CNS
08h) NVM Spec: Section:Figure NVMe 2.0: Section 5.17.2.8, Figure 281 (Identify Controller Data Structure, I/O Command Set Independent), Byte 01, bit 0 - Namespace Multi-path I/O and Namespace Sharing Capabilities (NMIC) |
Type | Edm.Boolean | Bool |
Description | Indicates whether the subsystem supports shared namespace controller attachment. | If set to ‘1’, then the namespace may be attached to two or more controllers in the NVM subsystem concurrently (i.e., may be a shared namespace). If cleared to ‘0’, then the namespace is a private namespace and is able to be attached to only one controller at a time. |
LongDescription | This property shall indicate whether the subsystem supports shared namespace controller attachment. A shared namespace may be attached to two or more controllers in a Subsystem concurrently. | If set to ‘1’, then the namespace may be attached to two or more controllers in the NVM subsystem concurrently (i.e., may be a shared namespace). If cleared to ‘0’, then the namespace is a private namespace and is able to be attached to only one controller at a time. |
Mandatory | Optional Used when Namespace Management is implemented. |
Optional |
Notes |
The mapping for Name
is summarized in Table
318.
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Name | N/A |
Type | String | N/A |
Description | The name of the resource or array member. | N/A |
LongDescription | This object represents the name of this resource or array member. The resource values shall comply with the Redfish Specification-described requirements. This string value shall be of the ‘Name’ reserved word format. | N/A |
Mandatory | Mandatory | |
Notes | In Redfish, Name is a read-only field. |
The mapping for Status.State
is summarized in
Table 319.
Table 319: Status.State mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Status.State | N/A |
Type | Resource.State (enum) | N/A |
Description | The known state of the resource, such as, enabled. | N/A |
LongDescription | This property shall indicate whether and why this component is available. Enabled indicates the resource is available. Disabled indicates the resource has been intentionally made unavailable but it can be enabled. Offline indicates the resource is unavailable intentionally and requires action to make it available. InTest indicates that the component is undergoing testing. Starting indicates that the resource is becoming available. Absent indicates the resource is physically unavailable. | N/A |
Mandatory | Optional Recommended to implement for NVMe front end devices such as opaque arrays. |
|
Notes | Possible values: Enabled / Disabled / StandbyOffline / StandbySpare / InTest / Starting / Absent / UnavaialableOffline / Deferring / Quiesced / Updating / Qualified | In general, there is no simple corresponding property or mappable set of information at this time from the NVMe Specifications. Current guidance for NVMe drives: do not implement this property. Guidance will be added in a future version of this document as this is an important concept for clients and for consistency with traditional storage devices. For opaque arrays and other similar devices with an NVMe front end, support and map these properties to the device’s concepts of Enabled/Disabled/etc. |
The mapping for Status.Health
is summarized in
Table 320.
Table 320: Status.Health mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Status.Health | NVM Spec Property / Field: Smart
/ Health Information Log (Log Identifier 02h) / Critical Warning / the NVM
subsystem reliability has been degraded due to significant media related errors
or any internal error that degrades NVM subsystem reliability NVM Spec: Section:Figure NVMe 2.0: Section 5.16.1.3, Figure 207 (Get Log Page – SMART / Health Information Log), Byte 00 (Critical Warning), Bit 02 |
Type | Resource.Health | 8 Bit value |
Description | The health state of this resource in the absence of its dependent resources. | Indicates if the NVM subsystem reliability has been degraded due to significant media related errors or any internal error that degrades NVM subsystem reliability |
LongDescription | This property shall represent the health state of the resource without considering its dependent resources. The values shall conform to those defined in the Redfish Specification. | Indicates if the NVM subsystem reliability has been degraded due to significant media related errors or any internal error that degrades NVM subsystem reliability |
Mandatory | Mandatory | Yes |
Notes | Possible Values: OK / Warning / Critical | Implementations of more complex systems, such as opaque arrays and other similar devices with an NVMe front end, may also map this property to the device’s concepts of OK/Warning/Critical. |
The mapping for Status.HealthRollup
is summarized in
Table 321.
Table 321: Status.HealthRollup mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Status.HealthRollup | N/A |
Type | Resource.Health | N/A |
Description | The overall health state from the view of this resource. | N/A |
LongDescription | This property shall represent the health state of the resource and its dependent resources. The values shall conform to those defined in the Redfish Specification. | N/A |
Mandatory | Mandatory | |
Notes | Possible Values: OK / Warning / Critical See [Swordfish | |
Specification](#Normative_References) for more information regarding Status.HealthRollup |
The mapping for StorageControllers
is summarized in
Table 322.
Table 322: StorageControllers mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | StorageControllers | N/A |
Type | Storage.StorageControllers | N/A |
Description | The set of storage controllers that this resource represents. | N/A |
LongDescription | This property shall contain a set of the storage controllers that this resource represents. | N/A |
Mandatory | Do Not Implement | |
Notes | Deprecated for NVMe use - replaced by Controllers (type StorageController.StorageController). |
The mapping for StorageGroups
is summarized in
Table 323.
Table 323: StorageGroups mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | StorageGroups | N/A |
Type | StorageGroup.StorageGroup | N/A |
Description | All of the storage groups, each of which contains a set of volumes and endpoints that are managed as a group for mapping and masking, that belong to this storage subsystem. | N/A |
LongDescription | This property shall contain a link to a resource collection of type StorageGroupsCollection. This property shall be used when implementing mapping and masking. | N/A |
Mandatory | Do Not Implement | |
Notes | N/A for NVMe use cases. Deprecated by Connections. |
The mapping for StoragePools
is summarized in
Table 324.
Table 324: StoragePools mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | StoragePools | N/A |
Type | StoragePoolCollection.StoragePoolCollection | N/A |
Description | The set of all storage pools that are allocated by this storage subsystem. A storage pool is the set of storage capacity that can be used to produce volumes or other storage pools. | N/A |
LongDescription | This property shall contain a link to a resource collection of type StoragePoolCollection. This property shall be used when an abstraction of media, rather than references to individual media, are used as the storage data source. | N/A |
Mandatory | Optional; Use when the subsystem contains endurance groups and sets, represented by StoragePool resources. | |
Notes | This collection contains a pointer to the resources in the StoragePool collection, including all defined endurance groups and sets in the subsystem. |
The mapping for TargetConfigurationLockLevel
is summarized in
Table 325.
Table 325: TargetConfigurationLockLevel mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | TargetConfigurationLockLevel | N/A |
Type | enum (TargetConfigurationLockLevel) | N/A |
Description | Indicates the target configuration lock level for
the drive resource. This corresponds to the ConfigurationLock and
ConfigurationLockState for the storage subsystem type. |
N/A |
LongDescription | This property shall indicate the target
configuration lock level for the drive resource. This corresponds to the
ConfigurationLock and ConfigurationLockState for the
storage subsystem type. |
N/A |
Mandatory | Optional; Use when the subsystem contains endurance groups and sets, represented by StoragePool resources. | |
Notes | The Standard enum is defined as the
standard configuration lock level, corresponding to applying firmware, and
updating security keys. See section
Mapping NVMe Command and Feature Lockdown to "ConfigurationLocked"
for detailed behavior and mapping description. |
The mapping for Volumes
is summarized in
Table 326.
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Volumes | N/A |
Type | VolumeCollection.VolumeCollection | N/A |
Description | The set of volumes instantiated by this storage subsystem. | N/A |
LongDescription | This property shall contain a link to a Resource of type VolumeCollection that contains the set of storage volumes allocated to this instance of an storage subsystem. | N/A |
Mandatory | Optional Required for NVMe drives, as well as opaque arrays and other similar devices with an NVMe front end. |
|
Notes | This is a collection of Namespaces that belong to this NVM Subsystem. Refer to the Volume schema for details of the instance information. |
The Redfish/Swordfish StorageControllers schema is used to represent an NVM Controller.
There are three different types of NVM Controllers: Admin, Discovery, and IO.
The following mockup shows a sample representation of the StorageController schema used to represent an Admin Controller.
{
"@odata.type": "#StorageController.v1_3_0.StorageController",
"Name": "NVMe Admin Controller",
"Description": "Single NVMe Admin Controller for in-band admin command access.",
"Status": {
"State": "Enabled",
"Health": "OK"
},
"Id": "NVMeAdminController",
"Model": "NVMe Connect Array",
"SerialNumber": "NVME123456",
"PartNumber": "NVM44",
"FirmwareVersion": "1.0.0",
"SupportedControllerProtocols": [
"PCIe"
],
"NVMeControllerProperties": {
"ControllerType": "Admin",
"NVMeVersion": "1.3",
"NVMeControllerAttributes": {
"SupportsSQAssociations": false,
"SupportsTrafficBasedKeepAlive": false,
"SupportsExceedingPowerOfNonOperationalState": false,
"Supports128BitHostId": false,
"SupportsReservations": false
},
"NVMeSMARTCriticalWarnings": {
"MediaInReadOnly": false,
"OverallSubsystemDegraded": false,
"SpareCapacityWornOut": false
},
"MaxQueueSize": 1
},
"Links": {
"NetworkDeviceFunctions": [
{
"@odata.id": "/redfish/v1/Chassis/NVMeOpaqueArray/NetworkAdapters/OpaqueArrayNetworkAdapter/NetworkDeviceFunctions/11100"
},
{
"@odata.id": "/redfish/v1/Chassis/NVMeOpaqueArray/NetworkAdapters/OpaqueArrayNetworkAdapter/NetworkDeviceFunctions/11101"
},
{
"@odata.id": "/redfish/v1/Chassis/NVMeOpaqueArray/NetworkAdapters/OpaqueArrayNetworkAdapter/NetworkDeviceFunctions/11102"
},
{
"@odata.id": "/redfish/v1/Chassis/NVMeOpaqueArray/NetworkAdapters/OpaqueArrayNetworkAdapter/NetworkDeviceFunctions/11103"
}
]
},
"@odata.id": "/redfish/v1/Storage/OpaqueArray/Controllers/NVMeAdminController",
"@Redfish.Copyright": "Copyright 2015-2024 SNIA. All rights reserved."
}
The mapping for Actions.#StorageController.RunSelfTest
is
summarized in Table 327.
Table 327: Actions.#StorageController.RunSelfTest mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Actions.#StorageController.RunSelfTest | NVM Spec Property / Field: Device
Self-test Command NVM Spec: Section:Figure NVM Base Specification 2.0: Section 5.9 |
Type | Action (Special form of POST) | NVMe Administrative command |
Description | This action is used to initiate a self-test
against this controller. This action should return either the
ResourceSelfTestFailed or ResourceSelfTestCompleted
event. |
The Device Self-test command is used to start a device self-test operation or abort a device self-test operation |
LongDescription | This action is used to initiate a self-test
against this controller. This action should return either the
ResourceSelfTestFailed or ResourceSelfTestCompleted
event. |
The Device Self-test command is used to start a device self-test operation or abort a device self-test operation (refer to NVMe 2.0 Base Specification section 8.6). |
Mandatory | Optional | Optional |
Notes | The Device Self-test command is used specifically
to: a) start a short device self-test operation; b) start an extended device self-test operation; c) start a vendor specific device self-test operation; or d) abort a device self-test operation already in process. |
The mapping for Assembly
is summarized in
Table 328.
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Description | The Assembly schema defines an assembly. Assembly information contains details about a device, such as part number, serial number, manufacturer, and production date. It also provides access to the original data for the assembly. | N/A |
LongDescription | This Resource shall represent an assembly for a Redfish implementation. Assembly information contains details about a device, such as part number, serial number, manufacturer, and production date. It also provides access to the original data for the assembly. | N/A |
Mandatory | Optional Do Not Implement for NVMe drives, or devices with NVMe front ends, such as opaque arrays. |
|
Notes |
The mapping for AssetTag
is summarized in
Table 329.
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | AssetTag | N/A |
Type | Edm.String | N/A |
Description | The user-assigned asset tag for this storage controller. | N/A |
LongDescription | This property shall track the storage controller for inventory purposes. | N/A |
Mandatory | Opitonal Do Not Implement for NVMe Drives, or devices with NVMe front ends, such as opaque arrays. |
|
Notes |
The mapping for CacheSummary
is summarized in
Table 330.
Table 330: CacheSummary mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | CacheSummary | N/A |
Type | ComplexType | N/A |
Description | The cache memory of the storage controller in general detail. | N/A |
LongDescription | This property shall contain properties that describe the cache memory for this resource. | N/A |
Mandatory | Do Not Implement | |
Notes | This property exists for hw cache reporting in other RF/SF use cases. Not used in NVMe controllers. |
The mapping for ControllerRates
is summarized in
Table 331.
Table 331: ControllerRates mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | ControllerRates | N/A |
Type | ComplexType | N/A |
Description | This property describes the various controller rates used for processes such as volume rebuild or consistency checks. | N/A |
LongDescription | This object shall contain all the rate settings available on the controller. | N/A |
Mandatory | Do Not Implement | |
Notes |
The mapping for Description
is summarized in
Table 332.
Table 332: Description mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Description | N/A |
Type | String | N/A |
Description | The description of this resource. | N/A |
LongDescription | This object represents the description of this resource. The resource values shall comply with the Redfish Specification-described requirements. | N/A |
Mandatory | Optional | |
Notes | In Redfish, Description is a read-only field. | Return the common description: “An NVM Admin Controller exposes capabilities that allow a host to manage an NVM subsystem. Admin controllers support commands providing management capabilities but does not provide IO access.” |
The mapping for FirmwareVersion
is summarized in
Table 333.
Table 333: FirmwareVersion mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | FirmwareVersion | NVM Spec Property / Field:
Identify Command / Identify Controller Data structure (CNS 01h): Firmware
Revision (FR) NVM Spec: Section:Figure NVMe 2.0: Section 5.17.2.1:Figure 275: Bytes 71:64 |
Type | String | String |
Description | The firmware version of this storage controller. | The currently active firmware revision for the domain of which this controller is a part. |
LongDescription | This property shall contain the firmware version as defined by the manufacturer for the associated storage controller. | The currently active firmware revision for the domain of which this controller is a part. |
Mandatory | Mandatory | Mandatory |
Notes |
The mapping for Identifiers
is summarized in
Table 334.
Table 334: Identifiers mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Identifiers | N/A |
Type | Collection(Resource.Identifier) | N/A |
Description | The Durable names for the storage controller. | N/A |
LongDescription | This property shall contain a list of all known durable names for the associated storage controller. | N/A |
Mandatory | Optional | |
Notes | Recommend not implementing. There isn’t a good mapping for these in the NVMe spec to a property that has an appropriate / mapping to a durable name format. |
The mapping for Identifiers.DurableName
is summarized in
Table 335.
Table 335: Identifiers.DurableName mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Identifiers.DurableName | N/A |
Type | Variable - see notes | N/A |
Description | The world-wide, persistent name of the resource. | N/A |
LongDescription | This property shall contain the world-wide unique identifier for the resource. The string shall be in the Identifier.DurableNameFormat property value format. | N/A |
Mandatory | Optional | |
Notes | Recommend not implementing. There isn’t a good mapping for these in the NVMe spec to a property that has an appropriate / mapping to a durable name format. |
The mapping for Identifiers.DurableNameFormat
is summarized in
Table 336.
Table 336: Identifiers.DurableNameFormat mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Identifiers.DurableNameFormat | N/A |
Type | enum (DurableNameFormat) | N/A |
Description | The format of the durable name property. | N/A |
LongDescription | This property shall represent the format of the DurableName property. | N/A |
Mandatory | Do Not Implement. | |
Notes | There isn’t a good mapping for these in the NVMe spec to a property that has an appropriate / mapping to a durable name format. |
The mapping for Links.AttachedVolumes
is summarized in
Table 337.
Table 337: Links.AttachedVolumes mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Links.AttachedVolumes | N/A |
Type | Collection(Volume.Volume) | N/A |
Description | An array of links to volumes that are attached to this controller instance. | N/A |
LongDescription | This property shall contain a link to the Resources of type Volume that are attached to this instance of storage controller. | N/A |
Mandatory | Optional Do Not Implement for admin controllers. |
|
Notes |
The mapping for Links.NetworkDeviceFunctions
is summarized in Table
338.
Table 338: Links.NetworkDeviceFunctions mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Links.NetworkDeviceFunctions | N/A |
Type | Collection(NetworkDeviceFunction.NetworkDeviceFunction) | N/A |
Description | The network device functions that provide connectivity to this controller. | N/A |
LongDescription | This property shall contain an array of links to resources of type NetworkDeviceFunction that represent the devices that provide connectivity to this controller. | N/A |
Mandatory | Optional. Recommended for NVMe-oF configurations and more complex devices with NVMe front ends, such as opaque arrays. | |
Notes |
The mapping for Location
is summarized in
Table 339.
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Location | N/A |
Type | Collection(Resource.Location) | N/A |
Description | The location of the storage controller. | N/A |
LongDescription | This property shall contain location information of the associated storage controller. | N/A |
Mandatory | Optional Do Not Implement for NVM Drives or more complex devices with an NVMe front end, such as opaque arrays. |
|
Notes |
The mapping for Manufacturer
is summarized in
Table 340.
Table 340: Manufacturer mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Manufacturer | NVM Spec Property / Field:
Identify Command / Identify Controller Datastructure (CNS 01h) / PCI Vendor ID
(VID) NVM Spec: Section: Figure NVMe 2.0: Section 5.17.2.1: Figure 275: Bytes 00:01 |
Type | String | 16-bit number in little endian format. |
Description | The manufacturer of this storage controller. | The company vendor identifier |
LongDescription | This property shall contain the name of the organization responsible for producing the storage controller. This organization might be the entity from whom the storage controller is purchased, but this is not necessarily true. | The company vendor identifier that is assigned by the PCI SIG. This is the same value as reported in the ID register |
Mandatory | Optional | NVMe: Mandatory NVMe-oF: DNI |
Notes | End clients expect to see the name of the company (e.g,; Contoso, BestVendor). While the value may be filled from the IdentifyController PCI Vendor ID, it would be preferable to have this filled with the actual string value of the company name. |
The mapping for Model
is summarized in Table
341.
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Model | NVM Spec Property / Field:
Identify Command / Identify Controller Datastructure (CNS 01h) / Model Number
(MN) NVM Spec: Section: Figure NVMe 2.0: Section 5.17.2.1: Figure 275: Bytes 24:63 |
Type | String | String |
Description | The model number for the storage controller. | Model Number (MN) |
LongDescription | This property shall contain the name by which the manufacturer generally refers to the storage controller. | Contains the model number for the NVM subsystem that is assigned by the vendor as an ASCII string. Refer to NVMe 2.0 Section 7.10 for unique identifier requirements. Refer to NVMe 2.0 Section 1.5 for ASCII string requirements |
Mandatory | Recommended | Mandatory |
Notes |
The mapping for Name
is summarized in Table
342.
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Name | NVM Spec Property / Field:
Identify Command / Identify Controller Data Data structure (CNS 01h) /
Controller ID (CNTLID) NVM Spec: Section:Figure NVMe 2.0: Section 5.17.2.1: Figure 275: Bytes 78:79 |
Type | String | 16-bit hex value |
Description | The name of the resource or array member. | Controller ID |
LongDescription | This object represents the name of this resource or array member. The resource values shall comply with the Redfish Specification-described requirements. This string value shall be of the ‘Name’ reserved word format. | The NVM subsystem unique controller identifier associated with the controller. |
Mandatory | Mandatory | Mandatory |
Notes | In Redfish, Name is a read-only field. | Map the CNTLID field to a string with the format: “0xABCD” |
The mapping for NVMeControllerProperties.ControllerType
is
summarized in Table 343.
Table 343: NVMeControllerProperties.ControllerType mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeControllerProperties.ControllerType | NVM Spec Property / Field:
Identify Command / Identify Controller Datastructure (CNS 01h) / Controller Type
(CNTRL_TYPE) NVM Spec: Section:Figure NVMe 2.0: Section 5.17.2.1: Figure 275: Bytes 111 |
Type | StorageController.v1_0_0.NVMeControllerType | Hex value |
Description | This property specifies the type of NVMe Controller. | Controller Type |
LongDescription | This property shall specify the type of NVMe Controller. | This field specifies the controller type. Values
reported: 0h Reserved (controller type not reported) 1h I/O controller 2h Discovery controller 3h Administrative controller |
Mandatory | Mandatory | Mandatory |
Notes | This property must be used to specify the type of NVMe Controller. For an admin controller, set to Admin. | For Admin Controller - value in Identify Controller is ‘03h’. Return “Admin” |
The mapping for NVMeControllerProperties.NVMeVersion
is
summarized in Table 344.
Table 344: NVMeControllerProperties.NVMeVersion mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeControllerProperties.NVMeVersion | NVM Spec Property / Field:
Identify Command / Identify Controller Datastructure (CNS 01h) / Version (VER)
NVM Spec: Section:Figure NVMe 2.0: Section 5.17.2.1: Figure 275: Bytes 80:83 |
Type | String | 32-bit value. |
Description | The version of the NVMe Base Specification supported. | Version (VER) |
LongDescription | This property shall specify the type of NVMe Controller. | Indicates the major, minor, and tertiary version
of the NVM Express base specification that the controller implementation
supports. bits 31:16 indicate the major version bits 15:08 indicate the minor version bits 07:00 indicate the tertiary version number |
Mandatory | Optional | Mandatory |
Notes | Implementations compliant to NVM Express Base Specification revision 1.2 or later shall report a non-zero value in this field. Valid versions of the specification are: 1.0, 1.1, 1.2, 1.2.1, 1.3, 1.4, and 2.0. |
The mapping for
NVMeControllerProperties.NVMeControllerAttributes.ReportsNamespaceGranularity
is summarized in Table
345.
Table 345: NVMeControllerProperties.NVMeControllerAttributes.ReportsNamespaceGranularity mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeControllerProperties.NVMeControllerAttributes.ReportsNamespaceGranularity | NVM Spec Property / Field:
Identify Command / Identify Controller Datastructure (CNS 01h) / Controller
Attributes (CTRATT): Bit 07 (Namespace Granularity) NVM Spec: Section:Figure NVMe 2.0: Section 5.17.2.1: Figure 275: Bytes 96:99: Bit 07 |
Type | Boolean | Single bit (bool) |
Description | Indicates whether or not the controller supports reporting of Namespace Granularity. | Indicates whether or not the controller supports reporting of Namespace Granularity. |
LongDescription | This property shall indicate whether or not the controller supports reporting of Namespace Granularity. | This property shall indicate whether or not the controller supports reporting of Namespace Granularity. |
Mandatory | Optional Recommended for NVM Drives and more complex devices with NVMe front ends, such as opaque arrays. |
|
Notes |
The mapping for
NVMeControllerProperties.NVMeControllerAttributes.SupportsSQAssociations
is summarized in Table 346.
Table 346: NVMeControllerProperties.NVMeControllerAttributes.SupportsSQAssociations Mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeControllerProperties.NVMeControllerAttributes.SupportsSQAssociations | NVM Spec Property / Field:
Identify Command / Identify Controller Datastructure (CNS 01h) / Controller
Attributes (CTRATT): Bit 08 (SQ Associations) NVM Spec: Section:Figure NVMe 2.0: Section 5.17.2.1: Figure 275: Bytes 96:99: Bit 08 |
Type | Boolean | Single bit (bool) |
Description | Indicates whether or not the controller supports SQ Associations. | Indicates whether or not the controller supports SQ Associations. |
LongDescription | This property shall indicate whether or not the controller supports SQ Associations. | This property shall indicate whether or not the controller supports SQ Associations. |
Mandatory | Optional | Mandatory |
Notes |
The mapping for
NVMeControllerProperties.NVMeControllerAttributes.TrafficBasedKeepAlive
is summarized in Table 347.
Table 347: NVMeControllerProperties.NVMeControllerAttributes.SupportsTrafficBasedKeepAlive mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeControllerProperties.NVMeControllerAttributes.SupportsTrafficBasedKeepAlive | NVM Spec Property / Field:
Identify Command / Identify Controller Datastructure (CNS 01h) / Controller
Attributes (CTRATT): Bit 06 (Traffic Based Keep Alive Support – TBKAS)
NVM Spec: Section:Figure NVMe 2.0: Section 5.17.2.1: Figure 275: Bytes 96:99: Bit 06 |
Type | Boolean | Single bit (bool) |
Description | Indicates whether or not the controller supports restarting KeepAlive Timer if traffic is processed from an admin command or IO during KeepAlive Timeout interval. | Indicates if the the host and controller are allowed to restart the Traffic Based Keep Alive Timer in the presence of Admin or I/O command processing. |
LongDescription | This property shall indicate whether or not the controller supports restarting KeepAlive Timer if traffic is processed from an admin command or IO during KeepAlive Timeout interval. | This property shall indicate whether or not the the host and controller are allowed to restart the Traffic Based Keep Alive Timer in the presence of Admin or I/O command processing. |
Mandatory | Optional Mandatory for Ethernet-Attach Drives; Mandatory for more complex devices with NVMe front ends, such as opaque arrays. |
Mandatory |
Notes |
The mapping for
NVMeControllerProperties.NVMeControllerAttributes.SupportsExceedingPowerOfNonOperationalState
is summarized in Table 348.
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeControllerProperties.NVMeControllerAttributes. SupportsExceedingPowerOfNonOperationalState |
NVM Spec Property / Field:
Identify Command / Identify Controller Datastructure (CNS 01h) / Controller
Attributes (CTRATT): Bit 01 (Non-Operational Power State Permissive Mode)
NVM Spec: Section:Figure NVMe 2.0: Section 5.17.2.1: Figure 275: Bytes 96:99: Bit 01 |
Type | Boolean | Single bit (bool) |
Description | Indicates whether or not the controller supports exceeding Power of NonOperational State in order to execute controller initiated background operations in a non-operational power state. | Indicates whether or not the controller supports host control of whether the controller may temporarily exceed the power of a non-operational power state for the purpose of executing controller initiated background operations in a non-operational power state (i.e., Non-Operational Power State Permissive Mode supported). |
LongDescription | This property shall indicate whether or not the controller supports exceeding Power of NonOperational State in order to execute controller initiated background operations in a non-operational power state. | This property indicates whether or not the controller supports host control of whether the controller may temporarily exceed the power of a non-operational power state for the purpose of executing controller initiated background operations in a non-operational power state (i.e., Non-Operational Power State Permissive Mode supported). |
Mandatory | Optional | Mandatory |
Notes |
The mapping for
NVMeControllerProperties.NVMeControllerAttributes.Supports128BitHostId
is summarized in Table 349.
Table 349: NVMeControllerProperties.NVMeControllerAttributes.Supports128BitHostId mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeControllerProperties.NVMeControllerAttributes.Supports128BitHostId | NVM Spec Property / Field:
Identify Command / Identify Controller Datastructure (CNS 01h) / Controller
Attributes (CTRATT): Bit 00 NVM Spec: Section:Figure NVMe 2.0: Section 5.17.2.1: Figure 275: Bytes 96:99: Bit 00 |
Type | Boolean | Single bit (bool) |
Description | Indicates whether or not the controller supports a 128-bit Host Identifier. | Indicates whether or not the controller supports a 128-bit Host Identifier. |
LongDescription | This property shall indicate whether or not the controller supports a 128-bit Host Identifier. | This property shall indicate whether or not the controller supports a 128-bit Host Identifier. |
Mandatory | Mandatory | Mandatory |
Notes |
The mapping for NVMeControllerProperties.MaxQueueSize
is
summarized in Table 350.
Table 350: NVMeControllerProperties.ANACharacteristics mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeControllerProperties.MaxQueueSize | NVM Spec Property / Field:
Property Get Command / Controller Capabilities (CAP) - Offset 0h / Maximum Queue
Entries Supported (MQES) NVM Spec: Section:Figure NVMe 2.0: Section 3.1.3.1: Figure 36 : Bits 15:00 |
Type | Int64 | 16-bit value |
Description | Indicates the maximum individual queue size that an NVMe IO Controller supports. | Indicates the maximum individual queue size that the controller supports. |
LongDescription | This property shall contain the maximum individual queue entry size supported per queue. This is a zero-based value, where the minimum value is one, indicating two entries. | Indicates the maximum individual queue size that the controller supports. This is a 0’s based value. The minimum value is 1h, indicating two entries. |
Mandatory | Optional Mandatory for more complex devices with NVMe front ends, such as opaque arrays. |
Mandatory |
Notes | For PCIe, this applies to both submission and completion queues. For NVMe-oF, this applies to only submission queues. | For NVMe over PCIe implementations, this value
applies to the I/O Submission Queues and I/O Completion Queues that the host
creates. For NVMe over Fabrics implementations, this value applies to only the I/O Submission Queues that the host creates. |
The mapping for NVMeControllerProperties.ANACharacteristics
is
summarized in Table 351.
Table 351: NNVMeControllerProperties.ANACharacteristics mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeControllerProperties.ANACharacteristics | NVM Spec Property / Field:
Asymmetric Namespace Access Log (Log ID 0ch) NVM Spec: Section:Figure NVMe 2.0: Section 5.16.1.13: Figures 221 and 222 |
Type | Collection(StorageController.v1_0_0.ANACharacteristics) | Log Page. |
Description | This property contains the combination of ANA type and volume information. | This log consists of a header describing the log and descriptors containing the asymmetric namespace access information for ANA Groups |
LongDescription | This property shall contain the combination of ANA type and volume information. | This log consists of a header describing the log and descriptors containing the asymmetric namespace access information for ANA Groups that contain namespaces that are attached to the controller processing the command. ANA Group Descriptors shall be returned in ascending ANA Group Identifier order |
Mandatory | Do Not Implement | Prohibited |
Notes |
The mapping for
NVMeControllerProperties.NVMeSMARTCriticalWarnings.OverallSystemDegraded
is summarized in Table 352.
Table 352: NVMeControllerProperties.NVMeSMARTCriticalWarnings.OverallSystemDegraded mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeControllerProperties.NVMeSMARTCriticalWarnings.OverallSystemDegraded | NVM Spec Property / Field: SMART
/ Health Information Log (Log ID 02h) / Critical Warning / Subsystem Reliability
has been degraded NVM Spec: Section:Figure NVMe 2.0: Section 5.16.1.3: Figure 207: Bytes 00, Bits 02 |
Type | Boolean | Single bit (bool) |
Description | Indicates that the NVM subsystem reliability has been compromised. | Indicates that the NVM subsystem reliability has been degraded due to significant media related errors or any internal error that degrades NVM subsystem reliability. |
LongDescription | This property shall indicate that the NVM subsystem reliability has been compromised. | This property Indicates that the NVM subsystem reliability has been degraded due to significant media related errors or any internal error that degrades NVM subsystem reliability. |
Mandatory | Mandatory | Optional |
Notes |
The mapping for
NVMeControllerProperties.NVMeSMARTCriticalWarnings.PowerBackupFailed
is summarized in Table
353.
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeControllerProperties.NVMeSMARTCriticalWarnings.PowerBackupFailed | NVM Spec Property / Field: SMART
/ Health Information Log (Log ID 02h) / Critical Warning / volatile memory
backup device has failed NVM Spec: Section:Figure NVMe 2.0: Section 5.16.1.3: Figure 207: Bytes 00, Bits 04 |
Type | Boolean | Single bit (bool) |
Description | Indicates that the volatile memory backup device has failed. | Indicates that the volatile memory backup device has failed. |
LongDescription | This property shall indicate that the volatile memory backup device has failed. | This warning indicates that the volatile memory backup device has failed. |
Mandatory | Optional Recommended for NVM Drives. Required for more complex devices with NVMe front ends, such as opaque arrays. |
Optional |
Notes | This field is only valid if the controller has a volatile memory backup solution. |
The mapping for SKU
is summarized in Table
354.
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | SKU | N/A |
Type | Edm.String | N/A |
Description | The SKU for this storage controller. | N/A |
LongDescription | This property shall contain the stock-keeping unit number for this storage storage controller. | N/A |
Mandatory | Do Not Implement | |
Notes |
The mapping for SpeedGbps
is summarized in
Table 355.
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | SpeedGbps | N/A |
Type | Decimal | N/A |
Description | The maximum speed of the storage controller’s device interface. | N/A |
LongDescription | This property shall represent the maximum supported speed of the storage bus interface, in Gbit/s. The specified interface connects the controller to the storage devices, not the controller to a host. For example, SAS bus not PCIe host bus. | N/A |
Mandatory | Do Not Implement | |
Notes |
The mapping for Status.Health
is summarized in
Table 356.
Table 356: Status.Health mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Status.Health | NVM Spec Property / Field:
Property Get command / Controller Status (CSTS): - Offset 1Ch NVM Spec: Section:Figure NVMe 2.0: Section 3.1.3.6: Figure 47 NVM Spec Property / Field: Get Log Page command / SMART/Health Information Log (Log Identifier 02h) NVM Spec: Section:Figure NVMe 2.0: Section 5.16.1.3: Figure 207 |
Type | Resource.Health | 32-bit value |
Description | The health state of this resource in the absence of its dependent resources. | This field indicates critical warnings for the state of the controller from both the SMART & general health information log and the Controller Status Property |
LongDescription | This property shall represent the health state of the resource without considering its dependent resources. The values shall conform to those defined in the Redfish Specification. | This field indicates critical warnings for the state of the controller from the SMART and general health information . The information provided is over the life of the controller and is retained across power cycles. |
Mandatory | Mandatory | Optional |
Notes | Possible Values: OK / Warning / Critical | This comes from CSTS Controller Status.
Redfish/Swordfish “OK” corresponds to NVMe/NVMe-oF ‘Ready’ (RDY) bit set to ‘1’ and no warnings in the CSTS or SMART/Health information log page Redfish/Swordfish “Warning” corresponds to “Volatile Memory Backup Device has failed”, “NVM subsystem reliability has been degraded”, “Temperature greater than or equal to an over temperature threshold”, “temperature less than or equal to an under temperature threshold”, or “available spare capacity has fallen below the threshold” Redfish/Swordfish “Critical” corresponds to NVMe/NVMe-oF ‘Controller Fatal Status’ (CSTS.CFS) bit set to ‘1’ which indicates that a serious error condition has occurred. |
The mapping for Status.State
is summarized in
Table 357.
Table 357: Status.State mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Status.State | NVM Spec Property / Field:
Property Get Command / CSTS – Controller Status (Offset 1Ch) NVM Spec: Section:Figure NVMe 2.0: Section 3.1.3.6: Figure 47 |
Type | Resource.State (enum) | 32-bit value |
Description | The known state of the resource, such as, enabled. | Controller Status |
LongDescription | This property shall indicate whether and why this component is available. Enabled indicates the resource is available. Disabled indicates the resource has been intentionally made unavailable but it can be enabled. Offline indicates the resource is unavailable intentionally and requires action to make it available. InTest indicates that the component is undergoing testing. Starting indicates that the resource is becoming available. Absent indicates the resource is physically unavailable. | Controller Status |
Mandatory | Mandatory | Mandatory |
Notes | Possible values: Enabled / Disabled / StandbyOffline / StandbySpare / InTest / Starting / ABsent / UnavaialableOffline / Deferring / Quiesced / Updating / Qualified | Ready (CSTS.RDY) maps to Enabled, Shutdown
(CSTS.SHST) value will tell you if shutdown is in progress or complete
(StandbyOffline), Processing Paused (CSTS.PP) maps to Deferring. If both Ready and Shutdown are indicated, then the system should indicate StandbyOffline. If both Ready and Processing Paused are indicated, then the system should indicate Deferring. |
The mapping for SupportedControllerProtocols
is summarized in
Table 358.
Table 358: SupportedControllerProtocols mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | SupportedControllerProtocols | N/A |
Type | Collection(Protocol.Protocol) | N/A |
Description | The supported set of protocols for communicating to this storage controller. | N/A |
LongDescription | This property shall contain the supported set of protocols for communicating to this storage controller. | N/A |
Mandatory | Mandatory | |
Notes | This is an array of protocols supported by the StorageController. This can be set to values including, but not limited to, PCIe, RDMA, NVMe-oF, RoCE, RoCEv2, and InfiniBand. |
The mapping for SupportedDeviceProtocols
is summarized in
Table 359.
Table 359: SupportedDeviceProtocols mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | SupportedDeviceProtocols | N/A |
Type | Collection(Protocol.Protocol) | N/A |
Description | The protocols that the storage controller can use to communicate with attached devices. | N/A |
LongDescription | This property shall contain the set of protocols this storage controller can use to communicate with attached devices. | N/A |
Mandatory | Do Not Implement | |
Notes |
The following mockup shows a sample representation of the StorageController schema used to represent a Discovery Controller.
{
"@odata.id": "/redfish/v1/Storage/NVMeoF-Discovery/Controllers/NVMeDiscoveryController",
"@odata.type": "#StorageController.v1_7_0.StorageController",
"Id": "9",
"Name": "NVMe Discovery Controller",
"Description": "An NVM IO controller is a general-purpose controller that provides access to logical block data and metadata stored on an NVM subsystem’s non-volatile storage medium. IO Controllers may also support management capabilities.",
"Status": {
"State": "Enabled",
"Health": "OK"
},
"Id": "NVMeDiscoveryController",
"SupportedControllerProtocols": [
"TCP", "RoCEv2", "FC"
],
"SupportedDeviceProtocols": [
"NVMeOverFabrics"
],
"NVMeControllerProperties": {
"NVMeVersion": "1.3",
"NVMeControllerAttributes": {
"ReportsUUIDList": false,
"SupportsSQAssociations": false,
"ReportsNamespaceGranularity": false,
"SupportsTrafficBasedKeepAlive": false,
"SupportsPredictableLatencyMode": false,
"SupportsEnduranceGroups": false,
"SupportsReadRecoveryLevels": false,
"SupportsNVMSets": false,
"SupportsExceedingPowerOfNonOperationalState": false,
"Supports128BitHostId": false
}
},
"Links": {
"Endpoints": [{
"@odata.id": "/redfish/v1/Fabrics/NVMe-oF/Endpoints/NVMeSubsystemEndpoint1"
}],
"NVMeDiscoveredSubsystems": [{
"@odata.id": "/redfish/v1/Storage/NVMeoF-SS1"
},
{
"@odata.id": "/redfish/v1/Storage/NVMeoF-SS2"
}
]
},
"@Redfish.Copyright": "Copyright 2015-2024 SNIA. All rights reserved."
}
The mapping for Assembly
is summarized in
Table 360.
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Assembly | N/A |
Type | ComplexType | N/A |
Description | The Assembly schema defines an assembly. Assembly information contains details about a device, such as part number, serial number, manufacturer, and production date. It also provides access to the original data for the assembly. | N/A |
LongDescription | This Resource shall represent an assembly for a Redfish implementation. Assembly information contains details about a device, such as part number, serial number, manufacturer, and production date. It also provides access to the original data for the assembly. | N/A |
Mandatory | Optional Do Not Implement for NVMe drives, or devices with NVMe front ends, such as opaque arrays. |
|
Notes |
The mapping for AssetTag
is summarized in
Table 361.
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | AssetTag | N/A |
Type | Edm.String | N/A |
Description | The user-assigned asset tag for this storage controller. | N/A |
LongDescription | This property shall track the storage controller for inventory purposes. | N/A |
Mandatory | Optional Do Not Implement for NVMe Drives, or devices with NVMe front ends, such as opaque arrays. |
|
Notes |
The mapping for CacheSummary
is summarized in
Table 362.
Table 362: CacheSummary mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | CacheSummary | N/A |
Type | ComplexType | N/A |
Description | The cache memory of the storage controller in general detail. | N/A |
LongDescription | This property shall contain properties that describe the cache memory for this resource. | N/A |
Mandatory | Do Not Implement | |
Notes | This property exists for hw cache reporting in other RF/SF use cases. Not used in NVMe controllers. |
The mapping for ControllerRates
is summarized in
Table 363.
Table 363: ControllerRates mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | ControllerRates | N/A |
Type | ComplexType | N/A |
Description | This property describes the various controller rates used for processes such as volume rebuild or consistency checks. | N/A |
LongDescription | This object shall contain all the rate settings available on the controller. | N/A |
Mandatory | Do Not Implement | |
Notes |
The mapping for Description
is summarized in
Table 364.
Table 364: Description mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Description | N/A |
Type | String | N/A |
Description | The description of this resource. | N/A |
LongDescription | This object represents the description of this resource. The resource values shall comply with the Redfish Specification-described requirements. | N/A |
Mandatory | Optional | |
Notes | In Redfish, Description is a read-only field. | Return the common description: “An NVM Discovery Controller exposes capabilities that allow a host to retrieve information required to connect to one or more NVM Subsystems. Discovery controllers only support commands providing discovery capabilities; they do not provide IO or management access.” |
The mapping for FirmwareVersion
is summarized in
Table 365.
Table 365: FirmwareVersion mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | FirmwareVersion | NVM Spec Property / Field:
Identify Command / Identify Controller Datastructure (CNS 01h): Firmware
Revision (FR) NVM Spec: Section:Figure NVMe 2.0: Section 5.17.2.1:Figure 275: Bytes 71:64 |
Type | String | String |
Description | The firmware version of this storage controller. | The currently active firmware revision for the domain of which this controller is a part. |
LongDescription | This property shall contain the firmware version as defined by the manufacturer for the associated storage controller. | The currently active firmware revision for the domain of which this controller is a part. |
Mandatory | Mandatory | Mandatory |
Notes | Return the currently active firmware revision information. |
The mapping for Identifiers
is summarized in
Table 366.
Table 366: Identifiers mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Identifiers | N/A |
Type | Collection(Resource.Identifier) | N/A |
Description | The Durable names for the storage controller. | N/A |
LongDescription | This property shall contain a list of all known durable names for the associated storage controller. | N/A |
Mandatory | Optional | |
Notes | Recommend not implementing. There isn’t a good mapping for these in the NVMe spec to a property that has an appropriate / mapping to a durable name format. |
The mapping for Identifiers.DurableName
is summarized in
Table 367.
Table 367: Identifiers.DurableName mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Identifiers.DurableName | N/A |
Type | Variable - see notes | N/A |
Description | The world-wide, persistent name of the resource. | N/A |
LongDescription | This property shall contain the world-wide unique identifier for the resource. The string shall be in the Identifier.DurableNameFormat property value format. | N/A |
Mandatory | Optional | |
Notes | Recommend not implementing. There isn’t a good mapping for these in the NVMe spec to a property that has an appropriate / mapping to a durable name format. |
The mapping for Identifiers.DurableNameFormat
is summarized in
Table 368.
Table 368: Identifiers.DurableNameFormat mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Identifiers.DurableNameFormat | N/A |
Type | enum (DurableNameFormat) | N/A |
Description | The Durable names for the storage controller. | N/A |
LongDescription | This property shall contain a list of the types for all known durable names for the associated storage controller. The type determines the length of the corresponding Namespace ID | N/A |
Mandatory | Optional | |
Notes | Recommend not implementing. There isn’t a good mapping for these in the NVMe spec to a property that has an appropriate / mapping to a durable name format. |
The mapping for Links.AttachedVolumes
is summarized in
Table 369.
Table 369: Links.AttachedVolumes mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Links.AttachedVolumes | N/A |
Type | Collection(Volume.Volume) | N/A |
Description | An array of links to volumes that are attached to this controller instance. | N/A |
LongDescription | This property shall contain a link to the Resources of type Volume that are attached to this instance of storage controller. | N/A |
Mandatory | Do Not Implement | |
Notes |
The mapping for Links.Endpoints
is summarized in
Table 370.
Table 370: Links.Endpoints mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Links.Endpoints | N/A |
Type | Collection(Endpoint.Endpoint) | N/A |
Description | An array of links to the endpoints that connect to this controller. | N/A |
LongDescription | This property shall contain an array of links to the Resources of type Endpoint associated with this controller. | N/A |
Mandatory | Mandatory | |
Notes |
The mapping for Links.Connections
is summarized in
Table 371.
Table 371: Links.Connections mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Links.Connections | N/A |
Type | Collection(Connection.Connection) | N/A |
Description | An array of links to volumes that are attached to this controller instance. | N/A |
LongDescription | This property shall contain a link to the Resources of type Volume that are attached to this instance of storage controller. | N/A |
Mandatory | Optional | |
Notes | This contains the information used to represented the allowed hosts. | This property contains pointers to the Connections objects. The information about allowed hosts is mapped to the Connections objects for NVMe-oF configurations. |
The mapping for Links.NetworkDeviceFunctions
is summarized in
Table 372.
Table 372: Links.NetworkDeviceFunctions mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Links.NetworkDeviceFunctions | N/A |
Type | Collection(NetworkDeviceFunction.NetworkDeviceFunction) | N/A |
Description | The network device functions that provide connectivity to this controller. | N/A |
LongDescription | This property shall contain an array of links to resources of type NetworkDeviceFunction that represent the devices that provide connectivity to this controller. | N/A |
Mandatory | Optional Recommended to implement for more complex devices with NVMe front ends, such as opaque arrays. |
|
Notes | For NVMe-oF configurations. |
The mapping for Links.NVMeDiscoveredSubsystems
is summarized in
Table 373.
Table 373: Links.NVMeDiscoveredSubsystems mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Links.NVMeDiscoveredSubsystems | NVM Spec Property / Field: NVMe
2.0 Base Specification: 5.16.1.23 Discovery Log Page (Log Identifier 70h) GetLogPage |
Type | Collection(Storage.Storage) | N/A |
Description | The NVMe subsystems discovered by this discovery controller. | The Discovery Log Page provides an inventory of NVM subsystems with which a host may attempt to form an association. The Discovery Log Page may be specific to the host requesting the log. |
LongDescription | This property shall contain an array of links to
resources of type Storage that represent the NVMe subsystems discovered by this
discovery controller. This property shall only be present if ControllerType in
NVMeControllerProperties contains Discovery . |
|
Mandatory | Mandatory | Mandatory |
Notes | This contains the list of all Subsystems discovered by this Discovery Controller. | The Discovery Log Page is persistent across power cycles. |
The mapping for Location
is summarized in
Table 374.
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Location | N/A |
Type | Collection(Resource.Location) | N/A |
Description | The location of the storage controller. | N/A |
LongDescription | This property shall contain location information of the associated storage controller. | N/A |
Mandatory | Optional Do Not Implement for NVM Drives, or more complex devices with NVMe front ends, such as opaque arrays. |
|
Notes |
The mapping for Manufacturer
is summarized in
Table 375.
Table 375: Manufacturer mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Manufacturer | N/A |
Type | String | N/A |
Description | The manufacturer of this storage controller. | N/A |
LongDescription | This property shall contain the name of the organization responsible for producing the storage controller. This organization might be the entity from whom the storage controller is purchased, but this is not necessarily true. | N/A |
Mandatory | Optional | Reserved (DNI) |
Notes | End clients expect to see the name of the company (e.g,; Contoso, BestVendor). While the value may be filled from the IdentifyController PCI Vendor ID or SubsystemID field, it would be preferable to have this filled with the actual string value of the company name. |
The mapping for Model
is summarized in Table
376.
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Model | N/A |
Type | String | N/A |
Description | The model number for the storage controller. | N/A |
LongDescription | This property shall contain the name by which the manufacturer generally refers to the storage controller. | N/A |
Mandatory | Do Not Implement | Reserved (DNI) for Discovery Controllers |
Notes |
The mapping for Name
is summarized in Table
377.
Redfish/Swordfish | ||
---|---|---|
Property | Name | NVM Spec Property / Field:
Identify Commmand / Identify Controller Datastructure (CNS 01h) / Controller ID
(CNTLID) NVM Spec: Section:Figure NVMe 2.0: Section 5.17.2.1: Figure 275: Bytes 78:79 |
Type | String | 16-bit hex value |
Description | The name of the resource or array member. | Controller ID |
LongDescription | This object represents the name of this resource or array member. The resource values shall comply with the Redfish Specification-described requirements. This string value shall be of the ‘Name’ reserved word format. | The NVM subsystem unique controller identifier associated with the controller. |
Mandatory | Mandatory | Mandatory |
Notes | In Redfish, Name is a read-only field. | Map the CNTLID field to a string with the format: “0xABCD” |
The mapping for NVMeControllerProperties.ControllerType
is
summarized in Table 378.
Table 378: NVMeControllerProperties.ControllerType mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeControllerProperties.ControllerType | NVM Spec Property / Field:
Identify Command / Identify Conntroller Datastructure (CNS 01h) / Controller
Type (CNTRL_TYPE) NVM Spec: Section:Figure NVMe 2.0: Section 5.17.2.1: Figure 275: Bytes 111 |
Type | StorageController.v1_0_0.NVMeControllerType | Hex value |
Description | This property specifies the type of NVMe Controller. | Controller Type |
LongDescription | This property shall specify the type of NVMe Controller. | This field specifies the controller type. Values
reported: 0h Reserved (controller type not reported) 1h I/O controller 2h Discovery controller 3h Administrative controller |
Mandatory | Mandatory | Mandatory |
Notes | This property must be used to specify the type of NVMe Controller. For a discovery controller, set to Discovery. | For Discovery Controller - value in Identify Controller is ‘02h’. Return “Discovery” |
The mapping for NVMeControllerProperties.NVMeVersion
is
summarized in Table 379.
Table 379: NVMeControllerProperties.NVMeVersion mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeControllerProperties.NVMeVersion | NVM Spec Property / Field:
Identify Command / Identify Controller Datastructure (CNS 01h) / Version (VER)
NVM Spec: Section:Figure NVMe 2.0: Section 5.17.2.1: Figure 275: Bytes 80:83 |
Type | String | 32-bit value. |
Description | The version of the NVMe Base Specification supported. | Version (VER) |
LongDescription | This property shall contain the version of the NVMe Base Specification supported. | Indicates the major, minor, and tertiary version of the NVM Express base specification that the controller implementation supports. |
Mandatory | Recommended Mandatory if NVMe version is 1.2 or later. |
Mandatory |
Notes | Implementations compliant to NVM Express Base
Specification revision 1.2 or later shall report a non-zero value in this field.
Valid versions of the specification are: 1.0, 1.1, 1.2, 1.2.1, 1.3, 1.4, and
2.0. bits 31:16 indicate the major version bits 15:08 indicate the minor version bits 07:00 indicate the tertiare version number |
The mapping for
NVMeControllerProperties.NVMeControllerAttributes.TrafficBasedKeepAlive
is summarized in Table 380.
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeControllerProperties.NVMeControllerAttributes.SupportsTrafficBasedKeepAlive | N/A |
Type | Boolean | N/A |
Description | Indicates whether or not the controller supports restarting KeepAlive Timer if traffic is processed from an admin command or IO during KeepAlive Timeout interval. | N/A |
LongDescription | This property shall indicate whether or not the controller supports restarting KeepAlive Timer if traffic is processed from an admin command or IO during KeepAlive Timeout interval. | N/A |
Mandatory | Do Not Implement | DNI (Reserved) |
Notes |
The mapping for
NVMeControllerProperties.NVMeControllerAttributes.SupportsExceedingPowerOfNonOperationalState
is summarized in Table 381.
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeControllerProperties.NVMeControllerAttributes.SupportsExceedingPowerOfNonOperationalState | N/A |
Type | Boolean | N/A |
Description | Indicates whether or not the controller supports exceeding Power of NonOperational State in order to execute controller initiated background operations in a non-operational power state. | N/A |
LongDescription | This property shall indicate whether or not the controller supports exceeding Power of NonOperational State in order to execute controller initiated background operations in a non-operational power state. | N/A |
Mandatory | Optional | DNI (Reserved)) |
Notes |
The mapping for
NVMeControllerProperties.NVMeControllerAttributes.Supports128BitHostId
is summarized in Table 382.
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeControllerProperties.NVMeControllerAttributes.Supports128BitHostId | N/A |
Type | Boolean | N/A |
Description | Indicates whether or not the controller supports a 128-bit Host Identifier. | N/A |
LongDescription | This property shall indicate whether or not the controller supports a 128-bit Host Identifier. | N/A |
Mandatory | Do Not Implement | DNI (Reserved) |
Notes |
The mapping for NVMeControllerProperties.MaxQueueSize
is
summarized in Table 383.
Table 383: NVMeControllerProperties.MaxQueueSize mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeControllerProperties.MaxQueueSize | NVM Spec Property / Field:
Property Get command / Controller Capabilities (CAP) - Offset 0h: Maximum Queue
Entries Supported (MQES) NVM Spec: Section:Figure NVMe 2.0: Section 3.1.3.1: Figure 36: Bits 15:00 |
Type | Int64 | 16-bit value |
Description | Indicates the maximum individual queue size that an NVMe IO Controller supports. | Indicates the maximum individual queue size that the controller supports. |
LongDescription | This property shall contain the maximum individual queue entry size supported per queue. This is a zero-based value, where the minimum value is one, indicating two entries. For PCIe, this applies to both submission and completion queues. For NVMe-oF, this applies to only submission queues. | indicates the maximum individual queue size that the controller supports. For NVMe over PCIe implementations, this value applies to the I/O Submission Queues and I/O Completion Queues that the host creates. For NVMe over Fabrics implementations, this value applies to only the I/O Submission Queues that the host creates. This is a 0’s based value. The minimum value is 1h, indicating two entries. |
Mandatory | Optional Mandatory for more complex devices with NVMe front ends, such as opaque arrays. |
Mandatory |
Notes |
The mapping for
NVMeControllerProperties.NVMeSMARTCriticalWarnings.OverallSubsystemDegraded
is summarized in Table 384.
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeControllerProperties.NVMeSMARTCriticalWarnings.OverallSubsystemDegraded | N/A |
Type | Boolean | N/A |
Description | Indicates that the NVM subsystem reliability has been compromised. | N/A |
LongDescription | This property shall indicate that the NVM subsystem reliability has been compromised. | N/A |
Mandatory | Do Not Implement | |
Notes |
The mapping for
NVMeControllerProperties.NVMeSMARTCriticalWarnings.SpareCapacityWornOut
is summarized in Table 385.
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeControllerProperties.NVMeSMARTCriticalWarnings.SpareCapacityWornOut | N/A |
Type | Boolean | N/A |
Description | Indicates that the available spare capacity has fallen below the threshold. | N/A |
LongDescription | This property shall indicate that the available spare capacity has fallen below the threshold. | N/A |
Mandatory | Do Not Implement | |
Notes |
The mapping for
NVMeControllerProperties.NVMeSMARTCriticalWarnings.PowerBackupFailed
is summarized in Table .
Table 386: NVMeControllerProperties.NVMeSMARTCriticalWarnings.PowerBackupFailed mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeControllerProperties.NVMeSMARTCriticalWarnings.PowerBackupFailed | N/A |
Type | Boolean | N/A |
Description | Indicates that the volatile memory backup device has failed. | N/A |
LongDescription | This property shall indicate that the volatile memory backup device has failed. | N/A |
Mandatory | Do Not Implement | |
Notes |
The mapping for Status.Health
is summarized in
Table 387.
Table 387: Status.Health mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Status.Health | N/A |
Type | Resource.Health | N/A |
Description | The health state of this resource in the absence of its dependent resources. | N/A |
LongDescription | This property shall represent the health state of the resource without considering its dependent resources. The values shall conform to those defined in the Redfish Specification. | N/A |
Mandatory | Mandatory | |
Notes | Possible Values: OK / Warning / Critical |
The mapping for Status.State
is summarized in
Table 388.
Table 388: Status.State mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Status.State | NVM Spec Property / Field:
Property Get Command / CSTS – Controller Status (Offset 1Ch) NVM Spec: Section:Figure NVMe 2.0: Section 3.1.3.6: Figure 47 |
Type | Resource.State (enum) | 32-bit value |
Description | The known state of the resource, such as, enabled. | Controller Status |
LongDescription | This property shall indicate whether and why this component is available. Enabled indicates the resource is available. Disabled indicates the resource has been intentionally made unavailable but it can be enabled. Offline indicates the resource is unavailable intentionally and requires action to make it available. InTest indicates that the component is undergoing testing. Starting indicates that the resource is becoming available. Absent indicates the resource is physically unavailable. | Controller Status |
Mandatory | Mandatory | Mandatory |
Notes | Possible values: Enabled / Disabled / StandbyOffline / StandbySpare / InTest / Starting / ABsent / UnavaialableOffline / Deferring / Quiesced / Updating / Qualified | Ready (CSTS.RDY) maps to Enabled Shutdown (CSTS.SHST) value will tell you if shutdown is in progress or complete (StandbyOffline) ProcessingPaused (CSTS.PP) maps to Deferring. If both Ready and Shutdown are indicated, then the system should indicate StandbyOffline. If both Ready and ProcessingPaused are indicated, then the system should indicate Deferring. |
The mapping for SupportedControllerProtocols
is summarized in
Table 389.
Table 389: SupportedControllerProtocols mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | SupportedControllerProtocols | N/A |
Type | Collection(Protocol.Protocol) | N/A |
Description | The supported set of protocols for communicating to this storage controller. | N/A |
LongDescription | This property shall contain the supported set of protocols for communicating to this storage controller. | N/A |
Mandatory | Mandatory | |
Notes | This is an array of protocols supported by the StorageController. This can be set to values including, but not limited to, PCIe, RDMA, NVMe-oF, RoCE, RoCEv2, and InfiniBand. |
The mapping for SupportedDeviceProtocols
is summarized in
Table 390.
Table 390: SupportedDeviceProtocols mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | SupportedDeviceProtocols | N/A |
Type | Collection(Protocol.Protocol) | N/A |
Description | The protocols that the storage controller can use to communicate with attached devices. | N/A |
LongDescription | This property shall contain the set of protocols this storage controller can use to communicate with attached devices. | N/A |
Mandatory | Do Not Implement | |
Notes |
The following mockup shows a sample representation of the StorageController schema used to represent an IO Controller.
{
"@odata.type": "#StorageController.v1_7_0.StorageController",
"Id": "NVMeIOController",
"Name": "NVMe I/O Controller",
"Description": "An NVM IO controller is a general-purpose controller that provides access to logical block data and metadata stored on an NVM subsystem’s non-volatile storage medium. IO Controllers may also support management capabilities.",
"Status": {
"State": "Enabled",
"Health": "OK"
},
"Manufacturer": "Best NVMe Vendor",
"Model": "Simple NVMe Device",
"SerialNumber": "NVME123456",
"PartNumber": "NVM44",
"FirmwareVersion": "1.0.0",
"SupportedControllerProtocols": [
"PCIe"
],
"SupportedDeviceProtocols": [
"NVMe"
],
"SupportedRAIDTypes": [
"None"
],
"NVMeControllerProperties": {
"ControllerType": "IO",
"NVMeVersion": "1.3",
"NVMeControllerAttributes": {
"ReportsUUIDList": false,
"SupportsSQAssociations": false,
"ReportsNamespaceGranularity": false,
"SupportsTrafficBasedKeepAlive": false,
"SupportsPredictableLatencyMode": false,
"SupportsEnduranceGroups": false,
"SupportsReadRecoveryLevels": false,
"SupportsNVMSets": false,
"SupportsExceedingPowerOfNonOperationalState": false,
"Supports128BitHostId": false
},
"NVMeSMARTCriticalWarnings": {
"MediaInReadOnly": false,
"OverallSubsystemDegraded": false,
"SpareCapacityWornOut": false
},
"MaxQueueSize": 1
},
"Links": {
"AttachedVolumes": [{
"@odata.id": "/redfish/v1/Systems/Sys-1/Storage/SimplestNVMeSSD/Volumes/SimpleNamespace"
}]
},
"Actions": {
"#StorageController.SecuritySend": {
"target": "/redfish/v1/Systems/Sys-1/Storage/SimplestNVMeSSD/Controllers/NVMeIOController/Actions/ StorageController.SecuritySend"
},
"#StorageController.SecurityReceive": {
"target": "/redfish/v1/Systems/Sys-1/Storage/SimplestNVMeSSD/Controllers/NVMeIOController/Actions/ StorageController.SecurityReceive"
}
},
"@odata.id": "/redfish/v1/Systems/Sys-1/Storage/SimplestNVMeSSD/Controllers/NVMeIOController",
"@Redfish.Copyright": "Copyright 2015-2024 SNIA. All rights reserved."
}
The mapping for Actions.#StorageController.RunSelfTest
is
summarized in Table 391.
Table 391: Actions.#StorageController.RunSelfTest mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Actions.#StorageController.RunSelfTest | NVM Spec Property / Field: Device
Self-test Command NVM Spec: Section:Figure NVM Base Specification 2.0: 5.9 Device Self-test Command |
Type | Action (Special form of POST) | NVMe Administrative command |
Description | This action is used to initiate a self-test
against this controller. This action should return either the
ResourceSelfTestFailed or ResourceSelfTestCompleted
event. |
The Device Self-test command is used to start a device self-test operation or abort a device self-test operation |
LongDescription | This action is used to initiate a self-test
against this controller. This action should return either the
ResourceSelfTestFailed or ResourceSelfTestCompleted
event. |
The Device Self-test command is used to start a device self-test operation or abort a device self-test operation (refer to NVMe 2.0 Base Specification section 8.6). |
Mandatory | Optional | Optional |
Notes | The Device Self-test command is used specifically
to: a) start a short device self-test operation; b) start an extended device self-test operation; c) start a vendor specific device self-test operation; or d) abort a device self-test operation already in process. |
The mapping for Assembly
is summarized in
Table 392.
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Assembly | N/A |
Type | ComplexType | N/A |
Description | The Assembly schema defines an assembly. Assembly information contains details about a device, such as part number, serial number, manufacturer, and production date. It also provides access to the original data for the assembly. | N/A |
LongDescription | This Resource shall represent an assembly for a Redfish implementation. Assembly information contains details about a device, such as part number, serial number, manufacturer, and production date. It also provides access to the original data for the assembly. | N/A |
Mandatory | Optional Do Not Implement for NVMe drives, or devices with NVMe front ends, such as opaque arrays. |
|
Notes |
The mapping for AssetTag
is summarized in
Table 393.
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | AssetTag | N/A |
Type | Edm.String | N/A |
Description | The user-assigned asset tag for this storage controller. | N/A |
LongDescription | This property shall track the storage controller for inventory purposes. | N/A |
Mandatory | Optional Do Not Implement for NVMe Drives, or devices with NVMe front ends, such as opaque arrays. |
|
Notes |
The mapping for CacheSummary
is summarized in
Table 394.
Table 394: CacheSummary mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | CacheSummary | N/A |
Type | ComplexType | N/A |
Description | The cache memory of the storage controller in general detail. | N/A |
LongDescription | This property shall contain properties that describe the cache memory for this resource. | N/A |
Mandatory | Do Not Implement | |
Notes | This property exists for hw cache reporting in other RF/SF use cases. Not used in NVMe controllers. |
The mapping for ControllerRates
is summarized in
Table 395.
Table 395: ControllerRates mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | ControllerRates | N/A |
Type | ComplexType | N/A |
Description | This property describes the various controller rates used for processes such as volume rebuild or consistency checks. | N/A |
LongDescription | This object shall contain all the rate settings available on the controller. | N/A |
Mandatory | Do Not Implement | |
Notes |
The mapping for Description
is summarized in
Table 396.
Table 396: Description mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Description | N/A |
Type | String | N/A |
Description | The description of this resource. | N/A |
LongDescription | This object represents the description of this resource. The resource values shall comply with the Redfish Specification-described requirements. | N/A |
Mandatory | Mandatory | |
Notes | In Redfish, Description is a read-only field. | Return the common description: “An NVM IO controller is a general-purpose controller that provides access to logical block data and metadata stored on an NVM subsystem’s non-volatile storage medium. IO Controllers may also support management capabilities.” |
The mapping for FirmwareVersion
is summarized in
Table 397.
Table 397: FirmwareVersion mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | FirmwareVersion | NVM Spec Property / Field:
Identify Command / Identify Controller Data structure (CNS 01h) / Firmware
Revision (FR) NVM Spec: Section:Figure NVMe 2.0: Section 5.17.2.1:Figure 275: Bytes 64 - 71 |
Type | String | String |
Description | The firmware version of this storage controller. | The currently active firmware revision for the domain of which this controller is a part. |
LongDescription | This property shall contain the firmware version as defined by the manufacturer for the associated storage controller. | The currently active firmware revision for the domain of which this controller is a part. |
Mandatory | Mandatory | Mandatory |
Notes | Return the currently active firmware revision information. |
The mapping for Identifiers
is summarized in
Table 398.
Table 398: Identifiers mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Identifiers | N/A |
N/A | ||
Description | The Durable names for the storage controller. | N/A |
LongDescription | This property shall contain a list of all known durable names for the associated storage controller. | N/A |
Mandatory | Optional | |
Notes | Recommend not implementing. There isn’t a good mapping for these in the NVMe spec to a property that has an appropriate / mapping to a durable name format. |
The mapping for Identifiers.DurableName
is summarized in
Table 399.
Table 399: Identifiers.DurableName mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Identifiers.DurableName | N/A |
Type | Variable | N/A |
Description | The Durable names for the storage controller. | N/A |
LongDescription | The Durable names for the storage controller. | N/A |
Mandatory | Optional | |
Notes | Recommend not implementing. There isn’t a good mapping for these in the NVMe spec to a property that has an appropriate / mapping to a durable name format. |
The mapping for Identifiers.DurableNameFormat
is summarized in
Table 400.
Table 400: Identifiers.DurableNameFormat mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Identifiers.DurableNameFormat | N/A |
Type | enum (DurableNameFormat) | N/A |
Description | The Durable names for the storage controller. | N/A |
LongDescription | This property shall contain a list of the types for all known durable names for the associated storage controller. The type determines the length of the corresponding Namespace ID | N/A |
Mandatory | Optional | |
Notes | Recommend not implementing. There isn’t a good mapping for these in the NVMe spec to a property that has an appropriate / mapping to a durable name format. |
The mapping for Links.AttachedVolumes
is summarized in
Table 401.
Table 401: Links.AttachedVolumes mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Links.AttachedVolumes | NVM Spec Property / Field:
Identify Command / Active Namespace ID list (CNS 07h) NVM Spec: Section:Figure NVMe 2.0: Section 5.17.2.7 |
Type | Collection(Volume.Volume) | Namespace LIst |
Description | An array of links to volumes that are attached to this controller instance. | A list of 1,024 namespace IDs is returned to the host containing active NSIDs in increasing order that are greater than the value specified in the Namespace Identifier (NSID) field of the command. |
LongDescription | This property shall contain a link to the Resources of type Volume that are attached to this instance of storage controller. | A list of 1,024 namespace IDs is returned to the host containing active NSIDs in increasing order that are greater than the value specified in the Namespace Identifier (NSID) field of the command. The NSID field may be cleared to 0h to retrieve a Namespace List including the namespace starting with NSID of 1h. Reference NVMe 2.0: Section 4.4.2: Figure 135 (Namespace List Format) |
Mandatory | Mandatory | Required |
Notes | This contains a pointer to the set of namespaces attached to this IO Controller. |
The mapping for Links.Endpoints
is summarized in
Table 402.
Table 402: Links.Endpoints mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Links.Endpoints | N/A |
Type | Collection(Endpoint.Endpoint) | N/A |
Description | An array of links to the endpoints that connect to this controller. | N/A |
LongDescription | This property shall contain an array of links to the Resources of type Endpoint associated with this controller. | N/A |
Mandatory | Optional | |
Notes | For NVMe-oF configurations. |
The mapping for Links.Connections
is summarized in
Table 403.
Table 403: Links.Connections mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Links.Connections | N/A |
Type | Collection(Connection.Connection) | N/A |
Description | An array of links to volumes that are attached to this controller instance. | N/A |
LongDescription | This property shall contain a link to the Resources of type Volume that are attached to this instance of storage controller. | N/A |
Mandatory | Optional Do Not Implement for NVMe Drives. |
|
Notes | This contains the information used to represented the allowed hosts. | This property contains pointers to the Connections objects. The information about allowed hosts is mapped to the Connections objects for NVMe-oF configurations. |
Table 403: Links.NetworkDeviceFunctions mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Links.NetworkDeviceFunctions | N/A |
Type | Collection(NetworkDeviceFunction.NetworkDeviceFunction) | N/A |
Description | The network device functions that provide connectivity to this controller. | N/A |
LongDescription | This property shall contain an array of links to resources of type NetworkDeviceFunction that represent the devices that provide connectivity to this controller. | N/A |
Mandatory | Optional Recommended for more complex devices with NVMe front ends, such as opaque arrays. |
|
Notes | For NVMe-oF configurations. |
The mapping for Location
is summarized in
Table 404.
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Location | N/A |
Type | Collection(Resource.Location) | N/A |
Description | The location of the storage controller. | N/A |
LongDescription | This property shall contain location information of the associated storage controller. | N/A |
Mandatory | Optional Do Not Implement for NVM Drives, or more complex devices with NVMe front ends, such as opaque arrays. |
|
Notes |
The mapping for Manufacturer
is summarized in
Table 405.
Table 405: Manufacturer mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Manufacturer | NVM Spec Property / Field:** Identify Command /
Identify Controller Datastructure (CNS 01h) / PCI Vendor ID (VID) NVM Spec: Section: Figure NVMe 2.0: Section 5.17.2.1: Figure 275: Bytes 00:01 |
Type | String | 16-bit number in little endian format. |
Description | The manufacturer of this storage controller. | The company vendor identifier |
LongDescription | This property shall contain the name of the organization responsible for producing the storage controller. This organization might be the entity from whom the storage controller is purchased, but this is not necessarily true. | The company vendor identifier that is assigned by the PCI SIG. This is the same value as reported in the ID register |
Mandatory | Optional | NVMe: Mandatory NVMe-oF: DNI |
Notes | End clients expect to see the name of the company (e.g,; Contoso, BestVendor). While the value may be filled from the IdentifyController PCI Vendor ID, it would be preferable to have this filled with the actual string value of the company name. |
The mapping for Model
is summarized in Table
406.
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Model | NVM Spec Property / Field:
Identify Command / Identify Controller Datastructure (CNS 01h) / Model Number
(MN) NVM Spec: Section: Figure NVMe 2.0: Section 5.17.2.1: Figure 275: Bytes 24:63 |
Type | String | String |
Description | The model number for the storage controller. | Model Number (MN) |
LongDescription | This property shall contain the name by which the manufacturer generally refers to the storage controller. | Contains the model number for the NVM subsystem that is assigned by the vendor as an ASCII string. Refer to section 7.10 for unique identifier requirements. Refer to section 1.5 for ASCII string requirements |
Mandatory | Recommended | Mandatory |
Notes |
The mapping for Name
is summarized in Table
407.
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Name | NVM Spec Property / Field:
Identify Command / Identify Controller Datastructure (CNS 01h) / Controller ID
(CNTLID) NVM Spec: Section:Figure NVMe 2.0: Section 5.17.2.1: Figure 275: Bytes 78:79 |
Type | String | 16-bit hex value |
Description | The name of the resource or array member. | Controller ID |
LongDescription | This object represents the name of this resource or array member. The resource values shall comply with the Redfish Specification-described requirements. This string value shall be of the ‘Name’ reserved word format. | The NVM subsystem unique controller identifier associated with the controller. |
Mandatory | Mandatory | Mandatory |
Notes | In Redfish, Name is a read-only field. | Map the CNTLID field to a string with the format: “0xABCD” |
The mapping for NVMeControllerProperties.ControllerType
is
summarized in Table 408.
Table 408: NVMeControllerProperties.ControllerType mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeControllerProperties.ControllerType | NVM Spec Property / Field:
Identify Command / Identify Controller Datastructure (CNS 01h) / Controller Type
(CNTRL_TYPE) NVM Spec: Section:Figure NVMe 2.0: Section 5.17.2.1: Figure 275: Bytes 111 |
Type | StorageController.v1_0_0.NVMeControllerType | Hex value |
Description | This property specifies the type of NVMe Controller. | Controller Type |
LongDescription | This property shall specify the type of NVMe Controller. | This field specifies the controller type.
Supported values: 0h Reserved (controller type not reported) 1h I/O controller 2h Discovery controller 3h Administrative controller |
Mandatory | Mandatory | Mandatory |
Notes | This property must be used to specify the type of NVMe Controller. For an IO controller, set to IO. | For IO Controller - value in Identify Controller is ‘01h’. Return “IO” |
The mapping for NVMeControllerProperties.NVMeVersion
is
summarized in Table 409.
Table 409: NVMeControllerProperties.NVMeVersion mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeControllerProperties.NVMeVersion | NVM Spec Property / Field:
Identify Command / Identify Controller Datastructure (CNS 01h) / Version (VER)
NVM Spec: Section:Figure NVMe 2.0: Section 5.17.2.1: Figure 275: Bytes 80:83 |
Type | String | 32-bit value. bits 31:16 indicate the major version bits 15:08 indicate the minor version bits 07:00 indicate the tertiare version number |
Description | The version of the NVMe Base Specification supported. | Version (VER) |
LongDescription | This property shall specify the type of NVMe Controller. | Indicates the major, minor, and tertiary version of the NVM Express base specification that the controller implementation supports. |
Mandatory | Optional | Mandatory |
Notes | Implementations compliant to NVM Express Base Specification revision 1.2 or later shall report a non-zero value in this field. Valid versions of the specification are: 1.0, 1.1, 1.2, 1.2.1, 1.3, 1.4, and 2.0. |
The mapping for
NVMeControllerProperties.NVMeControllerAttributes.ReportsUUIDList
is summarized in Table 410.
Table 410: NVMeControllerProperties.NVMeControllerAttributes.ReportsUUIDList mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeControllerProperties.NVMeControllerAttributes.ReportsUUIDList | NVM Spec Property / Field:
Identify Command / Identify Controller Datastructure (CNS 01h) / Controller
Attributes (CTRATT) : UUID List (Bit 9) NVM Spec: Section:Figure NVMe 2.0: Section 5.17.2.1: Figure 275: Bytes 99:96 (CTRATT): Bit 9 (UUID List ) |
Type | Boolean | Single bit (bool) |
Description | Indicates whether or not the controller supports reporting of a UUID list. | Indicated whether or not the controller supports reporting of a UUID List. |
LongDescription | This property shall indicate whether or not the controller supports reporting of a UUID list. | Indicated whether or not the controller supports reporting of a UUID List. |
Mandatory | Optional | Mandatory for IO Controllers |
Notes |
The mapping for
NVMeControllerProperties.NVMeControllerAttributes.SupportsSQAssociations
is summarized in Table 411.
Table 411: SupportsSQAssociations mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeControllerProperties.NVMeControllerAttributes.SupportsSQAssociations | NVM Spec Property / Field:
Identify Command / Identify Controller Datastructure / Controller Attributes
(CTRATT): Bit 08 (SQ Associations) NVM Spec: Section:Figure NVMe 2.0: Section 5.17.2.1: Figure 275: Bytes 96:99: Bit 08 (SQ Associations) |
Type | Boolean | Single bit (bool) |
Description | Indicates whether or not the controller supports SQ Associations. | Indicates whether or not the controller supports SQ Associations. |
LongDescription | This property shall indicate whether or not the controller supports SQ Associations. | This property shall indicate whether or not the controller supports SQ Associations. |
Mandatory | Optional | Mandatory |
Notes |
The mapping for
NVMeControllerProperties.NVMeControllerAttributes.ReportsNamespaceGranularity
is summarized in Table 412.
Table 412: NVMeControllerProperties.NVMeControllerAttributes.
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeControllerProperties.NVMeControllerAttributes.ReportsNamespaceGranularity | NVM Spec Property / Field:
Identify Comand / Identify Controller Datastructure (CNS 01h) / Controller
Attributes (CTRATT): Bit 07 (Namespace Granularity) NVM Spec: Section:Figure NVMe 2.0: Section 5.17.2.1: Figure 275: Bytes 96:99: Bit 07 |
Type | Boolean | Single bit (bool) |
Description | Indicates whether or not the controller supports reporting of Namespace Granularity. | Indicates whether or not the controller supports reporting of Namespace Granularity. |
LongDescription | This property shall indicate whether or not the controller supports reporting of Namespace Granularity. | This property shall indicate whether or not the controller supports reporting of Namespace Granularity. |
Mandatory | Optional Recommended for NVM Drives and more complex devices with NVMe front ends, such as opaque arrays. |
Mandatory |
Notes |
The mapping for
NVMeControllerProperties.NVMeControllerAttributes.SupportsReservations
is summarized in Table 413.
Table 413: NVMeControllerProperties.NVMeControllerAttributes.
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeControllerProperties.NVMeControllerAttributes.SupportsReservations | NVM Spec Property / Field: Identify Command / Identify
Controller Datastructure (CNS 01h) / Optional NVM Command Support (ONCS): Bit 05
NVM Spec: Section:Figure NVMe 2.0: Section 5.17.2.1: Figure 275: Bytes 520 : 521: Bit 05 |
Type | Boolean | Single bit (bool) |
Description | Indicates whether or not the controller supports namespace reservations. | Indicates whether or not the controller supports reservations. |
LongDescription | This property shall indicate whether or not the controller supports namespace reservations to enable two or more hosts to coordinate access to a shared namespace. | Indicates whether or not the controller supports reservations. |
Mandatory | Optional Recommended for NVM Drives and more complex devices with NVMe front ends, such as opaque arrays. |
Mandatory |
Notes |
The mapping for
NVMeControllerProperties.NVMeControllerAttributes.TrafficBasedKeepAlive
is summarized in Table 414.
Table 414: SupportsTrafficBasedKeepAlive mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeControllerProperties.NVMeControllerAttributes.SupportsTrafficBasedKeepAlive | NVM Spec Property / Field:
Identify Command / Identify Controller Datastructure (CNS 01h) / Controller
Attributes (CTRATT): Bit 06 - Traffic Based Keep Alive Support
(TBKAS) NVM Spec: Section:Figure NVMe 2.0: Section 5.17.2.1: Figure 275: Bytes 96 : 99: Bit 06 |
Boolean | Single bit (bool) | |
Description | Indicates whether or not the controller supports restarting KeepAlive Timer if traffic is processed from an admin command or IO during KeepAlive Timeout interval. | Indicates if the controller supports restarting the Keep Alive Timer if an Admin command or an I/O command is processed during the Keep Alive Timeout Interval. |
LongDescription | This property shall indicate whether or not the controller supports restarting KeepAlive Timer if traffic is processed from an admin command or IO during KeepAlive Timeout interval. | controller supports restarting the Keep Alive Timer if an Admin command or an I/O command is processed during the Keep Alive Timeout Interval. |
Mandatory | Optional Mandatory for Ethernet-Attach Drives; Mandatory for more complex devices with NVMe front ends, such as opaque arrays. |
Mandatory |
The mapping for
NVMeControllerProperties.NVMeControllerAttributes.PredictableLatencyMode
is summarized in Table 415.
Table 415: NVMeControllerProperties.NVMeControllerAttributes.
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeControllerProperties.NVMeControllerAttributes.SupportsPredictableLatencyMode | NVM Spec Property / Field:
Identify Command / Identify Controller Datastructure (CNS 01h) / Controller
Attributes (CTRATT): Bit 05 - (Predictable Latency Mode) NVM Spec: Section:Figure NVMe 2.0: Section 5.17.2.1: Figure 275: Bytes 96:99: Bit 05 |
Type | Boolean | Single bit (bool) |
Description | Indicates whether or not the controller supports Predictable Latency Mode. | Indicates if the controller supports Predictable Latency Mode. |
LongDescription | This property shall indicate whether or not the controller supports Predictable Latency Mode. | Indicates if the controller supports Predictable Latency Mode |
Mandatory | Optional | Mandatory |
Notes |
The mapping for
NVMeControllerProperties.NVMeControllerAttributes.EnduranceGroups
is summarized in Table 416.
Table 416: NVMeControllerProperties.NVMeControllerAttributes.
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeControllerProperties.NVMeControllerAttributes.SupportsEnduranceGroups | NVM Spec Property / Field:
Identify Command / Identify Controller Datastructure (CNS 01h) / Controller
Attributes (CTRATT): Bit 04 (Endurance Groups) NVM Spec: Section:Figure NVMe 2.0: Section 5.17.2.1: Figure 275: Bytes 96 : 99: Bit 04 |
Type | Boolean | Single bit (bool) |
Description | Indicates whether or not the controller supports Endurance Groups. | Indicates if the controller supports Endurance Groups |
LongDescription | This property shall indicate whether or not the controller supports Endurance Groups. | Indicates if the controller supports Endurance Groups |
Mandatory | Optional Mandatory when EnduranceGroups/Sets are supported. |
Mandatory |
Notes | For NVMe SSD Drives: If “Advanced Features for NVMe Drives” feature is advertised, this is required. (This means EnduranceGroups and NVM Sets are supported.) |
The mapping for
NVMeControllerProperties.NVMeControllerAttributes.SupportsReadRecoveryLevels
is summarized in Table 417.
Table 417: NVMeControllerProperties.NVMeControllerAttributes.SupportsReadRecoveryLevels
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeControllerProperties.NVMeControllerAttributes.SupportsReadRecoveryLevels | NVM Spec Property / Field:
Identify Command / Identify Controller Datastructure (CNS 01h) / Controller
Attributes (CTRATT): Bit 03 (Read Recovery Levels) NVM Spec: Section:Figure NVMe 2.0: Section 5.17.2.1: Figure 275: Bytes 9 6: 99: Bit 03 |
Type | Boolean | Single bit (bool) |
Description | Indicates whether or not the controller supports Read Recovery Levels. | Indicates whether or not the controller supports Read Recovery Levels. |
LongDescription | This property shall indicate whether or not the controller supports Read Recovery Levels. | Indicates whether or not the controller supports Read Recovery Levels. |
Mandatory | Optional | Mandatory |
Notes |
The mapping for
NVMeControllerProperties.NVMeControllerAttributes.SupportsNVMSets
is summarized in Table 418.
Table 418: NVMeControllerProperties.NVMeControllerAttributes.SupportsNVMSets
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeControllerProperties.NVMeControllerAttributes.SupportsNVMSets | NVM Spec Property / Field:
Identify Command / Identify Controller Datastructure (CNS 01h) / Controller
Attributes (CTRATT): Bit 02 (NVM Sets) NVM Spec: Section:Figure NVMe 2.0: Section 5.17.2.1: Figure 275: Bytes 96 : 99: Bit 02 |
Type | Boolean | Single bit (bool) |
Description | Indicates whether or not the controller supports NVM Sets. | Indicates whether or not the controller supports NVM Sets. |
LongDescription | This property shall indicate whether or not the controller supports NVM Sets. | This property shall indicate whether or not the controller supports NVM Sets. |
Mandatory | Optional Mandatory when EnduranceGroups/Sets are supported. |
Mandatory |
Notes | For NVMe SSD Drives: If “Advanced Features for NVMe Drives” feature is advertised, this is required. (This means EnduranceGroups and NVM Sets are supported.) |
The mapping for
NVMeControllerProperties.NVMeControllerAttributes.SupportsExceedingPowerOfNonOperationalState
is summarized in Table 419.
Table 419: SupportsExceedingPowerOfNonOperationalState
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeControllerProperties.NVMeControllerAttributes.SupportsExceedingPowerOfNonOperationalState | NVM Spec Property / Field:
Identify Command / Identify Controller Datastructure (CNS 01h) / Controller
Attributes (CTRATT): Bit 01 (Non-Operational Power State Permissive
Mode) NVM Spec: Section:Figure NVMe 2.0: Section 5.17.2.1: Figure 275: Bytes 96 : 99: Bit 01 |
Type | Boolean | Single bit (bool) |
Description | Indicates whether or not the controller supports exceeding Power of NonOperational State in order to execute controller initiated background operations in a non-operational power state. | Indicates whether or not the controller supports host control of whether the controller may temporarily exceed the power of a non-operational power state for the purpose of executing controller initiated background operations in a non-operational power state (i.e., Non-Operational Power State Permissive Mode supported) |
LongDescription | This property shall indicate whether or not the controller supports exceeding Power of NonOperational State in order to execute controller initiated background operations in a non-operational power state. | The controller supports host control of whether the controller may temporarily exceed the power of a non-operational power state for the purpose of executing controller initiated background operations in a non-operational power state (i.e., Non-Operational Power State Permissive Mode supported) |
Mandatory | Optional | Mandatory |
Notes |
The mapping for
NVMeControllerProperties.NVMeControllerAttributes.Supports128BitHostId
is summarized in Table 420.
Table 420: Supports128BitHostId
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeControllerProperties.NVMeControllerAttributes.Supports128BitHostId | NVM Spec Property / Field:
Identify Command / Identify Controller (CNS 01h) / Controller Attributes
(CTRATT): Bit 00 (Host Identifier Support) NVM Spec: Section:Figure NVMe 2.0: Section 5.17.2.1: Figure 275: Bytes 96 : 99: Bit 00 |
Type | Boolean | Single bit (bool) |
Description | Indicates whether or not the controller supports a 128-bit Host Identifier. | Indicates whether or not the controller supports a 128-bit Host Identifier |
LongDescription | This property shall indicate whether or not the controller supports a 128-bit Host Identifier. | Indicates whether or not the controller supports a 128-bit Host Identifier |
Mandatory | Mandatory | Mandatory |
Notes |
The mapping for NVMeControllerProperties.MaxQueueSize
is
summarized in Table 421.
Table 421: NVMeControllerProperties.MaxQueueSize mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeControllerProperties.MaxQueueSize | NVM Spec Property / Field:
JProperty Get / Controller Properties / Controller Capabilities offset 0h (CAP)
/ Maximum Queues Entries Supported (MQES) NVM Spec: Section:Figure NVMe 2.0; Section 3.1.3.1 Controller Capabilities: Figure 36: Bits 00:15 |
Type | Int64 | 16 bit value |
Description | Indicates the maximum individual queue size that an NVMe IO Controller supports. | This field indicates the maximum individual queue size that the controller supports. |
LongDescription | This property shall contain the maximum individual queue entry size supported per queue. This is a zero-based value, where the minimum value is one, indicating two entries. For PCIe, this applies to both submission and completion queues. For NVMe-oF, this applies to only submission queues. | This field indicates the maximum individual queue size that the controller supports. For NVMe over PCIe implementations, this value applies to the I/O Submission Queues and I/O Completion Queues that the host creates. For NVMe over Fabrics implementations, this value applies to only the I/O Submission Queues that the host creates. This is a 0’s based value. The minimum value is 1h, indicating two entries. |
Mandatory | Optional Mandatory for more complex devices with NVMe front ends, such as opaque arrays. |
Required |
Notes |
The mapping for NVMeControllerProperties.ANACharacteristics
is
summarized in Table 422.
Table 422: NNVMeControllerProperties.ANACharacteristics mapping
RRedfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeControllerProperties.ANACharacteristics | NVM Spec Property / Field:
Asymmetric Namespace Access Log (Log ID 0ch) NVM Spec: Section:Figure NVMe 2.0: Section 5.16.1.13: Figures 220 and 221 |
Type | Collection(StorageController.v1_0_0.ANACharacteristics) | Log Page |
Description | This property contains the combination of ANA type and volume information. | This log consists of a header describing the log and descriptors containing the asymmetric namespace access information for ANA Groups |
LongDescription | This property shall contain the combination of ANA type and volume information. | This log consists of a header describing the log and descriptors containing the asymmetric namespace access information for ANA Groups that contain namespaces that are attached to the controller processing the command. ANA Group Descriptors shall be returned in ascending ANA Group Identifier order |
Mandatory | Optional | Mandatory if ANA Reporting is supported |
Notes |
The mapping for
NVMeControllerProperties.ANACharacteristics.AccessState
is
summarized in Table 423.
Table 423: NNVMeControllerProperties.ANACharacteristics.AccessState mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeControllerProperties.ANACharacteristics.AccessState | NVM Spec Property / Field:** Asymmetric Namespace
Access Log (Log ID 0ch) / ANA Group Descriptors 0 - n-1: Byte 16 Asymmetric
Namespace Access State (Bits 00 - 03) NVM Spec: Section:Figure NVMe 2.0: Section 5.16.1.13: Figures 220 and 221 |
Type | StorageController.v1_0_0.ANAAccessState | Reported ANA Access state |
Description | Reported ANA Access state. | This field indicates the Asymmetric Namespace Access state for all namespaces in this ANA Group when accessed through this controller. |
LongDescription | This property shall contain the reported ANA Access State. | Within the Asymmetric Namespace Access Log (Log ID 0ch), for each ANA Group Descriptor the Asymmetric Namespace Access state for all namespaces in this ANA Group when accessed through this controller. |
Mandatory | Optional | Mandatory if ANA Reporting is supported |
Notes | Available values: Optimized / NonOptimized / Inacessible / PersistentLoss | Available values: 01h ANA Optimized state 02h ANA Non-Optimized state 03h ANA Inaccessible state 04h ANA Persistent Loss state 0Fh ANA Change state |
The mapping for
NVMeControllerProperties.ANACharacteristics.Volume
is summarized in
Table 424.
Table 424: NNVMeControllerProperties.ANACharacteristics.Volume mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeControllerProperties.ANACharacteristics.Volume | NVM Spec Property / Field:** Asymmetric Namespace
Access Log (Log ID 0ch) / ANA Group Descriptors / Namespace Identifier 0 -
n-1 NVM Spec: Section:Figure NVMe 2.0: Section 5.16.1.13: Figures 220, 221, and 222 |
Type | Volume.Volume | ANA Group Descriptor |
Description | The specified volume. | The Namespace Identifier |
LongDescription | This property shall contain a link to the specified volume. | The Namespace Identifier |
Mandatory | Optional | Mandatory if ANA Reporting is supported |
Notes | This field contains the pointer to the namespace for which the access state applies. | The namespace id should be linked to the
corresponding namespace (volume) object with that namespace id. If this set of fields contains multiple namespaces (e.g., a group of namespaces), a unique entry in the ANACharacteristics array should be created for each namespace. |
The mapping for
NVMeControllerProperties.NVMeSMARTCriticalWarnings.PMRUnreliable
is
summarized in Table 425.
Table 425: NNVMeControllerProperties.NVMeSMARTCriticalWarnings.PRMunreliable mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeControllerProperties.NVMeSMARTCriticalWarnings.PMRUnreliable | NVM Spec Property / Field:
Property Get / Persistent Memory Region Status (PMRSTS) Offset E08h: Bits 09 :
11 - Health Status (HSTS) NVM Spec: Section:Figure NVMe 2.0: Section 3.1.3.24: Figure 65: Bits 09 : 11 (Health Status / HSTS), value 011b (Unreliable) |
Type | Boolean | Single bit (bool) |
Description | The Persistent Memory Region has become unreliable. | Persistent Memory Region has become read-only or unreliable |
LongDescription | This property shall indicate that the Persistent Memory Region has become unreliable. PCI Express memory reads may return invalid data or generate poisoned PCI Express TLP(s). Persistent Memory Region memory writes may not update memory or may update memory with undefined data. The Persistent Memory Region may also have become non-persistent. | This field shall indicated that the Persistent Memory Region has become read-only or unreliable |
Mandatory | Optional Recommended for NVM Drives; required for more complex devices with NVMe front ends, such as opaque arrays. |
Optional |
Notes |
The mapping for
NVMeControllerProperties.NVMeSMARTCriticalWarnings.PowerBackupFailed
is summarized in Table 426.
Table 426: NVMeControllerProperties.NVMeSMARTCriticalWarnings.
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeControllerProperties.NVMeSMARTCriticalWarnings.PowerBackupFailed | NVM Spec Property / Field: SMART
/ Health Information Log Page (Log ID 02h) / Critical Warning / Volatile memory
backup device has failed NVM Spec: Section:Figure NVMe 2.0: Section 5.16.1.3: Figure 207: Bytes 00, Bits 04 |
Type | Boolean | Single bit (bool) |
Description | Indicates that the volatile memory backup device has failed. | Indicates that the volatile memory backup device has failed. |
LongDescription | This property shall indicate that the volatile memory backup device has failed. | This property shall indicate that the volatile memory backup device has failed. |
Mandatory | Optional Recommended for NVM Drives. Required for more complex devices with NVMe front ends, such as opaque arrays. |
Optional |
Notes |
The mapping for
NVMeControllerProperties.NVMeSMARTCriticalWarnings.MediaInReadOnly
is summarized in Table 427.
Table 427: NVMeControllerProperties.NVMeSMARTCriticalWarnings.MediaInReadOnly mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeControllerProperties.NVMeSMARTCriticalWarnings.MediaInReadOnly | NVM Spec Property / Field: SMART
/ Health Information Log Page (Log ID 02h) / Critical Warning / All of the media
has been placed in read only mode NVM Spec: Section:Figure NVMe 2.0: Section 5.16.1.3: Figure 207: Bytes 00, Bits 03 |
Type | Boolean | Single bit (bool) |
Description | Indicates the media has been placed in read only mode. | Indicates all of the media has been placed in read only mode |
LongDescription | This property shall indicate the media has been placed in read only mode. This is not set when the read-only condition on the media is a result of a change in the write protection state of a namespace. | This property indicates all of the media has been placed in read only mode. The controller shall not set this bit to ‘1’ if the read-only condition on the media is a result of a change in the write protection state of a namespace |
Mandatory | Mandatory | Optional |
Notes |
The mapping for
NVMeControllerProperties.NVMeSMARTCriticalWarnings.OverallSubsystemDegraded
is summarized in Table 428.
Table 428: OverallSystemDegraded mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeControllerProperties.NVMeSMARTCriticalWarnings.OverallSubsystemDegraded | NVM Spec Property / Field: SMART
/ Health Information Log Page (Log ID 02h) / Critical Warning / NVM subsystem
reliability has been degraded due to significant media related errors or any
internal error that degrades NVM subsystem reliability. NVM Spec: Section:Figure NVMe 2.0: Section 5.16.1.3: Figure 207: Bytes 00, Bits 02 |
Type | Boolean | Single bit (bool) |
Description | Indicates that the NVM subsystem reliability has been compromised. | Indicates that NVM subsystem reliability has been degraded. |
LongDescription | This property shall indicate that the NVM subsystem reliability has been compromised. | NVM subsystem reliability has been degraded due to significant media related errors or any internal error that degrades NVM subsystem reliability. |
Mandatory | Mandatory | Optional |
Notes |
The mapping for
NVMeControllerProperties.NVMeSMARTCriticalWarnings.SpareCapacityWornOut
is summarized in Table 429.
Table 429: NVMeControllerProperties.NVMeSMARTCriticalWarnings.SpareCapacityWornOut
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeControllerProperties.NVMeSMARTCriticalWarnings.SpareCapacityWornOut | NVM Spec Property / Field: SMART
/ Health Information Log Page (Log ID 02h) / Critical Warning / available spare
capacity has fallen below the threshold. NVM Spec: Section:Figure NVMe 2.0: Section 5.16.1.3: Figure 207: Bytes 00, Bits 00 |
Type | Boolean | Single bit (bool) |
Description | Indicates that the available spare capacity has fallen below the threshold. | Indicates that the available spare capacity has fallen below the threshold. |
LongDescription | This property shall indicate that the available spare capacity has fallen below the threshold. | This property shall indicate that the available spare capacity has fallen below the threshold. |
Mandatory | Optional Mandatory for NVMe drives, as well as for more complex devices with NVMe front ends, such as opaque arrays. |
Optional |
Notes |
The mapping for PCIeInterface.PCIeType
is summarized in
Table 430.
Table 430: PCIeInterface.PCIeType mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | PCIeInterface.PCIeType | N/A |
Type | enum (PCIeDevice.PCIeType) | N/A |
Description | The version of the PCIe specification in use by this device. | N/A |
LongDescription | This property shall contain the negotiated PCIe interface version in use by this device. | N/A |
Mandatory | Optional Mandatory for PCIe attach NVMe Drives; Do Not Implement for ethernet-attach drives. Optional for more complex devices with NVMe front ends, such as opaque arrays. |
|
Notes | Possible values: Gen1/Gen2/Gen3/Gen4/Gen5 | The functionality comes from the underlying implementation and does not originate in the NVMe specs |
The mapping for PCIeInterface.MaxPCIeType
is summarized in
Table 431.
Table 431: PCIeInterface.MaxPCIeType mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | PCIeInterface.MaxPCIeType | N/A |
Type | enum (PCIeDevice.PCIeType) | N/A |
Description | The highest version of the PCIe specification supported by this device. | N/A |
LongDescription | This property shall contain the maximum PCIe specification that this device supports. | N/A |
Mandatory | Optional Mandatory for PCIe attach NVMe Drives; do not implement for ethernet-attach drives. |
|
Notes | Possible values: Gen1/Gen2/Gen3/Gen4/Gen5 | The functionality comes from the underlying implementation and does not originate in the NVMe specs |
The mapping for PCIeInterface.LanesInUse
is summarized in
Table 432.
Table 432: PCIeInterface.LanesInUse mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | PCIeInterface.LanesInUse | N/A |
Type | int64 | N/A |
Description | The number of PCIe lanes in use by this device. | N/A |
LongDescription | This property shall contain the number of PCIe lanes in use by this device, which shall be equal to or less than the MaxLanes property value. | N/A |
Mandatory | Optional Mandatory for PCIe attach NVMe Drives; do not implement for ethernet-attach drives. |
|
Notes | The functionality comes from the underlying implementation and does not originate in the NVMe specs |
The mapping for PCIeInterface.MaxLanes
is summarized in
Table 433.
Table 433: PCIeInterface.MaxLanes mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | PCIeInterface.MaxLanes | N/A |
Type | int64 | N/A |
Description | The number of PCIe lanes supported by this device. | N/A |
LongDescription | This property shall contain the maximum number of PCIe lanes supported by this device. | N/A |
Mandatory | Optional Mandatory for PCIe attach NVMe Drives; do not implement for ethernet-attach drives. |
|
Notes | The functionality comes from the underlying implementation and does not originate in the NVMe specs |
The mapping for Ports
is summarized in Table
434.
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Ports | N/A |
Type | PortCollection.PortCollection | N/A |
Description | The link to the collection of ports that exist on the storage controller. | N/A |
LongDescription | This property shall contain a link to a resource collection of type PortCollection. | N/A |
Mandatory | Do Not Implement for NVMe drives Optional for more complex devices with NVMe front ends, such as opaque arrays. |
|
Notes |
The mapping for SKU
is summarized in Table
435.
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | SKU | N/A |
Type | Edm.String | N/A |
Description | The SKU for this storage controller. | N/A |
LongDescription | This property shall contain the stock-keeping unit number for this storage storage controller. | N/A |
Mandatory | Do Not Implement | |
Notes |
The mapping for SpeedGbps
is summarized in
Table 436.
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | SpeedGbps | N/A |
Type | Decimal | N/A |
Description | The maximum speed of the storage controller’s device interface. | N/A |
LongDescription | This property shall represent the maximum supported speed of the storage bus interface, in Gbit/s. The specified interface connects the controller to the storage devices, not the controller to a host. For example, SAS bus not PCIe host bus. | N/A |
Mandatory | Do Not Implement | |
Notes |
The mapping for Status.State
is summarized in
Table 437.
Table 437: Status.State mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Status.State | NVM Spec Property / Field:
Property Get / CSTS – Controller Status (Offset 1ch) NVM Spec: Section:Figure NVMe 2.0: Section 3.1.3.6: Figure 47 |
Type | Resource.State (enum) | 32-bit value |
Description | The known state of the resource, such as, enabled. | |
LongDescription | This property shall indicate whether and why this component is available. Enabled indicates the resource is available. Disabled indicates the resource has been intentionally made unavailable but it can be enabled. Offline indicates the resource is unavailable intentionally and requires action to make it available. InTest indicates that the component is undergoing testing. Starting indicates that the resource is becoming available. Absent indicates the resource is physically unavailable. | |
Mandatory | Mandatory | Mandatory |
Notes | Possible values: Enabled / Disabled / StandbyOffline / StandbySpare / InTest / Starting / ABsent / UnavaialableOffline / Deferring / Quiesced / Updating / Qualified | Ready (CSTS.RDY) maps to Enabled, Shutdown
(CSTS.SHST) value will tell you if shutdown is in progress or complete
(StandbyOffline), Processing Paused (CSTS.PP) maps to Deferring. If both Ready and Shutdown are indicated, then the system should indicate StandbyOffline. If both Ready and Processing Paused are indicated, then the system should indicate Deferring. |
The mapping for Status.Health
is summarized in
Table 438.
Table 438: Status.Health mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Status.Health | NVM Spec Property / Field:
Property Get command / Controller Status (CSTS): - Offset 1Ch NVM Spec: Section:Figure NVMe 2.0: Section 3.1.3.6: Figure 47 NVM Spec Property / Field: Get Log Page command / SMART/Health Information Log (Log Identifier 02h) NVM Spec: Section:Figure NVMe 2.0: Section 5.16.1.3: Figure 207 |
Type | Resource.Health | 32-bit value |
Description | The health state of this resource in the absence of its dependent resources. | This field indicates critical warnings for the state of the controller from both the SMART & general health information log and the Controller Status Property |
LongDescription | This property shall represent the health state of the resource without considering its dependent resources. The values shall conform to those defined in the Redfish Specification. | This field indicates critical warnings for the state of the controller from the SMART and general health information . The information provided is over the life of the controller and is retained across power cycles. |
Mandatory | Mandatory | Optional |
Notes | Possible Values: OK / Warning / Critical | This comes from CSTS Controller Status.
Redfish/Swordfish “OK” corresponds to NVMe/NVMe-oF ‘Ready’ (RDY) bit set to ‘1’ and no warnings in the CSTS or SMART/Health information log page Redfish/Swordfish “Warning” corresponds to “Volatile Memory Backup Device has failed”, “NVM subsystem reliability has been degraded”, “Temperature greater than or equal to an over temperature threshold”, “temperature less than or equal to an under temperature threshold”, or “available spare capacity has fallen below the threshold” Redfish/Swordfish “Critical” corresponds to NVMe/NVMe-oF ‘Controller Fatal Status’ (CSTS.CFS) bit set to ‘1’ which indicates that a serious error condition has occurred. |
The mapping for SupportedControllerProtocols
is summarized in
Table 439.
Table 439: SupportedControllerProtocols mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | SupportedControllerProtocols | N/A |
Type | Collection(Protocol.Protocol) | N/A |
Description | The supported set of protocols for communicating to this storage controller. | N/A |
LongDescription | This property shall contain the supported set of protocols for communicating to this storage controller. | N/A |
Mandatory | Optional | |
Notes | This is an array of protocols supported by the StorageController. This can be set to values including, but not limited to, PCIe, RDMA, NVMe-oF, RoCE, RoCEv2, and InfiniBand. |
The mapping for SupportedDeviceProtocols
is summarized in
Table 440.
Table 440: SupportedDeviceProtocols mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | SupportedDeviceProtocols | N/A |
Type | Collection(Protocol.Protocol) | N/A |
Description | The protocols that the storage controller can use to communicate with attached devices. | N/A |
LongDescription | This property shall contain the set of protocols this storage controller can use to communicate with attached devices. | N/A |
Mandatory | Do Not Implement | |
Notes |
The Redfish/Swordfish Volume schema is used to represent an NVM Namespace.
{
"@odata.type": "#Volume.v1_9_0.Volume",
"Id": "1",
"Name": "Namespace 1",
"Description": "A Namespace is a quantity of non-volatile memory that may be formatted into logical blocks. When formatted, a namespace of size n is a collection of logical blocks with logical block addresses from 0 to (n-1). NVMe systems can support multiple namespaces.",
"DisplayName": "Not set",
"Status": {
"State": "Enabled",
"Health": "OK"
},
"Identifiers": [{
"DurableNameFormat": "NQN",
"DurableName": "nqn.2014-08.org.nvmexpress:uuid:6c5fe566-10e6-4fb6-aad4-8b4159029384"
}],
"RemainingCapacityPercent": 100,
"BlockSizeBytes": 4096,
"Capacity": {
"Data": {
"ConsumedBytes": 0,
"AllocatedBytes": 10737418240
"ProvisionedBytes": 10737418240
}
},
"RAIDType": "None",
"NVMeNamespaceProperties": {
"IsShareable": false,
"NamespaceId": "0x22F",
"NamespaceFeatures": {
"SupportsThinProvisioning": false,
"SupportsAtomicTransactionSize": false,
"SupportsDeallocatedOrUnwrittenLBError": false,
"SupportsNGUIDReuse": false,
"SupportsIOPerformanceHints": false
},
"LBAFormat": {
"LBAFormatType": "LBAFormat0",
"RelativePerformance": "Best",
"LBADataSizeBytes": 4096,
"LBAMetadataSizeBytes": 0
},
"MetadataTransferredAtEndOfDataLBA": false,
"NVMeVersion": "2.0"
},
"Links": {
"Drives": [{
"@odata.id": "/redfish/v1/Chassis/SimplestNVMeSSD/Drives/SimplestNVMeSSD"
}],
"Controllers": [{
"@odata.id": "/redfish/v1/Systems/Sys-1/Storage/SimplestNVMeSSD/Controllers/NVMeIOController"
}]
},
"@odata.id": "/redfish/v1/Systems/Sys-1/Storage/SimplestNVMeSSD/Volumes/SimpleNamespace",
"@Redfish.Copyright": "Copyright 2015-2024 SNIA. All rights reserved."
}
The mapping for ALUA
is summarized in Table
441.
Table 441: BlockSizeBytes mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | ALUA | N/A |
Type | Int64 | N/A |
Description | ALUA properties for this volume. | N/A |
LongDescription | This shall identify the ALUA properties for this volume. | |
Mandatory | Optional | N/A |
Notes |
The mapping for ALUA.ANAGroupID
is summarized in
Table 442.
Table 442: ALUA.ANAGroupID mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | ANAGroupID | Retrieved in the Identify Command ANA Group ID retrieved in the I/O Command Set Independent Identify Namespace data structure (CNS 08h) or in the Identify Namespace data structure for the specified NSID or the NVM Command Set Identify Namespace Data Structure (CNS 00h) NVMe Base Specification: Section 5.17.2.8: Figure 280: Bytes 07:04 - ANA Group Identifier (ANAGRPID) NVMe NVM Command Set Specification: Section 4.1.5.1: Figure 97: Bytes 92:95 ANA Group Identifier (ANAGRPID) |
Type | Edm.Decimal | DWORD (4 bytes) |
Description | The ANA group id for this volume. | The ANA Group Identifier associated with all namespaces in an ANA Group described by an ANA Group Descriptor. All namespaces in an ANA Group described by an ANA Group Descriptor shall have the same ANA Group ID (ANAGroupID). |
LongDescription | This shall contain the ANA group id for this volume. This corresponds to the value in the ANAGroupId field in volume. | The ANA Group Identifier associated with all namespaces in an ANA Group described by an ANA Group Descriptor. When retrieved via the Identify Command (Command dword 11) For NSID other than FFFFFFFFh, this field indicates the ANA Group Identifier of the ANA group of which the namespace is a member. Each namespace that is attached to a controller that supports Asymmetric Namespace Access Reporting (refer to the CMIC field) shall report a valid ANAGRPID. |
Mandatory | Optional | Optional |
Notes | The ANA Group Identifier (ANAGRPID) for each ANA
Group shall be unique within an NVM subsystem. If the controller does not support Asymmetric Namespace Access Reporting, then this field shall be cleared to 0h. |
The mapping for BlockSizeBytes
is summarized in
Table 443.
Table 443: BlockSizeBytes mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | BlockSizeBytes | NVM Spec Property / Field:
Formatted LBA Size (FLBAS) retrieved in some Identify Namespace data structures
for the specified NSID or the common namespace capabilities for the NVM Command
Set (CNS 00h). Refer to the applicable NVMe I/O Command Set specification for details. For NVMe I/O Command Sets that don’t define this field, it is considered reserved NVM Spec: Section:Figure NVMe NVM Command Set Specification 1.0b: Section 4.1.5.1: Figure 97: Bytes 26 - Formatted LBA Size (FLBAS) and uses the Number LBA Formats (NBLAF) field defined in Section 4.1.5.1: Figure 97: Bytes 25 (Number of LBA Formats) NVM Express NVM Zoned Namespace Command Set Specification 1.1b: Section A.5: Figure 53 (Size and Capacity Fields): Bytes 26. |
Type | Int64 | Int 64 |
Description | The size, in bytes, of the smallest addressable unit, or block. | The LBA data size & metadata size combination that the namespace has been formatted with. |
LongDescription | This property shall contain size of the smallest addressable unit of the associated drive or device. | This field indicates the LBA data size & metadata size combination that the namespace has been formatted with. |
Mandatory | Mandatory | Only Mandatory / applicable for the NVM Command Set and I/O Command Sets based on the NVM Command Set. Prohibited for all other I/O Command Sets. |
Notes | Refer to the applicable NVMe I/O Command Set
specification for details. For NVMe I/O Command Sets that don’t define this
field, it is considered reserved. For NVM Express Command Sets that Support Blocks: Bits 6:5 indicate the most significant 2 bits of the Format Index of the supported LBA Format indicated in this data structure that was used to format the namespace. If the NLBAF field is less than or equal to 16, then the host should ignore these bits. Bit 4 indicates whether or not the metadata is transferred at the end of the data LBA, creating an extended data LBA. (note: Bit 4 is not applicable when there is no metadata). Bits 3:0 indicate the least significant 4 bits of the Format Index of the supported LBA Format indicated in this data structure that was used to format the namespace. |
The mapping for Capacity.Data.ConsumedBytes
is summarized in
Table 444.
Table 444: Capacity.Data.ConsumedBytes mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Capacity.Data.ConsumedBytes | NVM Spec Property / Field:
Namespace Utilization (NUSE) retrieved in some Identify Namespace data
structures for the specified NSID or the common namespace capabilities for the
NVM Command Set (CNS 00h). Refer to the applicable NVMe I/O Command Set specification for details. For NVMe I/O Command Sets that don’t define this field, it is considered reserved NVM Spec: Section:Figure NVMe NVM Command Set Specification 1.0b: Section 4.1.5.1: Figure 97: Bytes 16 - 23 - Namespace Utilization (NUSE). NVM Express Key Value Command Set Specification 1.0b: Section 4.1.5.1 - I/O Command Set specific Identify Namespace data structure (CNS 05h, CSI 01h): Figure 36: Bytes 16 -23 (Namespace Utilization) |
Type | Int64 | Int 64 |
Description | The number of bytes consumed in this data store for this data type. | The current number of logical blocks allocated in the namespace. |
LongDescription | The value shall be the number of logical bytes currently consumed in this data store for this data type. | This field indicates the current number of logical
blocks allocated in the namespace. This field is smaller than or equal to the
Namespace Capacity. The number of logical blocks is based on the formatted LBA
size. For KV Command set: This field indicates the total size of the namespace in bytes. This is the space to store KV keys and KV values. This field is undefined prior to the namespace being formatted. |
Mandatory | Mandatory | Only Mandatory / applicable for the NVM Command Set and I/O Command Sets based on the NVM Command Set. Prohibited for all other I/O Command Sets. |
Notes | Reporting capacity in bytes is the Redfish and Swordfish standard mechanism. Clients expect the capacity information to be reported consistently for these devices, so the calculation here is to convert the NVMe properties (in blocks) to bytes. | Refer to the applicable NVMe I/O Command Set specification for details. For NVMe I/O Command Sets that don’t define this field, it is considered reserved |
The mapping for Capacity.Data.ProvisionedBytes
is summarized in
Table 445.
Table 445: Capacity.Data.ProvisionedBytes mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Capacity.Data.ProvisionedBytes | NVM Spec Property / Field:
Namespace Size (NSZE) retrieved in some Identify Namespace data structures for
the specified NSID or the common namespace capabilities for the NVM Command Set
(CNS 00h). Refer to the applicable NVMe I/O Command Set specification for details. For NVMe I/O Command Sets that don’t define this field, it is considered reserved NVM Spec: Section:Figure NVMe NVM Command Set Specification 1.0b: Section 4.1.5.1: Figure 97: Bytes 00 - 07 - Namespace Size (NSZE). NVM Express NVM Zoned Namespace Command Set Specification 1.1b: Section A.5: Figure 53: Bytes 0:7 NVM Express Key Value Command Set Specification 1.0b: Section 4.1.5.1: Figure 36: Bytes 00:07 |
Type | Int64 | Int 64 |
Description | The maximum number of bytes that can be allocated in this data store for this data type. | The total size of the NVM allocated to this namespace. |
LongDescription | The value shall be the maximum number of bytes that can be allocated in this data store for this data type. | This field indicates the total size of the
namespace in logical blocks. A namespace of size n consists of LBA 0 through (n
- 1). The number of logical blocks is based on the formatted LBA size. For ZNS: (NSZE-1) indicates the highest possible LBA in the zoned namespace. For KV: This is the space to store KV keys and KV values. This field is undefined prior to the namespace being formatted. |
Mandatory | Optional | Only Mandatory / applicable for the NVM Command Set and I/O Command Sets based on the NVM Command Set. Prohibited for all other I/O Command Sets. |
Notes | This property is required when issuing a create namespace command. It is also required for “change namespace” when modifying the size of the namespace. | Refer to the applicable NVMe I/O Command Set specification for details. For NVMe I/O Command Sets that don’t define this field, it is considered reserved |
The mapping for Capacity.Data.AllocatedBytes
is summarized in
Table 446.
Table 446: Capacity.Data.AllocatedBytes mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Capacity.Data.AllocatedBytes | NVM Spec Property / Field:
Namespace Capacity (NCAP) retrieved in some Identify Namespace data structures
for the specified NSID or the common namespace capabilities for the NVM Command
Set (CNS 00h). Refer to the applicable NVMe I/O Command Set specification for details. For NVMe I/O Command Sets that don’t define this field, it is considered reserved NVM Spec: Section:Figure NVMe NVM Command Set Specification 1.0b: Section 4.1.5.1: Figure 97: Bytes 08 - 15 - Namespace Capacity (NCAP). NVM Express NVM Zoned Namespace Command Set Specification 1.1b: Section A.5: Figure 53 (Size and Capacity Fields): Bytes 08 - 15 (Namespace Capacity). |
Type | Int64 | Int 64 |
Description | The number of bytes currently allocated by the storage system in this data store for this data type. | The maximum number of logical blocks that may be allocated in the namespace at any point in time. |
LongDescription | The value shall be the number of bytes currently allocated by the storage system in this data store for this data type. | For NVM Command Set: The maximum number of logical
blocks that may be allocated in the namespace at any point in time For Zoned Namespace Command Set: The maximum number of allocatable logical blocks in the zoned namespace. |
Mandatory | Optional | Only Mandatory / applicable for the NVM Command Set and I/O Command Sets based on the NVM Command Set. Prohibited for all other I/O Command Sets. |
Notes | Reporting capacity in bytes is the Redfish and
Swordfish standard mechanism. Not required when creating a namespace; service
implementations will provide a suitable value. For non-thin-provisioned volumes,
this will typically be equal to ProvisionedBytes . |
Refer to the applicable NVMe I/O Command Set specification for details. For NVMe I/O Command Sets that don’t define this field, it is considered reserved |
The mapping for Capacity.Metadata
is summarized in
Table 447.
Table 447: Capacity.Metadata.AllocatedBytes mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Capacity.Metadata | N/A |
Type | Int64 | N/A |
Description | The number of bytes currently allocated by the storage system in this data store for this data type. | N/A |
LongDescription | The value shall be the number of bytes currently allocated by the storage system in this data store for this data type. | N/A |
Mandatory | Optional | |
Notes | Not required for NVMe Drives; optional to implement for more complex devices. | Do not return metadata information for NVMe devices. This is included in the overall reported capacity information. |
The mapping for CapacitySources
is summarized in
Table 448.
Table 448: CapacitySources mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | CapacitySources | See notes |
Type | Collection(Capacity.CapacitySource) | See notes |
Description | An array of space allocations to this volume. | See notes |
LongDescription | Fully or partially consumed storage from a source resource. Each entry provides capacity allocation information from a named source resource. | See notes. |
Mandatory | No | No |
Notes | Contains the information about the providing capacity (e.g, EnduranceGroup) for this namespace. Each entry in the collection is mapped such that the CapacitySource instance contains the overall capacity (in bytes) and the types and pointers to the underlying capacity sources. | For each entry in the CapacitySource collection,
map the information from the NVMe specification: NVM Spec Property / Field: Supported Capacity Configuration List (Log Identifier 11h) NVM Spec: Section:Figure NVMe Base Specification 2.0: Section 5.16.1.17: Figures 250 and 251. |
The mapping for Description
is summarized in
Table 449.
Table 449: Description mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Description | N/A |
Type | String | N/A |
Description | The description of this resource. | N/A |
LongDescription | This object represents the description of this resource. The resource values shall comply with the Redfish Specification-described requirements. | N/A |
Mandatory | Mandatory | |
Notes | In Redfish, Description is a read-only field. | Return the common description: “A Namespace is a quantity of non-volatile memory that may be formatted into logical blocks. When formatted, a namespace of size n is a collection of logical blocks with logical block addresses from 0 to (n-1). NVMe systems can support multiple namespaces.” |
The mapping for DisplayName
is summarized in
Table 450.
Table 450: DisplayName mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | DisplayName | NVM Spec Property / Field:
Namespace Admin Label (1Fh) NVM Spec: Section:Figure NVMe 2.0d: Section 5.37.1.26, Figure 360 |
Type | String | UTF-8 |
Description | A user-configurable string to name the volume. | The Namespace Admin Label feature provides the ability to set and get the Namespace Admin Label for a namespace. |
LongDescription | This property shall contain a user-configurable string to name the volume. | This field contains the Namespace Admin Label for the namespace as a null-terminated UTF 8 string. The default value of this Feature is all nulls (i.e., all bytes cleared to 0h). Sanitize operations (refer to section 8.30) affect the values of this Feature; any successful sanitize operation shall modify this Feature by resetting both the saved value and the current value to the default value. |
Mandatory | Optional Recommended for NVMe Drives, as well as for more complex devices with NVMe front ends, such as opaque arrays. |
Optional |
Notes | This contains an (end) user settable “friendly” name for the namespace. In previous versions of the mapping guide, this may have mapped to a proprietary value, but switched to mapping to the Namespace Admin Label in v1.2.7. |
The mapping for Identifiers
is summarized in
Table 451.
Table 451: Identifiers mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Identifiers | NVM Spec Property / Field:
Identify / Namespace Identification Descriptor list (CNS 03h) NVM Spec: Section:Figure NVMe 2.0: Section 5.17.2.3, Figure 277 |
Type | Collection(Resource.Identifier) | A variable length Namespace Identification Descriptor structures |
Description | The Durable names for the storage controller. | A list of Namespace Identification Descriptor structures containing Namespace Type (i.e., IEEE Extended Unique Identifier, Namespace Globally Unique Identifier, Namespace UUID, Command Set Identifier), Namespace Identifier Length (NIDL), and Namespace ID (NID). |
LongDescription | This property shall contain a list of all known durable names for the associated storage controller. | A list of any number of variable length Namespace Identification Descriptor structures that fit into the 4,096 byte Identify payload. All remaining bytes after the namespace identification descriptor structures should be cleared to 0h, and the host shall interpret a Namespace Identifier Descriptor Length (NIDL) value of 0h as the end of the list. The host should ignore any Namespace Identification Descriptor with a Namespace Identifier Type not supported by the host. |
Mandatory | Optional | Yes |
Notes | This is an array of unique identifiers for the NVM Subsystem including Namespace Type and Namespace ID. |
The mapping for Identifiers.DurableName
is summarized in
Table 452.
Table 452: Identifiers.DurableName mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Identifiers.DurableName | NVM Spec Property / Field:
Identify / Namespace Identification Descriptor list (CNS 03h) / Namespace
Identifier (NID) NVM Spec: Section:Figure NVMe 2.0: Section 5.17.2.3, Figure 277: Bytes 04 : (NIDL + 3) |
Type | Variable - see notes | Variable: See notes |
Description | The Durable names for the storage controller. | This field contains a value that is globally unique and assigned to the namespace when the namespace is created. |
LongDescription | This property shall contain a list of all known durable names for the Namespace. | This field contains a value that is globally unique and assigned to the namespace when the namespace is created. This field remains fixed throughout the life of the namespace and is preserved across namespace and controller operations (e.g., Controller Level Reset, namespace format, etc.). The type of the value is specified by the Namespace Identifier Type (NIDT) field, and the size is specified by the Namespace Identifier Length (NIDL) field. |
Mandatory | Optional | Yes |
Notes | This is an array of unique identifiers for the Namespace. Type and length of descriptor are in the corresponding Identifiers.DurableNameFormat property. | The type and length of the descriptor are in the corresponding Identifiers.DurableNameFormat property |
The mapping for Identifiers.DurableNameFormat
is summarized in
Table 453.
Table 453: Identifiers.DurableNameFormat mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Identifiers.DurableNameFormat | NVM Spec Property / Field:
Identify / Namespace Identification Descriptor list (CNS 03h) / Namespace
Identifier Type (NIDT) NVM Spec: Section:Figure NVMe 2.0: Section 5.17.2.3, Figure 277: Bytes 00 |
Type | Int64 | Int64 |
Description | The Durable names for the storage controller. | The Namespace Identifier data type |
LongDescription | This property shall contain a list of the types for all known durable names for the associated storage controller. The type determines the length of the corresponding Namespace ID | The data type contained in the Namespace Identifier field and the length of that type. |
Mandatory | Optional | Yes |
Notes | This is an array of types for the unique identifiers for the NVM Subsystem. Values may be ‘EUI64’, ‘NGUID’, or ‘UUID’. | Allowed values: 1h = an 8-byte IEEE Extended Unique Identifier 2h = a 10-byte Namespace Globally Unique Identifier. 3h = an 8-byte Namespace UUID. 4h = the Command Set Identifier (the command set that operates on this namespace). |
The mapping for InitializeMethod
is summarized in
Table 454.
Table 454: InitializeMethod mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | InitializeMethod | N/A |
Type | Volume.InitializeMethod (enum) | N/A |
Description | Indicates the Initialization Method used for this volume. If InitializeMethod is not specified, the InitializeMethod should be Foreground. | N/A |
LongDescription | This property shall indicate the initialization method used for this volume. If InitializeMethod is not specified, the InitializeMethod should be Foreground. This value reflects the most recently used Initialization Method, and may be changed using the Initialize Action. | N/A |
Mandatory | Optional Recommended for NVMe Drives, as well as for more complex devices with NVMe front ends, such as opaque arrays. |
|
Notes | Available values: Fast / Slow | Not in NVMe Specification today. This maps to functionality corresponding to traditional drive capabilities outside the scope of NVMe. |
The mapping for Links.Controllers
is summarized in
Table 455.
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Links.Controllers | N/A |
Type | Collection(StorageController.StorageController) | N/A |
Description | An array of the Controllers associated with this volume. | N/A |
LongDescription | This parameter shall contain an array of the controllers (of type StorageController) associated with this volume. When the volume is of type NVMe, these may be both the physical and logical controller representations. | N/A |
Mandatory | Optional Mandatory for NVMe Drives and well as for more complex devices with an NVMe front end, such as opaque arrays. |
|
Notes | This array shall contain links to the controllers for this namespace. | These are the Redfish constructs that correspond to the Admin and IO Controllers associated with this namespace. |
The mapping for Links.Drives
is summarized in
Table 456.
Table 456: Links.Drives mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Links.Drives | N/A |
Type | Collection(Drive.Drive) | N/A |
Description | An array of the drives to be used by the volume | N/A |
LongDescription | This parameter shall contain an array of the drives to be used by the volume. | N/A |
Mandatory | Optional Mandatory for NVMe Drives. Not recommended for more complex devices with an NVMe front end, such as opaque arrays; for these configurations the mapping is to the underlying storage pool, rather than to drives. |
|
Notes | This array shall contain links to the drive object for this namespace. | Redfish construct. Not in the NVMe spec. |
The mapping for LogicalUnitNumber
is summarized in
Table 457.
Table 457: LogicalUnitNumber mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | LogicalUnitNumber | N/A |
Type | Int64 | N/A |
Description | Indicates the host-visible LogicalUnitNumber assigned to this Volume. | N/A |
LongDescription | This property shall contain host-visible LogicalUnitNumber assigned to this Volume. This property shall only be used when in a single connect configuration and no StorageGroup configuration is used. | N/A |
Mandatory | Optional | |
Notes | Do not use with NVMe devices. This is represented more correctly with (NVMeNamespaceProperties).NamespaceId. | Do not implement. |
The mapping for MaxBlockSizeBytes
is summarized in
Table 458.
Table 458: MaxBlockSizeBytes mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | MaxBlockSizeBytes | NVM Spec Property / Field:
Formatted LBA Size (FLBAS) retrieved in some Identify Namespace data structures
for the specified NSID or the common namespace capabilities for the NVM Command
Set (CNS 00h). Refer to the applicable NVMe I/O Command Set specification for details. For NVMe I/O Command Sets that don’t define this field, it is considered reserved NVM Spec: Section:Figure NVMe NVM Command Set Specification 1.0b: Section 4.1.5.1: Figure 97: Bytes 26 - Formatted LBA Size (FLBAS) and uses the Number LBA Formats (NBLAF) field defined in Section 4.1.5.1: Figure 97: Bytes 25 (Number of LBA Formats) NVM Express NVM Zoned Namespace Command Set Specification 1.1b: Section A.5: Figure 53 (Size and Capacity Fields): Bytes 26. |
Type | Int64 | |
Description | The size, in bytes, of the smallest addressable unit, or block. | The LBA data size & metadata size combination that the namespace has been formatted with. |
LongDescription | This property shall contain size of the smallest addressable unit of the associated drive or device. | This field indicates the LBA data size & metadata size combination that the namespace has been formatted with. |
Mandatory | Optional Recommended to not implement; however, if implemented this should have the same value as BlockSizeBytes. |
Only Mandatory / applicable for the NVM Command Set and I/O Command Sets based on the NVM Command Set. Prohibited for all other I/O Command Sets. |
Notes | Refer to the applicable NVMe I/O Command Set
specification for details. For NVMe I/O Command Sets that don’t define this
field, it is considered reserved. Follow index in 247: Byte 26 (bits 3:0) to the
LBA format structure to get the metadata size and LBA data size combination.
These combined values are BlockSizeBytes. For NVM Express Command Sets that Support Blocks: Bits 6:5 indicate the most significant 2 bits of the Format Index of the supported LBA Format indicated in this data structure that was used to format the namespace. If the NLBAF field is less than or equal to 16, then the host should ignore these bits. Bit 4 indicates whether or not the metadata is transferred at the end of the data LBA, creating an extended data LBA. (note: Bit 4 is not applicable when there is no metadata). Bits 3:0 indicate the least significant 4 bits of the Format Index of the supported LBA Format indicated in this data structure that was used to format the namespace. |
The mapping for Name
is summarized in Table
459.
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Name | N/A |
Type | String | N/A |
Description | The name of the resource or array member. | N/A |
LongDescription | This object represents the name of this resource or array member. The resource values shall comply with the Redfish Specification-described requirements. This string value shall be of the ‘Name’ reserved word format. | N/A |
Mandatory | Mandatory | |
Notes | In Redfish, Name is a read-only field. |
The mapping for NVMeNamespaceProperties.NamespaceId
is
summarized in Table 460.
Table 460: NVMeNamespaceProperties.NamespaceId mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeNamespaceProperties.NamespaceId | NVM Spec Property / Field:
Identify / Namespace Identification Descriptor list (CNS 03h) / Namespace
Identifier (NID) NVM Spec: Section:Figure NVMe 2.0: Section 5.17.2.3, Figure 277: Bytes 04 : (NIDL + 3) |
Type | String | Variable: See notes |
Description | The NVMe Namespace Identifier for this namespace. | This field contains a value that is globally unique and assigned to the namespace when the namespace is created. |
LongDescription | This property shall contain the NVMe Namespace
Identifier for this namespace. This property shall be a hex value. Namespace identifiers are not durable and do not have meaning outside the scope of the NVMe subsystem. NSID 0x0, 0xFFFFFFFF, 0xFFFFFFFE are special purpose values. |
This field contains a value that is globally unique and assigned to the namespace when the namespace is created. This field remains fixed throughout the life of the namespace and is preserved across namespace and controller operations (e.g., Controller Level Reset, namespace format, etc.). The type of the value is specified by the Namespace Identifier Type (NIDT) field, and the size is specified by the Namespace Identifier Length (NIDL) field. |
Mandatory | Mandatory | Yes |
Notes | The type and length of the descriptor are in the corresponding Identifiers.DurableNameFormat property |
The mapping for NVMeNamespaceProperties.IsBootCapable
is
summarized in Table 461.
Table 461: NVMeNamespaceProperties.IsBootCapable mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeNamespaceProperties.IsBootCapable | NVM Spec Property / Field:
Property Get Command / Controller Capabilities - CAP (Offset 00h)
NVM Spec: Section:Figure NVMe 2.0: Section 3.1.3.1 (Controller Capabilities), Figure 36: Bits 45 - Boot Partition Support (BPS) |
Type | Boolean | Single bit (bool) |
Description | This property indicates whether or not the Volume contains a boot image and is capable of booting. | This bit indicates whether the controller supports Boot Partitions |
LongDescription | This property shall indicate whether or not the Volume contains a boot image and is capable of booting. This property may be settable by an admin or client with visibility into the contents of the volume. This property should only be set to true when VolumeUsage is either not specified, or when VolumeUsage is set to Data or SystemData. | This bit indicates whether the controller supports Boot Partitions. If this bit is set to ’1‘, the controller supports Boot Partitions. If this bit is cleared to ’0‘, the controller does not support Boot Partitions |
Mandatory | Optional | No |
Notes |
The mapping for NVMeNamespaceProperties.IsShareable
is
summarized in Table 462.
Table 462: NVMeNamespaceProperties.IsShareable mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeNamespaceProperties.IsShareable | NVM Spec Property / Field:
Identify command / I/O Command Set Independent Identify Namespace data structure
(CNS 08h) / Namespace Multi-path I/O and Namespace Sharing Capabilities (NMIC)
NVM Spec: Section:Figure NVMe 2.0: Section 5.17.2.8 (I/O Command Set Independent Identify Namespace Data Structure), Figure 280: Byte 01 - Namespace Multi-path I/O and Namespace Sharing Capabilities (NMIC) |
Type | Boolean | Single bit (bool) |
Description | Indicates the namespace is shareable. | Indicates if the namespace is a private namespace and is able to be attached to only one controller at a time or if the namespace may be attached to two or more controllers in the NVM subsystem concurrently (i.e., may be a shared namespace) |
LongDescription | This property shall indicate whether the namespace is shareable. | If set to ‘1’, then the namespace may be attached to two or more controllers in the NVM subsystem concurrently (i.e., may be a shared namespace). Bits 7:1 are reserved. Bit 0, if cleared to ‘0’, indicates the namespace is a private namespace and is able to be attached to only one controller at a time. |
Mandatory | Optional | No |
Notes |
The mapping for
NVMeNamespaceProperties.NamespaceFeatures.SupportsThinProvisioning
is summarized in Table 463.
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeNamespaceProperties.NamespaceFeatures.SupportsThinProvisioning | NVM Spec Property / Field:
Namespace Features (NSFEAT) retrieved in some Identify Namespace data structures
for the specified NSID or the common namespace capabilities for the NVM Command
Set (CNS 00h). Refer to the applicable NVMe I/O Command Set specification for details. For NVMe I/O Command Sets that don’t define this field, it is considered reserved NVM Spec: Section:Figure NVMe NVM Command Set Specification 1.0b: Section 4.1.5.1: Figure 97: Bytes 24 - Namespace Features (NSFEAT), Bit 0 (ThinP). |
Type | Boolean | Single bit (bool) |
Description | This property indicates whether or not the NVMe Namespace supports thin provisioning. | Indicates that the namespace supports thin provisioning |
LongDescription | This property shall indicate whether or not the NVMe Namespace supports thin provisioning. Specifically, the namespace capacity reported may be less than the namespace size. | if set to ‘1’ indicates that the namespace supports thin provisioning. If cleared to ‘0’ indicates that thin provisioning is not supported. |
Mandatory | Mandatory | Yes |
Notes | Only Mandatory / applicable for the NVM Command Set and I/O Command Sets based on the NVM Command Set. Prohibited for all other I/O Command Sets. |
SupportsThinProvisioning mapping
The mapping for
NVMeNamespaceProperties.NamespaceFeatures.SupportsDeallocatedOrUnwrittenLBError
is summarized in Table 464.
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeNamespaceProperties.NamespaceFeatures.SupportsDeallocatedOrUnwrittenLBError | NVM Spec Property / Field:
Namespace Features (NSFEAT) retrieved in some Identify Namespace data structures
for the specified NSID or the common namespace capabilities for the NVM Command
Set (CNS 00h). Refer to the applicable NVMe I/O Command Set specification for details. For NVMe I/O Command Sets that don’t define this field, it is considered reserved NVM Spec: Section:Figure NVMe NVM Command Set Specification 1.0b: Section 4.1.5.1: Figure 97: Bytes 24 - Namespace Features (NSFEAT), Bit 2 (DAE). |
Type | Boolean | Single bit (bool) |
Description | This property indicates that the controller supports deallocated or unwritten logical block error for this namespace. | Indicates if the controller supports the Deallocated or Unwritten Logical Block error for this namespace. |
LongDescription | This property shall indicate that the controller supports deallocated or unwritten logical block error for this namespace. | If set to ‘1’ indicates that the controller supports the Deallocated or Unwritten Logical Block error for this namespace. If cleared to ‘0’, then the controller does not support the Deallocated or Unwritten Logical Block error for this namespace. |
Mandatory | Mandatory | Yes |
Notes | Only Mandatory / applicable for the NVM Command Set and I/O Command Sets based on the NVM Command Set. Prohibited for all other I/O Command Sets. |
SupportsDeallocatedOrUnwrittenLBError mapping
The mapping for
NVMeNamespaceProperties.NamespaceFeatures.SupportsNGUIDReuse
is
summarized in Table 465.
Table 465: NVMeNamespaceProperties.NamespaceFeatures.SupportsNGUIDReuse mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeNamespaceProperties.NamespaceFeatures.SupportsNGUIDReuse | NVM Spec Property / Field:
Namespace Features (NSFEAT) retrieved in some Identify Namespace data structures
for the specified NSID or the common namespace capabilities for the NVM Command
Set (CNS 00h). Refer to the applicable NVMe I/O Command Set specification for details. For NVMe I/O Command Sets that don’t define this field, it is considered reserved NVM Spec: Section:Figure NVMe NVM Command Set Specification 1.0b: Section 4.1.5.1: Figure 97: Bytes 24 - Namespace Features (NSFEAT), Bit 3 (UIDRESUSE). NVMe KV Command Set Specification 1.0b: Section 4.1.5.1: Figure 36: Bytes 24 - Namespace Feaetures (NSFEAT), Bit 3 (UIDRESUSE). |
Type | Boolean | Single bit (bool) |
Description | This property indicates that the namespace supports the use of an NGUID (namespace globally unique identifier) value. | Indicates if the value in the NGUID field and the value in the EUI64 field for this namespace may be reused by the controller for a new namespace created after this namespace is deleted. |
LongDescription | This property shall indicate that the namespace supports the use of an NGUID (namespace globally unique identifier) value. | If set to ‘1’ indicates that the value in the NGUID field for this namespace, if non-zero, is never reused by the controller and that the value in the EUI64 field for this namespace, if non-zero, is never reused by the controller. If cleared to ‘0’, then the NGUID value may be reused and the EUI64 value may be reused by the controller for a new namespace created after this namespace is deleted. This bit shall be cleared to ‘0’ if both NGUID and EUI64 fields are cleared to 0h. |
Mandatory | Mandatory | Yes |
Notes | Only Mandatory / applicable for the NVM Command Set and I/O Command Sets based on the NVM Command Set, and the KV ommand Set. Prohibited for all other I/O Command Sets. |
The mapping for
NVMeNamespaceProperties.NamespaceFeatures.SupportsAtomicTransactionSize
is summarized in Table 466.
Table 466: NVMeNamespaceProperties.NamespaceFeatures.SupportsAtomicTransactionSize
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeNamespaceProperties.NamespaceFeatures.SupportsAtomicTransactionSize | NVM Spec Property / Field:
Namespace Features (NSFEAT) retrieved in some Identify Namespace data structures
for the specified NSID or the common namespace capabilities for the NVM Command
Set (CNS 00h). Refer to the applicable NVMe I/O Command Set specification for details. For NVMe I/O Command Sets that don’t define this field, it is considered reserved NVM Spec: Section:Figure NVMe NVM Command Set Specification 1.0b: Section 4.1.5.1: Figure 97: Bytes 24 - Namespace Features (NSFEAT), Bit 4 (OPTPERF). |
Type | Boolean | Single bit (bool) |
Description | Indicates whether or not the NVM fields for Namespace preferred write granularity (NPWG), write alignment (NPWA), deallocate granularity (NPDG), deallocate alignment (NPDA) and optimimal write size (NOWS) are defined for this namespace and should be used by the host for I/O optimization. | Indicates support for the fields NPWG, NPWA, NPDG, NPDA, and NOWS for this namespace; and optimal Write Size field in NVM Sets Attributes Entry |
LongDescription | This property shall indicate whether or not the NVM fields for Namespace preferred write granularity (NPWG), write alignment (NPWA), deallocate granularity (NPDG), deallocate alignment (NPDA) and optimimal write size (NOWS) are defined for this namespace and should be used by the host for I/O optimization. | If set to ‘1’ indicates that the fields NAWUN, NAWUPF, and NACWU are defined for this namespace and should be used by the host for this namespace instead of the AWUN, AWUPF, and ACWU fields in the Identify Controller data structure. If cleared to ‘0’, then the controller does not support the fields NAWUN, NAWUPF, and NACWU for this namespace. In this case, the host should use the AWUN, AWUPF, and ACWU fields defined in the Identify Controller data structure. |
Mandatory | Mandatory | Yes |
Notes | Only Mandatory / applicable for the NVM Command Set and I/O Command Sets based on the NVM Command Set. Prohibited for all other I/O Command Sets. |
SupportsAtomicTransactionSize mapping
The mapping for
NVMeNamespaceProperties.NamespaceFeatures.SupportsIOPerformanceHints
is summarized in Table 467.
Table 467: NVMeNamespaceProperties.NamespaceFeatures.SupportsIOPerformanceHints
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeNamespaceProperties.NamespaceFeatures.SupportsIOPerformanceHints | NVM Spec Property / Field:
Namespace Features (NSFEAT) retrieved in some Identify Namespace data structures
for the specified NSID or the common namespace capabilities for the NVM Command
Set (CNS 00h). Refer to the applicable NVMe I/O Command Set specification for details. For NVMe I/O Command Sets that don’t define this field, it is considered reserved NVM Spec: Section:Figure NVMe NVM Command Set Specification 1.0b: Section 4.1.5.1: Figure 97: Bytes 24 - Namespace Features (NSFEAT), Bit 1 (NSABP). |
Type | Boolean | Single bit (bool) |
Description | Indicates that the Namepsace Atomic Write Unit Normal (NAWUN), Namespace Atomic Write Unit Power Fail (NAWUPF), and Namespace Atomic Compare and Write Unit (NACWU) fields are defined for this namespace and should be used by the host for this namespace instead of the controller-level properties AWUN, AWUPF, and ACWU. | indicates whether or not the fields NAWUN, NAWUPF, and NACWU are defined for this namespace and should be used by the host for this namespace instead of the AWUN, AWUPF, and ACWU fields in the Identify Controller data structure. |
LongDescription | This property shall indicate that the Namepsace Atomic Write Unit Normal (NAWUN), Namespace Atomic Write Unit Power Fail (NAWUPF), and Namespace Atomic Compare and Write Unit (NACWU) fields are defined for this namespace and should be used by the host for this namespace instead of the controller-level properties AWUN, AWUPF, and ACWU. | If set to ‘1’ indicates that the fields NAWUN, NAWUPF, and NACWU are defined for this namespace and should be used by the host for this namespace instead of the AWUN, AWUPF, and ACWU fields in the Identify Controller data structure. If cleared to ‘0’, then the controller does not support the fields NAWUN, NAWUPF, and NACWU for this namespace. In this case, the host should use the AWUN, AWUPF, and ACWU fields defined in the Identify Controller data structure |
Mandatory | Mandatory | Yes |
Notes | Only Mandatory / applicable for the NVM Command Set and I/O Command Sets based on the NVM Command Set. Prohibited for all other I/O Command Sets. |
SupportsIOPerformanceHints mapping
The mapping for NVMeNamespaceProperties.LBAFormat.LBAFormatType
is summarized in Table 468.
Table 468: 468: NVMeNamespaceProperties.LBAFormat.LBAFormatType mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeNamespaceProperties.LBAFormat.LBAFormatType | NVM Spec Property / Field:
Retrieved in the Identify Namespace data structure for the specified NSID or the
common namespace capabilities for the NVM Command Set (CNS 00h). Refer to the
applicable NVMe I/O Command Set specification for details. For NVMe I/O Command
Sets that don’t define this field, it is considered reserved NVM Spec: Section:Figure NVMe NVM Command Set Specification 1.0b: Section 4.1.5.1: Figure 97 (Identify Namespace Data Structure, NVM Command Set, NVM Command Set Specific): Byte 26 - Formatted LBA Size (FLBAS). |
Type | String | 2 bits |
Description | indicates the LBA data size & metadata size combination that the namespace has been formatted with. | Indicates the LBA data size & metadata size combination that the namespace has been formatted with. |
LongDescription | This field indicates the LBA data size & metadata size combination that the namespace has been formatted with. | This field indicates the LBA data size &
metadata size combination that the namespace has been formatted with. Bits 7 is reserved. Bits 6:5 indicate the most significant 2 bits of the Format Index of the supported LBA Format indicated in this data structure that was used to format the namespace. If the NLBAF field is less than or equal to 16, then the host should ignore these bits. Bit 4 if set to ‘1’ indicates that the metadata is transferred at the end of the data LBA, creating an extended data LBA. Bit 4 if cleared to ‘0’ indicates that all of the metadata for a command is transferred as a separate contiguous buffer of data. Bit 4 is not applicable when there is no metadata. Bits 3:0 indicate the least significant 4 bits of the Format Index of the supported LBA Format indicated in this data structure that was used to format the namespace |
Mandatory | Mandatory | Yes |
Notes | Only Mandatory / applicable for the NVM Command Set and I/O Command Sets based on the NVM Command Set. Prohibited for all other I/O Command Sets. |
The mapping for
NVMeNamespaceProperties.LBAFormat.RelativePerformance
is summarized
in Table 469.
Table 469: 469: NVMeNamespaceProperties.LBAFormat.RelativePerformance mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeNamespaceProperties.LBAFormat.RelativePerformance | NVM Spec Property / Field:
Retrieved in the Identify Namespace data structure for the specified NSID or the
common namespace capabilities for the NVM Command Set (CNS 00h). This property
may be found by retrieving the LBA Format data structure which starts at the
LBAFormat offset for which this Namespace was formatted. Refer to the applicable NVMe I/O Command Set specification for details. For NVMe I/O Command Sets that don’t define this field, it is considered reserved NVM Spec: Section:Figure NVMe NVM Command Set Specification 1.0b: Section 4.1.5.1: Figure 98 (LBA Format Data Structure, NVM Command Set Specific): Bits 24:25 - Relative Performance (RP). |
Type | String | 2 bits |
Description | The relative performance of the LBA format indicated relative to other LBA formats supported by the controller. | The relative performance of the LBA format indicated relative to other LBA formats supported by the controller. |
LongDescription | This field indicates the relative performance of the LBA format indicated relative to other LBA formats supported by the controller (“Best”, “Better”, “Good”, “Degraded”). Depending on the size of the LBA and associated metadata, there may be performance implications. The performance analysis is based on better performance on a queue depth 32 with 4 KiB read workload. | This field indicates the relative performance of
the LBA format indicated relative to other LBA formats supported by the
controller (see value/definition table below). Depending on the size of the LBA
and associated metadata, there may be performance implications. The performance
analysis is based on better performance on a queue depth 32 with 4 KiB read
workload. Value Definition 00b Best performance 01b Better performance 10b Good performance 11b Degraded performance |
Mandatory | Mandatory | Yes |
Notes | Only Mandatory / applicable for the NVM Command Set and I/O Command Sets based on the NVM Command Set. Prohibited for all other I/O Command Sets. |
The mapping for
NVMeNamespaceProperties.LBAFormat.LBADataSizeBytes
is summarized in
Table 470.
Table 470: 470: NVMeNamespaceProperties.LBAFormat.LBADataSizeBytes mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeNamespaceProperties.LBAFormat.LBADatasizeBytes | NVM Spec Property / Field:
Retrieved in the Identify Namespace data structure for the specified NSID or the
common namespace capabilities for the NVM Command Set (CNS 00h). This property
may be found by retrieving the LBA Format data structure which starts at the
LBAFormat offset for which this Namespace was formatted. Refer to the applicable NVMe I/O Command Set specification for details. For NVMe I/O Command Sets that don’t define this field, it is considered reserved NVM Spec: Section:Figure NVMe NVM Command Set Specification 1.0b: Section 4.1.5.1: Figure 98 (LBA Format Data Structure, NVM Command Set Specific): Bits 16:23 - LBA Data Size (LBADS). |
Type | 8 bits | 8 bits |
Description | The LBA data size supported. | The LBA data size supported, reported in terms of a power of two (2^n). |
LongDescription | This field indicates the LBA data size supported. | This field indicates the LBA data size supported. The value is reported in terms of a power of two (2^n). A value smaller than 9 (i.e., 512 bytes) is not supported. If the value reported is 0h, then the LBA format is not supported / used or is not currently available. |
Mandatory | Mandatory | Yes |
Notes | Only Mandatory / applicable for the NVM Command Set and I/O Command Sets based on the NVM Command Set. Prohibited for all other I/O Command Sets. |
The mapping for
NVMeNamespaceProperties.LBAFormat.LBAMetaDataSizeBytes
is
summarized in Table 471.
Table 471: 471: NVMeNamespaceProperties.LBAFormat.LBAMetaDataSizeBytes mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeNamespaceProperties.LBAFormat.LBAMetaDatasizeBytes | NVM Spec Property / Field:
Retrieved in the Identify Namespace data structure for the specified NSID or the
common namespace capabilities for the NVM Command Set (CNS 00h). This property
may be found by retrieving the LBA Format data structure which starts at the
LBAFormat offset for which this Namespace was formatted. Refer to the applicable NVMe I/O Command Set specification for details. For NVMe I/O Command Sets that don’t define this field, it is considered reserved NVM Spec: Section:Figure NVMe NVM Command Set Specification 1.0b: Section 4.1.5.1: Figure 98 (LBA Format Data Structure, NVM Command Set Specific): Bits 00:15 - MetaData Size (MS). |
Type | 16 bits | 16 bits |
Description | The LBA metadata size supported. | The number of metadata bytes provided per LBA based on the LBA Data Size indicated |
LongDescription | This field indicates the LBA metadata size supported. | This field indicates the number of metadata bytes
provided per LBA based on the LBA Data Size indicated. If there is no metadata
supported, then this field shall be cleared to 0h. If metadata is supported, then the namespace may support the metadata being transferred as part of an extended data LBA or as part of a separate contiguous buffer. If end-to-end data protection is enabled, then the first eight bytes or last eight bytes of the metadata is the protection information (refer to the DPS field in the Identify Namespace data structure). |
Mandatory | Mandatory | Yes |
Notes | Only Mandatory / applicable for the NVM Command Set and I/O Command Sets based on the NVM Command Set. Prohibited for all other I/O Command Sets. |
6.5.2.32. #6.5.2.32. #6.5.2.32. #6.5.2.32. #6.5.2.32. 6.5.2.32. 6.5.2.32.
The mapping for
NVMeNamespaceProperties.MetadataTransferredAtEndOfDataLBA
is
summarized in Table 472.
Table 472: NVMeNamespaceProperties.MetadataTransferredAtEndOfDataLBA mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeNamespaceProperties.MetadataTransferredAtEndOfDataLBA | NVM Spec Property / Field:
Metadata Capabilities (MC) retrieved in some Identify Namespace data structures
for the specified NSID or the common namespace capabilities for the NVM Command
Set (CNS 00h). Refer to the applicable NVMe I/O Command Set specification for details. For NVMe I/O Command Sets that don’t define this field, it is considered reserved NVM Spec: Section:Figure NVMe NVM Command Set Specification 1.0b: Section 4.1.5.1: Figure 97: Bytes 27 - Metadata Capabilities (MC). |
Type | Boolean | 2 Bits |
Description | This property indicates whether or not the metadata is transferred at the end of the LBA creating an extended data LBA. | This property indicates whether or not the metadata is transferred at the end of the data LBA. |
LongDescription | This property shall indicate whether or not the metadata is transferred at the end of the LBA creating an extended data LBA. | Bit 1 if set to ‘1’ indicates the namespace supports the metadata being transferred as part of a separate buffer that is specified in the Metadata Pointer. Bit 1 if cleared to ‘0’ indicates that the namespace does not support the metadata being transferred as part of a separate buffer. Bit 0 if set to ‘1’ indicates that the namespace supports the metadata being transferred as part of an extended data LBA. Bit 0 if cleared to ‘0’ indicates that the namespace does not support the metadata being transferred as part of an extended data LBA. |
Mandatory | Mandatory | Yes |
Notes | Only Mandatory / applicable for the NVM Command Set and I/O Command Sets based on the NVM Command Set. Prohibited for all other I/O Command Sets. |
The mapping for NVMeNamespaceProperties.NVMeVersion
is
summarized in Table 473.
Table 473: NVMeNamespaceProperties.NVMeVersion mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeNamespaceProperties.NVMeVersion | NVM Spec Property / Field:
Property Get Command / Version (VS) - Offset 8h NVM Spec: Section:Figure NVMe Base Specification 2.0: Section 3.1.3.2 |
Type | String | Int64 |
Description | The version of the NVMe Base Specification supported. | This property indicates the major, minor, and tertiary version of the NVM Express base specification that the controller implementation supports |
LongDescription | This property indicates the major, minor, and tertiary version of the NVM Express base specification that the controller implementation supports. Valid versions of the specification are: 1.0, 1.1, 1.2, 1.2.1, 1.3, 1.4, and 2.0. | |
Mandatory | Mandatory | Yes |
Notes |
The mapping for OptimumIOSizeBytes
is summarized in
Table 474.
Table 474: OptimumIOSizeBytes mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | OptimumIOSizeBytes | NVM Spec Property / Field:
Namespace Optimal Write Size (NOWS) retrieved in some Identify Namespace data
structures for the specified NSID or the common namespace capabilities for the
NVM Command Set (CNS 00h). Refer to the applicable NVMe I/O Command Set specification for details. For NVMe I/O Command Sets that don’t define this field, it is considered reserved NVM Spec: Section:Figure NVMe NVM Command Set Specification 1.0b: Section 4.1.5.1: Figure 97: Bytes 72 - 73 - Namespace Optimal Write Size (NOWS) |
Type | Int64 | 2 Bytes |
Description | The size in bytes of this Volume’s optimum IO size. | This field indicates the size in logical blocks for optimal write performance for this namespace. |
LongDescription | This property shall contain the optimum IO size to use when performing IO on this volume. For logical disks, this is the stripe size. For physical disks, this describes the physical sector size. | This field indicates the size in logical blocks for optimal write performance for this namespace. This is a 0’s based value. If the OPTPERF bit is cleared to ‘0’, then this field is reserved. The size indicated should be less than or equal to Maximum Data Transfer Size (MDTS) that is specified in units of minimum memory page size. The value of this field may change if the namespace is reformatted. The value of this field should be a multiple of Namespace Preferred Write Granularity (NPWG). |
Mandatory | Optional Recommended for implementations with Endurance Groups and NVM Sets. |
Optional |
Notes | Only Mandatory / applicable for the NVM Command
Set and I/O Command Sets based on the NVM Command Set. Prohibited for all other
I/O Command Sets. Convert from blocks to bytes. If the namespace is associated with an NVM set, NOWS defined for this namespace shall be set to the Optimal Write Size field setting defined in NVM Set Attributes Entry (refer to the Namespace Identification Descriptor in the NVMe Base Specification) for the NVM Set with which this namespace is associated. If NOWS is not supported, the Optimal Write Size field in NVM Sets Attributes Entry (refer to the Namespace Identification Descriptor in the NVMe Base Specification) for the NVM Set with which this namespace is associated should be used by the host for I/O optimization. Refer to the NVMe NVM Command Set Specification, section 5.8.2 for how this field is utilized to improve performance and endurance |
The mapping for ProvisioningPolicy
is summarized in
Table 475.
Table 475: OptimumIOSizeBytes mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | ProvisioningPolicy | NVM Spec Property / Field:
Namespace Features (NSFEAT) retrieved in some Identify Namespace data structures
for the specified NSID or the common namespace capabilities for the NVM Command
Set (CNS 00h). Refer to the applicable NVMe I/O Command Set specification for details. For NVMe I/O Command Sets that don’t define this field, it is considered reserved NVM Spec: Section:Figure NVMe NVM Command Set Specification 1.0b: Section 4.1.5.1: Figure 97: Bytes 24 - Namespace Features (NSFEAT), Bit 0 (ThinP). |
Type | enum (DataStorageLoSCapabilities.ProvisioningPolicy) | Single Bit (BOOL) |
Description | This property specifies the volume’s storage allocation, or provisioning policy. | Indicates that the namespace supports thin provisioning |
LongDescription | This property shall specify the volume’s supported storage allocation policy. | if set to ‘1’ indicates that the namespace supports thin provisioning. If cleared to ‘0’ indicates that thin provisioning is not supported |
Mandatory | Optional Recommended for implementations that support thin provisioning. |
Mandatory |
Notes | possible values: Fixed / Thin | Only Mandatory / applicable for the NVM Command Set and I/O Command Sets based on the NVM Command Set. Prohibited for all other I/O Command Sets. |
The mapping for Status.state
is summarized in
Table 476.
Table 476: Status.State mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Status.State | NVM Spec Property / Field:
Identify Command / I/O Command Set Independent Identify Namespace data structure
(CNS 08h) / Namespace Status(NSTAT) NVM Spec: Section:Figure NVMe 2.0: Section 5.17.2.8: Figure 280 - Byte14: Namespace Status (NSTAT): - Bit 0: Namespace Ready (NRDY) |
Type | Resource.State (enum) | Boolean |
Description | The known state of the resource, such as, enabled. | Indicates if the Namespace is ‘ready’ |
LongDescription | This property shall indicate whether and why this component is available. Enabled indicates the resource is available. Disabled indicates the resource has been intentionally made unavailable but can be enabled. Offline indicates the resource is unavailable intentionally and requires action to make it available. InTest indicates that the component is undergoing testing. Starting indicates that the resource is becoming available. Absent indicates the resource is physically unavailable. | This field indicates the status of the namespace with the specified NSID. A value of ‘1’ indicates that the namespace is ready. A value of ‘0’ indicates that the namespace is not ready. |
Mandatory | Mandatory | Yes |
Notes | Possible values: Enabled / Disabled / StandbyOffline / StandbySare / InTest / Starting / Absent / UnavailableOffline / Deferring / Quiesced / Updating / Qualified | Namespace Ready (NRDY value = 1) maps to ‘Enabled’. Namespace Not Ready (NRDY value = 0) maps to ‘Disabled’. |
The mapping for Status.Health
is summarized in
Table 477.
Table 477: Status.Health mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Status.Health | Property Get / Controller Status (Offset 18h) /
Controller Fatal Status (CSTS.CFS) - Bit 01 NVM Spec: Section:Figure NVMe 2.0: 3.1.3.6: Figure 47 |
Type | Resource.Health | Bit |
Description | The health state of this resource in the absence of its dependent resources. | Indicates if the controller is able to communicate with host software via completion queue entries in the Admin Completion Queue or I/O Completion Queues. |
LongDescription | This property shall represent the health state of the resource without considering its dependent resources. The values shall conform to those defined in the Redfish Specification. | If the controller has a serious error condition and is unable to communicate with host software via completion queue entries in the Admin Completion Queue or I/O Completion Queues, then the controller may set the Controller Fatal Status (CSTS.CFS) bit to ‘1’ (refer to section 3.1.6). This indicates to host software that a serious error condition has occurred. When this condition occurs, host software should attempt to reset and then re-initialize the controller. The Controller Fatal Status condition is not indicated with an interrupt. If host software experiences timeout conditions and/or repeated errors, then host software should consult the Controller Fatal Status (CSTS.CFS) bit to determine if a more serious error has occurred. |
Mandatory | Mandatory | Yes |
Notes | Possible Values: OK / Warning / Critical | Reference Figure 222 (NVM Subsystem Hardware Error Event Codes) bit 09h of the NVMe Base Specification. |
The mapping for Status.HealthRollup
is summarized in
Table 478.
Table 478: Status.HealthRollup mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Status.HealthRollup | N/A |
Type | Resource.Health | N/A |
Description | The overall health state from the view of this resource. | N/A |
LongDescription | This property shall represent the health state of the resource and its dependent resources. The values shall conform to those defined in the Redfish Specification. | N/A |
Mandatory | Optional | |
Notes | Do not use for Namespace. There are no dependent resources. | Do not implement. |
The mapping for StorageGroups
is summarized in
Table 479.
Table 479: StorageGroups mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | StorageGroups | N/A |
Type | StorageGroupCollection.StorageGroupCollection | N/A |
Description | An array of references to Storage Groups that includes this volume. | N/A |
LongDescription | The value of this property shall contain references to all storage groups that include this volume. | N/A |
Mandatory | Do Not Implement | |
Notes |
The mapping for WriteCachePolicy
is summarized in
Table 480.
Table 480: WriteCachePolicy mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | WriteCachePolicy | N/A |
Type | StorageGroupCollection.StorageGroupCollection | N/A |
Description | Indicates the write cache policy setting for the Volume | N/A |
LongDescription | This property shall contain a boolean indicator of the write cache policy for the Volume. | N/A |
Mandatory | Recommended | |
Notes | Possible Values: WriteThrough, ProtectedWriteBack, UnprotectedWriteBack, Off. Set to “Off” when write cache disabled; set to other values when enabled. |
The Redfish/Swordfish Storage Pool schema is used to represent an NVM Endurance Group.
The following mockup shows a sample representation of the Storage Pool schema used to represent an NVM Endurance Group.
{{
"@odata.type": "#StoragePool.v1_7_1.StoragePool",
"Id": "1",
"Name": "Endurance Group 1",
"Description": "Single Endurance Group",
"NVMeProperties": {
"NVMePoolType": "EnduranceGroup"
},
"NVMeEnduranceGroupProperties": {
"EndGrpLifetime": {
"PercentUsed": 0,
"EnduranceEstimate": 0,
"DataUnitsRead": 0,
"DataUnitsWritten": 0,
"MediaUnitsWritten": 0,
"HostReadCommandCount": 0,
"HostWriteCommandCount": 0,
"MediaAndDataIntegrityErrorCount": 0,
"ErrorInformationLogEntryCount": 0
}
},
"Capacity": {
"Data": {
"AllocatedBytes": 10995116277760,
"ConsumedBytes": 10995116277760
}
},
"CapacitySources": [
{
"@odata.type": "#Capacity.v1_2_0.CapacitySource",
"Name": "Source1",
"Id": "Source1",
"ProvidedCapacity": {
"Data": {
"ConsumedBytes": 10995116277760,
"AllocatedBytes": 10995116277760
}
},
"ProvidingDrives": {
"@odata.id": "/redfish/v1/Storage/FabricAttachArray/StoragePools/ EnduranceGroup1/CapacitySources/Source1/ProvidingDrives"
},
"ProvidingPools": {
"@odata.id": "/redfish/v1/Storage/FabricAttachArray/StoragePools/ EnduranceGroup1/CapacitySources/Source1/ProvidingPools"
},
"@odata.id": "/redfish/v1/Storage/FabricAttachArray/StoragePools/ EnduranceGroup1/CapacitySources/Source1"
}
],
"@odata.id": "/redfish/v1/Storage/FabricAttachArray/StoragePools/EnduranceGroup1",
"@Redfish.Copyright": "Copyright 2015-2024 SNIA. All rights reserved."
}
The mapping for AllocatedPools
is summarized in
Table 481.
Table 481: AllocatedPools mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | AllocatedPools | NVM Spec: Property / Field: NVMe 2.0: Identify Command / NVM Set List (CNS 04h) NVM Spec: Section:Figure NVMe 2.0: 5.17.2.4: Figure 278 |
Type | StoragePoolCollection.StoragePoolCollection | NVM Set List |
Description | A reference to the collection of storage pools allocated from this storage pool. | A list of NVM sets |
LongDescription | The value of this property shall contain a reference to the collection of storage pools allocated from this storage pool. | The data structure is an ordered list of up to 31 NVM Set Attribute Entry data structures, sorted by NVM Set Identifier, starting with the first NVM Set Identifier supported by the NVM subsystem that is equal to or greater than the NVM Set Identifier indicated in CDW11.NVMSETID and are accessible by the controller processing the command |
Mandatory | Mandatory | I/O Controller: Optional Admin Controller: Optional Discovery Controller: Prohibited |
Notes | Contains a pointer to the NVM Set allocated from this Endurance Group. |
The mapping for Capacity.Data.AllocatedBytes
is summarized in
Table 482.
Table 482: Capacity.Data.AllocatedBytes mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Capacity.Data.AllocatedBytes | NVM Spec: Property / Field: NVMe 2.0: Endurance Group Information Log (Log Identifier 09h) Total Endurance Group Capacity (TEGCAP) NVM Spec: Section:Figure NVMe 2.0: 5.116.1.10: Figure 218 Get Log Page – Endurance Group Information Log (Log Identifier 09h) : Total Endurance Group Capacity (TEGCAP) (bytes 175:160) |
Type | Int64 | 16-Bytes |
Description | The number of bytes currently allocated by the storage system in this data store for this data type. | This field indicates the total NVM capacity in this Endurance Group. The value is in bytes. |
LongDescription | The value shall be the number of bytes currently allocated by the storage system in this data store for this data type. | This field indicates the total NVM capacity in this Endurance Group. The value is in bytes. If this field is cleared to 0h, the NVM subsystem does not report the total NVM capacity in this Endurance Group. |
Mandatory | Optional Mandatory for NVMe Drives. | I/O Controller: Optional Admin Controller: Optional Discovery Controller: Prohibited |
Notes |
The mapping for Capacity.Data.ConsumedBytes
is summarized in
Table 483.
Table 483: Capacity.Data.ConsumedBytes mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Capacity.Data.ConsumedBytes | NVM Spec: Property / Field: NVMe 2.0: Endurance Group Information Log (Log Identifier 09h) Total Endurance Group Capacity (TEGCAP) - Unallocated Endurance Group Capacity (UEGCAP) NVM Spec: Section:Figure NVMe 2.0: 5.116.1.10: Figure 218 Get Log Page – Endurance Group Information Log (Log Identifier 09h) Subtract Unallocated Endurance Group Capacity (UEGCAP) (bytes 191:176) from Total Endurance Group Capacity (TEGCAP) (bytes 175:160) |
Type | Int64 | 16-Bytes |
Description | The number of bytes consumed in this data store for this data type. | Total Endurance Group Capacity (TEGCAP) - Unallocated Endurance Group Capacity (UEGCAP) |
LongDescription | The value shall be the number of logical bytes currently consumed in this data store for this data type. | Total Endurance Group Capacity (TEGCAP) - Unallocated Endurance Group Capacity (UEGCAP) |
Mandatory | Optional Mandatory for NVMe Drives. | I/O Controller: Optional Admin Controller: Optional Discovery Controller: Prohibited |
Notes | Total Endurance Group Capacity (TEGCAP): This field indicates the total NVM capacity in this Endurance Group. The value is in bytes. If this field is cleared to 0h, the NVM subsystem does not report the total NVM capacity in this Endurance Group. Unallocated Endurance Group Capacity (UEGCAP): This field indicates the unallocated NVM capacity in this Endurance Group. The value is in bytes. If this field is cleared to 0h, the NVM subsystem does not report the unallocated NVM capacity in this Endurance Group. |
The mapping for CapacitySources
is summarized in
Table 484.
Table 484: CapacitySources mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | CapacitySources | See notes |
Type | Collection(Capacity.CapacitySource) | See Notes |
Description | An array of space allocations to this volume. | A list of NVM Endurance Groups accessible by the controller and the Endurance Group Information Log for each Endurance Group. |
LongDescription | Fully or partially consumed storage from a source resource. Each entry provides capacity allocation information from a named source resource. | See notes. |
Mandatory | Required for NVMe Drives. | Optional |
Notes | Contains the information about the providing capacity (e.g, NVMSet) for this endurance group. Each entry in the collection is mapped such that the CapacitySource instance contains the overall capacity (in bytes) and the types and pointers to the underlying capacity sources. | For each entry in the CapacitySource collection,
map the information from the NVMe specification: NVM Spec: Property /
Field: NVMe 2.0: Identify Command / NVM Endurance Group List (CNS 19h) and NVMe 2.0: Endurance Group Information log (Log ID 09h) NVM Spec: Section:Figure NVMe 2.0: 5.17.2.18: Figure 288 and NVMe 2.0: 5.16.1.10: Figure 217. Identify command to access the Endurance Group List data structure (refer to section 5.17.2.18) to determine the Endurance Groups that are accessible by the controller. To determine the capacity information for each Endurance Group, the host uses the Get Log Page command to access the Endurance Group Information log page (refer to section 5.16.1.10). |
The mapping for CapacitySources@odata.count
is summarized in
Table 485.
Table 485: CapacitySources@odata.count mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | CapacitySources@odata.count | NVM Spec: Property / Field: NVMe 2.0: Identify Command / NVM Endurance Group List (CNS 19h) NVM Spec: Section:Figure NVMe 2.0: 5.17.2.4: Figure 278. Bytes 00 (Number of Identifiers) in the NVM Endurance Group List |
Type | (odata property)int64 | Int64 |
Description | Count of the number of items in the CapacitySources array. | Number of Identifiers in the NVM Endurance Group List |
LongDescription | This field contains the number of Endurance Group Identifiers in the list. There may be up to 2,047 identifiers in the list. If this field is cleared to 0h, then no Endurance Group Identifiers are in the list. | |
Mandatory | Mandatory | Optional |
Notes |
The mapping for Description
is summarized in
Table 486.
Table 486: Description mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Description | N/A |
Type | String | N/A |
Description | The description of this resource. | N/A |
LongDescription | This object represents the description of this resource. The resource values shall comply with the Redfish Specification-described requirements. | N/A |
Mandatory | Optional | |
Notes | In Redfish, Description is a read-only field. |
The mapping for Links.OwningStorageResource
is summarized in
Table 487.
Table 487: Links.OwningStorageResource mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Links.OwningStorageResource | N/A |
Type | Storage.Storage | N/A |
Description | A pointer to the Storage resource that owns or contains this StoragePool. | N/A |
LongDescription | This shall be a pointer to the Storage resource that owns or contains this StoragePool. | N/A |
Mandatory | Mandatory | |
Notes | Contains a pointer to the NVM Subsystem that contains this Endurance Group. | A pointer to the owning subsystem - this is a Swordfish construct which points back to the subsystem |
The mapping for Name
is summarized in Table
488.
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Name | NVM Spec: Property / Field: NVMe 2.0: Identify Command / CNS value of 19h (Endurance Group List) NVM Spec: Section:Figure NVMe 2.0: 5.17.2.18 Identify Controller data structure / CNS value of 19h to retrieve the Endurance Group List: Figure 288. This list will contain a Number of Endurance Group Identifiers equal to the Number of Identifiers (N) field in Bytes 01:00. |
Type | String | 2-Bytes |
Description | The name of the resource or array member. | The list contains Endurance Group Identifiers of Endurance Groups that are accessible by the controller processing the command. |
LongDescription | This object represents the name of this resource or array member. The resource values shall comply with the Redfish Specification-described requirements. This string value shall be of the ‘Name’ reserved word format. | The Endurance Group List is a list of up to 2,047 Endurance Group Identifiers in increasing order that are accessible by the controller processing the command. |
Mandatory | Mandatory | Optional (Mandatory for controllers that support Variable Capacity Management) |
Notes | In Redfish, Name is a read-only field. | The Endurance Group Identifier is specified in the Log Specific Identifier field in Command Dword 11 of the Get Log Page command. Map the Endurance Group ID field to a string with the format: “0xABCD” |
The mapping for NVMeProperties.NVMePoolType
is summarized in
Table 489.
Table 489: NVMeProperties.NVMePoolType
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | StoragePool.NVMePoolType | N/A |
Type | Enum | N/A |
Description | Indicates whether the StoragePool is used as an EnduranceGroup or an NVMSet. | N/A |
LongDescription | This property shall indicate whether the StoragePool is used as an EnduranceGroup or an NVMSet. | N/A |
Mandatory | Mandatory | |
Notes | Set as “EnduranceGroup” |
The mapping for
NVMeEnduranceGroupProperties.PredictedMediaLifeLeftPercent
is
summarized in Table 490.
Table 490: NVMeEnduranceGroupProperties.PredictedMediaLifeLeftPercent mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeEnduranceGroupProperties.PredictedMediaLifeLeftPercent | NVM Spec: Property / Field: NVMe 2.0: Endurance Group Information Log (Log Identifier 09h) Inverse of the “Percentage Used” field (Byte 05) NVM Spec: Section:Figure NVMe 2.0: 5.16.1.10: Figure 217 |
Type | Decimal % | Decimal % |
Description | The percentage of reads and writes that are predicted to be available for the media. | The Inverse of the “Percentage Used” field which contains a vendor specific estimate of the percentage of life used for the Endurance Group based on the actual usage and the manufacturer’s prediction of NVM life. |
LongDescription | This property shall contain an indicator of the percentage of life remaining in the drive’s media. | The Inverse of the “Percentage Used” field which contains a vendor specific estimate of the percentage of life used for the Endurance Group based on the actual usage and the manufacturer’s prediction of NVM life. A value of 100 indicates that the estimated endurance of the NVM in the Endurance Group has been consumed, but may not indicate an NVM failure. |
Mandatory | Mandatory | I/O Controller: Optional Admin Controller: Optional Discovery Controller: Prohibited |
Notes | The value is allowed to exceed 100. Percentages greater than 254 shall be represented as 255. This value shall be updated once per power-on hour when the controller is not in a sleep state. |
The mapping for
NVMeEnduranceGroupProperties.EndGrpLifetime.PercentUsed
is
summarized in Table 491.
Table 491: NVMeEnduranceGroupProperties.EndGrpLifetime.PercentUsed mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeEnduranceGroupProperties.EndGrpLifetime.PercentUsed | NVM Spec: Property / Field: NVMe 2.0: Endurance Group Information Log (Log Identifier 09h) “Percentage Used” field (Byte 05) NVM Spec: Section:Figure NVMe 2.0: 5.16.1.10: Figure 217 |
Type | Int64 | Decimal % from 00% - 255% |
Description | A vendor-specific estimate of the percent life used for the endurance group based on the actual usage and the manufacturer prediction of NVM life. | Contains a vendor specific estimate of the percentage of life used for the Endurance Group based on the actual usage and the manufacturer’s prediction of NVM life. |
LongDescription | This property shall contain A vendor-specific estimate of the percent life used for the endurance group based on the actual usage and the manufacturer prediction of NVM life. A value of 100 indicates that the estimated endurance of the NVM in the Endurance Group has been consumed, but may not indicate an NVM failure. According to the NVMe and JEDEC specs, the value is allowed to exceed 100. Percentages greater than 254 shall be represented as 255. | Contains a vendor specific estimate of the percentage of life used for the Endurance Group based on the actual usage and the manufacturer’s prediction of NVM life. A value of 100 indicates that the estimated endurance of the NVM in the Endurance Group has been consumed, but may not indicate an NVM failure. The value is allowed to exceed 100. Percentages greater than 254 shall be represented as 255. This value shall be updated once per power-on hour when the controller is not in a sleep state. |
Mandatory | Mandatory | I/O Controller: Optional Admin Controller: Optional Discovery Controller: Prohibited |
Notes | The value is allowed to exceed 100. Percentages greater than 254 shall be represented as 255. This value shall be updated once per power-on hour when the controller is not in a sleep state. This value shall be scaled to a value between 0% - 100% Calculate resulting value as 100 - value reported (PercentageUsed). |
The mapping for
NVMeEnduranceGroupProperties.EndGrpLifetime.EnduranceEstimate
is
summarized in Table 492.
Table 492: NVMeEnduranceGroupProperties.EndGrpLifetime.EnduranceEstimate mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeEnduranceGroupProperties.EndGrpLifetime.EnduranceEstimate | NVM Spec: Property / Field: NVMe 2.0: Endurance Group Information Log (Log Identifier 09h) “Endurance Estimate” field (Bytes 32-47) NVM Spec: Section:Figure NVMe 2.0: 5.16.1.10: Figure 217 |
Type | Int64 | 16-Bytes |
Description | This property contains an estimate of the total number of data bytes that may be written to the Endurance Group over the lifetime of the Endurance Group assuming a write amplication of 1. | This field is an estimate of the total number of data bytes that may be written to the Endurance Group over the lifetime of the Endurance Group. |
LongDescription | This property shall contain an estimate of the total number of data bytes that may be written to the Endurance Group over the lifetime of the Endurance Group assuming a write amplication of 1. The value is reported in billions, where a value of 1 corresponds to 1 billion bytes written, and is rounded up. A value of zero indicates endurance estimates are unsupported. | This field is an estimate of the total number of data bytes that may be written to the Endurance Group over the lifetime of the Endurance Group assuming a write amplification of 1 (i.e., no increase in the number of write operations performed by the device beyond the number of write operations requested by a host). |
Mandatory | Mandatory | I/O Controller: Optional Admin Controller: Optional Discovery Controller: Prohibited |
Notes | This value is reported in billions (i.e., a value of 1 corresponds to 1,000,000,000 bytes written) and is rounded up (e.g., one indicates the number of bytes written is from 1 to 1,000,000,000, three indicates the number of bytes written is from 2,000,000,001 to 3,000,000,000). A value of 0h indicates that the controller does not report an Endurance Estimate. This value shall be scaled to a value between 0% - 100% Calculate resulting value as 100 - value reported (PercentageUsed). |
The mapping for
NVMeEnduranceGroupProperties.EndGrpLifetime.DataUnitsRead
is
summarized in Table 493.
Table 493: NVMeEnduranceGroupProperties.EndGrpLifetime.DataUnitsRead mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeEnduranceGroupProperties.EndGrpLifetime.DataUnitsRead | NVM Spec: Property / Field: NVMe 2.0: Endurance Group Information Log (Log Identifier 09h) “Data Units Read” field (Bytes 48 - 63) NVM Spec: Section:Figure NVMe 2.0: 5.16.1.10: Figure 217 |
Int64 | 16-Bytes | |
Description | The property contains the total number of data units read from this endurance group. | Contains the total number of data bytes that have been read from the Endurance Group. |
LongDescription | The property shall contain the total number of data units read from this endurance group. This value does not include controller reads due to internal operations such as garbage collection. The value is reported in billions, where a value of 1 corresponds to 1 billion bytes written, and is rounded up. A value of zero indicates the property is unsupported. | Contains the total number of data bytes that have been read from the Endurance Group. This value does not include controller reads due to internal operations such as garbage collection. |
Mandatory | Mandatory | I/O Controller: Optional Admin Controller: Optional Discovery Controller: Prohibited |
Notes | This value is reported in billions (i.e., a value of 1 corresponds to 1,000,000,000 bytes read) and is rounded up (e.g., one indicates the number of bytes read is from 1 to 1,000,000,000, three indicates the number of bytes read is from 2,000,000,001 to 3,000,000,000). A value of 0h indicates that the controller does not report the number of Data Units Read |
The mapping for
NVMeEnduranceGroupProperties.EndGrpLifetime.DataUnitsWritten
is
summarized in Table 494.
Table 494: NVMeEnduranceGroupProperties.EndGrpLifetime.DataUnitsWritten mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeEnduranceGroupProperties.EndGrpLifetime.DataUnitsWritten | NVM Spec: Property / Field: NVMe 2.0: Endurance Group Information Log (Log Identifier 09h) “Data Units Written” field (Bytes 64 - 79) NVM Spec: Section:Figure NVMe 2.0: 5.16.1.10: Figure 217 |
Type | Int64 | 16-Bytes |
Description | The property contains the total number of data units written from this endurance group. | Contains the total number of data bytes that have been written to the Endurance Group. |
LongDescription | The property shall contain the total number of data units written from this endurance group. This value does not include controller writes due to internal operations such as garbage collection. The value is reported in billions, where a value of 1 corresponds to 1 billion bytes written, and is rounded up. A value of zero indicates the property is unsupported. | Contains the total number of data bytes that have been written to the Endurance Group. This value does not include controller writes due to internal operations such as garbage collection. |
Mandatory | Mandatory | I/O Controller: Optional Admin Controller: Optional Discovery Controller: Prohibited |
Notes | This value is reported in billions (i.e., a value of 1 corresponds to 1,000,000,000 bytes written) and is rounded up (e.g., one indicates the number of bytes written is from 1 to 1,000,000,000, three indicates the number of bytes written is from 2,000,000,001 to 3,000,000,000). A value of 0h indicates that the controller does not report the number of Data Units Written. |
The mapping for
NVMeEnduranceGroupProperties.EndGrpLifetime.MediaUnitsWritten
is
summarized in Table 495.
Table 495: NVMeEnduranceGroupProperties.EndGrpLifetime.MediaUnitsWritten mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeEnduranceGroupProperties.EndGrpLifetime.MediaUnitsWritten | NVM Spec: Property / Field: NVMe 2.0: Endurance Group Information Log (Log Identifier 09h) “Media Units Written” field (Bytes 80 - 95) NVM Spec: Section:Figure NVMe 2.0: 5.16.1.10: Figure 217 |
Type | Int64 | 16-Bytes |
Description | The property contains the total number of data units written from this endurance group. | Contains the total number of data bytes that have been written to the Endurance Group including both host and controller writes (e.g., garbage collection). |
LongDescription | The property shall contain the total number of data units written from this endurance group. This value includes host and controller writes due to internal operations such as garbage collection. The value is reported in billions, where a value of 1 corresponds to 1 billion bytes written, and is rounded up. A value of zero indicates the property is unsupported. | Contains the total number of data bytes that have been written to the Endurance Group including both host and controller writes (e.g., garbage collection). |
Mandatory | Mandatory | I/O Controller: Optional Admin Controller: Optional Discovery Controller: Prohibited |
Notes | This value is reported in billions (i.e., a value of 1 corresponds to 1,000,000,000 bytes written) and is rounded up (e.g., one indicates the number of bytes written is from 1 to 1,000,000,000, three indicates the number of bytes written is from 2,000,000,001 to 3,000,000,000). A value of 0h indicates that controller does not report the number of Media Units Written. |
The mapping for
NVMeEnduranceGroupProperties.EndGrpLifetime.HostReadCommandCount
is
summarized in Table 496.
Table 496: NVMeEnduranceGroupProperties.EndGrpLifetime.HostReadCommandCount mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeEnduranceGroupProperties.EndGrpLifetime.HostReadCommandCount | NVM Spec: Property / Field: NVMe 2.0: Endurance Group Information Log (Log Identifier 09h) “Host Read Commands” field (Bytes 96 - 111) NVM Spec: Section:Figure NVMe 2.0: 5.16.1.10: Figure 217 |
Type | Int64 | 16-Bytes |
Description | This property contains the number of read commands completed by all controllers in the NVM subsystem for the Endurance Group. | Contains the number of User Data Read Access Commands completed by the controller |
LongDescription | This property shall contain the number of read commands completed by all controllers in the NVM subsystem for the Endurance Group. For the NVM command set, the is the number of compare commands and read commands. | Contains the number of User Data Read Access Commands completed by the controller |
Mandatory | Mandatory | I/O Controller: Optional Admin Controller: Optional Discovery Controller: Prohibited |
Notes | Refer to the specific NVMe I/O Command Set specification for the list of User Data Read Access Commands that affect this field. |
The mapping for
NVMeEnduranceGroupProperties.EndGrpLifetime.HostWriteCommandCount
is summarized in Table 497.
Table 497: NVMeEnduranceGroupProperties.EndGrpLifetime.HostWriteCommandCount mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeEnduranceGroupProperties.EndGrpLifetime.HostWriteCommandCount | NVM Spec: Property / Field: NVMe 2.0: Endurance Group Information Log (Log Identifier 09h) “Host Write Commands” field (Bytes 112 - 127) NVM Spec: Section:Figure NVMe 2.0: 5.16.1.10: Figure 217 |
Type | Int64 | 16-Bytes |
Description | This property contains the number of write commands completed by all controllers in the NVM subsystem for the Endurance Group. | Contains the number of User Data Out Commands completed by the controller. |
LongDescription | This property shall contain the number of write commands completed by all controllers in the NVM subsystem for the Endurance Group. For the NVM command set, the is the number of compare commands and write commands. | Contains the number of User Data Out Commands completed by the controller. |
Mandatory | Mandatory | I/O Controller: Optional Admin Controller: Optional Discovery Controller: Prohibited |
Notes | Refer to the specific I/O Command Set specification for the list of User Data Out Commands that affect this field. |
Table 497: NVMeEnduranceGroupProperties.EndGrpLifetime.HostWriteCommandCount mapping
The mapping for
NVMeEnduranceGroupProperties.EndGrpLifetime.MediaAndDataIntegrityErrorCount
is summarized in Table 498.
Table 498: NVMeEnduranceGroupProperties.EndGrpLifetime MediaAndDataIntegrityErrorCount mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeEnduranceGroupProperties.EndGrpLifetime.MediaAndDataIntegrityErrorCount | NVM Spec: Property / Field: NVMe 2.0: Endurance Group Information Log (Log Identifier 09h) “Media and Data Integrity Errors” field (Bytes 128 - 143) NVM Spec: Section:Figure NVMe 2.0: 5.16.1.10: Figure 217 |
Type | Int64 | 16-Bytes |
Description | This property contains the number of occurences where the controller detected an unrecovered data integrity error for the Endurance Group. | Contains the number of occurrences where the controller detected an unrecovered data integrity error. |
LongDescription | This property shall contain the number of occurences where the controller detected an unrecovered data integrity error for the Endurance Group. Errors such as uncorrectable ECC, CRC checksum failure, or LBA tag mismatch are included in this field. | Contains the number of occurrences where the controller detected an unrecovered data integrity error. |
Mandatory | Mandatory | I/O Controller: Optional Admin Controller: Optional Discovery Controller: Prohibited |
Notes | Errors such as uncorrectable ECC, CRC checksum failure, or LBA tag mismatch are included in this field. Errors introduced as a result of a Write Uncorrectable command (refer to the NVM Command Set specification) may or may not be included in this field. |
The mapping for
NVMeEnduranceGroupProperties.EndGrpLifetime.ErrorInformationLogEntryCount
is summarized in Table 499.
Table 499: NVMeEnduranceGroupProperties.EndGrpLifetime.ErrorInformationLogEntryCount mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeEnduranceGroupProperties.EndGrpLifetime.ErrorInformationLogEntryCount | NVM Spec: Property / Field: NVMe 2.0: Endurance Group Information Log (Log Identifier 09h) “Number of Error Information Log Entries” field (Bytes 144 - 159) NVM Spec: Section:Figure NVMe 2.0: 5.16.1.10: Figure 217 |
Type | Int64 | 16-Bytes |
Description | This property contains the number of error information log entries over the life of the controller for the endurance group. | Contains the number of Error Information log entries over the life of the controller. |
LongDescription | This property shall contain the number of error information log entries over the life of the controller for the endurance group. | Contains the number of Error Information log entries over the life of the controller. |
Mandatory | Mandatory | I/O Controller: Optional Admin Controller: Optional Discovery Controller: Prohibited |
Notes |
The mapping for NVMeSetProperties.SetIdentifier
is summarized in
Table 500.
Table 500: NVMeSetProperties.SetIdentifier
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeSetProperties.SetIdentifier | NVM Spec: Property / Field: NVMe 2.0: Identify Command / NVM Set List (CNS 04h) NVM Spec: Section:Figure NVMe 2.0: 5.17.2.4 |
Type | String | 16-bits |
Description | A 16-bit hex value that contains the NVMe Set identifier. | This field indicates the identifier of the NVM Set in the NVM subsystem that is described by this entry. |
LongDescription | This property shall contain a 16-bit hex value that contains the NVMe Set identifier. The NVM Set identifier is unique within a subsystem. Reserved values include 0. | This field indicates the identifier of the NVM Set in the NVM subsystem that is described by this entry. Identify Command / CNS value of 04h to retrieve the NVM Set List. The NVM Set Identifier is retrieved in bytes 00:01 of each NVM Set Attributes entry in the NVM Set List |
Mandatory | Do Not Implement | Optional |
Notes |
The mapping for NVMeSetProperties.OptimalWriteSizeBytes
is
summarized in Table 501.
Table 501: NVMeSetProperties.OptimalWriteSizeBytes mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeSetProperties.OptimalWriteSizeBytes | NVM Spec: Property / Field: NVMe 2.0: Identify Command / NVM Set List (CNS 04h) f/ Optimal Write Size NVM Spec: Section:Figure NVMe 2.0: 5.17.2.4 Identify Command / NVM Set List (CNS value of 04h to retrieve the NVM Set List): Figure 278. The Optimal Write Size is retrieved in bytes 12:15 of each NVM Set Attributes entry (Figure 279) in the NVM Set List |
Type | Int64 | Bytes |
Description | This property contains the Optimal Write Size in Bytes for this NVMe Set. | This field indicates the size in bytes for optimal write performance. |
LongDescription | This property shall contain the Optimal Write Size in Bytes for this NVMe Set. | This field indicates the size in bytes for optimal write performance. A value of 0h indicates that no Optimal Write Size is specified. This field should be cleared to 0h when namespaces within an NVM Set have different User Data Formats that do not allow an Optimal Write Size to be specified. |
Mandatory | Do Not Implement | Optional |
Notes |
The mapping for NVMeSetProperties.EnduranceGroupIdentifier
is
summarized in Table 502.
Table 502: NVMeSetProperties.EnduranceGroupIdentifier mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeSetProperties.EnduranceGroupIdentifier | N/A |
Type | String | N/A |
Description | A 16-bit hex value that contains the endurance group identifier. | N/A |
LongDescription | This property shall contain a 16-bit hex value that contains the endurance group identifier. The endurance group identifier is unique within a subsystem. Reserved values include 0. | N/A |
Mandatory | Do Not Implement | |
Notes | Do not implement NVMeSetProperties as part of an EnduranceGroup. |
The mapping for NVMeSetProperties.Random4kReadTypicalNanoSeconds
is summarized in Table 503.
Table 503: NVMeSetProperties.Random4kReadTypicalNanoSeconds mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeSetProperties.Random4kReadTypicalNanoSeconds | N/A |
Type | Int64 | N/A |
Description | Indicates the typical time to complete a 4k read in 100 Nano-second units when the NVM Set is in a Predictable Latency Mode Deterministic Window and there is 1 outstanding command per NVM Set. | N/A |
LongDescription | This property shall contain the typical time to complete a 4k read in 100 nano-second units when the NVM Set is in a Predictable Latency Mode Deterministic Window and there is 1 outstanding command per NVM Set. | N/A |
Mandatory | Do Not Implement | |
Notes | Do not implement NVMeSetProperties as part of an EnduranceGroup. |
The mapping for Status.Health
is summarized in
Table 504.
Table 504: Status.Health mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Status.Health | NVM Spec: Property / Field: NVMe 2.0: Get Log Page – Endurance Group Information Log (Log Identifier 09h) / Critical Warning NVM Spec: Section:Figure NVMe 2.0: 5.16.1.10: Figure 217 / Critical Warning (bytes 00) |
Type | Resource.Health | Bit value |
Description | The health state of this resource in the absence of its dependent resources. | This field indicates critical warnings for the state of the Endurance Group. |
LongDescription | This property shall represent the health state of the resource without considering its dependent resources. The values shall conform to those defined in the Redfish Specification. | This field indicates critical warnings for the state of the Endurance Group. Each bit corresponds to a critical warning type; multiple bits may be set to ‘1’. If a bit is cleared to ‘0’, then that critical warning does not apply. Critical warnings may result in an asynchronous event notification to the host. Bits in this field represent the current associated state and are not persistent. |
Mandatory | Optional | I/O Controller: Optional Admin Controller: Optional Discovery Controller: Prohibited |
Notes | Possible Values: OK / Warning / Critical | If bit 3 is set to ‘1’, then all namespaces in the Endurance Group have been placed in read only mode for reasons other than a change in the write protect state of the namespace. The controller shall not set this bit to ‘1’ if the read-only condition on the Endurance Group is a result of a change in the write protection state of all namespaces in the Endurance Group. If bit 2 is set to ‘1’, then the Endurance Group reliability has been degraded due to significant media related errors or any internal error that degrades NVM subsystem reliability. if bit 0 is set to ‘1’, then the available spare capacity of the Endurance Group has fallen below the threshold. |
The mapping for Status.State
is summarized in
Table 505.
Table 505: Status.State mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Status.State | N/A |
Type | Resource.State (enum) | N/A |
Description | The known state of the resource, such as, enabled. | N/A |
LongDescription | This property shall indicate whether and why this component is available. Enabled indicates the resource is available. Disabled indicates the resource has been intentionally made unavailable but it can be enabled. Offline indicates the resource is unavailable intentionally and requires action to make it available. InTest indicates that the component is undergoing testing. Starting indicates that the resource is becoming available. Absent indicates the resource is physically unavailable. | N/A |
Mandatory | Do Not Implement | Do not implement |
Notes | Possible values: Enabled / Disabled / StandbyOffline / StandbySare / InTest / Starting / ABsent / UnavaialableOffline / Deferring / Quiesced / Updating / Qualified | There is not a clear mapping for State of an Endurance Group. Do not implement this property. |
The Redfish/Swordfish Storage Pool schema is used to represent an NVM Set.
The following mockup shows a sample representation of the Storage Pool schema used to represent an NVM Set.
{
"@odata.type": "#StoragePool.v1_7_1.StoragePool",
"Id": "1",
"Name": "Set 1",
"Description": "First Set",
"NVMeProperties": {
"NVMePoolType": "NVMSet"
},
"NVMeSetProperties": {
"SetIdentifier": "0x1F",
"EnduranceGroupIdentifier": "0x1",
"Random4kReadTypicalNanoSeconds": 34534345348,
"UnallocatedNVMNamespaceCapacityBytes": 5497558138880,
"OptimalWriteSizeBytes": 512
},
"Capacity": {
"Data": {
"AllocatedBytes": 10995116277760,
"ConsumedBytes": 5497558138880
}
},
"CapacitySources": [{
"@odata.type": "#Capacity.v1_2_0.CapacitySource",
"Name": "Source1",
"Id": "Source1",
"Description": "Capacity Source for NVM Set",
"ProvidedCapacity": {
"Data": {
"AllocatedBytes": 10737418240
}
},
"ProvidingPools": {
"@odata.id": "/redfish/v1/Storage/FabricAttachArray/StoragePools/EnduranceGroup1/ CapacitySources/Source1/ProvidingPools"
},
"@odata.id": "/redfish/v1/Storage/FabricAttachArray/StoragePools/NVMeSet1/ CapacitySources/Source1"
}],
"AllocatedVolumes": {
"@odata.id": "/redfish/v1/Storage/FabricAttachArray/StoragePools/NVMeSet1/AllocatedVolumes"
},
"@odata.id": "/redfish/v1/Storage/FabricAttachArray/StoragePools/NVMeSet1",
"@Redfish.Copyright": "Copyright 2015-2024 SNIA. All rights reserved."
}
The mapping for AllocatedVolumes
is summarized in
Table 506.
Table 506: AllocatedVolumes mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | AllocatedVolumes | N/A |
Type | VolumeCollection.VolumeCollection | N/A |
Description | A reference to the collection of volumes allocated from this storage pool. | N/A |
LongDescription | The value of this property shall contain a reference to the collection of volumes allocated from this storage pool. | N/A |
Mandatory | Mandatory | |
Notes | A pointer to the set of namespaces allocated from this NVM Set. | The allocated volumes contains pointers to the allocated volumes objects. These are the set of namespaces created from this NVM Set. |
The mapping for Capacity.Data.AllocatedBytes
is summarized in
Table 507
Table 507: Capacity.Data.AllocatedBytes mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Capacity.Data.AllocatedBytes | NVM Spec Property / Field:
Identify Command / NVM Set List (CNS 04h) / NVM Set Attributes Entry / Total NVM
Set Capacity NVM Spec: Section:Figure NVMe 2.0: Section 5.15.2.4, Figure 278: NVM Set Attributes List / Figure 279: NVM Set Attributes Entry: Bytes 16-31 (Total NVM Set Capacity) |
Type | Int64 | 16 Bytes |
Description | The number of bytes currently allocated by the storage system in this data store for this data type. | This field indicates the total NVM capacity in this NVM Set. |
LongDescription | The value shall be the number of bytes currently allocated by the storage system in this data store for this data type. | This value shall be the total NVM capacity in this NVM Set. The value is in bytes. |
Mandatory | Mandatory | Mandatory |
Notes |
The mapping for Capacity.Data.ConsumedBytes
is summarized in
Table 508.
Table 508: Capacity.Data.ConsumedBytes mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Capacity.Data.ConsumedBytes | NVM Spec Property / Field:
Identify Command / NVM Set List (CNS 04h) / NVM Set Attributes Entry /
Unallocated NVM Set Capacity NVM Spec: Section:Figure NVMe 2.0: Section 5.15.2.4, Figure 278: NVM Set Attributes List / Figure 279: NVM Set Attributes Entry: Bytes 32 - 47 (Unallocated NVM Set Capacity) |
Type | Int64 | 16 Bytes |
Description | The maximum number of bytes that can be allocated in this data store for this data type. | This field indicates the unallocated NVM capacity in this NVM Set. |
LongDescription | The value shall be the maximum number of bytes that can be allocated in this data store for this data type. | This field indicates the unallocated NVM capacity in this NVM Set. The value is in bytes. |
Mandatory | Mandatory | Optional |
Notes | This is calculated as “Total NVM Set Capacity” - “Unallocated NVM Set Capacity”. |
The mapping for CapacitySources
is summarized in
Table 509.
Table 509: CapacitySources mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | CapacitySources | N/A |
Type | Collection(Capacity.CapacitySource) | N/A |
Description | An array of space allocations to this volume. | N/A |
LongDescription | Fully or partially consumed storage from a source resource. Each entry provides capacity allocation information from a named source resource. | N/A |
Mandatory | Optional Recommended to not implement for NVMe Drives. |
DNI |
Notes | Contains the information about the providing capacity (e.g, memory) for this namespace. |
The mapping for CapacitySources@odata.count
is summarized in
Table 510.
Table 510: CapacitySources@odata.count mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | CapacitySources@odata.count | N/A |
Type | (odata property)int64 | N/A |
Description | Count of the number of items in the CapacitySources array. | N/A |
LongDescription | N/A | |
Mandatory | Optional Do Not Implement for NVMe Drives. |
DNI |
Notes |
The mapping for Description
is summarized in
Table 511.
Table 511: Description mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Description | N/A |
Type | String | N/A |
Description | The description of this resource. | See note below. |
LongDescription | This object represents the description of this resource. The resource values shall comply with the Redfish Specification-described requirements. | N/A |
Mandatory | Optional | |
Notes | In Redfish, Description is a read-only field. | Return the common description: “An NVM Set is a collection of NVM that is separate (logically and potentially physically) from NVM in other NVM Sets. One or more namespaces may be created within an NVM Set and those namespaces inherit the attributes of the NVM Set. A namespace is wholly contained within a single NVM Set and shall not span more than one NVM Set.” |
The mapping for Links.OwningStorageResource
is summarized in
Table 512.
Table 512: Links.OwningStorageResource mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Links.OwningStorageResource | N/A |
Type | Storage.Storage | N/A |
Description | A pointer to the Storage resource that owns or contains this StoragePool. | N/A |
LongDescription | This shall be a pointer to the Storage resource that owns or contains this StoragePool. | N/A |
Mandatory | Mandatory | |
Notes | Contains a pointer to the NVM Subsystem that contains this NVM Set. |
The mapping for Name
is summarized in Table
513
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Name | NVM Spec Property / Field:
Identify Command / NVM Set List (CNS 04h) / NVM Set Attributes Entry / NVM Set
Identifier NVM Spec: Section:Figure NVMe 2.0: Section 5.15.2.4, Figure 278: NVM Set Attributes List / Figure 279: NVM Set Attributes Entry: Bytes 00 - 01 (NVM Set Identifier) |
Type | String | 16-bit value |
Description | The name of the resource or array member. | This field specifies the NVM Set ID |
LongDescription | This object represents the name of this resource or array member. The resource values shall comply with the Redfish Specification-described requirements. This string value shall be of the ‘Name’ reserved word format. | This field specifies the NVM Set ID. An NVM Set Identifier is a 16-bit value that specifies the NVM Set |
Mandatory | Mandatory | |
Notes | In Redfish, Name is a read-only field. | Map the NVMSETID field to a string with the format: “0xABCD” |
The mapping for NVMeProperties.NVMePoolType
is summarized in
Table 514.
Table 514: NVMeProperties.NVMePoolType
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | StoragePool.NVMePoolType | N/A |
Type | Enum | N/A |
Description | Indicates whether the StoragePool is used as an EnduranceGroup or an NVMSet. | N/A |
LongDescription | This property shall indicate whether the StoragePool is used as an EnduranceGroup or an NVMSet. | N/A |
Mandatory | Mandatory | |
Notes | Set as “NVMSet” |
The mapping for
NVMeEnduranceGroupProperties.PredictedMediaLifeLeftPercent
is
summarized in Table 515.
Table 515: NVMeEnduranceGroupProperties.PredictedMediaLifeLeftPercent mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeEnduranceGroupProperties.PredictedMediaLifeLeftPercent | N/A |
Type | Decimal % | N/A |
Description | The percentage of reads and writes that are predicted to be available for the media. | N/A |
LongDescription | This property shall contain an indicator of the percentage of life remaining in the drive’s media. | N/A |
Mandatory | Do Not Implement | DNI |
Notes |
The mapping for
NVMeEnduranceGroupProperties.EndGrpLifetime.PercentUsed
is
summarized in Table 516.
Table 516: NVMeEnduranceGroupProperties.EndGrpLifetime.PercentUsed mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeEnduranceGroupProperties.EndGrpLifetime.PercentUsed | N/A |
Type | Int64 | N/A |
Description | A vendor-specific estimate of the percent life used for the endurance group based on the actual usage and the manufacturer prediction of NVM life. | N/A |
LongDescription | This property shall contain A vendor-specific estimate of the percent life used for the endurance group based on the actual usage and the manufacturer prediction of NVM life. A value of 100 indicates that the estimated endurance of the NVM in the Endurance Group has been consumed, but may not indicate an NVM failure. According to the NVMe and JEDEC specs, the value is allowed to exceed 100. Percentages greater than 254 shall be represented as 255. | N/A |
Mandatory | Do Not Implement | DNI |
Notes |
The mapping for
NVMeEnduranceGroupProperties.EndGrpLifetime.EnduranceEstimate
is
summarized in Table 517.
Table 517: NVMeEnduranceGroupProperties.EndGrpLifetime.EnduranceEstimate mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeEnduranceGroupProperties.EndGrpLifetime.EnduranceEstimate | N/A |
Type | Int64 | N/A |
Description | This property contains an estimate of the total number of data bytes that may be written to the Endurance Group over the lifetime of the Endurance Group assuming a write amplication of 1. | N/A |
LongDescription | This property shall contain an estimate of the total number of data bytes that may be written to the Endurance Group over the lifetime of the Endurance Group assuming a write amplication of 1. The value is reported in billions, where a value of 1 corresponds to 1 billion bytes written, and is rounded up. A value of zero indicates endurance estimates are unsupported. | N/A |
Mandatory | Do Not Implement | DNI |
Notes |
The mapping for
NVMeEnduranceGroupProperties.EndGrpLifetime.DataUnitsRead
is
summarized in Table 518.
Table 518: NVMeEnduranceGroupProperties.EndGrpLifetime.DataUnitsRead mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeEnduranceGroupProperties.EndGrpLifetime.DataUnitsRead | N/A |
Type | Int64 | N/A |
Description | The property contains the total number of data units read from this endurance group. | N/A |
LongDescription | The property shall contain the total number of data units read from this endurance group. This value does not include controller reads due to internal operations such as garbage collection. The value is reported in billions, where a value of 1 corresponds to 1 billion bytes written, and is rounded up. A value of zero indicates the property is unsupported. | N/A |
Mandatory | Do Not Implement | DNI |
Notes |
The mapping for
NVMeEnduranceGroupProperties.EndGrpLifetime.DataUnitsWritten
is
summarized in Table 519.
Table 519: NVMeEnduranceGroupProperties.EndGrpLifetime.DataUnitsWritten mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeEnduranceGroupProperties.EndGrpLifetime.DataUnitsWritten | N/A |
Type | Int64 | N/A |
Description | The property contains the total number of data units written from this endurance group. | N/A |
LongDescription | The property shall contain the total number of data units written from this endurance group. This value does not include controller writes due to internal operations such as garbage collection. The value is reported in billions, where a value of 1 corresponds to 1 billion bytes written, and is rounded up. A value of zero indicates the property is unsupported. | N/A |
Mandatory | Do Not Implement | DNI |
Notes |
The mapping for
NVMeEnduranceGroupProperties.EndGrpLifetime.MediaUnitsWritten
is
summarized in Table 520.
Table 520: NVMeEnduranceGroupProperties.EndGrpLifetime.MediaUnitsWritten mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeEnduranceGroupProperties.EndGrpLifetime.MediaUnitsWritten | N/A |
Type | Int64 | N/A |
Description | The property contains the total number of data units written from this endurance group. | N/A |
LongDescription | The property shall contain the total number of data units written from this endurance group. This value includes host and controller writes due to internal operations such as garbage collection. The value is reported in billions, where a value of 1 corresponds to 1 billion bytes written, and is rounded up. A value of zero indicates the property is unsupported. | N/A |
Mandatory | Do Not Implement | DNI |
Notes |
The mapping for
NVMeEnduranceGroupProperties.EndGrpLifetime.HostReadCommandCount
is
summarized in Table 521.
Table 521: NVMeEnduranceGroupProperties.EndGrpLifetime.HostReadCommandCount mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeEnduranceGroupProperties.EndGrpLifetime.HostReadCommandCount | N/A |
Type | Int64 | N/A |
Description | This property contains the number of read commands completed by all controllers in the NVM subsystem for the Endurance Group. | N/A |
LongDescription | This property shall contain the number of read commands completed by all controllers in the NVM subsystem for the Endurance Group. For the NVM command set, the is the number of compare commands and read commands. | N/A |
Mandatory | Do Not Implement | DNI |
The mapping for
NVMeEnduranceGroupProperties.EndGrpLifetime.HostWriteCommandCount
is summarized in Table 522.
Table 522: NVMeEnduranceGroupProperties.EndGrpLifetime.HostWriteCommandCount mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeEnduranceGroupProperties.EndGrpLifetime.HostWriteCommandCount | N/A |
Type | Int64 | N/A |
Description | This property contains the number of write commands completed by all controllers in the NVM subsystem for the Endurance Group. | N/A |
LongDescription | This property shall contain the number of write commands completed by all controllers in the NVM subsystem for the Endurance Group. For the NVM command set, the is the number of compare commands and write commands. | N/A |
Mandatory | Do Not Implement | DNI |
Notes |
The mapping for
NVMeEnduranceGroupProperties.EndGrpLifetime.MediaAndDataIntegrityErrorCount
is summarized in Table 523.
Table 523: NVMeEnduranceGroupProperties.EndGrpLifetime.MediaAndDataIntegrityErrorCount mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeEnduranceGroupProperties.EndGrpLifetime.MediaAndDataIntegrityErrorCount | N/A |
Type | Int64 | N/A |
Description | This property contains the number of occurences where the controller detected an unrecovered data integrity error for the Endurance Group. | N/A |
LongDescription | This property shall contain the number of occurences where the controller detected an unrecovered data integrity error for the Endurance Group. Errors such as uncorrectable ECC, CRC checksum failure, or LBA tag mismatch are included in this field. | N/A |
Mandatory | Do Not Implement | DNI |
Notes |
The mapping for
NVMeEnduranceGroupProperties.EndGrpLifetime.ErrorInformationLogEntryCount
is summarized in Table 524.
Table 524: NVMeEnduranceGroupProperties.EndGrpLifetime.ErrorInformationLogEntryCount
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeEnduranceGroupProperties.EndGrpLifetime.ErrorInformationLogEntryCount | N/A |
Type | Int64 | N/A |
Description | This property contains the number of error information log entries over the life of the controller for the endurance group. | N/A |
LongDescription | This property shall contain the number of error information log entries over the life of the controller for the endurance group. | N/A |
Mandatory | Do Not Implement | DNI |
Notes |
The mapping for NVMeSetProperties.SetIdentifier
is summarized in
Table 525.
Table 525: NVMeSetProperties.SetIdentifier
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeSetProperties.SetIdentifier | NVM Spec Property / Field:
Identify Command / NVM Set List (CNS 04h) / NVM Set Attributes Entry / NVM Set
Identifier NVM Spec: Section:Figure NVMe 2.0: Section 5.15.2.4, Figure 278: NVM Set Attributes List / Figure 279: NVM Set Attributes Entry: Bytes 00 - 01 (NVM Set Identifier) |
Type | String | 16 Bit value |
Description | A 16-bit hex value that contains the NVMe Set identifier. | This field specifies the NVM Set ID. |
LongDescription | This property shall contain a 16-bit hex value that contains the NVMe Set identifier. The NVM Set identifier is unique within a subsystem. Reserved values include 0. | This field specifies the NVM Set ID. An NVM Set Identifier is a 16-bit value that specifies the NVM Set |
Mandatory | Mandatory | Mandatory |
Notes | Return as hex value as described in the Swordfish schema. |
The mapping for NVMeSetProperties.OptimalWriteSizeBytes
is
summarized in Table 526.
Table 526: NVMeSetProperties.OptimalWriteSizeBytes mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeSetProperties.OptimalWriteSizeBytes | NVM Spec Property / Field:
Identify Command / NVM Set List (CNS 04h) / NVM Set Attributes Entry / Optimal
Write Size NVM Spec: Section:Figure NVMe 2.0: Section 5.15.2.4, Figure 278: NVM Set Attributes List / Figure 279: NVM Set Attributes Entry: Bytes 12 - 15 (Optimal Write Size) |
Type | Int64 | 4-Bytes |
Description | This property contains the Optimal Write Size in Bytes for this NVMe Set. | This field indicates the size in bytes for optimal write performance. |
LongDescription | This property shall contain the Optimal Write Size in Bytes for this NVMe Set. | This field indicates the size in bytes for optimal write performance. A value of 0h indicates that no Optimal Write Size is specified. This field should be cleared to 0h when namespaces within an NVM Set have different User Data Formats that do not allow an Optimal Write Size to be specified. |
Mandatory | Mandatory | Mandatory |
Notes |
The mapping for NVMeSetProperties.EnduranceGroupIdentifier
is
summarized in Table 527.
Table 527: NVMeSetProperties.EnduranceGroupIdentifier mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeSetProperties.EnduranceGroupIdentifier | NVM Spec Property / Field:
Identify Command / NVM Set List (CNS 04h) / NVM Set Attributes Entry / Endurance
Group Identifier NVM Spec: Section:Figure NVMe 2.0: Section 5.15.2.4, Figure 278: NVM Set Attributes List / Figure 279: NVM Set Attributes Entry: Bytes 02 - 03 (Endurance Group Identifier) |
Type | String | 2iBytes |
Description | A 16-bit hex value that contains the endurance group identifier. | This field indicates the Endurance Group for this NVM Set. |
LongDescription | This property shall contain a 16-bit hex value that contains the endurance group identifier. The endurance group identifier is unique within a subsystem. Reserved values include 0. | This field indicates the Endurance Group for this NVM Set. |
Mandatory | Mandatory | Mandatory |
Notes |
The mapping for NVMeSetProperties.Random4kReadTypicalNanoSeconds
is summarized in Table 528.
Table 528: NVMeSetProperties.Random4kReadTypicalNanoSeconds mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeSetProperties.Random4kReadTypicalNanoSeconds | NVM Spec Property / Field:
Identify Command / NVM Set List (CNS 04h) / NVM Set Attributes Entry / Random 4
KiB Read Typical NVM Spec: Section:Figure NVMe 2.0: Section 5.15.2.4, Figure 278: NVM Set Attributes List / Figure 279: NVM Set Attributes Entry: Bytes 08 - 11 (Random 4 KiB Read Typical) |
Type | Int64 | 4 Bytes |
Description | Indicates the typical time to complete a 4k read in 100 nano-second units when the NVM Set is in a Predictable Latency Mode Deterministic Window and there is 1 outstanding command per NVM Set. | This field indicates the typical time to complete a 4 KiB random read in 100 nanosecond units |
LongDescription | This property shall contain the typical time to complete a 4k read in 100 nano-second units when the NVM Set is in a Predictable Latency Mode Deterministic Window and there is 1 outstanding command per NVM Set. | This field indicates the typical time to complete a 4 KiB random read in 100 nanosecond units when the NVM Set is in a Predictable Latency Mode Deterministic Window and there is 1 outstanding command per NVM Set |
Mandatory | Mandatory | |
Notes | Convert from 100 nanosecond units to nanosecond units. |
The mapping for
NVMeSetProperties.UnallocatedNVMNamespaceCapacityBytes
is
summarized in Table 529.
Table 529: NVMeSetProperties.UnallocatedNVMNamespaceCapacityBytes mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMeSetProperties.UnallocatedNVMNamespaceCapacityBytes | NVM Spec Property / Field:
Identify Command / NVM Set List (CNS 04h) / NVM Set Attributes Entry /
Unallocated NVM Set Capacity NVM Spec: Section:Figure NVMe 2.0: Section 5.15.2.4, Figure 278: NVM Set Attributes List / Figure 279: NVM Set Attributes Entry: Bytes 32 - 47 (Unallocated NVM Set Capacity) |
Type | Int64 | Int 64 |
Description | Indicates the unallocated capacity of the NVMe Set in bytes. | This field indicates the unallocated NVM capacity in this NVM Set. |
LongDescription | This property shall contain the unallocated capacity of the NVMe Set in bytes. | This field indicates the unallocated NVM capacity in this NVM Set. The value is in bytes. |
Mandatory | Mandatory | |
Notes |
The mapping for Status.State
is summarized in
Table 530.
Table 530: Status.State mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Status.State | N/A |
Type | Resource.State (enum) | N/A |
Description | The known state of the resource, such as, enabled. | N/A |
LongDescription | This property shall indicate whether and why this component is available. Enabled indicates the resource is available. Disabled indicates the resource has been intentionally made unavailable but it can be enabled. Offline indicates the resource is unavailable intentionally and requires action to make it available. InTest indicates that the component is undergoing testing. Starting indicates that the resource is becoming available. Absent indicates the resource is physically unavailable. | N/A |
Mandatory | Optional | DNI |
Notes | Possible values: Enabled / Disabled / StandbyOffline / StandbySpare / InTest / Starting / ABsent / UnavaialableOffline / Deferring / Quiesced / Updating / Qualified |
The mapping for Status.Health
is summarized in
Table 531.
Table 531: Status.Health mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Status.Health | N/A |
Type | Resource.Health | N/A |
Description | The health state of this resource in the absence of its dependent resources. | N/A |
LongDescription | This property shall represent the health state of the resource without considering its dependent resources. The values shall conform to those defined in the Redfish Specification. | N/A |
Mandatory | Optional | DNI |
Notes | Possible Values: OK / Warning / Critical |
The Redfish/Swordfish Drive schema represent the physical attributes of an NVMe drive object.
The following mockup shows a sample representation of the Volume schema used to represent an NVM Namespace.
{
"@odata.type": "#Drive.v1_17_0.Drive",
"Id": "0THGR0KP",
"Name": "Drive 1",
"Status": {
"State": "Enabled",
"Health": "OK"
},
"StatusIndicator": "OK",
"CapacityBytes": 300067890136,
"ConfigurationLock": "Partial",
"TargetConfigurationLockLevel": "Standard",
"NVMe": {
"ConfigurationLockState": {
"FirmwareCommit": "Unlocked",
"Lockdown": "Locked",
"SecureSend": "LockdownUnsupported",
"FirmwareImageDownload": "LockdownUnsupported",
"VPDWrite": "CommandUnsupported"
}
},
"FailurePredicted": false,
"Protocol": "SAS",
"MediaType": "HDD",
"Manufacturer": "HDD-Company",
"SerialNumber": "0THGR0KP",
"PartNumber": "HUC156030CSS200",
"Identifiers": [
{
"DurableNameFormat": "NAA",
"DurableName": "300062B202B21849"
}
],
"RotationSpeedRPM": 15000,
"BlockSizeBytes": 512,
"NegotiatedSpeedGbs": 12,
"Metrics": {
"@odata.id": "/redfish/v1/Chassis/StorageEnclosure1/Drives/0THGR0KP/Metrics"
},
"Links": {
"Volumes": [
{
"@odata.id": "/redfish/v1/Systems/Sys-1/Storage/DirectAttachStorageSystem/Volumes/Volume1"
}
],
"StoragePools": [
{
"@odata.id": "/redfish/v1/Systems/Sys-1/Storage/DirectAttachStorageSystem/StoragePools/ SimpleSystemPool"
}
]
},
"@odata.id": "/redfish/v1/Chassis/StorageEnclosure1/Drives/0THGR0KP",
"@Redfish.Copyright": "Copyright 2015-2024 SNIA. All rights reserved."
}
The mapping for Actions.#Drive.Reset
is summarized in
Table 532.
Table 532: Actions.#Drive.Reset mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Actions.#Drive.Reset | NVM Spec Property / Field: Set
Property Command / NSSR: NVM Subsystem Reset (Controller Property Offset
20h) NSSD: NVM Subsystem Shutdown (Controller Property Offset 64h) NVM Spec: Section:Figure NVMe 2.0: Section 3.1.3: Figure 35: Offset 20h and 64h Further information on NVM Subsystem Reset Control (NSSRC): NVMe 2.0: Section 3.1.3.7: Figure 48 and NVM Subsystem Shutdown Control (NSSD): NVMe 2.0: Section 3.1.3.20: Figure 61 |
Type | Action (Special form of POST) | NVMe Administrative command |
Description | This action resets this drive. | This is used to initiate a controller reset or shutdown depending on the control offset used. |
LongDescription | This action shall reset this drive. | NVM Subsystem Reset Control (NSSRC): A write of
the value 4E564D65h (“NVMe”) to this field initiates an NVM Subsystem Reset.
NVM Subsystem Shutdown Control (NSSC): A write of the value 4E726D6Ch (“Nrml”) to this field initiates a normal NVM Subsystem Shutdown on every controller ( in the domain associated with the controller when CAP.CPS is set to 10b as specified in section 3.6.3.1; or • in the NVM subsystem when CAP.CPS is set to 11b in the NVM subsystem as specified in section 3.6.3.2. A write of the value 41627074h (“Abpt”) to this field initiates an abrupt NVM subsystem shutdown on every controller: • in the domain associated with the controller when CAP.CPS is set to 10b as specified in section 3.6.3.1; in the NVM subsystem when CAP.CPS is set to 11b in the NVM subsystem |
Mandatory | Optional Mandatory for NVMe Drives |
Optional |
Notes | This action has a mandatory property of “ResetType”, which can be any of On/ForceOff/GracefulShutdown/GracefulRestart/Nmi/ForceRestart/ForceOn/PushPowerButton/PowerCycle. | Usage: A normal NVM Subysystem shutdown maps to GracefulShutdown; Subsystem Reset maps to ForceRestart; abrupt Subsystem Shutdown maps to ForceOff. If an implementation that supports the functionality, then they may implement PowerCycle. |
The mapping for Actions.#Drive.SecureErase
is summarized in
Table 533.
Table 533: Actions.#Drive.SecureErase mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Actions.#Drive.SecureErase | NVM Spec Property / Field:
Sanitize Operation NVM Spec: Section:Figure NVM Base Specification 2.0: 5.24 Sanitize Command NVM Base Specification 2.0: Section 8.21 Sanitize Operations NVM Base Specification 2.0: Annex A “Sanitize Operation Considerations (Informative)” |
Type | Action (Special form of POST) | NVMe Administrative command |
Description | This action securely erases the contents of the drive. | The sanitize administrative command operation makes all user data previously written to the device inaccessible. |
LongDescription | This action shall securely erase the drive. | The Sanitize command is used to start a sanitize operation or to recover from a previously failed sanitize operation. All user data in the NVM subsystem is altered such that recovery of the previous user data from any cache or the non-volatile media is not possible. |
Mandatory | Mandatory | Optional |
Notes | The action parameter SanitizationType supported are: BlockErase, CryptographicErase, and Overwrite. When Overwrite is used, OverwritePasses must also be specified. | Maps to sanitize. Implementation can support any
variant. The sanitize operation types that may be supported are Block Erase, Crypto Erase, and Overwrite. All sanitize operations are processed in the background (i.e., completion of the Sanitize command does not indicate completion of the sanitize operation) |
The mapping for Assembly.BinaryDataURI
is summarized in
Table 534.
Table 534: Assembly.BinaryDataURI mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Assembly.BinaryDataURI | N/A |
Type | String | N/A |
Description | The URI at which to access an image of the assembly information. | N/A |
LongDescription | This property shall contain the URI at which to
access an image of the assembly information, using the Redfish protocol and
authentication methods. The Service provides this URI for the download of the
OEM-specific binary image of the assembly data. An HTTP GET from this URI shall
return a response payload of MIME time application/octet-stream . If
the service supports it, an HTTP PUT to this URI shall replace the binary image
of the assembly. |
N/A |
Mandatory | Recommended | |
Notes | N/A for NVMe 2.0 |
The mapping for BlockSizeBytes
is summarized in
Table 535.
Table 535: BlockSizeBytes mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | BlockSizeBytes | NVM Spec Property / Field:
Formatted LBA Size (FLBAS) retrieved in some Identify Namespace data structures
for the specified NSID or the common namespace capabilities for the NVM Command
Set (CNS 00h). Refer to the applicable NVMe I/O Command Set specification for details. For NVMe I/O Command Sets that don’t define this field, it is considered reserved NVM Spec: Section:Figure NVMe NVM Command Set Specification 1.0b: Section 4.1.5.1: FIgure 97: Bytes 26 - Formatted LBA Size (FLBAS) and uses the Number LBA Formats (NBLAF) field defined in Section 4.1.5.1: FIgure 97: Bytes 25 (Number of LBA Formats) NVM Express NVM Zoned Namespace Command Set Specification 1.1b: Section A.5: Figure 53 (Size and Capacity Fields): Bytes 26. |
Type | Int64 | Int-64 |
Description | The size, in bytes, of the smallest addressable unit, or block. | The LBA data size & metadata size combination that the namespace has been formatted with. |
LongDescription | This property shall contain size of the smallest addressable unit of the associated drive or device. | This field indicates the LBA data size & metadata size combination that the namespace has been formatted with. |
Mandatory | Mandatory | Only Mandatory / applicable for the NVM Command Set and I/O Command Sets based on the NVM Command Set. Prohibited for all other I/O Command Sets. |
Notes | Refer to the applicable NVMe I/O Command Set
specification for details. For NVMe I/O Command Sets that don’t define this
field, it is considered reserved. For NVM Express Command Sets that Support Blocks: Bits 6:5 indicate the most significant 2 bits of the Format Index of the supported LBA Format indicated in this data structure that was used to format the namespace. If the NLBAF field is less than or equal to 16, then the host should ignore these bits. Bit 4 indicates whether or not the metadata is transferred at the end of the data LBA, creating an extended data LBA. (note: Bit 4 is not applicable when there is no metadata). Bits 3:0 indicate the least significant 4 bits of the Format Index of the supported LBA Format indicated in this data structure that was used to format the namespace. |
The mapping for CapableSpeedGpbs
is summarized in
Table 536.
Table 536: CapableSpeedGpbs mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | CapableSpeedGpbs | NVM Spec Property / Field: PCI
Express Link Capabilities / PXCAP+Ch NVM Spec: Section:Figure NVMe PCIe Transport Specification 1.0b: 3.8.5.6: Figure 53: Bits 00:03 |
Type | Decimal | |
Description | The speed, in gigabit per second (Gbit/s), at which this drive can communicate to a storage controller in ideal conditions. | indicates the supported Link speed(s) of the associated port. |
LongDescription | This property shall contain fastest capable bus speed, in gigabit per second (Gbit/s), of the associated drive. | This field indicates the supported Link speed(s) of the associated port. |
Mandatory | Mandatory | Mandatory |
Notes | For NVMe-oF this is not specified; use the value for the highest supported native capability. |
The mapping for CapacityBytes
is summarized in
Table 537.
For drives supporting only a single namespace (no or default endurance group / set only):
Table 537: CapacityBytes for single namespace mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | CapacityBytes | NVM Spec Property / Field: –
Identify Command / Identify Namespace Data Structure (CNS 00h), NVM Command Set
/ Namespace Size (NSZE) NVM Spec: Section:Figure NVMe 2.0: 5.17.1: FIgure 273: CNS Value 00h NVM Command Set Specification 1.0b: 4.1.5.1: Figure 97: Bytes 00:07 |
Type | Int64 | |
Description | The size, in bytes, of this drive. | The total size of the NVM allocated its namespace. |
LongDescription | This property shall contain the raw size, in bytes, of the associated drive. | The total size of the NVM allocated to this namespace in logical blocks. The value is in bytes. This field shall be supported if the Namespace Management capability is supported. This field may not correspond to the logical block size multiplied by the Namespace Size field. Due to thin provisioning or other settings (e.g., endurance), this field may be larger or smaller than the Namespace Size reported. |
Mandatory | Mandatory | Optional |
Notes | Reporting capacity in bytes is the Redfish and Swordfish standard mechanism. |
For drives supporting multiple namespaces:
Table 537: CapacityBytes for multiple namespace mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | CapacityBytes | NVM Spec Property / Field:
Endurance Group Information Log (Log ID 09h) / Total Endurance Group Capacity
(TEGCAP) NVM Spec: Section:Figure NVMe 2.0: 5.16.1.10: Figure 217: Bytes 160 : 175 |
Type | Int64 | 16 Bytes |
Description | The number of bytes currently allocated by the storage system in this data store for this data type. | indicates the total NVM capacity in this Endurance Group. |
LongDescription | The value shall be the number of bytes currently allocated by the storage system in this data store for this data type. | This field indicates the total NVM capacity in this Endurance Group. |
Mandatory | Mandatory | No |
Notes | This value is in bytes |
The mapping for ConfigurationLock
is summarized in
Table 538.
Table 538: ConfigurationLock mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | ConfigurationLock | NVM Spec: Property /
Field: NVMe 2.0d: Identify Command / Identify Controller data structure (CNS 01h) - Optional Admin Command Support (OACS) NVM Spec: Section:Figure NVMe 2.0d: Section 5.17.2.1: Figure 275 - 257:256, Bit 10) Get log page specifying the Command and Feature Lockdown (Log Page Identifier 14h) NVM Spec: Section:Figure NVMe 2.0d: Section 5.16.1.20 |
Type | enum (ConfigurationLock) | Log Page |
Description | The ConfigurationLock ,
TargetConfigurationLockLevel , and
ConfigurationLockState properties are jointly used to manage
lockdown of NVMe devices. |
The Lockdown command is used to control the
Command and Feature Lockdown capability which configures the prohibition or
allowance of execution of the specified command or Set Features command
targeting a specific Feature Identifier. After a successful completion of a Lockdown command prohibiting a command or Feature Identifier, all controllers, if applicable, and all management endpoints, if applicable, in the NVM subsystem behave as requested. |
LongDescription | This has three states: Enabled, Disabled, and
Partial. • Enabled : All supported properties, as reported in
the ConfigurationLockState , that are part of the
TargetConfigurationLockLevel are locked. • Disabled : All supported properties, as reported in the
ConfigurationLockState , that are part of the
TargetConfigurationLockLevel are unlocked.• Partial : The properties, as reported in the
ConfigurationLockState , that are part of the
TargetConfigurationLockLevel are not consistently locked or
unlocked. Services shall reject modification requests that contain the value
Partial . |
Command and Feature Lockdown is used to prohibit
the execution of commands submitted to NVM Express controllers and/or Management
Endpoints in an NVM subsystem. Commands and Feature Identifiers are defined with
the following scopes: • Admin Command Set commands defined by the Opcode field; • Set Features command features defined by the Feature Identifier field; • Management Interface Command Set commands defined by the Opcode field; and • PCIe Command Set commands defined by the Opcode field (refer to the NVM Express Management Interface Specification). |
Mandatory | Optional | Mandatory to implement OACS; Lockdown feature is optional. |
Notes | This property is a duplicate of the property in
the Subsystem, and should reflect that state. See section
Mapping NVMe Command and Feature Lockdown to "ConfigurationLocked"
for detailed behavior and mapping description. |
The mapping for Description
is summarized in
Table 539.
Table 539: Description mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Description | N/A |
Type | String | N/A |
Description | The description of this resource. | N/A |
LongDescription | This object represents the description of this resource. The resource values shall comply with the Redfish Specification-described requirements. | N/A |
Mandatory | Mandatory | |
Notes | In Redfish, Description is a read-only field. |
The mapping for EncryptionAbility
is summarized in
Table 540.
Table 540: EncryptionAbility mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | EncryptionAbility | N/A |
Type | Enum (EncryptionAbility) | N/A |
Description | The encryption ability of this drive. | N/A |
LongDescription | This property shall contain the encryption ability for the associated drive. | N/A |
Mandatory | Mandatory | |
Notes | Required when encryption is supported. Available values: None/SelfEncryptingDrive/Other | Maps to vendor capabilities. |
The mapping for EncryptionStatus
is summarized in
Table 541.
Table 541: EncryptionStatus mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | EncryptionStatus | N/A |
Type | Drive.EncryptionStatus | N/A |
Description | The status of the encryption of this drive. | N/A |
LongDescription | This property shall contain the encryption status for the associated drive. | N/A |
Mandatory | Optional Mandatory when EncryptionAbility != None |
|
Notes | Must be implemented and set when Encryption is enabled (EncryptionAbility will indicate encryption capability type.) Possible values: Unlocked/locked/foreign/unencrypted | Set according to vendor specs / mapping. |
The mapping for FailurePredicted
is summarized in
Table 542.
Table 542: FailurePredicted mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | FailurePredicted | NVM Spec: Property / Field: –
Persistent Event Log Log Identifier 0Dh) / NVM Subsystem Hardware Error Event
(Event Type 05h) NVM Spec: Section:Figure NVMe 2.0: 5.16.1.14: Persistent Event Log (Log Identifier 0Dh) / Figure 224: Get Log Page – Persistent Event Log (Log Identifier 0Dh) NVMe 2.0: 5.16.1.14.1.5: FIgure 232: NVM Subsystem Hardware Error Event Format: Bytes 00:01 (NVM Subsystem Hardware Error Event Code) |
Type | Boolean | If any of the NVM Subsystem Hardware Events exist then this is a binary ‘true’ |
Description | An indication of whether this drive currently predicts a failure in the near future. | The Persistent Event Log page contains information about significant events not specific to a particular command. |
LongDescription | This property shall indicate whether this drive currently predicts a manufacturer-defined failure. | The Persistent Event Log page contains information about significant events not specific to a particular command. The information in this log page shall be retained across power cycles and resets. |
Mandatory | Recommended | Optional for Admin and I/O Controllers. Prohibited for Discovery Controllers |
Notes | Implements the results of the SMART log data. | Reference NVMe 2.0: Section 5.16.1.14.1.5 Figure 233 for possible NVM Subsystem Hardware Error Event Codes |
The mapping for Identifiers
is summarized in
Table 543.
Table 543: Identifiers mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Identifiers | N/A |
Type | Collection(Resource.Identifier) | N/A |
Description | The Durable names for the subsystem. | N/A |
LongDescription | This property shall contain a list of all known durable names for the associated subsystem. | N/A |
Mandatory | Mandatory | |
Notes | This is an array of unique identifiers for the NVM Subsystem. | This is an array of unique identifiers for the NVM Subsystem |
The mapping for Identifiers.DurableNameFormat
is summarized in
Table 544.
Table 544: Identifiers.DurableNameFormat mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Identifiers.DurableNameFormat | N/A |
Type | Resource.v1_1_0.DurableNameFormat | N/A |
Description | The format of the Durable names for the subsystem. | N/A |
LongDescription | This specifies the format of the associated NVM Subsystem NVMe Qualified Name of type NQN. Support for this field is mandatory if the controller supports revision 1.2.1 or later as indicated in the Version register (refer to section 3.1.2). | N/A |
Mandatory | Optional | |
Notes | This is an enum with multiple potential values. For this particular usage in Subsystem, there will only be one instance populated, of type NQN. |
The mapping for Identifiers.DurableName
is summarized in
Table 545.
Table 545: Identifiers.DurableName mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Identifiers.DurableName | NVM Spec: Property /
Field: NVMe 2.0: Identify Command / Identify Controller data structure (CNS 01h) / NVM Subsystem NVMe Qualified Name (SUBNQN) NVM Spec: Section:Figure NVMe 2.0: Section 5.17.2.1: Figure 275 - Bytes 768 - 1023) |
Type | Edm.String | UTF-8 null-terminated string. Refer to NVMe 2.0: Section 4.5.1 Unique Identifier |
Description | The format of the Durable names for the subsystem. | NVM Subsystem NVMe Qualified Name (SUBNQN) |
LongDescription | This specifies the NVM Subsystem NVMe Qualified Name as a UTF-8 null-terminated string. Refer to NVMe Base Specification, section 7.9, for the definition of NVMe Qualified Name. Support for this field is mandatory if the controller supports revision 1.2.1 or later as indicated in the Version register (refer to section 3.1.2). | Used to uniquely describe a host or NVM subsystem for the purposes of identification and authentication. |
Mandatory | Optional | Support for this field is mandatory if the controller supports revision 1.2.1 or later as indicated in the Controller Properties Version register (refer to section 3.1.3), Figure 35, Offset 8h. |
Notes | For this particular usage in Subsystem, there will only be one instance populated in the identifiers array. |
The mapping for IndicatorLED
is summarized in
Table 546.
Table 546: IndicatorLED mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | IndicatorLED | N/A |
Type | Boolean | N/A |
Description | An indication of whether this drive currently predicts a failure in the near future. | N/A |
LongDescription | This property shall indicate whether this drive currently predicts a manufacturer-defined failure. | N/A |
Mandatory | Do Not Implement | |
Notes | This property has been deprecated. See guidance / implement the LocationIndicatorActive property instead. |
The mapping for Links.Volume
is summarized in
Table 547.
Table 547: Links.Volume mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Links.Volume | N/A |
Type | Collection(Volume.Volume) | N/A |
Description | An array of links to the volumes that this drive either wholly or only partially contains. | N/A |
LongDescription | This property shall contain an array of links to
resources of type Volume with which this drive is associated. This property
shall include all volume resources of which this drive is a member and all
volumes for which this drive acts as a spare if the hot spare type is
Dedicated . |
N/A |
Mandatory | Mandatory | |
Notes | This array shall contain links to all namespaces associated with this physical drive. |
The mapping for Links.Volumes@odata.count
is summarized in
Table 548.
Table 548: Links.Volumes@odata.count mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Links.Volumes@odata.count | N/A |
Type | (odata property)int64 | N/A |
Description | Count of the number of items in the Links.Volume array. | N/A |
LongDescription | N/A | |
Mandatory | Mandatory | |
Notes | The number of namespaces is available from NVMe on a per controller basis. |
The mapping for Location
is summarized in
Table 549.
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Location | N/A |
Type | Collection(Resource.Location) | N/A |
Description | The location of the drive. | N/A |
LongDescription | This property shall contain location information of the associated drive. | N/A |
Mandatory | Do Not Implement | |
Notes | This property has been deprecated. See guidance / implement the PhysicalLocation property instead. |
The mapping for LocationIndicatorActive
is summarized in
Table 550.
Table 550: LocationIndicatorActive mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | LocationIndicatorActive | N/A |
Type | Boolean | N/A |
Description | An indicator allowing an operator to physically locate this resource. | N/A |
LongDescription | This property shall contain the state of the indicator used to physically identify or locate this resource. A write to this property shall update the value of IndicatorLED in this resource, if supported, to reflect the implementation of the locating function. | N/A |
Mandatory | Recommended | |
Notes | This property replaces the IndicatorLED, which has been deprecated. | Comes from vendor. |
The mapping for Manufacturer
is summarized in
Table 551.
Table 551: Manufacturer mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Manufacturer | NVM Spec Property / Field:
Identify Command / Identify Controller Data structure (CNS 01h) / PCI Vendor ID
(VID) NVM Spec: Section: Figure NVMe 2.0: Section 5.17.2.1: Figure 275: Bytes 00:01 |
Type | String | 16-bit number in little endian format. |
Description | The manufacturer of this drive. | The company vendor identifier |
LongDescription | This property shall contain the name of the organization responsible for producing the storage controller. This organization might be the entity from whom the storage controller is purchased, but this is not necessarily true. | The company vendor identifier that is assigned by the PCI SIG. This is the same value as reported in the ID register |
Mandatory | Recommended | Mandatory |
Notes | End clients expect to see the name of the company (e.g,; Contoso, BestVendor). While the value may be filled from the IdentifyController PCI Vendor ID or SubsystemID field, it would be preferable to have this filled with the actual string value of the company name. |
The mapping for MediaType
is summarized in
Table 552.
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | MediaType | N/A |
Type | enum (MediaType) | N/A |
Description | The type of media contained in this Drive. | N/A |
LongDescription | This property shall contain the type of media contained in the associated drive. | N/A |
Mandatory | Mandatory | |
Notes | Possible values: HDD/SSD/SMR. | NVMe SSD Drives to report SSD. |
The mapping for Metrics
is summarized in
Table 553.
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Metrics | The DriveMetrics object contains multiple properties that map to NVMe properties, but the object itself does not have a direct mapping. |
Type | DriveMetrics.DriveMetrics | |
Description | The link to the metrics associated with this drive. | |
LongDescription | This property shall contain a link to the metrics associated with this drive. | |
Mandatory | Optional | |
Notes |
The mapping for Model
is summarized in Table
554.
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Model | NVM Spec Property / Field:
Identify Command / Identify Controller Data Structure (CNS 01h) / Model Number
(MN) NVM Spec: Section: Figure NVMe 2.0: Section 5.17.2.1: Figure 275: Bytes 24:63 |
Type | String | String |
Description | The model number for the Drive. | Model Number (MN) |
LongDescription | This property shall contain the name by which the manufacturer generally refers to the Drive. | Contains the model number for the NVM subsystem that is assigned by the vendor as an ASCII string. |
Mandatory | Mandatory | |
Notes | Refer to NVMe Base specification 2.0 section 4.5.1 for unique identifier requirements. Refer to NVMe Base specification 2.0 section 1.4.2 for ASCII string requirements. |
The mapping for Multipath
is summarized in
Table 555.
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Multipath | NVM Spec Property / Field:
Identify Command / Idnetify Controller Data Structure (CNS 01h) / Controller
Multi-Path I/O and Namespace Sharing Capabilities NVM Spec: Section:Figure NVMe 2.0: Section 5.17.2.1: Figure 275: Byte 76 |
Type | Boolean | N/A |
Description | An indication of whether the drive is accessible from multiple paths. | This field specifies multi-path I/O and namespace sharing capabilities of the controller and NVM subsystem |
LongDescription | This property shall indicate whether the drive is accessible by an initiator from multiple paths allowing for failover capabilities upon a path failure. | Bits 7:4 are reserved. Bit 3 if set to ‘1’, then the NVM subsystem supports Asymmetric Namespace Access Reporting (refer to section NVMe Base Specification 2.0 section 8.1). If cleared to ‘0’, then the NVM subsystem does not support Asymmetric Namespace Access Reporting. Bit 2 if set to ‘1’, then the controller is associated with an SR-IOV Virtual Function. If cleared to ‘0’, then the controller is associated with a PCI Function or a Fabrics connection. Bit 1 if set to ‘1’, then the NVM subsystem may contain two or more controllers. If cleared to ‘0’, then the NVM subsystem contains only a single controller. As described in refer to section NVMe Base Specification 2.0 section 2.4.1, an NVM subsystem that contains multiple controllers may be used by multiple hosts, or may provide multiple paths for a single host. Bit 0 if set to ‘1’, then the NVM subsystem may contain more than one NVM subsystem port. If cleared to ‘0’, then the NVM subsystem contains only a single NVM subsystem port. |
Mandatory | Recommended Mandatory if drive is dual-ported. |
Admin: Optional I/O: Optional Discovery: Reserved |
Notes |
The mapping for Name
is summarized in Table
556.
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Name | N/A |
Type | String | N/A |
Description | The name of the resource or array member. | N/A |
LongDescription | This object represents the name of this resource or array member. The resource values shall comply with the Redfish Specification-described requirements. This string value shall be of the ‘Name’ reserved word format. | N/A |
Mandatory | Mandatory | |
Notes | In Redfish, Name is a read-only field. |
The mapping for NegotiatedSpeedGbps
is summarized in
Table 557.
Table 557: NegotiatedSpeedGbps mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NegotiatedSpeedGbps | For NVMe: NVM Spec Property /
Field: : For PCIe Transport: Offset PXCAP + Ch: PXLCAP – PCI Express
Link Capabilities / Supported Link Speeds (SLS) NVM Spec: Section:Figure For PCIe Transport: NVM Express PCIe Transport Specification 1.0b: section 3.8.5.6: Figure 53: Bytes 03:00 For NVMe-oF: Not Applicable |
Type | Decimal | |
Description | The speed, in gigabit per second (Gbit/s), at which this drive currently communicates to the storage controller. | This field indicates the supported Link speed(s) of the associated port |
LongDescription | This property shall contain current bus speed, in gigabit per second (Gbit/s), of the associated drive. | Supported Link Speeds |
Mandatory | Mandatory | For NVMe: Required For NVMe-oF: DNI |
Notes | For PCIe, this is in the PCIe link capabilities
For NVMe-oF this is not specified; use the value for the native capability. |
The mapping for NVMe.NVMeConfigurationLockState
is summarized in
Table 558.
Table 558: NVMe.NVMeConfigurationLockState mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMe.NVMeConfigurationLockState | N/A (Sub-properties map to NVMe Command and Feature Lockdown) |
Type | ComplexType | N/A |
Description | Set of configurable features that are able to be locked on an NVMe Subsystem, and their current lock state. | |
LongDescription | ||
Mandatory | Optional | |
Notes | See section
Mapping NVMe Command and Feature Lockdown to "ConfigurationLocked"
for detailed behavior and mapping description. |
The mapping for NVMe.NVMeConfigurationLockState.FirmwareCommit
is summarized in Table 559.
Table 559: NVMe.NVMeConfigurationLockState.FirmwareCommit mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMe.NVMeConfigurationLockState.FirmwareCommit | NVM Spec: Property /
Field: NVMe 2.0d: Identify Command / Identify Controller data structure (CNS 01h) - Optional Admin Command Support (OACS) NVM Spec: Section:Figure NVMe 2.0d: Section 5.17.2.1: Figure 275 - 257:256, Bytes 13:08) Get log page specifying the Command and Feature Lockdown (Log Page Identifier 14h) NVM Spec: Section:Figure NVMe 2.0d: Section 5.16.1.20 (Figure 260) |
Type | Drive.v1_20_0.ConfigLockOptions • Unlocked : Command is supported, able to be locked, and the current
state is unlocked. • Locked : Command is supported, able to be
locked, and the current state is locked. • LockdownUnsupported :
Command is supported, able to be locked, and the current state is locked. • CommandUnsupported : Command is not supported, therefore lockdown
does not apply. |
Log Page |
Description | Ability to perform the NVMe defined FirmwareCommit command. | If the FirmwareCommit feature is able to be locked down, it’s corresponding opcode, 10h, will be reported in the command and feature lockdown log page (bytes 13:08). |
LongDescription | This has three states: Enabled, Disabled, and
Partial. • Enabled : All supported properties, as reported in
the ConfigurationLockState , that are part of the
TargetConfigurationLockLevel are locked. • Disabled : All supported properties, as reported in the
ConfigurationLockState , that are part of the
TargetConfigurationLockLevel are unlocked.• Partial : The properties, as reported in the
ConfigurationLockState , that are part of the
TargetConfigurationLockLevel are not consistently locked or
unlocked. Services shall reject modification requests that contain the value
Partial . |
Command and Feature Lockdown is used to prohibit
the execution of commands submitted to NVM Express controllers and/or Management
Endpoints in an NVM subsystem. Commands and Feature Identifiers are defined with
the following scopes: • Admin Command Set commands defined by the Opcode field; • Set Features command features defined by the Feature Identifier field; • Management Interface Command Set commands defined by the Opcode field; and • PCIe Command Set commands defined by the Opcode field (refer to the NVM Express Management Interface Specification). |
Mandatory | Optional | Mandatory to implement OACS; FirmwareCommit feature lockdown support is optional. If able to be supported (in log page 14), use the lockdown command to lock and unlock correspond to client requests. |
Notes | See section
Mapping NVMe Command and Feature Lockdown to "ConfigurationLocked"
for detailed behavior and mapping description. |
The mapping for
NVMe.NVMeConfigurationLockState.FirmwareImageDownload
is summarized
in Table 560.
Table 560: NVMe.NVMeConfigurationLockState.FirmwareImageDownload mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMe.NVMeConfigurationLockState.FirmwareImageDownload | NVM Spec: Property /
Field: NVMe 2.0d: Lockdown - NVM Spec: Section:Figure NVMe 2.0d: Section 5.19: Figure 292 - 06:00) Get log page specifying and controlling the Command and Feature Lockdown (Log Page Identifier 14h) NVM Spec: Section:Figure NVMe 2.0d: Section 5.16.1.20 (Figure 260), bytes 13:08 Log page indicating which commands and features are supported and currently set. |
Type | Drive.v1_20_0.ConfigLockOptions • Unlocked : Command is supported, able to be locked, and the current
state is unlocked. • Locked : Command is supported, able to be
locked, and the current state is locked. • LockdownUnsupported :
Command is supported, able to be locked, and the current state is locked. • CommandUnsupported : Command is not supported, therefore lockdown
does not apply. |
Log Page |
Description | Ability to perform the NVMe defined FirmwareImageDownload command. | If the FirmwareImageDownload feature is able to be locked down, it’s corresponding opcode, 11h, will be reported in the command and feature lockdown log page (bytes 13:08). |
LongDescription | This has three states: Enabled, Disabled, and
Partial. • Enabled : All supported properties, as reported in
the ConfigurationLockState , that are part of the
TargetConfigurationLockLevel are locked. • Disabled : All supported properties, as reported in the
ConfigurationLockState , that are part of the
TargetConfigurationLockLevel are unlocked.• Partial : The properties, as reported in the
ConfigurationLockState , that are part of the
TargetConfigurationLockLevel are not consistently locked or
unlocked. Services shall reject modification requests that contain the value
Partial . |
Command and Feature Lockdown is used to prohibit
the execution of commands submitted to NVM Express controllers and/or Management
Endpoints in an NVM subsystem. Commands and Feature Identifiers are defined with
the following scopes: • Admin Command Set commands defined by the Opcode field; • Set Features command features defined by the Feature Identifier field; • Management Interface Command Set commands defined by the Opcode field; and • PCIe Command Set commands defined by the Opcode field (refer to the NVM Express Management Interface Specification). |
Mandatory | Optional | Mandatory to implement OACS; FirmwareImageDownload feature lockdown support is optional. If able to be supported (in log page 14), use the lockdown command to lock and unlock correspond to client requests. |
Notes | See section
Mapping NVMe Command and Feature Lockdown to "ConfigurationLocked"
for detailed behavior and mapping description. |
The mapping for NVMe.NVMeConfigurationLockState.Lockdown
is
summarized in Table 561.
Table 561: NVMe.NVMeConfigurationLockState.Lockdown mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMe.NVMeConfigurationLockState.Lockdown | NVM Spec: Property /
Field: NVMe 2.0d: Identify Command / Identify Controller data structure (CNS 01h) - Optional Admin Command Support (OACS) NVM Spec: Section:Figure NVMe 2.0d: Section 5.17.2.1: Figure 275 - 257:256, Bit 10) Get log page specifying the Command and Feature Lockdown (Log Page Identifier 14h) NVM Spec: Section:Figure NVMe 2.0d: Section 5.16.1.20 |
Type | Drive.v1_20_0.ConfigLockOptions • Unlocked : Command is supported, able to be locked, and the current
state is unlocked. • Locked : Command is supported, able to be
locked, and the current state is locked. • LockdownUnsupported :
Command is supported, able to be locked, and the current state is locked. • CommandUnsupported : Command is not supported, therefore lockdown
does not apply. |
Log Page |
Description | Ability to perform the NVMe defined Lockdown command. | The Lockdown command is used to control the
Command and Feature Lockdown capability which configures the prohibition or
allowance of execution of the specified command or Set Features command
targeting a specific Feature Identifier. After a successful completion of a Lockdown command prohibiting a command or Feature Identifier, all controllers, if applicable, and all management endpoints, if applicable, in the NVM subsystem behave as requested. |
LongDescription | This has three states: Enabled, Disabled, and
Partial. • Enabled : All supported properties, as reported in
the ConfigurationLockState , that are part of the
TargetConfigurationLockLevel are locked. • Disabled : All supported properties, as reported in the
ConfigurationLockState , that are part of the
TargetConfigurationLockLevel are unlocked.• Partial : The properties, as reported in the
ConfigurationLockState , that are part of the
TargetConfigurationLockLevel are not consistently locked or
unlocked. Services shall reject modification requests that contain the value
Partial . |
Command and Feature Lockdown is used to prohibit
the execution of commands submitted to NVM Express controllers and/or Management
Endpoints in an NVM subsystem. Commands and Feature Identifiers are defined with
the following scopes: • Admin Command Set commands defined by the Opcode field; • Set Features command features defined by the Feature Identifier field; • Management Interface Command Set commands defined by the Opcode field; and • PCIe Command Set commands defined by the Opcode field (refer to the NVM Express Management Interface Specification). |
Mandatory | Optional | Mandatory to implement OACS; Lockdown feature is optional. If able to be supported (in log page 14), use the lockdown command to lock and unlock correspond to client requests. |
Notes | See section
Mapping NVMe Command and Feature Lockdown to "ConfigurationLocked"
for detailed behavior and mapping description. |
The mapping for NVMe.NVMeConfigurationLockState.SecuritySend
is
summarized in Table 562.
Table 562: NVMe.NVMeConfigurationLockState.SecuritySend mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMe.NVMeConfigurationLockState.SecuritySend | NVM Spec: Property /
Field: NVMe 2.0d: Identify Command / Identify Controller data structure (CNS 01h) - Optional Admin Command Support (OACS) NVM Spec: Section:Figure NVMe 2.0d: Section 5.17.2.1: Figure 275 - 257:256, Bytes 13:08) Get log page specifying the Command and Feature Lockdown (Log Page Identifier 14h) NVM Spec: Section:Figure NVMe 2.0d: Section 5.16.1.20 (Figure 260) |
Type | Drive.v1_20_0.ConfigLockOptions • Unlocked : Command is supported, able to be locked, and the current
state is unlocked. • Locked : Command is supported, able to be
locked, and the current state is locked. • LockdownUnsupported :
Command is supported, able to be locked, and the current state is locked. • CommandUnsupported : Command is not supported, therefore lockdown
does not apply. |
Log Page |
Description | Ability to perform the NVMe defined SecuritySend command. | If the SecuritySend feature is able to be locked down, it’s corresponding opcode, 81h, will be reported in the command and feature lockdown log page (bytes 13:08). |
LongDescription | This has three states: Enabled, Disabled, and
Partial. • Enabled : All supported properties, as reported in
the ConfigurationLockState , that are part of the
TargetConfigurationLockLevel are locked. • Disabled : All supported properties, as reported in the
ConfigurationLockState , that are part of the
TargetConfigurationLockLevel are unlocked.• Partial : The properties, as reported in the
ConfigurationLockState , that are part of the
TargetConfigurationLockLevel are not consistently locked or
unlocked. Services shall reject modification requests that contain the value
Partial . |
Command and Feature Lockdown is used to prohibit
the execution of commands submitted to NVM Express controllers and/or Management
Endpoints in an NVM subsystem. Commands and Feature Identifiers are defined with
the following scopes: • Admin Command Set commands defined by the Opcode field; • Set Features command features defined by the Feature Identifier field; • Management Interface Command Set commands defined by the Opcode field; and • PCIe Command Set commands defined by the Opcode field (refer to the NVM Express Management Interface Specification). |
Mandatory | Optional | Mandatory to implement OACS; SecuritySend feature lockdown support is optional. If able to be supported (in log page 14), use the lockdown command to lock and unlock correspond to client requests. |
Notes | See section
Mapping NVMe Command and Feature Lockdown to "ConfigurationLocked"
for detailed behavior and mapping description. |
The mapping for NVMe.NVMeConfigurationLockState.VPDWrite
is
summarized in Table 563.
Table 563: NVMe.NVMeConfigurationLockState.VPDWrite mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMe.NVMeConfigurationLockState.VPDWrite | NVM Spec: Property /
Field: NVMe 2.0d: Identify Command / Identify Controller data structure (CNS 01h) - Optional Admin Command Support (OACS) NVM Spec: Section:Figure NVMe 2.0d: Section 5.17.2.1: Figure 275 - 257:256) Get log page specifying the Command and Feature Lockdown (Log Page Identifier 14h) NVM Spec: Section:Figure NVMe 2.0d: Section 5.16.1.20 (Figure 260) |
Type | Drive.v1_20_0.ConfigLockOptions • Unlocked : Command is supported, able to be locked, and the current
state is unlocked. • Locked : Command is supported, able to be
locked, and the current state is locked. • LockdownUnsupported :
Command is supported, able to be locked, and the current state is locked. • CommandUnsupported : Command is not supported, therefore lockdown
does not apply. |
Log Page |
Description | Ability to perform the NVMe defined VPDWrite command. | If the VPDWrite feature is able to be locked down, it’s corresponding opcode, 81h, will be reported in the command and feature lockdown log page (bytes 13:08). |
LongDescription | This has three states: Enabled, Disabled, and
Partial. • Enabled : All supported properties, as reported in
the ConfigurationLockState , that are part of the
TargetConfigurationLockLevel are locked. • Disabled : All supported properties, as reported in the
ConfigurationLockState , that are part of the
TargetConfigurationLockLevel are unlocked.• Partial : The properties, as reported in the
ConfigurationLockState , that are part of the
TargetConfigurationLockLevel are not consistently locked or
unlocked. Services shall reject modification requests that contain the value
Partial . |
Command and Feature Lockdown is used to prohibit
the execution of commands submitted to NVM Express controllers and/or Management
Endpoints in an NVM subsystem. Commands and Feature Identifiers are defined with
the following scopes: • Admin Command Set commands defined by the Opcode field; • Set Features command features defined by the Feature Identifier field; • Management Interface Command Set commands defined by the Opcode field; and • PCIe Command Set commands defined by the Opcode field (refer to the NVM Express Management Interface Specification). |
Mandatory | Optional | Mandatory to implement OACS; VPDWrite feature lockdown support is optional. If able to be supported (in log page 14), use the lockdown command to lock and unlock correspond to client requests. |
Notes | See section
Mapping NVMe Command and Feature Lockdown to "ConfigurationLocked"
for detailed behavior and mapping description. |
The mapping for PhysicalLocation.Info
is summarized in
Table 564.
Table 564: PhysicalLocation.Info mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | PhysicalLocation.Info | N/A |
Type | String | N/A |
Mandatory | Do Not Implement | |
Notes | This property has been deprecated. |
The mapping for PhysicalLocation.InfoFormat
is summarized in
Table 565.
Table 565: PhysicalLocation.InfoFormat mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | PhysicalLocation.InfoFormat | N/A |
Type | String | N/A |
Mandatory | Do Not Implement | |
Notes | This property has been deprecated. |
The mapping for PhysicalLocation.PartLocation
is summarized in
Table 566.
Table 566: PhysicalLocation.PartLocation mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | PhysicalLocation.PartLocation | N/A |
Type | Boolean | N/A |
Description | An indication of whether the drive is accessible from multiple paths. | N/A |
LongDescription | This property shall indicate whether the drive is accessible by an initiator from multiple paths allowing for failover capabilities upon a path failure. | N/A |
Mandatory | Recommended Mandatory if drive is dual-ported. |
|
Notes | The drive should support this property to be filled in by a layered process (e.g., BMC). Support for any other properties in PhysicalLocation are at the discretion of the vendor. |
The mapping for PredictedMediaLifetLeftPercent
is summarized in
Table 567.
Table 567: PredictedMediaLifetLeftPercent mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | PredictedMediaLifetLeftPercent | NVM Spec Property / Field: Get
Log Page – SMART, Health Information Log (Log Identifier 02h) / Percentage
Used NVM Spec: Section:Figure NVMe 2.0: Section 5.16.1.3: Figure 207: Byte 05 |
Type | Decimal | Decimal range: 0% - 255% |
Description | The percentage of reads and writes that are predicted to be available for the media. | Contains a vendor specific estimate of the percentage of NVM subsystem life used based on the actual usage and the manufacturer’s prediction of NVM life. |
LongDescription | This property shall contain an indicator of the percentage of life remaining in the drive’s media. | Contains a vendor specific estimate of the percentage of NVM subsystem life used based on the actual usage and the manufacturer’s prediction of NVM life. A value of 100 indicates that the estimated endurance of the NVM in the NVM subsystem has been consumed, but may not indicate an NVM subsystem failure. The value is allowed to exceed 100. Percentages greater than 254 shall be represented as 255. This value shall be updated once per power-on hour (when the controller is not in a sleep state). |
Mandatory | Mandatory | Optional |
Notes | Maps to percentage used in SMART information log | This value shall be scaled to a value between 0% -
100% Calculate resulting value as 100 - value reported (PercentageUsed). Refer to the JEDEC JESD218A standard for SSD device life and endurance measurement techniques. |
The mapping for Protocol
is summarized in
Table 568.
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Protocol | N/A |
Type | Protocol.Protocol | N/A |
Description | The protocol that this drive currently uses to communicate to the storage controller. | N/A |
LongDescription | This property shall contain the protocol that the associated drive currently uses to communicate to the storage controller for this system. | N/A |
Mandatory | Mandatory | |
Notes | Possible values (long list) | NVMe Drives shall report “NVMe”. |
The mapping for Revision
is summarized in
Table 569.
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Revision | NVM Spec Property / Field:
Identify Command / Identify Controller Data Structure (CNS 01h) / Firmware
Revision (FR) NVM Spec: Section:Figure NVMe 2.0: section 5.17.2.1: Figure 275: Bytes 64:71 |
Type | String | String |
Description | The revision of this drive. This is typically the firmware or hardware version of the drive. | Contains the currently active firmware revision, as an ASCII string, for the domain of which this controller is a part. |
LongDescription | This property shall contain the manufacturer-defined revision for the associated drive. | Contains the currently active firmware revision, as an ASCII string, for the domain of which this controller is a part. |
Mandatory | Mandatory | Mandatory |
Notes | Return the currently active firmware revision
information. This is the same revision information that may be retrieved with the Get Log Page command, refer to NVMe Base specification 2.0, section 5.16.1.4 |
The mapping for RotationSpeedRPM
is summarized in
Table 570.
Table 570: RotationSpeedRPM mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | RotationSpeedRPM | NVM Spec Property / Field: Get
Log Page - Rotational Media Information Log (Log ID 16h) / Nominal Rotational
Speed (NRS) NVM Spec: Section:Figure NVMe 2.0: section 5.16.1.22: Figure 263: Bytes 4:5 |
Type | Decimal | Decimal |
Description | An indication of whether the drive is accessible from multiple paths. | Nominal rotational speed in revolutions per minute while the current Power State is 0 |
LongDescription | This property shall indicate whether the drive is accessible by an initiator from multiple paths allowing for failover capabilities upon a path failure. | This log page provides rotational media information (refer to section 8.20) for Endurance Groups that store data on rotational media. The information provided is retained across power cycles and resets. |
Mandatory | Optional If MediaType == SSD, Do Not Implement. |
I/O Controller: Optional Admin Controller: Prohibited Discovery Controller: Prohibited |
Notes | Nominal rotational speed in revolutions per minute
while the current Power State is 0 Supported Values / Descriptions: 0000h Not reported 0001h This value shall not be used. FFFFh Reserved All other values Nominal rotational speed in revolutions per minute while the current Power State is 0 |
The mapping for SKU
is summarized in Table
571.
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | SKU | N/A |
Type | String | N/A |
Description | The SKU for this drive. | N/A |
LongDescription | This property shall contain the stock-keeping unit (SKU) number for this drive. | N/A |
Mandatory | Mandatory | |
Notes | The drive should support this property to be filled in by a layered process (e.g., OEM manufacturing). |
The mapping for SerialNumber
is summarized in
Table 572.
Table 572: SerialNumber mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | SerialNumber | NVM Spec Property / Field:
Identify Command / Identify Controller Data Structure (CNS 01h): Serial Number
(SN) NVM Spec: Section:Figure NVMe 2.0: section 5.17.2.1: Figure 275: Bytes 04:23 |
Type | String | String |
Description | The serial number for this drive. | Contains the serial number for the NVM subsystem that is assigned by the vendor as an ASCII string. |
LongDescription | This property shall contain the manufacturer-allocated number that identifies the drive. | Contains the serial number for the NVM subsystem that is assigned by the vendor as an ASCII string. |
Mandatory | Mandatory | I/O Controller: Mandatory Admin Controller: Mandatory Discovery Controller: Restricted |
Notes | Each identifier is in big endian format. Refer to NVMe 2.0 Base specification section 4.5.1 for unique identifier requirements. Refer to NVMe 2.0 Base specification section 1.4.2 for ASCII string requirements |
The mapping for Status.state
is summarized in
Table 573.
Table 573: Status.State mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Status.State | NVM Spec Property / Field:
Property Get Command / CSTS (Offset 1Ch) – Controller Status: Ready (RDY) -
NVM Spec: Section:Figure NVMe 2.0: section 3.1.3.6: Figure 47: Bit 00 |
Type | Resource.State (enum) | Enum |
Description | The known state of the resource, such as, enabled. | This bit is set to ‘1’ when the controller is ready to process submission queue entries after CC.EN is set to ‘1’. This bit shall be cleared to ‘0’ when CC.EN is cleared to ‘0’ once the controller is ready to be re-enabled |
LongDescription | This property shall indicate whether and why this component is available. Enabled indicates the resource is available. Disabled indicates the resource has been intentionally made unavailable but can be enabled. Offline indicates the resource is unavailable intentionally and requires action to make it available. InTest indicates that the component is undergoing testing. Starting indicates that the resource is becoming available. Absent indicates the resource is physically unavailable. | This bit is set to ‘1’ when the controller is ready to process submission queue entries after CC.EN is set to ‘1’. This bit shall be cleared to ‘0’ when CC.EN is cleared to ‘0’ once the controller is ready to be re-enabled |
Mandatory | Optional Mandatory for NVM Drives |
Mandatory |
Notes | Possible values: Enabled / Disabled / StandbyOffline / StandbySpare / InTest / Starting / Absent / UnavailableOffline / Deferring / Quiesced / Updating / Qualified | The drive should support this property to be filled in by a higher level client (e.g., BMC). The drive can self-set this drive to Enabled / Disabled / InTest /Updating. If any controller in the drive is set to Enabled, set to “Enabled”. If all controllers are set to disabled, set to “Disabled”. If a firmware update is in progress, set to “Updating”. If the drive is running a self-test, set to “InTest”. |
The mapping for Status.Health
is summarized in
Table 574.
Table 574: Status.Health mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Status.Health | NVM Spec Property / Field: Get
Log Page – SMART / Health Information Log (Log ID 02h) / Critical
Warning NVM Spec: Section:Figure NVMe 2.0: Section 5.16.1.3, Figure 207: Byte 00 |
Type | Resource.Health | Byte field |
Description | The health state of this resource in the absence of its dependent resources. | This field indicates critical warnings for the state of the controller. Each bit corresponds to a critical warning type |
LongDescription | This property shall represent the health state of the resource without considering its dependent resources. The values shall conform to those defined in the Redfish Specification. | This field indicates critical warnings for the state of the controller. Each bit corresponds to a critical warning type; multiple bits may be set to ‘1’. If a bit is cleared to ‘0’, then that critical warning does not apply. Critical warnings may result in an asynchronous event notification to the host. Bits in this field represent the current associated state and are not persistent. |
Mandatory | Optional Mandatory for NVM Drives. |
I/O Controller: Mandatory Admin Controller: Optional Discovery Controller: Prohibited |
Notes | Possible Values: OK / Warning / Critical | Report to same value as set for worst-case
controller Status.Health. Bits / Definitions 7:6 Reserved 5 If set to ‘1’, then the Persistent Memory Region has become read-only or unreliable. 4 If set to ‘1’, then the volatile memory backup device has failed. This field is only valid if the controller has a volatile memory backup solution. 3 If set to ‘1’, then all of the media has been placed in read only mode. The controller shall not set this bit to ‘1’ if the read-only condition on the media is a result of a change in the write protection state of a namespace. 2 If set to ‘1’, then the NVM subsystem reliability has been degraded due to significant media related errors or any internal error that degrades NVM subsystem reliability. 1 If set to ‘1’, then a temperature is: a) greater than or equal to an over temperature threshold; or b) less than or equal to an under temperature threshold. 0 If set to ‘1’, then the available spare capacity has fallen below the threshold. |
The mapping for StatusIndicator
is summarized in
Table 575.
Table 575: StatusIndicator mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | StatusIndicator | N/A |
Type | enum (StatusIndicator) | N/A |
Description | An indication of whether the drive is accessible from multiple paths. | N/A |
LongDescription | This property shall indicate whether the drive is accessible by an initiator from multiple paths allowing for failover capabilities upon a path failure. | N/A |
Mandatory | Mandatory | |
Notes | Multiple values possible. Relevant values for NVMe standalone drives: OK, Fail, PredictiveFailureAnalysis. | The drive should support this property to be filled in by a higher level client (e.g., BMC). The drive can self-set this drive only to OK (or potentially fail, but only if the property has not been set by higher-level software). |
The mapping for TargetConfigurationLockLevel
is summarized in
Table 576.
Table 576: TargetConfigurationLockLevel mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | TargetConfigurationLockLevel | N/A |
Type | enum (TargetConfigurationLockLevel) | N/A |
Description | Indicates the target configuration lock level for
the drive resource. This corresponds to the ConfigurationLock and
ConfigurationLockState for the storage subsystem type. |
N/A |
LongDescription | This property shall indicate the target
configuration lock level for the drive resource. This corresponds to the
ConfigurationLock and ConfigurationLockState for the
storage subsystem type. |
N/A |
Mandatory | Optional; Use when the subsystem contains endurance groups and sets, represented by StoragePool resources. | |
Notes | The Standard enum is defined as the
standard configuration lock level, corresponding to applying firmware, and
updating security keys. See section
Mapping NVMe Command and Feature Lockdown to "ConfigurationLocked"
for detailed behavior and mapping description. |
The mapping for WriteCacheEnabled
is summarized in
Table 577.
Table 577: WriteCacheEnabled mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | SerialNumber | NVM Spec Property / Field: Get
Features / Volatile Write Cache (Feature Identifier 06h) / Volatile Write Cache
Enable (WCE) NVM Spec: Section: Figure NVMe 2.0: Section 5.27.1.4: Figure 321: Bit 00 |
Type | Boolean | Boolean |
Description | An indication of whether the drive write cache is enabled. | This property shall indicate whether the drive write cache is enabled. |
LongDescription | This property shall indicate whether the drive write cache is enabled. | This property shall indicate whether the drive write cache is enabled. |
Mandatory | Optional Mandatory for NVMe Drives. |
Optional |
Notes | If set to ‘1’, then the volatile write cache is enabled. If cleared to ‘0’, then the volatile write cache is disabled |
NVMe Domains are used to subdivide an NVM Subsystem. NVMe domains are different from traditional fault domains, and provide a basis for a broader range of resource groupings. For example, if there are multiple power sources, the domain is used to represent the scope of each power source.
NVMeDomains contain a collection of domain members; these can be NVM controllers, endurance groups, NVM sets, namespaces, and ports, as illustrated in Figure .
NVMeDomains also may support Asymmetric Namespace Access for domain members.
The domain object contains two primary elements:
the domain members collection, which contains pointers to the relevant controllers, groups, sets, namespaces, and ports that reflect the appropriate subdivision for the purpose of the domain;
a set of capacity information properties about this set of domain members.
The following mockup shows a sample representation of an NVMe Domain, which contains an IO Controller and a single namespace.
{
"@odata.type": "#NVMeDomain.v1_2_0.NVMeDomain",
"Id": "NVMeDomain1",
"Name": "NVMeDomain 1",
"Description": "NVMeDomain contains NVMe I/O controllers from 1 device.",
"DomainContents": {
"Controllers": [
{
"@odata.id": "/redfish/v1/Systems/Sys-1/Storage/NVMeSSD-EG/Controllers/NVMeIOController"
}
],
"Namespaces": [
{
"@odata.id": "/redfish/v1/Storage/NVMeoF-SS1/Volumes/LogicalNS1"
}
]
},
"ANAGroupId": 2346,
"TotalDomainCapacityBytes": 8575650934756566,
"UnallocatedDomainCapacityBytes": 0,
"MaximumCapacityPerEnduranceGroupBytes": 4287825467378283,
"MaxNamespacesSupportedPerController": 10,
"FirmwareImages": [
{
"@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/NVMeSSD-1.2.5"
},
{
"@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/NVMeSSD-1.2.6"
}
],
"@odata.id": "/redfish/v1/NVMeDomains/NVMeDomain1",
"@Redfish.Copyright": "Copyright 2015-2024 SNIA. All rights reserved."
}
The following mockup shows a sample representation of an NVMe namespace within an NVMe Domain.
{
"@odata.type": "#Volume.v1_10_0.Volume",
"Id": "LogicalNS1",
"Name": "LogicalNamespace1",
"Status": {
"State": "Enabled"
},
"ALUA": {
"ANAGroupId": 2346
},
"CapacitySources": [
{
"@odata.type": "#Capacity.v1_2_0.CapacitySource",
"Id": "NVMeoF_Source1",
"Name": "NVMeoF Source1",
"ProvidedCapacity": {
"Data": {
"AllocatedBytes": 10737418240
}
},
"ProvidingPools": {
"@odata.id": "/redfish/v1/Storage/NVMeoF-SS1/Volumes/LogicalNS1/CapacitySources/NVMeoF_Source1/ProvidingPools"
},
"@odata.id": "/redfish/v1/Storage/NVMeoF-SS1/Volumes/LogicalNS1/CapacitySources/NVMeoF_Source1"
}
],
"@odata.id": "/redfish/v1/Storage/NVMeoF-SS1/Volumes/LogicalNS1",
"@Redfish.Copyright": "Copyright 2015-2023 SNIA. All rights reserved."
}
The mapping for ANAGroupID
is summarized in
Table 578.
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | ANAGroupID | Retrieved in the Identify Command ANA Group ID retrieved in the I/O Command Set Independent Identify Namespace data structure (CNS 08h) or in the Identify Namespace data structure for the specified NSID or the NVM Command Set Identify Namespace Data Structure (CNS 00h) NVMe Base Specification: Section 5.17.2.8: Figure 280: Bytes 07:04 - ANA Group Identifier (ANAGRPID) NVMe NVM Command Set Specification: Section 4.1.5.1: Figure 97: Bytes 92:95 ANA Group Identifier (ANAGRPID) |
Type | Edm.Decimal | DWORD (4 bytes) |
Description | The ANA group id for all namespaces within the domain. | The ANA Group Identifier associated with all namespaces in an ANA Group described by an ANA Group Descriptor. All namespaces in an ANA Group described by an ANA Group Descriptor shall have the same ANA Group ID (ANAGroupID). |
LongDescription | This shall contain the ANA group id which applies to all namespaces within the domain. This corresponds to the value in the ANAGroupId field in volume. | The ANA Group Identifier associated with all namespaces in an ANA Group described by an ANA Group Descriptor. When retrieved via the Identify Command (Command dword 11) For NSID other than FFFFFFFFh, this field indicates the ANA Group Identifier of the ANA group of which the namespace is a member. Each namespace that is attached to a controller that supports Asymmetric Namespace Access Reporting (refer to the CMIC field) shall report a valid ANAGRPID. |
Optional | Optional | |
Notes | The ANA Group Identifier (ANAGRPID) for each ANA
Group shall be unique within an NVM subsystem. If the controller does not support Asymmetric Namespace Access Reporting, then this field shall be cleared to 0h. |
The mapping for FirmwareImages
is summarized in
Table 579.
Table 579: FirmwareImages mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | FirmwareImages | N/A |
Type | Collection(SoftwareInventory.SoftwareInventory) | N/A |
Description | Contains an array of pointers to available firmware images. | N/A |
LongDescription | This property shall contain an array of pointers to available firmware images. | N/A |
Mandatory | Mandatory | |
Notes | This contains a pointer to another collection within the RF/SF service (the update service). Within this service, the firmware images may contain pointers to images corresponding to either NVMe device slots or to external firmware blobs. |
The mapping for TotalDomainCapacityBytes
is summarized in
Table 580.
Table 580: TotalDomainCapacityBytesmapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | TotalDomainCapacityBytes | Retrieved in the Identify Command For an NVM subsystem that does not support multiple domains, the capacity information reported in the TNVMCap field of the Identify Controller data structure (CNS 01h) for the controller processing the command. For an NVM subsystem that supports multiple domains, the Identify command may be used to access the Domain List data structure (CNS 18h) to determine the domains that are accessible by the controller and the Total Domain Capacity for each of those domains. For an NVM subsystem that does not support multiple domains: NVMe Base Specification: Section 5.17.2.1: Figure 275: Bytes 295:280 - Total NVM Capacity (TNVMCAP) For an NVM subsystem that supports multiple domains: Section 5.17.2.17: Figure 286 - Domain List; select the entry for the Domain beginning at Byte 128 (domain entries are 256 Bytes in length) and retrieving the Total Domain Capacity for the Domain (Bytes 16:31) in the Domain Attributes Entry data structure |
Type | Edm.Int64 | Bytes (16) |
Description | The total capacity in bytes of this NVMe Domain. | Indicates the total NVM capacity in this Domain. |
LongDescription | This property shall contain the total capacity in bytes of this NVMe Domain. | For an NVM subsystem that does not support
multiple domains: This field indicates the total NVM capacity that is accessible
by the controller. For an NVM subsystem that supports multiple domains: This field indicates the total NVM capacity in this Domain. |
Mandatory | For an NVM subsystem that does not support
multiple domains: Total NVM Capacity (TNVMCAP) is mandatory if the Namespace
Management capability is supported or if the Capacity Management capability is
supported. For an NVM subsystem that supports multiple domains: The Domain List is Mandatory for controllers that support Capacity Management in an NVM subsystem that supports multiple domains. |
|
Notes |
The mapping for UnallocatedDomainCapacityBytes
is summarized in
Table 581.
Table 581: UnallocatedDomainCapacityBytes
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | UnallocatedDomainCapacityBytes | Retrieved in the Identify Command For an NVM subsystem that does not support multiple domains, the capacity information reported in the Unallocated NVM Capacity (UNVMCAP) field of the Identify Controller data structure (CNS 01h) for the controller processing the command. For an NVM subsystem that supports multiple domains, the Identify command may be used to access the Domain List data structure (CNS 18h) to determine the domains that are accessible by the controller and the Unallocated Domain Capacity for each of those domains. For an NVM subsystem that does not support multiple domains: NVMe Base Specification: Section 5.17.2.1: Figure 275: Bytes 296: 311 - Unallocated NVM Capacity (UNVMCAP) For an NVM subsystem that supports multiple domains: Section 5.17.2.17: Figure 286 - Domain List; select the entry for the Domain beginning at Byte 128 (domain entries are 256 Bytes in length) and retrieving the Unallocated Domain Capacity for the Domain (Bytes 32:47) in the Domain Attributes Entry data structure |
Type | Edm.Int64 | Bytes (16) |
Description | The total capacity in bytes of this NVMe Domain. | Indicates the unallocated NVM capacity in this Domain. |
LongDescription | This property shall contain the total capacity in bytes of this NVMe Domain. | For an NVM subsystem that does not support
multiple domains: This field indicates the unallocated NVM capacity that is
accessible by the controller. For an NVM subsystem that supports multiple domains: This field indicates the total NVM capacity in this Domain. |
Mandatory | For an NVM subsystem that does not support
multiple domains: Unallocated NVM Capacity (UNVMCAP) is mandatory if the
Namespace Management capability is supported or if the Capacity Management
capability is supported. For an NVM subsystem that supports multiple domains: The Domain List and the Unallocated Domain Capacity for the domain is Mandatory for controllers that support Capacity Management in an NVM subsystem that supports multiple domains (refer to section 3.2.4). |
|
Notes |
The mapping for MaximumCapacityPerEnduranceGroupBytes
is
summarized in Table 582.
Table 582: MaximumCapacityPerEnduranceGroupBytes
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | MaximumCapacityPerEnduranceGroupBytes | The list of Endurance Groups may be retrieved in
the Identify Command with the Endurance Group ID CNS value (19h) The Total Endurance Group Capacity (TEGCAP) may be retrieved in the Endurance Group Log Page (Log ID 09h) by supplying a valid Endurance Group ID NVMe Basse Specification 2.0 Section 5.16.1.0: Figure 217 - Total Endurance Group Capacity (TEGCAP): Bytes 160:175) |
Type | Edm.Int64 | Bytes (16) |
Description | The maximum capacity per endurance group in bytes of this NVMe Domain. | |
LongDescription | This property shall contain the maximum capacity per endurance group in bytes of this NVMe Domain. | |
Optional | Optional: An NVM subsystem that does not support multiple Endurance Groups does not require reporting of Endurance Groups | |
Notes |
The mapping for MaxNamespacesSupportedPerController
is
summarized in Table 583.
Table 583: MaxNamespacesSupportedPerController
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | MaxNamespacesSupportedPerController | Retrieved in the Identify Command NVM Spec Property / Field: Identify Controller Data Structure, I/O Command Set Independent / Maximum I/O Domain Namespace Attachments (MAXDNA) NVMe Base Specification 2.0: Section 5.17.2.1: Figure 275: Identify – Identify Controller Data Structure, I/O Command Set Independent: Bytes 559:544 - Maximum I/O Domain Namespace Attachments (MAXDNA) |
Type | Edm.Decimal | Bytes (4) |
Description | The maximum number of namespace attachments of this NVMe Domain. | The maximum of the sum of the number of namespaces attached to each I/O controller in the Domain. |
LongDescription | This property shall contain the maximum number of namespace attachments supported in this NVMe Domain. If there are no limits imposed, this property should not be implemented. | The maximum of the sum of the number of namespaces attached to each I/O controller in the Domain. |
Optional | Optional | |
Notes | If this field is cleared to 0h, then no maximum is specified. The value of this field shall be the same value for all I/O controllers in the Domain. |
The Redfish/Swordfish Drive schema represent the physical attributes of an NVMe drive object.
The following mockup shows a sample representation of the Volume schema used to represent an NVM Namespace.
{
"@odata.type": "#Drive.v1_17_0.Drive",
"Id": "0THGR0KP",
"Name": "Drive 1",
"Status": {
"State": "Enabled",
"Health": "OK"
},
"StatusIndicator": "OK",
"CapacityBytes": 300067890136,
"ConfigurationLock": "Partial",
"TargetConfigurationLockLevel": "Standard",
"NVMe": {
"ConfigurationLockState": {
"FirmwareCommit": "Unlocked",
"Lockdown": "Locked",
"SecureSend": "LockdownUnsupported",
"FirmwareImageDownload": "LockdownUnsupported",
"VPDWrite": "CommandUnsupported"
}
},
"FailurePredicted": false,
"Protocol": "SAS",
"MediaType": "HDD",
"Manufacturer": "HDD-Company",
"SerialNumber": "0THGR0KP",
"PartNumber": "HUC156030CSS200",
"Identifiers": [
{
"DurableNameFormat": "NAA",
"DurableName": "300062B202B21849"
}
],
"RotationSpeedRPM": 15000,
"BlockSizeBytes": 512,
"NegotiatedSpeedGbs": 12,
"Metrics": {
"@odata.id": "/redfish/v1/Chassis/StorageEnclosure1/Drives/0THGR0KP/Metrics"
},
"Links": {
"Volumes": [
{
"@odata.id": "/redfish/v1/Systems/Sys-1/Storage/DirectAttachStorageSystem/Volumes/Volume1"
}
],
"StoragePools": [
{
"@odata.id": "/redfish/v1/Systems/Sys-1/Storage/DirectAttachStorageSystem/StoragePools/ SimpleSystemPool"
}
]
},
"@odata.id": "/redfish/v1/Chassis/StorageEnclosure1/Drives/0THGR0KP",
"@Redfish.Copyright": "Copyright 2015-2024 SNIA. All rights reserved."
}
The mapping for Actions.#Drive.Reset
is summarized in
Table 584.
Table 584: Actions.#Drive.Reset mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Actions.#Drive.Reset | NVM Spec Property / Field: Set
Property Command / NSSR: NVM Subsystem Reset (Controller Property Offset
20h) NSSD: NVM Subsystem Shutdown (Controller Property Offset 64h) NVM Spec: Section:Figure NVMe 2.0: Section 3.1.3: Figure 35: Offset 20h and 64h Further information on NVM Subsystem Reset Control (NSSRC): NVMe 2.0: Section 3.1.3.7: Figure 48 and NVM Subsystem Shutdown Control (NSSD): NVMe 2.0: Section 3.1.3.20: Figure 61 |
Type | Action (Special form of POST) | NVMe Administrative command |
Description | This action resets this drive. | This is used to initiate a controller reset or shutdown depending on the control offset used. |
LongDescription | This action shall reset this drive. | NVM Subsystem Reset Control (NSSRC): A write of
the value 4E564D65h (“NVMe”) to this field initiates an NVM Subsystem Reset.
NVM Subsystem Shutdown Control (NSSC): A write of the value 4E726D6Ch (“Nrml”) to this field initiates a normal NVM Subsystem Shutdown on every controller ( in the domain associated with the controller when CAP.CPS is set to 10b as specified in section 3.6.3.1; or • in the NVM subsystem when CAP.CPS is set to 11b in the NVM subsystem as specified in section 3.6.3.2. A write of the value 41627074h (“Abpt”) to this field initiates an abrupt NVM subsystem shutdown on every controller: • in the domain associated with the controller when CAP.CPS is set to 10b as specified in section 3.6.3.1; in the NVM subsystem when CAP.CPS is set to 11b in the NVM subsystem |
Mandatory | Optional Mandatory for NVMe Drives |
Optional |
Notes | This action has a mandatory property of “ResetType”, which can be any of On/ForceOff/GracefulShutdown/GracefulRestart/Nmi/ForceRestart/ForceOn/PushPowerButton/PowerCycle. | Usage: A normal NVM Subysystem shutdown maps to GracefulShutdown; Subsystem Reset maps to ForceRestart; abrupt Subsystem Shutdown maps to ForceOff. If an implementation that supports the functionality, then they may implement PowerCycle. |
The mapping for Actions.#Drive.SecureErase
is summarized in
Table 585.
Table 585: Actions.#Drive.SecureErase mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Actions.#Drive.SecureErase | NVM Spec Property / Field:
Sanitize Operation NVM Spec: Section:Figure NVM Base Specification 2.0: 5.24 Sanitize Command NVM Base Specification 2.0: Section 8.21 Sanitize Operations NVM Base Specification 2.0: Annex A “Sanitize Operation Considerations (Informative)” |
Type | Action (Special form of POST) | NVMe Administrative command |
Description | This action securely erases the contents of the drive. | The sanitize administrative command operation makes all user data previously written to the device inaccessible. |
LongDescription | This action shall securely erase the drive. | The Sanitize command is used to start a sanitize operation or to recover from a previously failed sanitize operation. All user data in the NVM subsystem is altered such that recovery of the previous user data from any cache or the non-volatile media is not possible. |
Mandatory | Mandatory | Optional |
Notes | The action parameter SanitizationType supported are: BlockErase, CryptographicErase, and Overwrite. When Overwrite is used, OverwritePasses must also be specified. | Maps to sanitize. Implementation can support any
variant. The sanitize operation types that may be supported are Block Erase, Crypto Erase, and Overwrite. All sanitize operations are processed in the background (i.e., completion of the Sanitize command does not indicate completion of the sanitize operation) |
The mapping for Assembly.BinaryDataURI
is summarized in
Table 586.
Table 586: Assembly.BinaryDataURI mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Assembly.BinaryDataURI | N/A |
Type | String | N/A |
Description | The URI at which to access an image of the assembly information. | N/A |
LongDescription | This property shall contain the URI at which to
access an image of the assembly information, using the Redfish protocol and
authentication methods. The Service provides this URI for the download of the
OEM-specific binary image of the assembly data. An HTTP GET from this URI shall
return a response payload of MIME time application/octet-stream . If
the service supports it, an HTTP PUT to this URI shall replace the binary image
of the assembly. |
N/A |
Mandatory | Recommended | |
Notes | N/A for NVMe 2.0 |
The mapping for BlockSizeBytes
is summarized in
Table 587.
Table 587: BlockSizeBytes mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | BlockSizeBytes | NVM Spec Property / Field:
Formatted LBA Size (FLBAS) retrieved in some Identify Namespace data structures
for the specified NSID or the common namespace capabilities for the NVM Command
Set (CNS 00h). Refer to the applicable NVMe I/O Command Set specification for details. For NVMe I/O Command Sets that don’t define this field, it is considered reserved NVM Spec: Section:Figure NVMe NVM Command Set Specification 1.0b: Section 4.1.5.1: FIgure 97: Bytes 26 - Formatted LBA Size (FLBAS) and uses the Number LBA Formats (NBLAF) field defined in Section 4.1.5.1: FIgure 97: Bytes 25 (Number of LBA Formats) NVM Express NVM Zoned Namespace Command Set Specification 1.1b: Section A.5: Figure 53 (Size and Capacity Fields): Bytes 26. |
Type | Int64 | Int-64 |
Description | The size, in bytes, of the smallest addressable unit, or block. | The LBA data size & metadata size combination that the namespace has been formatted with. |
LongDescription | This property shall contain size of the smallest addressable unit of the associated drive or device. | This field indicates the LBA data size & metadata size combination that the namespace has been formatted with. |
Mandatory | Mandatory | Only Mandatory / applicable for the NVM Command Set and I/O Command Sets based on the NVM Command Set. Prohibited for all other I/O Command Sets. |
Notes | Refer to the applicable NVMe I/O Command Set
specification for details. For NVMe I/O Command Sets that don’t define this
field, it is considered reserved. For NVM Express Command Sets that Support Blocks: Bits 6:5 indicate the most significant 2 bits of the Format Index of the supported LBA Format indicated in this data structure that was used to format the namespace. If the NLBAF field is less than or equal to 16, then the host should ignore these bits. Bit 4 indicates whether or not the metadata is transferred at the end of the data LBA, creating an extended data LBA. (note: Bit 4 is not applicable when there is no metadata). Bits 3:0 indicate the least significant 4 bits of the Format Index of the supported LBA Format indicated in this data structure that was used to format the namespace. |
The mapping for CapableSpeedGpbs
is summarized in
Table 588.
Table 588: CapableSpeedGpbs mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | CapableSpeedGpbs | NVM Spec Property / Field: PCI
Express Link Capabilities / PXCAP+Ch NVM Spec: Section:Figure NVMe PCIe Transport Specification 1.0b: 3.8.5.6: Figure 53: Bits 00:03 |
Type | Decimal | |
Description | The speed, in gigabit per second (Gbit/s), at which this drive can communicate to a storage controller in ideal conditions. | indicates the supported Link speed(s) of the associated port. |
LongDescription | This property shall contain fastest capable bus speed, in gigabit per second (Gbit/s), of the associated drive. | This field indicates the supported Link speed(s) of the associated port. |
Mandatory | Mandatory | Mandatory |
Notes | For NVMe-oF this is not specified; use the value for the highest supported native capability. |
The mapping for CapacityBytes
is summarized in
Table 589.
For drives supporting only a single namespace (no or default endurance group / set only):
Table 589: CapacityBytes for single namespace mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | CapacityBytes | NVM Spec Property / Field: –
Identify Command / Identify Namespace Data Structure (CNS 00h), NVM Command Set
/ Namespace Size (NSZE) NVM Spec: Section:Figure NVMe 2.0: 5.17.1: FIgure 273: CNS Value 00h NVM Command Set Specification 1.0b: 4.1.5.1: Figure 97: Bytes 00:07 |
Type | Int64 | |
Description | The size, in bytes, of this drive. | The total size of the NVM allocated its namespace. |
LongDescription | This property shall contain the raw size, in bytes, of the associated drive. | The total size of the NVM allocated to this namespace in logical blocks. The value is in bytes. This field shall be supported if the Namespace Management capability is supported. This field may not correspond to the logical block size multiplied by the Namespace Size field. Due to thin provisioning or other settings (e.g., endurance), this field may be larger or smaller than the Namespace Size reported. |
Mandatory | Mandatory | Optional |
Notes | Reporting capacity in bytes is the Redfish and Swordfish standard mechanism. |
For drives supporting multiple namespaces:
Table 589: CapacityBytes for multiple namespace mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | CapacityBytes | NVM Spec Property / Field:
Endurance Group Information Log (Log ID 09h) / Total Endurance Group Capacity
(TEGCAP) NVM Spec: Section:Figure NVMe 2.0: 5.16.1.10: Figure 217: Bytes 160 : 175 |
Type | Int64 | 16 Bytes |
Description | The number of bytes currently allocated by the storage system in this data store for this data type. | indicates the total NVM capacity in this Endurance Group. |
LongDescription | The value shall be the number of bytes currently allocated by the storage system in this data store for this data type. | This field indicates the total NVM capacity in this Endurance Group. |
Mandatory | Mandatory | No |
Notes | This value is in bytes |
The mapping for ConfigurationLock
is summarized in
Table 590.
Table 590: ConfigurationLock mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | ConfigurationLock | NVM Spec: Property /
Field: NVMe 2.0d: Identify Command / Identify Controller data structure (CNS 01h) - Optional Admin Command Support (OACS) NVM Spec: Section:Figure NVMe 2.0d: Section 5.17.2.1: Figure 275 - 257:256, Bit 10) Get log page specifying the Command and Feature Lockdown (Log Page Identifier 14h) NVM Spec: Section:Figure NVMe 2.0d: Section 5.16.1.20 |
Type | enum (ConfigurationLock) | Log Page |
Description | The ConfigurationLock ,
TargetConfigurationLockLevel , and
ConfigurationLockState properties are jointly used to manage
lockdown of NVMe devices. |
The Lockdown command is used to control the
Command and Feature Lockdown capability which configures the prohibition or
allowance of execution of the specified command or Set Features command
targeting a specific Feature Identifier. After a successful completion of a Lockdown command prohibiting a command or Feature Identifier, all controllers, if applicable, and all management endpoints, if applicable, in the NVM subsystem behave as requested. |
LongDescription | This has three states: Enabled, Disabled, and
Partial. • Enabled : All supported properties, as reported in
the ConfigurationLockState , that are part of the
TargetConfigurationLockLevel are locked. • Disabled : All supported properties, as reported in the
ConfigurationLockState , that are part of the
TargetConfigurationLockLevel are unlocked.• Partial : The properties, as reported in the
ConfigurationLockState , that are part of the
TargetConfigurationLockLevel are not consistently locked or
unlocked. Services shall reject modification requests that contain the value
Partial . |
Command and Feature Lockdown is used to prohibit
the execution of commands submitted to NVM Express controllers and/or Management
Endpoints in an NVM subsystem. Commands and Feature Identifiers are defined with
the following scopes: • Admin Command Set commands defined by the Opcode field; • Set Features command features defined by the Feature Identifier field; • Management Interface Command Set commands defined by the Opcode field; and • PCIe Command Set commands defined by the Opcode field (refer to the NVM Express Management Interface Specification). |
Mandatory | Optional | Mandatory to implement OACS; Lockdown feature is optional. |
Notes | This property is a duplicate of the property in
the Subsystem, and should reflect that state. See section
Mapping NVMe Command and Feature Lockdown to "ConfigurationLocked"
for detailed behavior and mapping description. |
The mapping for Description
is summarized in
Table 591.
Table 591: Description mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Description | N/A |
Type | String | N/A |
Description | The description of this resource. | N/A |
LongDescription | This object represents the description of this resource. The resource values shall comply with the Redfish Specification-described requirements. | N/A |
Mandatory | Mandatory | |
Notes | In Redfish, Description is a read-only field. |
The mapping for EncryptionAbility
is summarized in
Table 592.
Table 592: EncryptionAbility mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | EncryptionAbility | N/A |
Type | Enum (EncryptionAbility) | N/A |
Description | The encryption ability of this drive. | N/A |
LongDescription | This property shall contain the encryption ability for the associated drive. | N/A |
Mandatory | Mandatory | |
Notes | Required when encryption is supported. Available values: None/SelfEncryptingDrive/Other | Maps to vendor capabilities. |
The mapping for EncryptionStatus
is summarized in
Table 593.
Table 593: EncryptionStatus mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | EncryptionStatus | N/A |
Type | Drive.EncryptionStatus | N/A |
Description | The status of the encryption of this drive. | N/A |
LongDescription | This property shall contain the encryption status for the associated drive. | N/A |
Mandatory | Optional Mandatory when EncryptionAbility != None |
|
Notes | Must be implemented and set when Encryption is enabled (EncryptionAbility will indicate encryption capability type.) Possible values: Unlocked/locked/foreign/unencrypted | Set according to vendor specs / mapping. |
The mapping for FailurePredicted
is summarized in
Table 594.
Table 594: FailurePredicted mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | FailurePredicted | NVM Spec: Property / Field: –
Persistent Event Log Log Identifier 0Dh) / NVM Subsystem Hardware Error Event
(Event Type 05h) NVM Spec: Section:Figure NVMe 2.0: 5.16.1.14: Persistent Event Log (Log Identifier 0Dh) / Figure 224: Get Log Page – Persistent Event Log (Log Identifier 0Dh) NVMe 2.0: 5.16.1.14.1.5: FIgure 232: NVM Subsystem Hardware Error Event Format: Bytes 00:01 (NVM Subsystem Hardware Error Event Code) |
Type | Boolean | If any of the NVM Subsystem Hardware Events exist then this is a binary ‘true’ |
Description | An indication of whether this drive currently predicts a failure in the near future. | The Persistent Event Log page contains information about significant events not specific to a particular command. |
LongDescription | This property shall indicate whether this drive currently predicts a manufacturer-defined failure. | The Persistent Event Log page contains information about significant events not specific to a particular command. The information in this log page shall be retained across power cycles and resets. |
Mandatory | Recommended | Optional for Admin and I/O Controllers. Prohibited for Discovery Controllers |
Notes | Implements the results of the SMART log data. | Reference NVMe 2.0: Section 5.16.1.14.1.5 Figure 233 for possible NVM Subsystem Hardware Error Event Codes |
The mapping for Identifiers
is summarized in
Table 595.
Table 595: Identifiers mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Identifiers | N/A |
Type | Collection(Resource.Identifier) | N/A |
Description | The Durable names for the subsystem. | N/A |
LongDescription | This property shall contain a list of all known durable names for the associated subsystem. | N/A |
Mandatory | Mandatory | |
Notes | This is an array of unique identifiers for the NVM Subsystem. | This is an array of unique identifiers for the NVM Subsystem |
The mapping for Identifiers.DurableNameFormat
is summarized in
Table 596.
Table 596: Identifiers.DurableNameFormat mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Identifiers.DurableNameFormat | N/A |
Type | Resource.v1_1_0.DurableNameFormat | N/A |
Description | The format of the Durable names for the subsystem. | N/A |
LongDescription | This specifies the format of the associated NVM Subsystem NVMe Qualified Name of type NQN. Support for this field is mandatory if the controller supports revision 1.2.1 or later as indicated in the Version register (refer to section 3.1.2). | N/A |
Mandatory | Optional | |
Notes | This is an enum with multiple potential values. For this particular usage in Subsystem, there will only be one instance populated, of type NQN. |
The mapping for Identifiers.DurableName
is summarized in
Table 597.
Table 597: Identifiers.DurableName mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Identifiers.DurableName | NVM Spec: Property /
Field: NVMe 2.0: Identify Command / Identify Controller data structure (CNS 01h) / NVM Subsystem NVMe Qualified Name (SUBNQN) NVM Spec: Section:Figure NVMe 2.0: Section 5.17.2.1: Figure 275 - Bytes 768 - 1023) |
Type | Edm.String | UTF-8 null-terminated string. Refer to NVMe 2.0: Section 4.5.1 Unique Identifier |
Description | The format of the Durable names for the subsystem. | NVM Subsystem NVMe Qualified Name (SUBNQN) |
LongDescription | This specifies the NVM Subsystem NVMe Qualified Name as a UTF-8 null-terminated string. Refer to NVMe Base Specification, section 7.9, for the definition of NVMe Qualified Name. Support for this field is mandatory if the controller supports revision 1.2.1 or later as indicated in the Version register (refer to section 3.1.2). | Used to uniquely describe a host or NVM subsystem for the purposes of identification and authentication. |
Mandatory | Optional | Support for this field is mandatory if the controller supports revision 1.2.1 or later as indicated in the Controller Properties Version register (refer to section 3.1.3), Figure 35, Offset 8h. |
Notes | For this particular usage in Subsystem, there will only be one instance populated in the identifiers array. |
The mapping for IndicatorLED
is summarized in
Table 598.
Table 598: IndicatorLED mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | IndicatorLED | N/A |
Type | Boolean | N/A |
Description | An indication of whether this drive currently predicts a failure in the near future. | N/A |
LongDescription | This property shall indicate whether this drive currently predicts a manufacturer-defined failure. | N/A |
Mandatory | Do Not Implement | |
Notes | This property has been deprecated. See guidance / implement the LocationIndicatorActive property instead. |
The mapping for Links.Volume
is summarized in
Table 599.
Table 599: Links.Volume mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Links.Volume | N/A |
Type | Collection(Volume.Volume) | N/A |
Description | An array of links to the volumes that this drive either wholly or only partially contains. | N/A |
LongDescription | This property shall contain an array of links to
resources of type Volume with which this drive is associated. This property
shall include all volume resources of which this drive is a member and all
volumes for which this drive acts as a spare if the hot spare type is
Dedicated . |
N/A |
Mandatory | Mandatory | |
Notes | This array shall contain links to all namespaces associated with this physical drive. |
The mapping for Links.Volumes@odata.count
is summarized in
Table 600.
Table 600: Links.Volumes@odata.count mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Links.Volumes@odata.count | N/A |
Type | (odata property)int64 | N/A |
Description | Count of the number of items in the Links.Volume array. | N/A |
LongDescription | N/A | |
Mandatory | Mandatory | |
Notes | The number of namespaces is available from NVMe on a per controller basis. |
The mapping for Location
is summarized in
Table 601.
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Location | N/A |
Type | Collection(Resource.Location) | N/A |
Description | The location of the drive. | N/A |
LongDescription | This property shall contain location information of the associated drive. | N/A |
Mandatory | Do Not Implement | |
Notes | This property has been deprecated. See guidance / implement the PhysicalLocation property instead. |
The mapping for LocationIndicatorActive
is summarized in
Table 602.
Table 602: LocationIndicatorActive mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | LocationIndicatorActive | N/A |
Type | Boolean | N/A |
Description | An indicator allowing an operator to physically locate this resource. | N/A |
LongDescription | This property shall contain the state of the indicator used to physically identify or locate this resource. A write to this property shall update the value of IndicatorLED in this resource, if supported, to reflect the implementation of the locating function. | N/A |
Mandatory | Recommended | |
Notes | This property replaces the IndicatorLED, which has been deprecated. | Comes from vendor. |
The mapping for Manufacturer
is summarized in
Table 603.
Table 603: Manufacturer mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Manufacturer | NVM Spec Property / Field:
Identify Command / Identify Controller Data structure (CNS 01h) / PCI Vendor ID
(VID) NVM Spec: Section: Figure NVMe 2.0: Section 5.17.2.1: Figure 275: Bytes 00:01 |
Type | String | 16-bit number in little endian format. |
Description | The manufacturer of this drive. | The company vendor identifier |
LongDescription | This property shall contain the name of the organization responsible for producing the storage controller. This organization might be the entity from whom the storage controller is purchased, but this is not necessarily true. | The company vendor identifier that is assigned by the PCI SIG. This is the same value as reported in the ID register |
Mandatory | Recommended | Mandatory |
Notes | End clients expect to see the name of the company (e.g,; Contoso, BestVendor). While the value may be filled from the IdentifyController PCI Vendor ID or SubsystemID field, it would be preferable to have this filled with the actual string value of the company name. |
The mapping for MediaType
is summarized in
Table 604.
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | MediaType | N/A |
Type | enum (MediaType) | N/A |
Description | The type of media contained in this Drive. | N/A |
LongDescription | This property shall contain the type of media contained in the associated drive. | N/A |
Mandatory | Mandatory | |
Notes | Possible values: HDD/SSD/SMR. | NVMe SSD Drives to report SSD. |
The mapping for Metrics
is summarized in
Table 605.
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Metrics | The DriveMetrics object contains multiple properties that map to NVMe properties, but the object itself does not have a direct mapping. |
Type | DriveMetrics.DriveMetrics | |
Description | The link to the metrics associated with this drive. | |
LongDescription | This property shall contain a link to the metrics associated with this drive. | |
Mandatory | Optional | |
Notes |
The mapping for Model
is summarized in Table
606.
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Model | NVM Spec Property / Field:
Identify Command / Identify Controller Data Structure (CNS 01h) / Model Number
(MN) NVM Spec: Section: Figure NVMe 2.0: Section 5.17.2.1: Figure 275: Bytes 24:63 |
Type | String | String |
Description | The model number for the Drive. | Model Number (MN) |
LongDescription | This property shall contain the name by which the manufacturer generally refers to the Drive. | Contains the model number for the NVM subsystem that is assigned by the vendor as an ASCII string. |
Mandatory | Mandatory | |
Notes | Refer to NVMe Base specification 2.0 section 4.5.1 for unique identifier requirements. Refer to NVMe Base specification 2.0 section 1.4.2 for ASCII string requirements. |
The mapping for Multipath
is summarized in
Table 607.
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Multipath | NVM Spec Property / Field:
Identify Command / Idnetify Controller Data Structure (CNS 01h) / Controller
Multi-Path I/O and Namespace Sharing Capabilities NVM Spec: Section:Figure NVMe 2.0: Section 5.17.2.1: Figure 275: Byte 76 |
Type | Boolean | N/A |
Description | An indication of whether the drive is accessible from multiple paths. | This field specifies multi-path I/O and namespace sharing capabilities of the controller and NVM subsystem |
LongDescription | This property shall indicate whether the drive is accessible by an initiator from multiple paths allowing for failover capabilities upon a path failure. | Bits 7:4 are reserved. Bit 3 if set to ‘1’, then the NVM subsystem supports Asymmetric Namespace Access Reporting (refer to section NVMe Base Specification 2.0 section 8.1). If cleared to ‘0’, then the NVM subsystem does not support Asymmetric Namespace Access Reporting. Bit 2 if set to ‘1’, then the controller is associated with an SR-IOV Virtual Function. If cleared to ‘0’, then the controller is associated with a PCI Function or a Fabrics connection. Bit 1 if set to ‘1’, then the NVM subsystem may contain two or more controllers. If cleared to ‘0’, then the NVM subsystem contains only a single controller. As described in refer to section NVMe Base Specification 2.0 section 2.4.1, an NVM subsystem that contains multiple controllers may be used by multiple hosts, or may provide multiple paths for a single host. Bit 0 if set to ‘1’, then the NVM subsystem may contain more than one NVM subsystem port. If cleared to ‘0’, then the NVM subsystem contains only a single NVM subsystem port. |
Mandatory | Recommended Mandatory if drive is dual-ported. |
Admin: Optional I/O: Optional Discovery: Reserved |
Notes |
The mapping for Name
is summarized in Table
608.
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Name | N/A |
Type | String | N/A |
Description | The name of the resource or array member. | N/A |
LongDescription | This object represents the name of this resource or array member. The resource values shall comply with the Redfish Specification-described requirements. This string value shall be of the ‘Name’ reserved word format. | N/A |
Mandatory | Mandatory | |
Notes | In Redfish, Name is a read-only field. |
The mapping for NegotiatedSpeedGbps
is summarized in
Table 609.
Table 609: NegotiatedSpeedGbps mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NegotiatedSpeedGbps | For NVMe: NVM Spec Property /
Field: : For PCIe Transport: Offset PXCAP + Ch: PXLCAP – PCI Express
Link Capabilities / Supported Link Speeds (SLS) NVM Spec: Section:Figure For PCIe Transport: NVM Express PCIe Transport Specification 1.0b: section 3.8.5.6: Figure 53: Bytes 03:00 For NVMe-oF: Not Applicable |
Type | Decimal | |
Description | The speed, in gigabit per second (Gbit/s), at which this drive currently communicates to the storage controller. | This field indicates the supported Link speed(s) of the associated port |
LongDescription | This property shall contain current bus speed, in gigabit per second (Gbit/s), of the associated drive. | Supported Link Speeds |
Mandatory | Mandatory | For NVMe: Required For NVMe-oF: DNI |
Notes | For PCIe, this is in the PCIe link capabilities
For NVMe-oF this is not specified; use the value for the native capability. |
The mapping for NVMe.NVMeConfigurationLockState
is summarized in
Table 610.
Table 610: NVMe.NVMeConfigurationLockState mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMe.NVMeConfigurationLockState | N/A (Sub-properties map to NVMe Command and Feature Lockdown) |
Type | ComplexType | N/A |
Description | Set of configurable features that are able to be locked on an NVMe Subsystem, and their current lock state. | |
LongDescription | ||
Mandatory | Optional | |
Notes | See section
Mapping NVMe Command and Feature Lockdown to "ConfigurationLocked"
for detailed behavior and mapping description. |
The mapping for NVMe.NVMeConfigurationLockState.FirmwareCommit
is summarized in Table 611.
Table 611: NVMe.NVMeConfigurationLockState.FirmwareCommit mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMe.NVMeConfigurationLockState.FirmwareCommit | NVM Spec: Property /
Field: NVMe 2.0d: Identify Command / Identify Controller data structure (CNS 01h) - Optional Admin Command Support (OACS) NVM Spec: Section:Figure NVMe 2.0d: Section 5.17.2.1: Figure 275 - 257:256, Bytes 13:08) Get log page specifying the Command and Feature Lockdown (Log Page Identifier 14h) NVM Spec: Section:Figure NVMe 2.0d: Section 5.16.1.20 (Figure 260) |
Type | Drive.v1_20_0.ConfigLockOptions • Unlocked : Command is supported, able to be locked, and the current
state is unlocked. • Locked : Command is supported, able to be
locked, and the current state is locked. • LockdownUnsupported :
Command is supported, able to be locked, and the current state is locked. • CommandUnsupported : Command is not supported, therefore lockdown
does not apply. |
Log Page |
Description | Ability to perform the NVMe defined FirmwareCommit command. | If the FirmwareCommit feature is able to be locked down, it’s corresponding opcode, 10h, will be reported in the command and feature lockdown log page (bytes 13:08). |
LongDescription | This has three states: Enabled, Disabled, and
Partial. • Enabled : All supported properties, as reported in
the ConfigurationLockState , that are part of the
TargetConfigurationLockLevel are locked. • Disabled : All supported properties, as reported in the
ConfigurationLockState , that are part of the
TargetConfigurationLockLevel are unlocked.• Partial : The properties, as reported in the
ConfigurationLockState , that are part of the
TargetConfigurationLockLevel are not consistently locked or
unlocked. Services shall reject modification requests that contain the value
Partial . |
Command and Feature Lockdown is used to prohibit
the execution of commands submitted to NVM Express controllers and/or Management
Endpoints in an NVM subsystem. Commands and Feature Identifiers are defined with
the following scopes: • Admin Command Set commands defined by the Opcode field; • Set Features command features defined by the Feature Identifier field; • Management Interface Command Set commands defined by the Opcode field; and • PCIe Command Set commands defined by the Opcode field (refer to the NVM Express Management Interface Specification). |
Mandatory | Optional | Mandatory to implement OACS; FirmwareCommit feature lockdown support is optional. If able to be supported (in log page 14), use the lockdown command to lock and unlock correspond to client requests. |
Notes | See section
Mapping NVMe Command and Feature Lockdown to "ConfigurationLocked"
for detailed behavior and mapping description. |
The mapping for
NVMe.NVMeConfigurationLockState.FirmwareImageDownload
is summarized
in Table 612.
Table 612: NVMe.NVMeConfigurationLockState.FirmwareImageDownload mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMe.NVMeConfigurationLockState.FirmwareImageDownload | NVM Spec: Property /
Field: NVMe 2.0d: Lockdown - NVM Spec: Section:Figure NVMe 2.0d: Section 5.19: Figure 292 - 06:00) Get log page specifying and controlling the Command and Feature Lockdown (Log Page Identifier 14h) NVM Spec: Section:Figure NVMe 2.0d: Section 5.16.1.20 (Figure 260), bytes 13:08 Log page indicating which commands and features are supported and currently set. |
Type | Drive.v1_20_0.ConfigLockOptions • Unlocked : Command is supported, able to be locked, and the current
state is unlocked. • Locked : Command is supported, able to be
locked, and the current state is locked. • LockdownUnsupported :
Command is supported, able to be locked, and the current state is locked. • CommandUnsupported : Command is not supported, therefore lockdown
does not apply. |
Log Page |
Description | Ability to perform the NVMe defined FirmwareImageDownload command. | If the FirmwareImageDownload feature is able to be locked down, it’s corresponding opcode, 11h, will be reported in the command and feature lockdown log page (bytes 13:08). |
LongDescription | This has three states: Enabled, Disabled, and
Partial. • Enabled : All supported properties, as reported in
the ConfigurationLockState , that are part of the
TargetConfigurationLockLevel are locked. • Disabled : All supported properties, as reported in the
ConfigurationLockState , that are part of the
TargetConfigurationLockLevel are unlocked.• Partial : The properties, as reported in the
ConfigurationLockState , that are part of the
TargetConfigurationLockLevel are not consistently locked or
unlocked. Services shall reject modification requests that contain the value
Partial . |
Command and Feature Lockdown is used to prohibit
the execution of commands submitted to NVM Express controllers and/or Management
Endpoints in an NVM subsystem. Commands and Feature Identifiers are defined with
the following scopes: • Admin Command Set commands defined by the Opcode field; • Set Features command features defined by the Feature Identifier field; • Management Interface Command Set commands defined by the Opcode field; and • PCIe Command Set commands defined by the Opcode field (refer to the NVM Express Management Interface Specification). |
Mandatory | Optional | Mandatory to implement OACS; FirmwareImageDownload feature lockdown support is optional. If able to be supported (in log page 14), use the lockdown command to lock and unlock correspond to client requests. |
Notes | See section
Mapping NVMe Command and Feature Lockdown to "ConfigurationLocked"
for detailed behavior and mapping description. |
The mapping for NVMe.NVMeConfigurationLockState.Lockdown
is
summarized in Table 613.
Table 613: NVMe.NVMeConfigurationLockState.Lockdown mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMe.NVMeConfigurationLockState.Lockdown | NVM Spec: Property /
Field: NVMe 2.0d: Identify Command / Identify Controller data structure (CNS 01h) - Optional Admin Command Support (OACS) NVM Spec: Section:Figure NVMe 2.0d: Section 5.17.2.1: Figure 275 - 257:256, Bit 10) Get log page specifying the Command and Feature Lockdown (Log Page Identifier 14h) NVM Spec: Section:Figure NVMe 2.0d: Section 5.16.1.20 |
Type | Drive.v1_20_0.ConfigLockOptions • Unlocked : Command is supported, able to be locked, and the current
state is unlocked. • Locked : Command is supported, able to be
locked, and the current state is locked. • LockdownUnsupported :
Command is supported, able to be locked, and the current state is locked. • CommandUnsupported : Command is not supported, therefore lockdown
does not apply. |
Log Page |
Description | Ability to perform the NVMe defined Lockdown command. | The Lockdown command is used to control the
Command and Feature Lockdown capability which configures the prohibition or
allowance of execution of the specified command or Set Features command
targeting a specific Feature Identifier. After a successful completion of a Lockdown command prohibiting a command or Feature Identifier, all controllers, if applicable, and all management endpoints, if applicable, in the NVM subsystem behave as requested. |
LongDescription | This has three states: Enabled, Disabled, and
Partial. • Enabled : All supported properties, as reported in
the ConfigurationLockState , that are part of the
TargetConfigurationLockLevel are locked. • Disabled : All supported properties, as reported in the
ConfigurationLockState , that are part of the
TargetConfigurationLockLevel are unlocked.• Partial : The properties, as reported in the
ConfigurationLockState , that are part of the
TargetConfigurationLockLevel are not consistently locked or
unlocked. Services shall reject modification requests that contain the value
Partial . |
Command and Feature Lockdown is used to prohibit
the execution of commands submitted to NVM Express controllers and/or Management
Endpoints in an NVM subsystem. Commands and Feature Identifiers are defined with
the following scopes: • Admin Command Set commands defined by the Opcode field; • Set Features command features defined by the Feature Identifier field; • Management Interface Command Set commands defined by the Opcode field; and • PCIe Command Set commands defined by the Opcode field (refer to the NVM Express Management Interface Specification). |
Mandatory | Optional | Mandatory to implement OACS; Lockdown feature is optional. If able to be supported (in log page 14), use the lockdown command to lock and unlock correspond to client requests. |
Notes | See section
Mapping NVMe Command and Feature Lockdown to "ConfigurationLocked"
for detailed behavior and mapping description. |
The mapping for NVMe.NVMeConfigurationLockState.SecuritySend
is
summarized in Table 614.
Table 614: NVMe.NVMeConfigurationLockState.SecuritySend mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMe.NVMeConfigurationLockState.SecuritySend | NVM Spec: Property /
Field: NVMe 2.0d: Identify Command / Identify Controller data structure (CNS 01h) - Optional Admin Command Support (OACS) NVM Spec: Section:Figure NVMe 2.0d: Section 5.17.2.1: Figure 275 - 257:256, Bytes 13:08) Get log page specifying the Command and Feature Lockdown (Log Page Identifier 14h) NVM Spec: Section:Figure NVMe 2.0d: Section 5.16.1.20 (Figure 260) |
Type | Drive.v1_20_0.ConfigLockOptions • Unlocked : Command is supported, able to be locked, and the current
state is unlocked. • Locked : Command is supported, able to be
locked, and the current state is locked. • LockdownUnsupported :
Command is supported, able to be locked, and the current state is locked. • CommandUnsupported : Command is not supported, therefore lockdown
does not apply. |
Log Page |
Description | Ability to perform the NVMe defined SecuritySend command. | If the SecuritySend feature is able to be locked down, it’s corresponding opcode, 81h, will be reported in the command and feature lockdown log page (bytes 13:08). |
LongDescription | This has three states: Enabled, Disabled, and
Partial. • Enabled : All supported properties, as reported in
the ConfigurationLockState , that are part of the
TargetConfigurationLockLevel are locked. • Disabled : All supported properties, as reported in the
ConfigurationLockState , that are part of the
TargetConfigurationLockLevel are unlocked.• Partial : The properties, as reported in the
ConfigurationLockState , that are part of the
TargetConfigurationLockLevel are not consistently locked or
unlocked. Services shall reject modification requests that contain the value
Partial . |
Command and Feature Lockdown is used to prohibit
the execution of commands submitted to NVM Express controllers and/or Management
Endpoints in an NVM subsystem. Commands and Feature Identifiers are defined with
the following scopes: • Admin Command Set commands defined by the Opcode field; • Set Features command features defined by the Feature Identifier field; • Management Interface Command Set commands defined by the Opcode field; and • PCIe Command Set commands defined by the Opcode field (refer to the NVM Express Management Interface Specification). |
Mandatory | Optional | Mandatory to implement OACS; SecuritySend feature lockdown support is optional. If able to be supported (in log page 14), use the lockdown command to lock and unlock correspond to client requests. |
Notes | See section
Mapping NVMe Command and Feature Lockdown to "ConfigurationLocked"
for detailed behavior and mapping description. |
The mapping for NVMe.NVMeConfigurationLockState.VPDWrite
is
summarized in Table 615.
Table 615: NVMe.NVMeConfigurationLockState.VPDWrite mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | NVMe.NVMeConfigurationLockState.VPDWrite | NVM Spec: Property /
Field: NVMe 2.0d: Identify Command / Identify Controller data structure (CNS 01h) - Optional Admin Command Support (OACS) NVM Spec: Section:Figure NVMe 2.0d: Section 5.17.2.1: Figure 275 - 257:256) Get log page specifying the Command and Feature Lockdown (Log Page Identifier 14h) NVM Spec: Section:Figure NVMe 2.0d: Section 5.16.1.20 (Figure 260) |
Type | Drive.v1_20_0.ConfigLockOptions • Unlocked : Command is supported, able to be locked, and the current
state is unlocked. • Locked : Command is supported, able to be
locked, and the current state is locked. • LockdownUnsupported :
Command is supported, able to be locked, and the current state is locked. • CommandUnsupported : Command is not supported, therefore lockdown
does not apply. |
Log Page |
Description | Ability to perform the NVMe defined VPDWrite command. | If the VPDWrite feature is able to be locked down, it’s corresponding opcode, 81h, will be reported in the command and feature lockdown log page (bytes 13:08). |
LongDescription | This has three states: Enabled, Disabled, and
Partial. • Enabled : All supported properties, as reported in
the ConfigurationLockState , that are part of the
TargetConfigurationLockLevel are locked. • Disabled : All supported properties, as reported in the
ConfigurationLockState , that are part of the
TargetConfigurationLockLevel are unlocked.• Partial : The properties, as reported in the
ConfigurationLockState , that are part of the
TargetConfigurationLockLevel are not consistently locked or
unlocked. Services shall reject modification requests that contain the value
Partial . |
Command and Feature Lockdown is used to prohibit
the execution of commands submitted to NVM Express controllers and/or Management
Endpoints in an NVM subsystem. Commands and Feature Identifiers are defined with
the following scopes: • Admin Command Set commands defined by the Opcode field; • Set Features command features defined by the Feature Identifier field; • Management Interface Command Set commands defined by the Opcode field; and • PCIe Command Set commands defined by the Opcode field (refer to the NVM Express Management Interface Specification). |
Mandatory | Optional | Mandatory to implement OACS; VPDWrite feature lockdown support is optional. If able to be supported (in log page 14), use the lockdown command to lock and unlock correspond to client requests. |
Notes | See section
Mapping NVMe Command and Feature Lockdown to "ConfigurationLocked"
for detailed behavior and mapping description. |
The mapping for PhysicalLocation.Info
is summarized in
Table 616.
Table 616: PhysicalLocation.Info mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | PhysicalLocation.Info | N/A |
Type | String | N/A |
Mandatory | Do Not Implement | |
Notes | This property has been deprecated. |
The mapping for PhysicalLocation.InfoFormat
is summarized in
Table 617.
Table 617: PhysicalLocation.InfoFormat mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | PhysicalLocation.InfoFormat | N/A |
Type | String | N/A |
Mandatory | Do Not Implement | |
Notes | This property has been deprecated. |
The mapping for PhysicalLocation.PartLocation
is summarized in
Table 618.
Table 618: PhysicalLocation.PartLocation mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | PhysicalLocation.PartLocation | N/A |
Type | Boolean | N/A |
Description | An indication of whether the drive is accessible from multiple paths. | N/A |
LongDescription | This property shall indicate whether the drive is accessible by an initiator from multiple paths allowing for failover capabilities upon a path failure. | N/A |
Mandatory | Recommended Mandatory if drive is dual-ported. |
|
Notes | The drive should support this property to be filled in by a layered process (e.g., BMC). Support for any other properties in PhysicalLocation are at the discretion of the vendor. |
The mapping for PredictedMediaLifetLeftPercent
is summarized in
Table 619.
Table 619: PredictedMediaLifetLeftPercent mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | PredictedMediaLifetLeftPercent | NVM Spec Property / Field: Get
Log Page – SMART, Health Information Log (Log Identifier 02h) / Percentage
Used NVM Spec: Section:Figure NVMe 2.0: Section 5.16.1.3: Figure 207: Byte 05 |
Type | Decimal | Decimal range: 0% - 255% |
Description | The percentage of reads and writes that are predicted to be available for the media. | Contains a vendor specific estimate of the percentage of NVM subsystem life used based on the actual usage and the manufacturer’s prediction of NVM life. |
LongDescription | This property shall contain an indicator of the percentage of life remaining in the drive’s media. | Contains a vendor specific estimate of the percentage of NVM subsystem life used based on the actual usage and the manufacturer’s prediction of NVM life. A value of 100 indicates that the estimated endurance of the NVM in the NVM subsystem has been consumed, but may not indicate an NVM subsystem failure. The value is allowed to exceed 100. Percentages greater than 254 shall be represented as 255. This value shall be updated once per power-on hour (when the controller is not in a sleep state). |
Mandatory | Mandatory | Optional |
Notes | Maps to percentage used in SMART information log | This value shall be scaled to a value between 0% -
100% Calculate resulting value as 100 - value reported (PercentageUsed). Refer to the JEDEC JESD218A standard for SSD device life and endurance measurement techniques. |
The mapping for Protocol
is summarized in
Table 620.
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Protocol | N/A |
Type | Protocol.Protocol | N/A |
Description | The protocol that this drive currently uses to communicate to the storage controller. | N/A |
LongDescription | This property shall contain the protocol that the associated drive currently uses to communicate to the storage controller for this system. | N/A |
Mandatory | Mandatory | |
Notes | Possible values (long list) | NVMe Drives shall report “NVMe”. |
The mapping for Revision
is summarized in
Table 621.
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Revision | NVM Spec Property / Field:
Identify Command / Identify Controller Data Structure (CNS 01h) / Firmware
Revision (FR) NVM Spec: Section:Figure NVMe 2.0: section 5.17.2.1: Figure 275: Bytes 64:71 |
Type | String | String |
Description | The revision of this drive. This is typically the firmware or hardware version of the drive. | Contains the currently active firmware revision, as an ASCII string, for the domain of which this controller is a part. |
LongDescription | This property shall contain the manufacturer-defined revision for the associated drive. | Contains the currently active firmware revision, as an ASCII string, for the domain of which this controller is a part. |
Mandatory | Mandatory | Mandatory |
Notes | Return the currently active firmware revision
information. This is the same revision information that may be retrieved with the Get Log Page command, refer to NVMe Base specification 2.0, section 5.16.1.4 |
The mapping for RotationSpeedRPM
is summarized in
Table 622.
Table 622: RotationSpeedRPM mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | RotationSpeedRPM | NVM Spec Property / Field: Get
Log Page - Rotational Media Information Log (Log ID 16h) / Nominal Rotational
Speed (NRS) NVM Spec: Section:Figure NVMe 2.0: section 5.16.1.22: Figure 263: Bytes 4:5 |
Type | Decimal | Decimal |
Description | An indication of whether the drive is accessible from multiple paths. | Nominal rotational speed in revolutions per minute while the current Power State is 0 |
LongDescription | This property shall indicate whether the drive is accessible by an initiator from multiple paths allowing for failover capabilities upon a path failure. | This log page provides rotational media information (refer to section 8.20) for Endurance Groups that store data on rotational media. The information provided is retained across power cycles and resets. |
Mandatory | Optional If MediaType == SSD, Do Not Implement. |
I/O Controller: Optional Admin Controller: Prohibited Discovery Controller: Prohibited |
Notes | Nominal rotational speed in revolutions per minute
while the current Power State is 0 Supported Values / Descriptions: 0000h Not reported 0001h This value shall not be used. FFFFh Reserved All other values Nominal rotational speed in revolutions per minute while the current Power State is 0 |
The mapping for SKU
is summarized in Table
623.
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | SKU | N/A |
Type | String | N/A |
Description | The SKU for this drive. | N/A |
LongDescription | This property shall contain the stock-keeping unit (SKU) number for this drive. | N/A |
Mandatory | Mandatory | |
Notes | The drive should support this property to be filled in by a layered process (e.g., OEM manufacturing). |
The mapping for SerialNumber
is summarized in
Table 624.
Table 624: SerialNumber mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | SerialNumber | NVM Spec Property / Field:
Identify Command / Identify Controller Data Structure (CNS 01h): Serial Number
(SN) NVM Spec: Section:Figure NVMe 2.0: section 5.17.2.1: Figure 275: Bytes 04:23 |
Type | String | String |
Description | The serial number for this drive. | Contains the serial number for the NVM subsystem that is assigned by the vendor as an ASCII string. |
LongDescription | This property shall contain the manufacturer-allocated number that identifies the drive. | Contains the serial number for the NVM subsystem that is assigned by the vendor as an ASCII string. |
Mandatory | Mandatory | I/O Controller: Mandatory Admin Controller: Mandatory Discovery Controller: Restricted |
Notes | Each identifier is in big endian format. Refer to NVMe 2.0 Base specification section 4.5.1 for unique identifier requirements. Refer to NVMe 2.0 Base specification section 1.4.2 for ASCII string requirements |
The mapping for Status.state
is summarized in
Table 625.
Table 625: Status.State mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Status.State | NVM Spec Property / Field:
Property Get Command / CSTS (Offset 1Ch) – Controller Status: Ready (RDY) -
NVM Spec: Section:Figure NVMe 2.0: section 3.1.3.6: Figure 47: Bit 00 |
Type | Resource.State (enum) | Enum |
Description | The known state of the resource, such as, enabled. | This bit is set to ‘1’ when the controller is ready to process submission queue entries after CC.EN is set to ‘1’. This bit shall be cleared to ‘0’ when CC.EN is cleared to ‘0’ once the controller is ready to be re-enabled |
LongDescription | This property shall indicate whether and why this component is available. Enabled indicates the resource is available. Disabled indicates the resource has been intentionally made unavailable but can be enabled. Offline indicates the resource is unavailable intentionally and requires action to make it available. InTest indicates that the component is undergoing testing. Starting indicates that the resource is becoming available. Absent indicates the resource is physically unavailable. | This bit is set to ‘1’ when the controller is ready to process submission queue entries after CC.EN is set to ‘1’. This bit shall be cleared to ‘0’ when CC.EN is cleared to ‘0’ once the controller is ready to be re-enabled |
Mandatory | Optional Mandatory for NVM Drives |
Mandatory |
Notes | Possible values: Enabled / Disabled / StandbyOffline / StandbySpare / InTest / Starting / Absent / UnavailableOffline / Deferring / Quiesced / Updating / Qualified | The drive should support this property to be filled in by a higher level client (e.g., BMC). The drive can self-set this drive to Enabled / Disabled / InTest /Updating. If any controller in the drive is set to Enabled, set to “Enabled”. If all controllers are set to disabled, set to “Disabled”. If a firmware update is in progress, set to “Updating”. If the drive is running a self-test, set to “InTest”. |
The mapping for Status.Health
is summarized in
Table 626.
Table 626: Status.Health mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | Status.Health | NVM Spec Property / Field: Get
Log Page – SMART / Health Information Log (Log ID 02h) / Critical
Warning NVM Spec: Section:Figure NVMe 2.0: Section 5.16.1.3, Figure 207: Byte 00 |
Type | Resource.Health | Byte field |
Description | The health state of this resource in the absence of its dependent resources. | This field indicates critical warnings for the state of the controller. Each bit corresponds to a critical warning type |
LongDescription | This property shall represent the health state of the resource without considering its dependent resources. The values shall conform to those defined in the Redfish Specification. | This field indicates critical warnings for the state of the controller. Each bit corresponds to a critical warning type; multiple bits may be set to ‘1’. If a bit is cleared to ‘0’, then that critical warning does not apply. Critical warnings may result in an asynchronous event notification to the host. Bits in this field represent the current associated state and are not persistent. |
Mandatory | Optional Mandatory for NVM Drives. |
I/O Controller: Mandatory Admin Controller: Optional Discovery Controller: Prohibited |
Notes | Possible Values: OK / Warning / Critical | Report to same value as set for worst-case
controller Status.Health. Bits / Definitions 7:6 Reserved 5 If set to ‘1’, then the Persistent Memory Region has become read-only or unreliable. 4 If set to ‘1’, then the volatile memory backup device has failed. This field is only valid if the controller has a volatile memory backup solution. 3 If set to ‘1’, then all of the media has been placed in read only mode. The controller shall not set this bit to ‘1’ if the read-only condition on the media is a result of a change in the write protection state of a namespace. 2 If set to ‘1’, then the NVM subsystem reliability has been degraded due to significant media related errors or any internal error that degrades NVM subsystem reliability. 1 If set to ‘1’, then a temperature is: a) greater than or equal to an over temperature threshold; or b) less than or equal to an under temperature threshold. 0 If set to ‘1’, then the available spare capacity has fallen below the threshold. |
The mapping for StatusIndicator
is summarized in
Table 627.
Table 627: StatusIndicator mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | StatusIndicator | N/A |
Type | enum (StatusIndicator) | N/A |
Description | An indication of whether the drive is accessible from multiple paths. | N/A |
LongDescription | This property shall indicate whether the drive is accessible by an initiator from multiple paths allowing for failover capabilities upon a path failure. | N/A |
Mandatory | Mandatory | |
Notes | Multiple values possible. Relevant values for NVMe standalone drives: OK, Fail, PredictiveFailureAnalysis. | The drive should support this property to be filled in by a higher level client (e.g., BMC). The drive can self-set this drive only to OK (or potentially fail, but only if the property has not been set by higher-level software). |
The mapping for TargetConfigurationLockLevel
is summarized in
Table 628.
Table 628: TargetConfigurationLockLevel mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | TargetConfigurationLockLevel | N/A |
Type | enum (TargetConfigurationLockLevel) | N/A |
Description | Indicates the target configuration lock level for
the drive resource. This corresponds to the ConfigurationLock and
ConfigurationLockState for the storage subsystem type. |
N/A |
LongDescription | This property shall indicate the target
configuration lock level for the drive resource. This corresponds to the
ConfigurationLock and ConfigurationLockState for the
storage subsystem type. |
N/A |
Mandatory | Optional; Use when the subsystem contains endurance groups and sets, represented by StoragePool resources. | |
Notes | The Standard enum is defined as the
standard configuration lock level, corresponding to applying firmware, and
updating security keys. See section
Mapping NVMe Command and Feature Lockdown to "ConfigurationLocked"
for detailed behavior and mapping description. |
The mapping for WriteCacheEnabled
is summarized in
Table 629.
Table 629: WriteCacheEnabled mapping
Redfish/Swordfish | NVMe / NVMe-oF | |
---|---|---|
Property | SerialNumber | NVM Spec Property / Field: Get
Features / Volatile Write Cache (Feature Identifier 06h) / Volatile Write Cache
Enable (WCE) NVM Spec: Section: Figure NVMe 2.0: Section 5.27.1.4: Figure 321: Bit 00 |
Type | Boolean | Boolean |
Description | An indication of whether the drive write cache is enabled. | This property shall indicate whether the drive write cache is enabled. |
LongDescription | This property shall indicate whether the drive write cache is enabled. | This property shall indicate whether the drive write cache is enabled. |
Mandatory | Optional Mandatory for NVMe Drives. |
Optional |
Notes | If set to ‘1’, then the volatile write cache is enabled. If cleared to ‘0’, then the volatile write cache is disabled |
There are additional features and functionality that are also desirable to be exposed via the Redfish/Swordfish management ecosystems; however, there is not necessarily a clear mapping for these to a specific portion of the NVMe specification, or the functionality has a large component provided by the NVMe device implementer. This section provides an overview of the required functionality and presentation required to present a common, standardized interface to the Redfish/Swordfish clients.
Firmware update is a required function to present comprehensive management. This is presented in Redfish through the “Update” service. The Update Service provides a standardized interface to all software and firmware update mechanisms throughout the server, storage, and networking environment, and as such, provides an abstracted, standardized interface that largely manages the acquisition from the client of the image files (and subsequent distribution of those to the designated targets), as well as very coarse-grained scheduling.
Note that this mechanism does not include any “active image” management capability (e.g., rollback).
NVMe drives shall support a standard implementation of the Redfish Update service. This is fundamentally a single-step invocation process on the update service that gets the image file from a specified URI using the SimpleUpdate action.
One parameter that shall be specified is the OperationApplyTime; this indicates when to apply the image. If not explicitly specified, the implementation should assume the request is to be applied immediately.
The values of the OperationApplyTime that shall be supported by NVMe drives are:
Example simple update request:
POST /redfish/v1/UpdateService/Actions/UpdateService.SimpleUpdate HTTP/1.1
Content-Type: application/json
Content-Length: <computed-length>
{
"ImageURI": "https://192.168.1.250/images/dev1_update.bin"
"@Redfish.OperationApplyTime": "OnReset"
}
The username
and password
parameters summarized in
Table 630 may be required to access the image.
Implementations should support these. Additionally, the implementation may
support the Targets
parameter to specify the list of devices on
which to apply the image. If Targets
is not specified, the image
will be applied to all applicable devices.
Table 630: Additional parameters
Parameter | Type | Description |
---|---|---|
Username |
String | The user name to access the URI specified by the
ImageURI parameter. |
Password |
String | The password to access the URI specified by the
ImageURI parameter. |
Targets |
Array | An array of strings that are URIs to resources that indicate where to apply the image. |
The SimpleUpdate mechanism is fundamentally a “pull” mechanism (the implementation pulls a file from a target); the UpdateService also supports a “push” mechanism (the client “pushes” the image to the implementation as part of the request payload) that may also be implemented. For more information this mechanism, using the MultipartHttpPushUri property, is documented in the Redfish Specification.
It will be up to the implementation to determine the NVMe specific parameters to use upon receipt of the image from the update service. However, the following general guidelines should be used to ensure behavioral consistency across implementations:
When receiving image:
After loaded to a slot, the implementation will mark the image as active. Based on the “apply time” setting, the implementation setting will activate the image either immediately, or set to activate on (the next) reset.
NVMe specifies an optional channel for security protocol communication with
controller devices, implemented as a pair of send and receive functions:
Security Send (described in section 5.26 of NVMe) and Security Receive (section
5.25). These provide functionality equivalent to the SPC-5
SECURITY PROTOCOL IN
and SECURITY PROTOCOL OUT
commands.
Swordfish maps these Security Send and Security Receive commands to two StorageController actions:
#StorageController.SecuritySend
#StorageController.SecurityReceive
Swordfish restricts the allowable security protocol numbers to
0
, 1
or 2
for the Security Receive
action, and 1
or 2
for the Security Send action.
Where the security protocol data is passed as a base64-encoded string, opaque to the Swordfish/Redfish implementation.
The NVMe specification provides a mechanism to set the address of the management agent for an NVMe Subsystem, which may then be set and retrieved using the Embedded Management Controller Address feature. Other management consumers may need to have a pointer to the Redfish/Swordfish service responsible for managing an NVMe Subsystem accessible through alternate management interfaces, such as via NVMe-MI.
The address of a management agent contained in a fabric interface manager is indicated in the NVMe 2.0d Base Specification Management Address List log page, in a Management Address Descriptor indicating a Management Address Type of 2h.
The Swordfish service shall send the fully qualified system and redfish root URI as a string to the NVM device, https://<Systemname>:<port>/redfish/v1, where <systemname> and <port> correspond to the Swordfish service.
<Systemname> may be filled in with either FQDN or IP address, depending on the implementation. Implementations should note network constraints such as certificates and DNS support or registrations when determining how to populate this field.
Various entities on a network are able to request a management agent to perform management operations on NVM subsystems. A controller in an NVM subsystem uses the Management Addresses capability to indicate the network addresses of those management agents. When an NVM subsystem is provisioned in a storage system, the management addresses are established in the controller.
Management agents are able to be located in various networked entities, including:
Each management address is represented as a uniform resource indicator as defined by RFC 3986.
<a name=“mappingnvmecommandandfeaturelockdownto”configurationlocked”“>
In NVMe 2.0d, the Lockdown was added. This provides a mechanism for granular control over execution of NVMe commands or Feature Identifiers.
There are many potential NVMe commands and Feature Identifiers that may be exposed, including vendor specific commands. In addition, the entire Lockdown command structure is optional within the NVMe command set.
From a Redfish/Swordfish client perspective, this can be confusing, and contains much more information than needed. In addition, locking the entire set of commands could leave some systems in an unusable state. Current client use cases are only interested in locking a subset of the commands. To address this, a set of properties has been added to Redfish and Swordfish to provide reporting and control.
The ConfigurationLock
,
TargetConfigurationLockLevel
, and
ConfigurationLockState
properties are jointly used to manage
lockdown of NVMe devices. These properties are enabled on the NVMe Subsystem,
and may be mirrored to the Drive object (see “Implementing ConfigurationLock in
Storage and Drive Resources” below).
The following example shows the properties in use for the NVMe Subsystem:
"ConfigurationLock": "Partial",
"TargetConfigurationLockLevel": "Baseline",
"NVMeSubsystemProperties": {
"ConfigurationLockState": {
"FirmwareCommit": "Unlocked",
"Lockdown": "Locked",
"SecuritySend": "LockdownUnsupported",
"FirmwareImageDownload": "LockdownUnsupported",
"VPDWrite": "CommandUnsupported"
}
}
The ConfigurationLock
,
TargetConfigurationLockLevel
, and
ConfigurationLockState
properties are jointly used to manage
lockdown of NVMe devices. These properties are enabled on the NVMe Subsystem,
and may be mirrored to the Drive object (see further information below).
The primary command to see the overall state of lockdown is
ConfigurationLock
. This has three states: Enabled, Disabled, and
Partial. These restrict access to in-band configuration requests.
ConfigurationLockState
, that are part of the
TargetConfigurationLockLevel
are locked.ConfigurationLockState
, that are part of the
TargetConfigurationLockLevel
are unlocked.ConfigurationLockState
, that are part of the
TargetConfigurationLockLevel
are not consistently locked or
unlocked. This value is used for status reporting to indicate that the storage
subsystem is partially locked and client action is recommended.If lockdown is not supported on the subsystem, ConfigurationLock shall not be implemented.
If any or all of the properties or commands that are part of the
TargetConfigurationLockLevel
are not supported on the subsystem, the
service shall ignore the unsupported features when determining whether the lock
states match the client requested target state as part of setting
ConfigurationLock
to either Enabled
or
Disabled
.
The Partial
setting indicates that the device is in a state that
does not map to either Enabled
or Disabled
. This may
mean that the device has been configured from another interface, or it may
indicate an error condition. Partial
is to be rejected if specified
in PATCH requests.
On initial configuration, if a user sees a Partial
value in a
response, it’s an indicator they should PATCH the property to Enabled or
Disabled to put the drive in a known state; however this may result in a failure
if the Lockdown itself is one of the locked commands, such as when the Lockdown
NVMe command has been Enabled from the management interface to the drive.
Note: a standard event will be added to the Redfish/Swordfish events in a future release for this scenario.
As previously noted, the specific set of commands desired to be locked may
vary. Groups of these are mapped to the
TargetConfigurationLockLevel
property for convenience.
The TargetConfigurationLockLevel
property is a list of types
that each map to a specific set of NVMe command and feature identifiers.
TheTargetConfigurationLockLevel
of Baseline
maps to
the following commands and feature identifiers:
Other enums with diffent mappings will be added over time.
If the service receives a request to PATCH
TargetConfigurationLockLevel
when ConfigurationLock
is
not Disabled
, the service shall attempt to apply the new settings.
Any appropriate event notifications should be sent, such as ResourceEvents
indicating changes to the TargetConfigurationLockLevel
property.
If lockdown is not supported on the subsystem, TargetConfigurationLockLevel shall not be implemented.
The device may not support all of the requested properties in the selected
level, particularly if the selected level has many properties, which is why the
ConfigurationLockState
property is required to also be implemented.
The ConfigurationLockState
property shows what command and feature
identifiers the device has actually implemented, and their current state. It
contains properties that correspond to NVMe command and feature identifiers.
The current state of each property may be reported as one of the following four states:
Example:
"ConfigurationLockState": {
"FirmwareCommit": "Unlocked",
"Lockdown": "Locked",
"SecuritySend": "LockdownUnsupported",
"FirmwareImageDownload": "LockdownUnsupported",
"VPDWriteMI": "CommandUnsupported"
}
On the NVMe device, lockdown is not guaranteed to be persistent across resets. Therefore, the service shall routinely update its view of the drive property state relevant to the configuration lock. If changes to the configuration are detected and the service has received an explicit request from a client to set the configuration lock to Enabled or Disabled, the service:
Setting ConfigurationLock
to Enabled
may prevent
the Redfish/Swordfish service itself from sending the specific commands. For
example, if the Swordfish service is running in-band, a request for SecuritySend
would fail when the ConfigurationLock is set. In this scenario, the
Redfish/Swordfish service should return the PropertyValueResourceConflict
message (Base message registry) to report that a request cannot be completed due
to the ConfigurationLock being set. This message would be a more “user friendly”
indicator of the failure.
"PropertyValueResourceConflict": {
"Description": "Indicates that the requested write of a property value could not be completed due to the current state or configuration of another resource.",
"LongDescription": "This message shall indicate that the requested write of a property could not be completed because the requested value of the property, which is a value supported by the implementation, cannot be accepted due to conflicts in the state or configuration of another resource.",
"Message": "The property '%1' with the requested value of '%2' could not be written because the value conflicts with the state or configuration of the resource at '%3'.",
"Severity": "Warning",
"MessageSeverity": "Warning",
"VersionAdded": "1.10.0",
"NumberOfArgs": 3,
"ParamTypes": [
"string",
"string",
"string"
],
"ArgDescriptions": [
"The name of the property for which a write was requested.",
"The value of the property that is in conflict.",
"The URI of the resource in conflict."
],
"ArgLongDescriptions": [
"This argument shall contain the name of the property for which a write was requested.",
"This argument shall contain the value of the property that is in conflict.",
"This argument shall contain the URI of the resource that is in conflict with the value of the requested property."
],
"Resolution": "None."
},
The ConfigurationLock property of the Subsystem resource (the
Storage
object) shall be implemented as the primary client point of
reference for the functionality. Clients should refer to Subsystem, as some
types of NVMe devices may not have Drive objects.
For NVMe drive implementations, ConfigurationLock may also be implemented in
the Drive
resource. In this configuration, the property value shall
reflect the value for the NVMe device’s Subsystem. The Drive
resource contains ConfigurationLock
,
TargetConfigurationLevel
, and
NVMe.ConfigurationLockState
properties to mirror those in
Storage
.
There are a number of objects that are required for the proper integration of NVMe support within Redfish and Swordfish, but which are not supported by an entity that can be mapped directly from the various NVM Specifications. Information about these related but un-mapped objects are defined elsewhere in the documentation provided with each Swordfish release.
They are summarized in Table A.1 for ease of use, including:
Object Name
NVMe Device Expected Usage
Table A.1: Related Objects
Object | NVMe Device Expected Usage |
---|---|
NetworkAdapter | NVMe-oF Subysystems, Network-Attach Drives |
Port (on NetworkAdapter) | NVMe-oF Subysystems, Network-Attach Drives |
NetworkDeviceFunction | NVMe-oF Subysystems, Network-Attach Drives |
Fabric | NVMe-oF Subysystems, Network-Attach Drives and arrays |
Connection | NVMe-oF Subysystems, Network-Attach Drives and arrays |
Endpoint | NVMe-oF Subysystems, Network-Attach Drives and arrays |
Endpoint Group | NVMe-oF Subysystems, Network-Attach Drives and arrays |
Switch | NVMe-oF Subysystems, Network-Attach Drives and arrays |
Port (on switch) | NVMe-oF Subysystems, Network-Attach Drives and arrays |
EthernetInterface | NVMe-oF Subysystems, Network-Attach Drives and arrays, EBOF/JBOF |
Manager | EBOF/JBOF, Complex devices, Arrays |
NetworkProtocol | EBOF/JBOF, Complex devices, Arrays |
Required usage of objects and their properties are contained in the relevant
Swordfish profiles.
For example, for Ethernet-Attach drives, the NetworkAdapter, Port, and
NetworkDeviceFunction required properties are specified as part of the
“Ethernet-Attach NVMe Drive” profile.
The Swordfish Scalable Storage Management API User’s Guide contains real-world examples of how clients will interact with an implementation. Table A.2 summarizes the NVMe use cases as of 13 August 2024.
Table A.2: NVMe Use Case Summary
Title | Description |
---|---|
Attach a Namespace | Attach a Namespace |
Deprovision a Namespace | Deprovision a Namespace |
Detach a Namespace | Detach a Namespace |
Provision a Namespace | Provision a Namespace |
Provision an NVM Set with a Namespace | Provision an NVM Set associated with a Namespace |
Report capacity for a Namespace | Report capacity for a Namespace |
Report remaining life for a Namespace | Report remaining life for a Namespace |
The following referenced documents provide important support for the application of this document. For dated references, only the edition cited applies. For undated references, the latest edition of the referenced document (including any amendments) applies.
The informational references are summarized in Table B.1.
Table B.1: Informational References
Tag | Title (Version) | Author | URL |
---|---|---|---|
Profiles | Swordfish Profile Bundle Working Draft | SNIA | https://www.snia.org/forums/smi/swordfish |
UsersGuide | Swordfish Scalable Storage Management API User’s Guide | SNIA | https://www.snia.org/forums/smi/swordfish |