-
Notifications
You must be signed in to change notification settings - Fork 1.3k
nvmf NVMe 2.0 compliance #3748
Copy link
Copy link
Closed
Labels
Description
Sighting report
This ticket tracks the initiative to upgrade the SPDK NVMeoF Target from NVMe 1.4 to NVMe 2.0.
SPDK already implements some of the required features of NVMe 2.0.
To be fully compliant, we need to additionaly implement:
- 1. Asymmetric Namespace Access Change was changed to remove redundant notifications due to detachment of a namespaces (reference NVMe base spec 2.0 section 5.2.1).
- 2. Add mandatory log page of Supported log pages (reference NVMe base spec 2.0 section 15.16.1.1).
- 3. Commands Supported and Effects log page added defining the scope of the commands (reference NVMe base spec 2.0 section 15.16.1.6).
- 4. Add mandatory log page of supported Feature Identifiers Supported and the effects (reference 15.16.1.18).
- 5. Required to set bit 5 in the Log Page Attributes field in the Identify Controller data structure (reference NVMe base spec 2.0 section 5.17.2).
- 6. CAP.TO Controller Ready Modes supported bits are required to be supported. Bit 0 of that field is required to be set to '1'. the other bit setting is optional (reference NVMe base spec 2.0 section 3.1.3.1)
- 7. Required to add the Controller Ready Timeouts register at offset 68h (reference NVMe base spec 2.0 section 3.1.3.21)
- 8. Required to support the Namespace Status filed in the I/O Command Set Independent Identify Namespace data structure (see TP 4105a) (reference NVMe base spec 2.0 section 5.17.2.8).
- 9. The Namespace Attribute Changed notice occurs on changes to the new I/O Command Set Independent Identify Namespace data structure defined by TP 4105a (reference NVMe base spec 2.0 section 5.2.1).
- 10. New CNS 08h defined to access the new I/O Command Set Independent Identify Namespace data structure defined by TP 4105a. This namespace data structure is for fields not associated with an I/O command set. Some fields are replicated from the Identify Namespace data structure defined by the NVM Command Set Specification 1.0 (reference NVMe base spec 2.0 section 15.17.1).
- 11. The Changed Namespace List log page is updated if the new I/O Command Set Independent Identify Namespace data structure changes (reference NVMe base spec 2.0 section 5.16.1.5).
- 12. Mandatory support for CNS 07h Active Namespace ID list associated with the specified I/O Command Set.
The full list of changes is available here: https://nvmexpress.org/wp-content/uploads/NVM-Express-Revision-2.0-Changes.pdf
Expected Behavior
For SPDK NVMeoF Target application, all admin and IO commands should be compliant with at least NVMe 2.0.
Current Behavior
Implementation of various admin and IO commands is not consistent with NVMe 2.0 or higher revisions.
Possible Solution
Implementing the items listed above should be enough to provide compliance with NVMe 2.0.
Steps to Reproduce
Context (Environment including OS version, SPDK version, etc.)
Verified on SPDK v25.09
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
Type
Projects
Status
Done 24.05