---
name: "nvme_id_ctrl-libnvme3"
section: "2"
platform: "linux"
package: "nvme-cli"
version: "3.2-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/nvme_id_ctrl-libnvme3"
---

# nvme\_id\_ctrl-libnvme3(2)

Identify Controller data structure

## NAME

struct nvme\_id\_ctrl - Identify Controller data structure

## SYNOPSIS

struct nvme\_id\_ctrl {\
     **\_\_le16 vid;**\
     **\_\_le16 ssvid;**\
     **char sn\[20\];**\
     **char mn\[40\];**\
     **char fr\[8\];**\
     **\_\_u8 rab;**\
     **\_\_u8 ieee\[3\];**\
     **\_\_u8 cmic;**\
     **\_\_u8 mdts;**\
     **\_\_le16 cntlid;**\
     **\_\_le32 ver;**\
     **\_\_le32 rtd3r;**\
     **\_\_le32 rtd3e;**\
     **\_\_le32 oaes;**\
     **\_\_le32 ctratt;**\
     **\_\_le16 rrls;**\
     **\_\_u8 bpcap;**\
     **\_\_u8 chsi;**\
     **\_\_le32 nssl;**\
     **\_\_u8 rsvd108\[2\];**\
     **\_\_u8 plsi;**\
     **\_\_u8 cntrltype;**\
     **\_\_u8 fguid\[16\];**\
     **\_\_le16 crdt1;**\
     **\_\_le16 crdt2;**\
     **\_\_le16 crdt3;**\
     **\_\_u8 crcap;**\
     **\_\_u8 ciu;**\
     **\_\_u8 cirn\[8\];**\
     **\_\_u8 rsvd144\[96\];**\
     **\_\_u8 rsvd240\[13\];**\
     **\_\_u8 nvmsr;**\
     **\_\_u8 vwci;**\
     **\_\_u8 mec;**\
     **\_\_le16 oacs;**\
     **\_\_u8 acl;**\
     **\_\_u8 aerl;**\
     **\_\_u8 frmw;**\
     **\_\_u8 lpa;**\
     **\_\_u8 elpe;**\
     **\_\_u8 npss;**\
     **\_\_u8 avscc;**\
     **\_\_u8 apsta;**\
     **\_\_le16 wctemp;**\
     **\_\_le16 cctemp;**\
     **\_\_le16 mtfa;**\
     **\_\_le32 hmpre;**\
     **\_\_le32 hmmin;**\
     **\_\_u8 tnvmcap\[16\];**\
     **\_\_u8 unvmcap\[16\];**\
     **\_\_le32 rpmbs;**\
     **\_\_le16 edstt;**\
     **\_\_u8 dsto;**\
     **\_\_u8 fwug;**\
     **\_\_le16 kas;**\
     **\_\_le16 hctma;**\
     **\_\_le16 mntmt;**\
     **\_\_le16 mxtmt;**\
     **\_\_le32 sanicap;**\
     **\_\_le32 hmminds;**\
     **\_\_le16 hmmaxd;**\
     **\_\_le16 nsetidmax;**\
     **\_\_le16 endgidmax;**\
     **\_\_u8 anatt;**\
     **\_\_u8 anacap;**\
     **\_\_le32 anagrpmax;**\
     **\_\_le32 nanagrpid;**\
     **\_\_le32 pels;**\
     **\_\_le16 domainid;**\
     **\_\_u8 kpioc;**\
     **\_\_u8 rsvd359;**\
     **\_\_le16 mptfawr;**\
     **\_\_u8 rmdca;**\
     **\_\_u8 rsvd363\[5\];**\
     **\_\_u8 megcap\[16\];**\
     **\_\_u8 tmpthha;**\
     **\_\_u8 mupa;**\
     **\_\_le16 cqt;**\
     **\_\_le16 cdpa;**\
     **\_\_le16 mup;**\
     **\_\_le16 ipmsr;**\
     **\_\_le16 msmt;**\
     **\_\_le16 mnens;**\
     **\_\_le16 mnecpens;**\
     **\_\_le32 mensnn;**\
     **\_\_u8 ensa;**\
     **\_\_u8 endsfs;**\
     **\_\_le32 vsen1 ;**\
     **\_\_le32 vsen2 ;**\
     **\_\_le32 vsen3 ;**\
     **\_\_le32 vsen4 ;**\
     **\_\_le16 msvmt;**\
     **\_\_u8 rsvd424\[88\];**\
     **\_\_u8 sqes;**\
     **\_\_u8 cqes;**\
     **\_\_le16 maxcmd;**\
     **\_\_le32 nn;**\
     **\_\_le16 oncs;**\
     **\_\_le16 fuses;**\
     **\_\_u8 fna;**\
     **\_\_u8 vwc;**\
     **\_\_le16 awun;**\
     **\_\_le16 awupf;**\
     **\_\_u8 icsvscc;**\
     **\_\_u8 nwpc;**\
     **\_\_le16 acwu;**\
     **\_\_le16 ocfs;**\
     **\_\_le32 sgls;**\
     **\_\_le32 mnan;**\
     **\_\_u8 maxdna\[16\];**\
     **\_\_le32 maxcna;**\
     **\_\_le32 oaqd;**\
     **\_\_u8 rhiri;**\
     **\_\_u8 hirt;**\
     **\_\_le16 cmmrtd;**\
     **\_\_le16 nmmrtd;**\
     **\_\_u8 minmrtg;**\
     **\_\_u8 maxmrtg;**\
     **\_\_u8 trattr;**\
     **\_\_u8 rsvd577;**\
     **\_\_le16 mcudmq;**\
     **\_\_le16 mnsudmq;**\
     **\_\_le16 mcmr;**\
     **\_\_le16 nmcmr;**\
     **\_\_le16 mcdqpc;**\
     **\_\_u8 rsvd588\[180\];**\
     **char subnqn\[NVME\_NQN\_LENGTH\];**\
     **\_\_u8 rsvd1024\[768\];**\
     **\_\_le32 ioccsz;**\
     **\_\_le32 iorcsz;**\
     **\_\_le16 icdoff;**\
     **\_\_u8 fcatt;**\
     **\_\_u8 msdbd;**\
     **\_\_le16 ofcs;**\
     **\_\_u8 dctype;**\
     **\_\_u8 ccrl;**\
     **\_\_u8 rsvd1808\[240\];**\
     **struct nvme\_id\_psd      psd\[32\];**\
     **\_\_u8 vs\[1024\];**\
 };\

