libnvme(2)

πŸ’– NAME πŸ’–

struct nbft_info_hfi_info_tcp β€” the HFI Transport Info Descriptor for NVMe/TCP, bestie πŸ’…

It's the lil struct that holds everything about one Host Fabric Interface doing NVMe over TCP. Think of it as the ID card your NIC shows at the door. πŸŽ€


✨ SYNOPSIS ✨

struct nbft_info_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;
    bool this_hfi_is_default_route;
    bool dhcp_override;
 };

no cap, that's the whole shape of it 🫢


🌸 Members 🌸

Lowkey the main event. Every field, one by one, no skipping, periodt. 🌈

  • pci_sbdf β€” the PCI Express Routing ID for the HFI Transport Function. it's giving "which function are you" energy πŸ‘‘
  • mac_addr β€” the MAC Address of this HFI, in EUI-48TM format. her government name, if you will πŸ¦‹
  • vlan β€” the VLAN identifier, but only if the VLAN is associated with this HFI, as defined in IEEE 802.1q-2018. if no VLAN is associated with this HFI, you get zeroes. so either she's tagged or she's zero, there is no in-between πŸ’€
  • ip_origin β€” the source of the Ethernet L3 configuration info that the driver used, or 0 if it's not used. not me checking where the config came from πŸ™ˆ
  • ipaddr β€” the IPv4 or IPv6 address of this HFI. her address, literally 🏠
  • subnet_mask_prefix β€” the IPv4 or IPv6 subnet mask, written in CIDR routing prefix notation. the /24 of it all ✨
  • gateway_ipaddr β€” the IPv4 or IPv6 address of the IP gateway for this HFI, or zeroes if no IP gateway is specified. the doorway out πŸšͺ
  • route_metric β€” the cost value for the route indicated by this HFI. lower cost = more main character energy, iykyk πŸ’…
  • primary_dns_ipaddr β€” the IPv4 or IPv6 address of the Primary DNS server for this HFI. your first-choice bestie for name resolution πŸ’œ
  • secondary_dns_ipaddr β€” the IPv4 or IPv6 address of the Secondary DNS server for this HFI. the backup bestie, still iconic πŸŽ€
  • dhcp_server_ipaddr β€” the IPv4 or IPv6 address of the DHCP server that was used to assign this HFI address. someone handed her that IP, we're just saying thank you 🫢
  • host_name β€” the Host Name string. yes, that's it, that's the whole description, she's a simple queen 🌸
  • this_hfi_is_default_route β€” if True, then the BIOS utilized this interface described by HFI to be the default route with the highest priority. if False, then routes are local to their own scope. so either she's running the whole route table or she's staying in her lane, and honestly both are valid πŸ”₯
  • dhcp_override β€” if True, then the HFI information was populated by consuming the DHCP on this interface. if False, then the HFI information was set administratively by a configuration interface to the driver and the pre-OS envrionment. the DHCP did not get a say in this one, no ma'am πŸ™…
⭐ quick vibe check: these True/False flags are really bools, so keep them exact when you read them. don't paraphrase. the struct remembers. 😌

and that's the whole page, babe β€” no detail left behind, every field accounted for πŸ’–

this was struct nbft_info_hfi_info_tcp from the libnvme(2) API Manual (yes, the libnvme manual, bestie, section 2), and the page closed out with July 2026 energy. stay slaying in the NBFT, ily πŸ¦‹βœ¨πŸ’…

πŸ“¦ where this page comes from