1libnvme(9)                        API Manual                        libnvme(9)
2
3
4

NAME

6       struct nvme_id_ctrl - Identify Controller data structure
7

SYNOPSIS

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

Members

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)
Impressum