## Members

- vid

  PCI Vendor ID, the company vendor identifier that is assigned by the PCI SIG.

- ssvid

  PCI Subsystem Vendor ID, the company vendor identifier that is assigned by the PCI SIG for the subsystem.

- sn

  Serial Number in ASCII

- mn

  Model Number in ASCII

- fr

  Firmware Revision in ASCII, the currently active firmware revision for the NVM subsystem

- rab

  Recommended Arbitration Burst, reported as a power of two

- ieee

  IEEE assigned Organization Unique Identifier

- cmic

  Controller Multipath IO and Namespace Sharing  Capabilities of the controller and NVM subsystem. See *enum nvme\_id\_ctrl\_cmic*.

- mdts

  Max Data Transfer Size is the largest data transfer size. The host should not submit a command that exceeds this maximum data transfer size. The value is in units of the minimum memory page size (CAP.MPSMIN) and is reported as a power of two

- cntlid

  Controller ID, the NVM subsystem unique controller identifier associated with the controller.

- ver

  Version, this field contains the value reported in the Version register, or property (see *enum nvme\_registers* NVME\_REG\_VS).

- rtd3r

  RTD3 Resume Latency, the expected latency in microseconds to resume from Runtime D3

- rtd3e

  RTD3 Exit Latency, the typical latency in microseconds to enter Runtime D3.

- oaes

  Optional Async Events Supported, see *enum* nvme\_id\_ctrl\_oaes.

- ctratt

  Controller Attributes, see *enum* nvme\_id\_ctrl\_ctratt.

- rrls

  Read Recovery Levels. If a bit is set, then the corresponding Read Recovery Level is supported. If a bit is cleared, then the corresponding Read Recovery Level is not supported.

