nvme_id_ctrl - Man Page

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 rsvd102[9];
   __u8 cntrltype;
   __u8 fguid[16];
   __le16 crdt1;
   __le16 crdt2;
   __le16 crdt3;
   __u8 rsvd134[119];
   __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 rsvd358[10];
   __u8 megcap[16];
   __u8 tmpthha;
   __u8 rsvd385[127];
   __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 rsvd568[2];
   __u16 cmmrtd;
   __u16 nmmrtd;
   __u8 minmrtg;
   __u8 maxmrtg;
   __u8 trattr;
   __u8 rsvd577;
   __u16 mcudmq;
   __u16 mnsudmq;
   __u16 mcmr;
   __u16 nmcmr;
   __u16 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 rsvd1807[241];
   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.

rsvd102

Reserved

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

rsvd134

Reserved

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_SELF_TEST), 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.

rsvd358

Reserved

megcap

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

tmpthha

Temperature Threshold Hysteresis Attributes

rsvd385

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.

rsvd568

Reserved

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.

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)

rsvd1807

Reserved

psd

Power State Descriptors, see struct nvme_id_psd.

vs

Vendor Specific

Info

struct nvme_id_ctrl November 2024 API Manual