libnvme(9) API Manual libnvme(9)

# [NAME](#NAME)

struct nbft\_hfi\_info\_tcp - HFI Transport Info Descriptor - NVMe/TCP (Figure 14)

# [SYNOPSIS](#SYNOPSIS)

struct nbft\_hfi\_info\_tcp {  
**\_\_u8 structure\_id;**  
**\_\_u8 version;**  
**\_\_u8 trtype;**  
**\_\_u8 trinfo\_version;**  
**\_\_le16 hfi\_index;**  
**\_\_u8 flags;**  
**\_\_le32 pci\_sbdf;**  
**\_\_u8 mac\_addr\[6];**  
**\_\_le16 vlan;**  
**\_\_u8 ip\_origin;**  
**\_\_u8 ip\_address\[16];**  
**\_\_u8 subnet\_mask\_prefix;**  
**\_\_u8 ip\_gateway\[16];**  
**\_\_u8 reserved1;**  
**\_\_le16 route\_metric;**  
**\_\_u8 primary\_dns\[16];**  
**\_\_u8 secondary\_dns\[16];**  
**\_\_u8 dhcp\_server\[16];**  
**struct nbft\_heap\_obj host\_name\_obj;**  
**struct nbft\_heap\_obj hfi\_ext\_info\_obj;**  
**\_\_u8 pcie\_seg\_num;**  
**\_\_u8 reserved2\[11];**  
};

# [Members](#Members)

[structure\_id](#structure_id)

Structure ID: This field shall be set to 7h (i.e., HFI Transport Info; #NBFT\_DESC\_HFI\_TRINFO).

[version](#version)

Version: This field shall be set to 1h.

[trtype](#trtype)

HFI Transport Type, see *enum nbft\_trtype*: This field shall be set to 03h (i.e., NVMe/TCP; #NBFT\_TRTYPE\_TCP).

[trinfo\_version](#trinfo_version)

Transport Info Version: This field shall be set to 2h, supported values include 1h (Boot Spec rev. 1.0).

[hfi\_index](#hfi_index)

HFI Descriptor Index: The value of the HFI Descriptor Index field of the HFI Descriptor (see *struct nbft\_hfi*.index) whose HFI Transport Info Descriptor Heap Object Reference field indicates this HFI Transport Info Descriptor.

[flags](#flags)

HFI Transport Flags, see *enum nbft\_hfi\_info\_tcp\_flags*.

[pci\_sbdf](#pci_sbdf)

PCI Express Routing ID for the HFI Transport Function: This field indicates the PCI Express Routing ID as specified in the PCI Express Base Specification.

[mac\_addr](#mac_addr)

MAC Address: The MAC address of this HFI, in EUI-48TM format, as defined in the IEEE Guidelines for Use of Extended Unique Identifiers. This field shall be set to a non-zero value.

[vlan](#vlan)

VLAN: If this field is set to a non-zero value, then this field contains the VLAN identifier if the VLAN associated with this HFI, as defined in IEEE 802.1q-2018. If no VLAN is associated with this HFI, then this field shall be cleared to 0h.

[ip\_origin](#ip_origin)

IP Origin: If this field is set to a non-zero value, then this field indicates the source of Ethernet L3 configuration information used by the driver for this interface. Valid values are defined in the Win 32 API: NL\_PREFIX\_ORIGIN enumeration specification. This field should be cleared to 0h if the IP Origin field is unused by driver.

[ip\_address](#ip_address)

IP Address: This field indicates the IPv4 or IPv6 address of this HFI. This field shall be set to a non-zero value.

[subnet\_mask\_prefix](#subnet_mask_prefix)

Subnet Mask Prefix: This field indicates the IPv4 or IPv6 subnet mask in CIDR routing prefix notation.

[ip\_gateway](#ip_gateway)

IP Gateway: If this field is set to a non-zero value, this field indicates the IPv4 or IPv6 address of the IP gateway for this HFI. If this field is cleared to 0h, then no IP gateway is specified.

[reserved1](#reserved1)

Reserved.

[route\_metric](#route_metric)

Route Metric: If this field is set to a non-zero value, this field indicates the cost value for the route indicated by this HF. This field contains the value utilized by the pre-OS driver when chosing among all available routes. Lower values relate to higher priority. Refer to IETF RFC 4249. If the pre-OS driver supports routing and did not configure a specific route metric for this interface, then the pre-OS driver should set this value to 500. If the pre-OS driver does not support routing, then this field should be cleared to 0h.

[primary\_dns](#primary_dns)

Primary DNS: If this field is set to a non-zero value, this field indicates the IPv4 or IPv6 address of the Primary DNS server for this HFI, if any, from byte offset 0h of the NBFT Table Header. If this field is cleared to 0h, then no Primary DNS is specified.

[secondary\_dns](#secondary_dns)

Secondary DNS: If this field is set to a non-zero value, this field indicates the IPv4 or IPv6 address of the Secondary DNS server for this HFI, if any, from byte offset 0h of the NBFT Table Header. If this field is cleared to 0h, then no Secondary DNS is specified.

[dhcp\_server](#dhcp_server)

DHCP Server: If the DHCP Override bit is set to 1h, then this field indicates the IPv4 or IPv6 address of the DHCP server used to assign this HFI address. If that bit is cleared to 0h, then this field is reserved.

[host\_name\_obj](#host_name_obj)

Host Name Heap Object Reference: If this field is set to a non-zero value, then this field indicates the location and size of a heap object containing a Host Name string.

[hfi\_ext\_info\_obj](#hfi_ext_info_obj)

HFI Transport Info Extended Information Descriptor Object Reference (since rev. 1.1): If this field is set to a non-zero value, then this field indicates the location and size of a heap object containing a HFI Transport Info Extended Information Descriptor (see *struct nbft\_hfi\_info\_ext*).

[pcie\_seg\_num](#pcie_seg_num)

PCIe Segment Number (since rev. 1.1): The Segment Number for the specified Controller when the PCI Express Link is in Flit mode. If the PCI Express interface is not in Flit mode, or if the pre-OS driver does not support Flit mode, then this field should be cleared to 0h.

[reserved2](#reserved2)

Reserved.

struct nbft\_hfi\_info\_tcp September 2026

---

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