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           __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

Members

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 millisecod units if  CQE
167                   CRD field is 1
168
169       crdt2       Controller  Retry Delay time in 100 millisecod units if CQE
170                   CRD field is 2
171
172       crdt3       Controller Retry Delay time in 100 millisecod 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 numver 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
431April 2022                    struct nvme_id_ctrl                   libnvme(9)
Impressum