An NVM Subsystem Manager that supports management of namespaces for NVMe I/O controllers that register themselves with the nvm_subsystem_controller_management interface implemented by this class. Notes:
The base specification for NVMe says:
"If the Namespace Management, ANA Reporting, and NVM Sets capabilities are not supported, then NSIDs:
a) for shared namespaces shall be unique within the NVM subsystem; and
b) for private namespaces are not required to be unique within the NVM subsystem"
Regarding b), this implementation has chosen to enforce uniqueness of NSIDs across all namespaces managed by this manager, regardless of whether they are shared or private.
conf_object, log_object, nvme_namespace_management, nvm_subsystem_controller_management
- cell-change
- Notifier that is triggered after the object's cell was changed.
- object-delete
- Notifier that is triggered just before Simics object is deleted.
- queue-change
- Notifier that is triggered after the object's clock was changed. New clock can be obtained with the SIM_object_clock function.
-
info
– print information about the object
-
status
– print status of the object
-
disk_capacity
-
Required attribute;
read/write access; type:
i
Total disk capacity in bytes
-
max_namespaces
-
Optional attribute;
read/write access; type:
i
Maximum number of namespaces supported
-
created_images_namespace
-
Optional attribute;
read/write access; type:
s|n
The Simics namespace for where to create NVMe namespace images. If not set, images are created in the same Simics namespace as the manager object.
nvm-subsystem-manager