- bpcap

  Boot Partition Capabilities, see *enum nvme\_id\_ctrl\_bpcap*.

- chsi

  CXL HDM Support Information, see *enum nvme\_id\_ctrl\_chsi*.

- nssl

  NVM Subsystem Shutdown Latency (NSSL). This field indicates the typical latency in microseconds for an NVM Subsystem Shutdown to complete.

- rsvd108

  Reserved

- plsi

  Power Loss Signaling Information (PLSI), see *enum nvme\_id\_ctrl\_plsi*

- cntrltype

  Controller Type, see *enum nvme\_id\_ctrl\_cntrltype*

- fguid

  FRU GUID, a 128-bit value that is globally unique for a given Field Replaceable Unit

- crdt1

  Controller Retry Delay time in 100 millisecond units if CQE CRD field is 1

- crdt2

  Controller Retry Delay time in 100 millisecond units if CQE CRD field is 2

- crdt3

  Controller Retry Delay time in 100 millisecond units if CQE CRD field is 3

- crcap

  Controller Reachability Capabilities (CRCAP), see *enum nvme\_id\_ctrl\_crcap*

- ciu

  Controller Instance Uniquifier (CIU)

- cirn

  Controller Instance Random Number (CIRN)

- rsvd144

  Reserved

- rsvd240

  Reserved for the NVMe Management Interface specification

- nvmsr

  NVM Subsystem Report, see *enum nvme\_id\_ctrl\_nvmsr*

- vwci

  VPD Write Cycle Information, see *enum nvme\_id\_ctrl\_vwci*

- mec

  Management Endpoint Capabilities, see *enum nvme\_id\_ctrl\_mec*

- oacs

  Optional Admin Command Support,the optional Admin commands and features supported by the controller, see *enum nvme\_id\_ctrl\_oacs*.

- acl

  Abort Command Limit, the maximum number of concurrently executing Abort commands supported by the controller. This is a 0's based value.

- aerl

  Async Event Request Limit, the maximum number of concurrently outstanding Asynchronous Event Request commands supported by the controller This is a 0's based value.

- frmw

  Firmware Updates indicates capabilities regarding firmware updates. See *enum nvme\_id\_ctrl\_frmw*.

- lpa

  Log Page Attributes, see *enum nvme\_id\_ctrl\_lpa*.

- elpe

  Error Log Page Entries, the maximum number of Error Information log entries that are stored by the controller. This field is a 0's based value.

- npss

  Number of Power States Supported, the number of NVM Express power states supported by the controller, indicating the number of valid entries in *struct nvme\_id\_ctrl*.psd. This is a 0's based value.

- avscc

  Admin Vendor Specific Command Configuration, see *enum nvme\_id\_ctrl\_avscc*.

- apsta

  Autonomous Power State Transition Attributes, see *enum nvme\_id\_ctrl\_apsta*.

- wctemp

  Warning Composite Temperature Threshold indicates the minimum Composite Temperature field value (see *struct* *nvme\_smart\_log*.critical\_comp\_time) that indicates an overheating condition during which controller operation continues.

- cctemp

  Critical Composite Temperature Threshold, field indicates the minimum Composite Temperature field value (see *struct* *nvme\_smart\_log*.critical\_comp\_time) that indicates a critical overheating condition.

- mtfa

  Maximum Time for Firmware Activation indicates the maximum time the controller temporarily stops processing commands to activate the firmware image, specified in 100 millisecond units. This field is always valid if the controller supports firmware activation without a reset.

- hmpre

  Host Memory Buffer Preferred Size indicates the preferred size that the host is requested to allocate for the Host Memory Buffer feature in 4 KiB units.

- hmmin

  Host Memory Buffer Minimum Size indicates the minimum size that the host is requested to allocate for the Host Memory Buffer feature in 4 KiB units.

- tnvmcap

  Total NVM Capacity, the total NVM capacity in the NVM subsystem. The value is in bytes.

- unvmcap

  Unallocated NVM Capacity, the unallocated NVM capacity in the NVM subsystem. The value is in bytes.

