1libnvme(9) API Manual libnvme(9)
2
3
4
6 struct nvme_id_ctrl - Identify Controller data structure
7
9 struct nvme_id_ctrl {
10 __le16 vid;
11 __le16 ssvid;
12 char sn[20];
13 char mn[40];
14 char fr[8];
15 __u8 rab;
16 __u8 ieee[3];
17 __u8 cmic;
18 __u8 mdts;
19 __le16 cntlid;
20 __le32 ver;
21 __le32 rtd3r;
22 __le32 rtd3e;
23 __le32 oaes;
24 __le32 ctratt;
25 __le16 rrls;
26 __u8 rsvd102[9];
27 __u8 cntrltype;
28 __u8 fguid[16];
29 __le16 crdt1;
30 __le16 crdt2;
31 __le16 crdt3;
32 __u8 rsvd134[119];
33 __u8 nvmsr;
34 __u8 vwci;
35 __u8 mec;
36 __le16 oacs;
37 __u8 acl;
38 __u8 aerl;
39 __u8 frmw;
40 __u8 lpa;
41 __u8 elpe;
42 __u8 npss;
43 __u8 avscc;
44 __u8 apsta;
45 __le16 wctemp;
46 __le16 cctemp;
47 __le16 mtfa;
48 __le32 hmpre;
49 __le32 hmmin;
50 __u8 tnvmcap[16];
51 __u8 unvmcap[16];
52 __le32 rpmbs;
53 __le16 edstt;
54 __u8 dsto;
55 __u8 fwug;
56 __le16 kas;
57 __le16 hctma;
58 __le16 mntmt;
59 __le16 mxtmt;
60 __le32 sanicap;
61 __le32 hmminds;
62 __le16 hmmaxd;
63 __le16 nsetidmax;
64 __le16 endgidmax;
65 __u8 anatt;
66 __u8 anacap;
67 __le32 anagrpmax;
68 __le32 nanagrpid;
69 __le32 pels;
70 __le16 domainid;
71 __u8 rsvd358[10];
72 __u8 megcap[16];
73 __u8 rsvd384[128];
74 __u8 sqes;
75 __u8 cqes;
76 __le16 maxcmd;
77 __le32 nn;
78 __le16 oncs;
79 __le16 fuses;
80 __u8 fna;
81 __u8 vwc;
82 __le16 awun;
83 __le16 awupf;
84 __u8 icsvscc;
85 __u8 nwpc;
86 __le16 acwu;
87 __le16 ocfs;
88 __le32 sgls;
89 __le32 mnan;
90 __u8 maxdna[16];
91 __le32 maxcna;
92 __le32 oaqd;
93 __u8 rsvd568[200];
94 char subnqn[NVME_NQN_LENGTH];
95 __u8 rsvd1024[768];
96 __le32 ioccsz;
97 __le32 iorcsz;
98 __le16 icdoff;
99 __u8 fcatt;
100 __u8 msdbd;
101 __le16 ofcs;
102 __u8 dctype;
103 __u8 rsvd1807[241];
104 struct nvme_id_psd psd[32];
105 __u8 vs[1024];
106 };
107
108
110 vid PCI Vendor ID, the company vendor identifier that is as‐
111 signed by the PCI SIG.
112
113 ssvid PCI Subsystem Vendor ID, the company vendor identifier that
114 is assigned by the PCI SIG for the subsystem.
115
116 sn Serial Number in ASCII
117
118 mn Model Number in ASCII
119
120 fr Firmware Revision in ASCII, the currently active firmware
121 revision for the NVM subsystem
122
123 rab Recommended Arbitration Burst, reported as a power of two
124
125 ieee IEEE assigned Organization Unique Identifier
126
127 cmic Controller Multipath IO and Namespace Sharing Capabilities
128 of the controller and NVM subsystem. See enum
129 nvme_id_ctrl_cmic.
130
131 mdts Max Data Transfer Size is the largest data transfer size.
132 The host should not submit a command that exceeds this max‐
133 imum data transfer size. The value is in units of the mini‐
134 mum memory page size (CAP.MPSMIN) and is reported as a
135 power of two
136
137 cntlid Controller ID, the NVM subsystem unique controller identi‐
138 fier associated with the controller.
139
140 ver Version, this field contains the value reported in the Ver‐
141 sion register, or property (see enum nvme_registers
142 NVME_REG_VS).
143
144 rtd3r RTD3 Resume Latency, the expected latency in microseconds
145 to resume from Runtime D3
146
147 rtd3e RTD3 Exit Latency, the typical latency in microseconds to
148 enter Runtime D3.
149
150 oaes Optional Async Events Supported, see enum
151 nvme_id_ctrl_oaes.
152
153 ctratt Controller Attributes, see enum nvme_id_ctrl_ctratt.
154
155 rrls Read Recovery Levels. If a bit is set, then the correspond‐
156 ing Read Recovery Level is supported. If a bit is cleared,
157 then the corresponding Read Recovery Level is not sup‐
158 ported.
159
160 rsvd102 Reserved
161
162 cntrltype Controller Type, see enum nvme_id_ctrl_cntrltype
163
164 fguid FRU GUID, a 128-bit value that is globally unique for a
165 given Field Replaceable Unit
166
167 crdt1 Controller Retry Delay time in 100 millisecond units if CQE
168 CRD field is 1
169
170 crdt2 Controller Retry Delay time in 100 millisecond units if CQE
171 CRD field is 2
172
173 crdt3 Controller Retry Delay time in 100 millisecond units if CQE
174 CRD field is 3
175
176 rsvd134 Reserved
177
178 nvmsr NVM Subsystem Report, see enum nvme_id_ctrl_nvmsr
179
180 vwci VPD Write Cycle Information, see enum nvme_id_ctrl_vwci
181
182 mec Management Endpoint Capabilities, see enum nvme_id_ctrl_mec
183
184 oacs Optional Admin Command Support,the optional Admin commands
185 and features supported by the controller, see enum
186 nvme_id_ctrl_oacs.
187
188 acl Abort Command Limit, the maximum number of concurrently ex‐
189 ecuting Abort commands supported by the controller. This is
190 a 0's based value.
191
192 aerl Async Event Request Limit, the maximum number of concur‐
193 rently outstanding Asynchronous Event Request commands sup‐
194 ported by the controller This is a 0's based value.
195
196 frmw Firmware Updates indicates capabilities regarding firmware
197 updates. See enum nvme_id_ctrl_frmw.
198
199 lpa Log Page Attributes, see enum nvme_id_ctrl_lpa.
200
201 elpe Error Log Page Entries, the maximum number of Error Infor‐
202 mation log entries that are stored by the controller. This
203 field is a 0's based value.
204
205 npss Number of Power States Supported, the number of NVM Express
206 power states supported by the controller, indicating the
207 number of valid entries in struct nvme_id_ctrl.psd. This is
208 a 0's based value.
209
210 avscc Admin Vendor Specific Command Configuration, see enum
211 nvme_id_ctrl_avscc.
212
213 apsta Autonomous Power State Transition Attributes, see enum
214 nvme_id_ctrl_apsta.
215
216 wctemp Warning Composite Temperature Threshold indicates the mini‐
217 mum Composite Temperature field value (see struct
218 nvme_smart_log.critical_comp_time) that indicates an over‐
219 heating condition during which controller operation contin‐
220 ues.
221
222 cctemp Critical Composite Temperature Threshold, field indicates
223 the minimum Composite Temperature field value (see struct
224 nvme_smart_log.critical_comp_time) that indicates a criti‐
225 cal overheating condition.
226
227 mtfa Maximum Time for Firmware Activation indicates the maximum
228 time the controller temporarily stops processing commands
229 to activate the firmware image, specified in 100 millisec‐
230 ond units. This field is always valid if the controller
231 supports firmware activation without a reset.
232
233 hmpre Host Memory Buffer Preferred Size indicates the preferred
234 size that the host is requested to allocate for the Host
235 Memory Buffer feature in 4 KiB units.
236
237 hmmin Host Memory Buffer Minimum Size indicates the minimum size
238 that the host is requested to allocate for the Host Memory
239 Buffer feature in 4 KiB units.
240
241 tnvmcap Total NVM Capacity, the total NVM capacity in the NVM sub‐
242 system. The value is in bytes.
243
244 unvmcap Unallocated NVM Capacity, the unallocated NVM capacity in
245 the NVM subsystem. The value is in bytes.
246
247 rpmbs Replay Protected Memory Block Support, see enum
248 nvme_id_ctrl_rpmbs.
249
250 edstt Extended Device Self-test Time, if Device Self-test command
251 is supported (see struct nvme_id_ctrl.oacs,
252 NVME_CTRL_OACS_SELF_TEST), then this field indicates the
253 nominal amount of time in one minute units that the con‐
254 troller takes to complete an extended device self-test op‐
255 eration when in power state 0.
256
257 dsto Device Self-test Options, see enum nvme_id_ctrl_dsto.
258
259 fwug Firmware Update Granularity indicates the granularity and
260 alignment requirement of the firmware image being updated
261 by the Firmware Image Download command. The value is re‐
262 ported in 4 KiB units. A value of 0h indicates no informa‐
263 tion on granularity is provided. A value of FFh indicates
264 no restriction
265
266 kas Keep Alive Support indicates the granularity of the Keep
267 Alive Timer in 100 millisecond units.
268
269 hctma Host Controlled Thermal Management Attributes, see enum
270 nvme_id_ctrl_hctm.
271
272 mntmt Minimum Thermal Management Temperature indicates the mini‐
273 mum temperature, in degrees Kelvin, that the host may re‐
274 quest in the Thermal Management Temperature 1 field and
275 Thermal Management Temperature 2 field of a Set Features
276 command with the Feature Identifier field set to
277 NVME_FEAT_FID_HCTM.
278
279 mxtmt Maximum Thermal Management Temperature indicates the maxi‐
280 mum temperature, in degrees Kelvin, that the host may re‐
281 quest in the Thermal Management Temperature 1 field and
282 Thermal Management Temperature 2 field of the Set Features
283 command with the Feature Identifier set to
284 NVME_FEAT_FID_HCTM.
285
286 sanicap Sanitize Capabilities, see enum nvme_id_ctrl_sanicap
287
288 hmminds Host Memory Buffer Minimum Descriptor Entry Size indicates
289 the minimum usable size of a Host Memory Buffer Descriptor
290 Entry in 4 KiB units.
291
292 hmmaxd Host Memory Maximum Descriptors Entries indicates the num‐
293 ber of usable Host Memory Buffer Descriptor Entries.
294
295 nsetidmax NVM Set Identifier Maximum, defines the maximum value of a
296 valid NVM Set Identifier for any controller in the NVM sub‐
297 system.
298
299 endgidmax Endurance Group Identifier Maximum, defines the maximum
300 value of a valid Endurance Group Identifier for any con‐
301 troller in the NVM subsystem.
302
303 anatt ANA Transition Time indicates the maximum amount of time,
304 in seconds, for a transition between ANA states or the max‐
305 imum amount of time, in seconds, that the controller re‐
306 ports the ANA change state.
307
308 anacap Asymmetric Namespace Access Capabilities, see enum
309 nvme_id_ctrl_anacap.
310
311 anagrpmax ANA Group Identifier Maximum indicates the maximum value of
312 a valid ANA Group Identifier for any controller in the NVM
313 subsystem.
314
315 nanagrpid Number of ANA Group Identifiers indicates the number of ANA
316 groups supported by this controller.
317
318 pels Persistent Event Log Size indicates the maximum reportable
319 size for the Persistent Event Log.
320
321 domainid Domain Identifier indicates the identifier of the domain
322 that contains this controller.
323
324 rsvd358 Reserved
325
326 megcap Max Endurance Group Capacity indicates the maximum capacity
327 of a single Endurance Group.
328
329 rsvd384 Reserved
330
331 sqes Submission Queue Entry Size, see enum nvme_id_ctrl_sqes.
332
333 cqes Completion Queue Entry Size, see enum nvme_id_ctrl_cqes.
334
335 maxcmd Maximum Outstanding Commands indicates the maximum number
336 of commands that the controller processes at one time for a
337 particular queue.
338
339 nn Number of Namespaces indicates the maximum value of a valid
340 nsid for the NVM subsystem. If the MNAN (struct
341 nvme_id_ctrl.mnan field is cleared to 0h, then this field
342 also indicates the maximum number of namespaces supported
343 by the NVM subsystem.
344
345 oncs Optional NVM Command Support, see enum nvme_id_ctrl_oncs.
346
347 fuses Fused Operation Support, see enum nvme_id_ctrl_fuses.
348
349 fna Format NVM Attributes, see enum nvme_id_ctrl_fna.
350
351 vwc Volatile Write Cache, see enum nvme_id_ctrl_vwc.
352
353 awun Atomic Write Unit Normal indicates the size of the write
354 operation guaranteed to be written atomically to the NVM
355 across all namespaces with any supported namespace format
356 during normal operation. This field is specified in logical
357 blocks and is a 0's based value.
358
359 awupf Atomic Write Unit Power Fail indicates the size of the
360 write operation guaranteed to be written atomically to the
361 NVM across all namespaces with any supported namespace for‐
362 mat during a power fail or error condition. This field is
363 specified in logical blocks and is a 0’s based value.
364
365 icsvscc NVM Vendor Specific Command Configuration, see enum
366 nvme_id_ctrl_nvscc.
367
368 nwpc Namespace Write Protection Capabilities, see enum
369 nvme_id_ctrl_nwpc.
370
371 acwu Atomic Compare & Write Unit indicates the size of the write
372 operation guaranteed to be written atomically to the NVM
373 across all namespaces with any supported namespace format
374 for a Compare and Write fused operation. This field is
375 specified in logical blocks and is a 0’s based value.
376
377 ocfs Optional Copy Formats Supported, each bit n means con‐
378 troller supports Copy Format n.
379
380 sgls SGL Support, see enum nvme_id_ctrl_sgls
381
382 mnan Maximum Number of Allowed Namespaces indicates the maximum
383 number of namespaces supported by the NVM subsystem.
384
385 maxdna Maximum Domain Namespace Attachments indicates the maximum
386 of the sum of the number of namespaces attached to each I/O
387 controller in the Domain.
388
389 maxcna Maximum I/O Controller Namespace Attachments indicates the
390 maximum number of namespaces that are allowed to be at‐
391 tached to this I/O controller.
392
393 oaqd Optimal Aggregated Queue Depth indicates the recommended
394 maximum total number of outstanding I/O commands across all
395 I/O queues on the controller for optimal operation.
396
397 rsvd568 Reserved
398
399 subnqn NVM Subsystem NVMe Qualified Name, UTF-8 null terminated
400 string
401
402 rsvd1024 Reserved
403
404 ioccsz I/O Queue Command Capsule Supported Size, defines the maxi‐
405 mum I/O command capsule size in 16 byte units.
406
407 iorcsz I/O Queue Response Capsule Supported Size, defines the max‐
408 imum I/O response capsule size in 16 byte units.
409
410 icdoff In Capsule Data Offset, defines the offset where data
411 starts within a capsule. This value is applicable to I/O
412 Queues only.
413
414 fcatt Fabrics Controller Attributes, see enum nvme_id_ctrl_fcatt.
415
416 msdbd Maximum SGL Data Block Descriptors indicates the maximum
417 number of SGL Data Block or Keyed SGL Data Block descrip‐
418 tors that a host is allowed to place in a capsule. A value
419 of 0h indicates no limit.
420
421 ofcs Optional Fabric Commands Support, see enum
422 nvme_id_ctrl_ofcs.
423
424 dctype Discovery Controller Type (DCTYPE). This field indicates
425 what type of Discovery controller the controller is (see
426 enum nvme_id_ctrl_dctype)
427
428 rsvd1807 Reserved
429
430 psd Power State Descriptors, see struct nvme_id_psd.
431
432 vs Vendor Specific
433
434
435
436October 2023 struct nvme_id_ctrl libnvme(9)