libnvme(9) API Manual libnvme(9)

# [NAME](#NAME)

struct nbft\_control - NBFT Table - Control Descriptor (Figure 9)

# [SYNOPSIS](#SYNOPSIS)

struct nbft\_control {  
**\_\_u8 structure\_id;**  
**\_\_u8 major\_revision;**  
**\_\_u8 minor\_revision;**  
**\_\_u8 reserved1;**  
**\_\_le16 csl;**  
**\_\_u8 flags;**  
**\_\_u8 reserved2;**  
**struct nbft\_heap\_obj hdesc;**  
**\_\_u8 hsv;**  
**\_\_u8 reserved3;**  
**\_\_le32 hfio;**  
**\_\_le16 hfil;**  
**\_\_u8 hfiv;**  
**\_\_u8 num\_hfi;**  
**\_\_le32 ssnso;**  
**\_\_le16 ssnsl;**  
**\_\_u8 ssnsv;**  
**\_\_u8 num\_ssns;**  
**\_\_le32 seco;**  
**\_\_le16 secl;**  
**\_\_u8 secv;**  
**\_\_u8 num\_sec;**  
**\_\_le32 disco;**  
**\_\_le16 discl;**  
**\_\_u8 discv;**  
**\_\_u8 num\_disc;**  
**\_\_u8 reserved4\[16];**  
};

# [Members](#Members)

[structure\_id](#structure_id)

Structure ID: This field specifies the element (refer to *enum nbft\_desc\_type*). This field shall be set to 1h (i.e., Control, #NBFT\_DESC\_CONTROL).

[major\_revision](#major_revision)

Major Revision: The major revision of the structure corresponding to the Signature field. Larger major revision numbers should not be assumed backward compatible to lower major revision numbers with the same signature.

[minor\_revision](#minor_revision)

Minor Revision: The minor revision of the structure corresponding to the signature field. If the major revision numbers are the same, any minor revision number differences shall be backwards compatible with the same signature.

[reserved1](#reserved1)

Reserved.

[csl](#csl)

Control Structure Length (CSL): This field indicates the length in bytes of the Control Descriptor.

[flags](#flags)

Flags, see *enum nbft\_control\_flags*.

[reserved2](#reserved2)

Reserved.

[hdesc](#hdesc)

Host Descriptor (HDESC): This field indicates the location and length of the Host Descriptor (see *struct nbft\_host*).

[hsv](#hsv)

Host Descriptor Version (HSV): This field indicates the version of the Host Descriptor.

[reserved3](#reserved3)

Reserved.

[hfio](#hfio)

HFI Descriptor List Offset (HFIO): If this field is set to a non-zero value, then this field indicates the offset in bytes of the HFI Descriptor List, if any, from byte offset 0h of the NBFT Table Header. If the *num\_hfi* field is cleared to 0h, then this field is reserved.

[hfil](#hfil)

HFI Descriptor Length (HFIL): This field indicates the length in bytes of each HFI Descriptor, if any. If the *num\_hfi* field is cleared to 0h, then this field is reserved.

[hfiv](#hfiv)

HFI Descriptor Version (HFIV): This field indicates the version of each HFI Descriptor.

[num\_hfi](#num_hfi)

Number of Host Fabric Interface Descriptors (NumHFI): This field indicates the number of HFI Descriptors (see *struct nbft\_hfi*) in the HFI Descriptor List, if any. If no interfaces have been configured, then this field shall be cleared to 0h.

[ssnso](#ssnso)

SSNS Descriptor List Offset (SSNSO):: This field indicates the offset in bytes of the SSNS Descriptor List, if any, from byte offset 0h of the NBFT Table Header. If the *num\_ssns* field is cleared to 0h, then this field is reserved.

[ssnsl](#ssnsl)

SSNS Descriptor Length (SSNSL): This field indicates the length in bytes of each SSNS Descriptor, if any. If the *num\_ssns* field is cleared to 0h, then this field is reserved.

[ssnsv](#ssnsv)

SSNS Descriptor Version (SSNSV): This field indicates the version of the SSNS Descriptor.

[num\_ssns](#num_ssns)

Number of Subsystem and Namespace Descriptors (NumSSNS): This field indicates the number of Subsystem Namespace (SSNS) Descriptors (see *struct nbft\_ssns*) in the SSNS Descriptor List, if any.

[seco](#seco)

Security Profile Descriptor List Offset (SECO): This field indicates the offset in bytes of the Security Profile Descriptor List, if any, from byte offset 0h of the NBFT Table Header. If the *num\_sec* field is cleared to 0h, then this field is reserved.

[secl](#secl)

Security Profile Descriptor Length (SECL): This field indicates the length in bytes of each Security Profile Descriptor, if any. If the *num\_sec* field is cleared to 0h, then this field is reserved.

[secv](#secv)

Security Profile Descriptor Version (SECV): This field indicates the version of the Security Profile Descriptor.

[num\_sec](#num_sec)

Number of Security Profile Descriptors (NumSec): This field indicates the number of Security Profile Descriptors (see *struct nbft\_security*), if any, in the Security Profile Descriptor List.

[disco](#disco)

Discovery Descriptor Offset (DISCO): This field indicates the offset in bytes of the Discovery Descriptor List, if any, from byte offset 0h of the NBFT Table Header. If the *num\_disc* field is cleared to 0h, then this field is reserved.

[discl](#discl)

Discovery Descriptor Length (DISCL): This field indicates the length in bytes of each Discovery Descriptor, if any. If the *num\_disc* field is cleared to 0h, then this field is reserved.

[discv](#discv)

Discovery Descriptor Version (DISCV): This field indicates the version of the Discovery Descriptor.

[num\_disc](#num_disc)

Number of Discovery Descriptors (NumDisc): This field indicates the number of Discovery Descriptors (see *struct nbft\_discovery*), if any, in the Discovery Descriptor List, if any.

[reserved4](#reserved4)

Reserved.

struct nbft\_control September 2026

---

Document: nbft_control-libnvme3(2) from nvme-cli 3.1-r1 (Chainguard OS)
Source: https://github.com/linux-nvme/nvme-cli