- rpmbs

  Replay Protected Memory Block Support, see *enum nvme\_id\_ctrl\_rpmbs*.

- edstt

  Extended Device Self-test Time, if Device Self-test command is supported (see *struct nvme\_id\_ctrl*.oacs, NVME\_CTRL\_OACS\_DSTS), then this field indicates the nominal amount of time in one minute units that the controller takes to complete an extended device self-test operation when in power state 0.

- dsto

  Device Self-test Options, see *enum nvme\_id\_ctrl\_dsto*.

- fwug

  Firmware Update Granularity indicates the granularity and alignment requirement of the firmware image being updated by the Firmware Image Download command. The value is reported in 4 KiB units. A value of 0h indicates no information on granularity is provided. A value of FFh indicates no restriction

- kas

  Keep Alive Support indicates the granularity of the Keep Alive Timer in 100 millisecond units.

- hctma

  Host Controlled Thermal Management Attributes, see *enum nvme\_id\_ctrl\_hctm*.

- mntmt

  Minimum Thermal Management Temperature indicates the minimum temperature, in degrees Kelvin, that the host may request in the Thermal Management Temperature 1 field and Thermal Management Temperature 2 field of a Set Features command with the Feature Identifier field set to NVME\_FEAT\_FID\_HCTM.

- mxtmt

  Maximum Thermal Management Temperature indicates the maximum temperature, in degrees Kelvin, that the host may request in the Thermal Management Temperature 1 field and Thermal Management Temperature 2 field of the Set Features command with the Feature Identifier set to NVME\_FEAT\_FID\_HCTM.

- sanicap

  Sanitize Capabilities, see *enum nvme\_id\_ctrl\_sanicap*

- hmminds

  Host Memory Buffer Minimum Descriptor Entry Size indicates the minimum usable size of a Host Memory Buffer Descriptor Entry in 4 KiB units.

- hmmaxd

  Host Memory Maximum Descriptors Entries indicates the number of usable Host Memory Buffer Descriptor Entries.

- nsetidmax

  NVM Set Identifier Maximum, defines the maximum value of a valid NVM Set Identifier for any controller in the NVM subsystem.

- endgidmax

  Endurance Group Identifier Maximum, defines the maximum value of a valid Endurance Group Identifier for any controller in the NVM subsystem.

- anatt

  ANA Transition Time indicates the maximum amount of time, in seconds, for a transition between ANA states or the maximum amount of time, in seconds, that the controller reports the ANA change state.

- anacap

  Asymmetric Namespace Access Capabilities, see *enum nvme\_id\_ctrl\_anacap*.

- anagrpmax

  ANA Group Identifier Maximum indicates the maximum value of a valid ANA Group Identifier for any controller in the NVM subsystem.

- nanagrpid

  Number of ANA Group Identifiers indicates the number of ANA groups supported by this controller.

- pels

  Persistent Event Log Size indicates the maximum reportable size for the Persistent Event Log.

- domainid

  Domain Identifier indicates the identifier of the domain that contains this controller.

- kpioc

  Key Per I/O Capabilities (KPIOC), see *enum nvme\_id\_ctrl\_kpioc*

- rsvd359

  Reserved

- mptfawr

  Maximum Processing Time for Firmware Activation Without Reset (MPTFAWR). This field shall indicate the estimated maximum time in 100 ms units required by the controller to process a Firmware Commit command that specifies a value of 011b in the Commit Action field

- rmdca

  Restore Manufacturing Configuration Attributes, see *enum* *nvme\_id\_ctrl\_rmdca*

- rsvd363

  Reserved

- megcap

  Max Endurance Group Capacity indicates the maximum capacity of a single Endurance Group.

- tmpthha

  Temperature Threshold Hysteresis Attributes

- mupa

  Maximum Unlimited Power Attributes

- cqt

  Command Quiesce Time (CQT). This field indicates the expected worst-case time in 1 millisecond units for the controller to quiesce all outstanding commands after a Keep Alive Timeout or other communication loss.

- cdpa

  Configurable Device Personality Attributes: This field indicates the Configurable Device Personality feature attributes the controller supports.

