
Data Fields | |
| uint16_t | vid |
| pci vendor id | |
| uint16_t | ssvid |
| pci subsystem vendor id | |
| int8_t | sn [SPDK_NVME_CTRLR_SN_LEN] |
| serial number | |
| int8_t | mn [SPDK_NVME_CTRLR_MN_LEN] |
| model number | |
| uint8_t | fr [SPDK_NVME_CTRLR_FR_LEN] |
| firmware revision | |
| uint8_t | rab |
| recommended arbitration burst | |
| uint8_t | ieee [3] |
| ieee oui identifier | |
| struct { | |
| uint8_t multi_port: 1 | |
| uint8_t multi_ctrlr: 1 | |
| uint8_t sr_iov: 1 | |
| uint8_t ana_reporting: 1 | |
| uint8_t reserved: 4 | |
| } | cmic |
| controller multi-path I/O and namespace sharing capabilities | |
| uint8_t | mdts |
| maximum data transfer size | |
| uint16_t | cntlid |
| controller id | |
| union spdk_nvme_vs_register | ver |
| version | |
| uint32_t | rtd3r |
| RTD3 resume latency. | |
| uint32_t | rtd3e |
| RTD3 entry latency. | |
| struct spdk_nvme_cdata_oaes | oaes |
| optional asynchronous events supported | |
| union spdk_nvme_cdata_ctratt | ctratt |
| controller attributes | |
| uint16_t | rrls |
| Read Recovery Levels Supported. | |
| uint8_t | reserved_102 [9] |
| uint8_t | cntrltype |
| Controller Type. | |
| uint8_t | fguid [16] |
| FRU globally unique identifier. | |
| uint16_t | crdt [3] |
| Command Retry Delay Time 1, 2 and 3. | |
| uint8_t | reserved_134 [119] |
| struct { | |
| uint8_t nvmesd: 1 | |
| uint8_t nvmee: 1 | |
| uint8_t nvmsr_rsvd: 6 | |
| } | nvmsr |
| NVM Subsystem Report. | |
| struct { | |
| uint8_t vwcr: 7 | |
| uint8_t vwcrv: 1 | |
| } | vwci |
| VPD Write Cycle Information. | |
| struct { | |
| uint8_t smbusme: 1 | |
| uint8_t pcieme: 1 | |
| uint8_t mec_rsvd: 6 | |
| } | mec |
| Management Endpoint Capabilities. | |
| struct spdk_nvme_cdata_oacs | oacs |
| optional admin command support | |
| uint8_t | acl |
| abort command limit | |
| uint8_t | aerl |
| asynchronous event request limit | |
| struct { | |
| uint8_t slot1_ro: 1 | |
| uint8_t num_slots: 3 | |
| uint8_t activation_without_reset: 1 | |
| uint8_t multiple_update_detection: 1 | |
| uint8_t frmw_rsvd: 2 | |
| } | frmw |
| firmware updates | |
| struct { | |
| uint8_t ns_smart: 1 | |
| uint8_t celp: 1 | |
| uint8_t edlp: 1 | |
| uint8_t telemetry: 1 | |
| uint8_t pelp: 1 | |
| uint8_t lplp: 1 | |
| uint8_t da4_telemetry: 1 | |
| uint8_t lpa_rsvd: 1 | |
| } | lpa |
| log page attributes | |
| uint8_t | elpe |
| error log page entries | |
| uint8_t | npss |
| number of power states supported | |
| struct { | |
| uint8_t spec_format: 1 | |
| uint8_t avscc_rsvd: 7 | |
| } | avscc |
| admin vendor specific command configuration | |
| struct { | |
| uint8_t supported: 1 | |
| controller supports autonomous power state transitions | |
| uint8_t apsta_rsvd: 7 | |
| } | apsta |
| autonomous power state transition attributes | |
| uint16_t | wctemp |
| warning composite temperature threshold | |
| uint16_t | cctemp |
| critical composite temperature threshold | |
| uint16_t | mtfa |
| maximum time for firmware activation | |
| uint32_t | hmpre |
| host memory buffer preferred size | |
| uint32_t | hmmin |
| host memory buffer minimum size | |
| uint64_t | tnvmcap [2] |
| total NVM capacity | |
| uint64_t | unvmcap [2] |
| unallocated NVM capacity | |
| struct { | |
| uint8_t num_rpmb_units: 3 | |
| uint8_t auth_method: 3 | |
| uint8_t reserved1: 2 | |
| uint8_t reserved2 | |
| uint8_t total_size | |
| uint8_t access_size | |
| } | rpmbs |
| replay protected memory block support | |
| uint16_t | edstt |
| extended device self-test time (in minutes) | |
| union { | |
| uint8_t raw | |
| struct { | |
| uint8_t one_only: 1 | |
| Device supports only one device self-test operation at a time. | |
| uint8_t reserved: 7 | |
| } bits | |
| } | dsto |
| device self-test options | |
| uint8_t | fwug |
| Firmware update granularity. | |
| uint16_t | kas |
| Keep Alive Support. | |
| union { | |
| uint16_t raw | |
| struct { | |
| uint16_t supported: 1 | |
| uint16_t reserved: 15 | |
| } bits | |
| } | hctma |
| Host controlled thermal management attributes. | |
| uint16_t | mntmt |
| Minimum thermal management temperature. | |
| uint16_t | mxtmt |
| Maximum thermal management temperature. | |
| union { | |
| uint32_t raw | |
| struct { | |
| uint32_t crypto_erase: 1 | |
| uint32_t block_erase: 1 | |
| uint32_t overwrite: 1 | |
| uint32_t reserved: 29 | |
| } bits | |
| } | sanicap |
| Sanitize capabilities. | |
| uint32_t | hmminds |
| Host memory buffer minimum descriptor entry size. | |
| uint16_t | hmmaxd |
| Host memory maximum descriptor entries. | |
| uint16_t | nsetidmax |
| NVM set identifier maximum. | |
| uint16_t | endgidmax |
| Endurance group identifier maximum. | |
| uint8_t | anatt |
| ANA transition time. | |
| struct { | |
| uint8_t ana_optimized_state: 1 | |
| uint8_t ana_non_optimized_state: 1 | |
| uint8_t ana_inaccessible_state: 1 | |
| uint8_t ana_persistent_loss_state: 1 | |
| uint8_t ana_change_state: 1 | |
| uint8_t reserved: 1 | |
| uint8_t no_change_anagrpid: 1 | |
| uint8_t non_zero_anagrpid: 1 | |
| } | anacap |
| uint32_t | anagrpmax |
| uint32_t | nanagrpid |
| uint32_t | pels |
| uint16_t | domain_identifier |
| uint8_t | reserved3 [10] |
| uint8_t | megcap [SPDK_NVME_CTRLR_MEGCAP_LEN] |
| uint8_t | reserved384 [128] |
| struct { | |
| uint8_t min: 4 | |
| uint8_t max: 4 | |
| } | sqes |
| submission queue entry size | |
| struct { | |
| uint8_t min: 4 | |
| uint8_t max: 4 | |
| } | cqes |
| completion queue entry size | |
| uint16_t | maxcmd |
| uint32_t | nn |
| number of namespaces | |
| struct spdk_nvme_cdata_oncs | oncs |
| optional nvm command support | |
| struct spdk_nvme_cdata_fuses | fuses |
| fused operation support | |
| struct { | |
| uint8_t format_all_ns: 1 | |
| uint8_t erase_all_ns: 1 | |
| uint8_t crypto_erase_supported: 1 | |
| uint8_t reserved: 5 | |
| } | fna |
| format nvm attributes | |
| struct { | |
| uint8_t present: 1 | |
| uint8_t flush_broadcast: 2 | |
| uint8_t reserved: 5 | |
| } | vwc |
| volatile write cache | |
| uint16_t | awun |
| atomic write unit normal | |
| uint16_t | awupf |
| atomic write unit power fail | |
| uint8_t | nvscc |
| NVM vendor specific command configuration. | |
| uint8_t | nwpc |
| Namespace Write Protection Capabilities. | |
| uint16_t | acwu |
| atomic compare & write unit | |
| struct { | |
| uint16_t copy_format0: 1 | |
| uint16_t reserved1: 15 | |
| } | ocfs |
| optional copy formats supported | |
| struct spdk_nvme_cdata_sgls | sgls |
| uint32_t | mnan |
| uint8_t | maxdna [SPDK_NVME_MAXDNA_FIELD_SIZE] |
| uint32_t | maxcna |
| uint8_t | reserved4 [204] |
| uint8_t | subnqn [SPDK_NVME_NQN_FIELD_SIZE] |
| uint8_t | reserved5 [768] |
| struct spdk_nvme_cdata_nvmf_specific | nvmf_specific |
| struct spdk_nvme_power_state | psd [32] |
| uint8_t | vs [1024] |
| uint8_t spdk_nvme_ctrlr_data::fwug |
Firmware update granularity.
4KB units 0x00 = no information provided 0xFF = no restriction
| uint16_t spdk_nvme_ctrlr_data::kas |
Keep Alive Support.
Granularity of keep alive timer in 100 ms units 0 = keep alive not supported