libnvme(9) API Manual libnvme(9)

# [NAME](#NAME)

struct libnbft\_hfi\_info\_tcp - HFI Transport Info Descriptor - NVMe/TCP

# [SYNOPSIS](#SYNOPSIS)

struct libnbft\_hfi\_info\_tcp {  
**\_\_u32 pci\_sbdf;**  
**\_\_u8 mac\_addr\[6];**  
**\_\_u16 vlan;**  
**\_\_u8 ip\_origin;**  
**char ipaddr\[40];**  
**\_\_u8 subnet\_mask\_prefix;**  
**char gateway\_ipaddr\[40];**  
**\_\_u16 route\_metric;**  
**char primary\_dns\_ipaddr\[40];**  
**char secondary\_dns\_ipaddr\[40];**  
**char dhcp\_server\_ipaddr\[40];**  
**char \*host\_name;**  
**\_\_u8 flags;**  
**\_\_u8 pcie\_seg\_num;**  
**\_\_u32 dhcp\_iaid;**  
**\_\_u8 dhcp\_duid\[130];**  
**\_\_u8 dhcp\_duid\_len;**  
};

# [Members](#Members)

[pci\_sbdf](#pci_sbdf)

PCI Express Routing ID for the HFI Transport Function.

[mac\_addr](#mac_addr)

MAC Address: The MAC address of this HFI, in EUI-48TM format.

[vlan](#vlan)

The VLAN identifier if the VLAN is associated with this HFI, as defined in IEEE 802.1q-2018 or zeroes if no VLAN is associated with this HFI.

[ip\_origin](#ip_origin)

The source of Ethernet L3 configuration information used by the driver or 0 if not used.

[ipaddr](#ipaddr)

The IPv4 or IPv6 address of this HFI.

[subnet\_mask\_prefix](#subnet_mask_prefix)

The IPv4 or IPv6 subnet mask in CIDR routing prefix notation.

[gateway\_ipaddr](#gateway_ipaddr)

The IPv4 or IPv6 address of the IP gateway for this HFI or zeroes if no IP gateway is specified.

[route\_metric](#route_metric)

The cost value for the route indicated by this HFI.

[primary\_dns\_ipaddr](#primary_dns_ipaddr)

The IPv4 or IPv6 address of the Primary DNS server for this HFI.

[secondary\_dns\_ipaddr](#secondary_dns_ipaddr)

The IPv4 or IPv6 address of the Secondary DNS server for this HFI.

[dhcp\_server\_ipaddr](#dhcp_server_ipaddr)

The IPv4 or IPv6 address of the DHCP server used to assign this HFI address.

[host\_name](#host_name)

The Host Name string.

[flags](#flags)

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

[pcie\_seg\_num](#pcie_seg_num)

The PCIe Segment Number for the HFI Transport Function when the PCI Express Link is in Flit mode. Zero if not in Flit mode, not supported, or the NBFT data originates from a pre-NBFT rev. 1.1 driver.

[dhcp\_iaid](#dhcp_iaid)

The DHCP Identity Association Identifier (IAID) as defined in RFC 4361. The IAID is a 32-bit value that uniquely identifies the client's network interface for DHCP purposes. NBFT rev. 1.1+; meaningful when *dhcp\_duid\_len* is non-zero.

[dhcp\_duid](#dhcp_duid)

The raw DHCP Unique Identifier (DUID) as defined in RFC 8415 section 11 (NBFT rev. 1.1+). This is the complete DUID including its leading 2-byte type code followed by up to 128 bytes of type-specific identifier data. Known DUID type codes are: 1 (DUID-LLT, link-layer address plus time), 2 (DUID-EN, vendor-assigned based on enterprise number), 3 (DUID-LL, link-layer address), 4 (DUID-UUID, universally unique identifier). Multi-byte fields within the DUID are stored in little-endian byte order as specified by the NVMe Boot Specification. The consumer is responsible for parsing the type code and the type-specific data. This is a local copy of the data from the NBFT heap. This array is zero-filled when the DUID is not present; check *dhcp\_duid\_len*.

[dhcp\_duid\_len](#dhcp_duid_len)

The number of valid bytes in *dhcp\_duid*, ranging from 3 (minimum: 2-byte type code plus at least 1 byte of data) to 130 (maximum per RFC 8415). NBFT rev. 1.1+. A value of zero indicates that no DUID is present and both *dhcp\_duid* and *dhcp\_iaid* should be ignored.

struct libnbft\_hfi\_info\_tcp September 2026

---

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