- mup

  Maximum Unlimited Power: This field specifies the maximum power for power state 0 that results from removal of a power limit (i.e., the maximum power is not limited).

- ipmsr

  Interval Power Measurement Sample Rate: This field indicates the maximum interval between power measurement samples used to collect interval power measurements.

- msmt

  Maximum Stop Measurement Time: This field indicates the maximum stop measurement time allowed to be specified in the SMT field for a Set Features command specifying the Power Measurement feature.

- mnens

  Maximum Number of Exported NVM Subsystems

- mnecpens

  Maximum Number of Exported Controllers per Exported NVM Subsystem

- mensnn

  Maximum Exported NVM Subsystem Number of Namespaces

- ensa

  Exported NVM Subsystem Attributes

- endsfs

  Exported Namespace Data Structure Formats Supported

- vsen1

  Voltage Sensor 1: indicates the characteristics of Voltage Sensor 1, see *struct nvme\_id\_ctrl\_vsds*. A value of 0h indicates Voltage Sensor 1 is not supported.

- vsen2

  Voltage Sensor 2, see *struct nvme\_id\_ctrl\_vsds*. A value of 0h indicates Voltage Sensor 2 is not supported.

- vsen3

  Voltage Sensor 3, see *struct nvme\_id\_ctrl\_vsds*. A value of 0h indicates Voltage Sensor 3 is not supported.

- vsen4

  Voltage Sensor 4, see *struct nvme\_id\_ctrl\_vsds*. A value of 0h indicates Voltage Sensor 4 is not supported.

- msvmt

  Maximum Stop Voltage Measurement Time: This field indicates the maximum stop measurement time in minutes allowed to be specified in the SVMT field for a Set Features command specifying the Voltage Measurement feature. A value of 0h indicates that a maximum stop measurement time is not reported.

- rsvd424

  Reserved

- sqes

  Submission Queue Entry Size, see *enum nvme\_id\_ctrl\_sqes*.

- cqes

  Completion Queue Entry Size, see *enum nvme\_id\_ctrl\_cqes*.

- maxcmd

  Maximum Outstanding Commands indicates the maximum number of commands that the controller processes at one time for a particular queue.

