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