- nn

  Number of Namespaces indicates the maximum value of a valid nsid for the NVM subsystem. If the MNAN (*struct nvme\_id\_ctrl*.mnan field is cleared to 0h, then this field also indicates the maximum number of namespaces supported by the NVM subsystem.

- oncs

  Optional NVM Command Support, see *enum nvme\_id\_ctrl\_oncs*.

- fuses

  Fused Operation Support, see *enum nvme\_id\_ctrl\_fuses*.

- fna

  Format NVM Attributes, see *enum nvme\_id\_ctrl\_fna*.

- vwc

  Volatile Write Cache, see *enum nvme\_id\_ctrl\_vwc*.

- awun

  Atomic Write Unit Normal indicates the size of the write operation guaranteed to be written atomically to the NVM across all namespaces with any supported namespace format during normal operation. This field is specified in logical blocks and is a 0's based value.

- awupf

  Atomic Write Unit Power Fail indicates the size of the write operation guaranteed to be written atomically to the NVM across all namespaces with any supported namespace format during a power fail or error condition. This field is specified in logical blocks and is a 0’s based value.

- icsvscc

  NVM Vendor Specific Command Configuration, see *enum nvme\_id\_ctrl\_nvscc*.

- nwpc

  Namespace Write Protection Capabilities, see *enum nvme\_id\_ctrl\_nwpc*.

- acwu

  Atomic Compare & Write Unit indicates the size of the write operation guaranteed to be written atomically to the NVM across all namespaces with any supported namespace format for a Compare and Write fused operation. This field is specified in logical blocks and is a 0’s based value.

- ocfs

  Optional Copy Formats Supported, each bit n means controller supports Copy Format n.

- sgls

  SGL Support, see *enum nvme\_id\_ctrl\_sgls*

- mnan

  Maximum Number of Allowed Namespaces indicates the maximum number of namespaces supported by the NVM subsystem.

- maxdna

  Maximum Domain Namespace Attachments indicates the maximum of the sum of the number of namespaces attached to each I/O controller in the Domain.

- maxcna

  Maximum I/O Controller Namespace Attachments indicates the maximum number of namespaces that are allowed to be attached to this I/O controller.

- oaqd

  Optimal Aggregated Queue Depth indicates the recommended maximum total number of outstanding I/O commands across all I/O queues on the controller for optimal operation.

- rhiri

  Recommended Host-Initiated Refresh Interval (RHIRI). If the Host-Initiated Refresh capability is supported, then this field indicates the recommended time interval in days from last power down to the time at which the host should initiate the Host-Initiated Refresh operation. If this field is cleared to 0h, then this field is not reported.

- hirt

  Host-Initiated Refresh Time (HIRT). If the Host-Initiated Refresh capability is supported, then this field indicates the nominal amount of time in minutes that the controller takes to complete the Host-Initiated Refresh operation. If this field is cleared to 0h, then this field is not reported.

- cmmrtd

  Controller Maximum Memory Range Tracking Descriptors indicates the maximum number of Memory Range Tracking Descriptors the controller supports.

- nmmrtd

  NVM Subsystem Maximum Memory Range Tracking Descriptors indicates the maximum number of Memory Range Tracking Descriptors the NVM subsystem supports.

- minmrtg

  Minimum Memory Range Tracking Granularity indicates the minimum value supported in the Requested Memory Range Tracking Granularity (RMRTG) field of the Track Memory Ranges data structure.

- maxmrtg

  Maximum Memory Range Tracking Granularity indicates the maximum value supported in the Requested Memory Range Tracking Granularity (RMRTG) field of the Track Memory Ranges data structure.

- trattr

  Tracking Attributes indicates supported attributes for the Track Send command and Track Receive command. see *enum nvme\_id\_ctrl\_trattr*

- rsvd577

  Reserved

- mcudmq

  Maximum Controller User Data Migration Queues indicates the maximum number of User Data Migration Queues supported by the controller.

- mnsudmq

  Maximum NVM Subsystem User Data Migration Queues indicates the maximum number of User Data Migration Queues supported by the NVM subsystem.

- mcmr

  Maximum CDQ Memory Ranges indicates the maximum number of memory ranges allowed to be specified by the PRP1 field of a Controller Data Queue command.

- nmcmr

  NVM Subsystem Maximum CDQ Memory Ranges indicates the maximum number of memory ranges for all Controller Data Queues in the NVM subsystem.

- mcdqpc

  Maximum Controller Data Queue PRP Count indicates the maximum number of PRPs allowed to be specified in the PRP list in the Controller Data Queue command.

- rsvd588

  Reserved

- subnqn

  NVM Subsystem NVMe Qualified Name, UTF-8 null terminated string

- rsvd1024

  Reserved

- ioccsz

  I/O Queue Command Capsule Supported Size, defines the maximum I/O command capsule size in 16 byte units.

- iorcsz

  I/O Queue Response Capsule Supported Size, defines the maximum I/O response capsule size in 16 byte units.

- icdoff

  In Capsule Data Offset, defines the offset where data starts within a capsule. This value is applicable to I/O Queues only.

- fcatt

  Fabrics Controller Attributes, see *enum nvme\_id\_ctrl\_fcatt*.

- msdbd

  Maximum SGL Data Block Descriptors indicates the maximum number of SGL Data Block or Keyed SGL Data Block descriptors that a host is allowed to place in a capsule. A value of 0h indicates no limit.

- ofcs

  Optional Fabric Commands Support, see *enum nvme\_id\_ctrl\_ofcs*.

- dctype

  Discovery Controller Type (DCTYPE). This field indicates what type of Discovery controller the controller is (see enum nvme\_id\_ctrl\_dctype)

- ccrl

  Cross-Controller Reset Limit: This field indicates the limit on the number of simultaneous in-progress Cross-Controller Reset operations this controller is able to cause to be initiated that are supported.

- rsvd1808

  Reserved

- psd

  Power State Descriptors, see *struct nvme\_id\_psd*.

- vs

  Vendor Specific
