fi_nic(3)
π NAME π
okay so bestie, fi_nic(3) is literally the page for Fabric network interface card attributes β iconic, no cap π
.
β¨ NETWORK INTERFACE CARD ATTRIBUTES β¨
The fid_nic structure defines attributes for a struct fi_info that is directly associated with underlying networking hardware, and it may be returned directly from calling fi_getinfo(3). The format of fid_nic and the related substructures are defined below, and yes, we're getting into the whole thing π«Ά.
π‘ note, bestie: not all fields of all structures may be available. Unavailable fields, or fields that are not applicable to the indicated device, will be set toNULLor0.
struct fid_nic {
struct fid fid;
struct fi_device_attr *device_attr;
struct fi_bus_attr *bus_attr;
struct fi_link_attr *link_attr;
void *prov_attr;
};
struct fi_device_attr {
char *name;
char *device_id;
char *device_version;
char *vendor_id;
char *driver;
char *firmware;
};
struct fi_pci_attr {
uint16_t domain_id;
uint8_t bus_id;
uint8_t device_id;
uint8_t function_id;
};
struct fi_bus_attr {
enum fi_bus_type bus_type;
union {
struct fi_pci_attr pci;
} attr;
};
struct fi_link_attr {
char *address;
size_t mtu;
size_t speed;
enum fi_link_state state;
char *network_type;
};
π Device Attributes π
Device attributes are used to identify the specific virtual or hardware NIC associated with an fi_info structure. Slay, that's the whole point π.
nameβ the operating system name associated with the device. This may be a logical network interface name (e.g.eth0oreno1) or an absolute filename.device_idβ this is a vendor specific identifier for the device or product.device_versionβ indicates the version of the device.vendor_idβ indicates the name of the vendor that distributes the NIC.driverβ the name of the driver associated with the device.firmwareβ the deviceβs firmware version.
π Bus Attributes π
The bus attributes are used to identify the physical location of the NIC in the system. Very "where is the hardware at" energy π₯.
bus_typeβ indicates the type of system bus where the NIC is located. Valid values areFI_BUS_PCIorFI_BUS_UNKNOWN.attr.pci.domain_idβ the domain where the PCI bus is located. Valid only ifbus_typeisFI_BUS_PCI.attr.pci.bus_idβ the PCI bus identifier where the device is located. Valid only ifbus_typeisFI_BUS_PCI.attr.pci.device_idβ the identifier on the PCI bus where the device is located. Valid only ifbus_typeisFI_BUS_PCI.attr.pci.function_idβ the function on the device being referenced. Valid only ifbus_typeisFI_BUS_PCI.
π Link Attributes π
Link attributes describe low-level details about the network connection into the fabric. Like, the actual networking tea ββ¨.
addressβ the primary link-level address associated with the NIC, such as a MAC address. If multiple addresses are available, only one will be reported.mtuβ the maximum transfer unit of link level frames or packets, in bytes.speedβ the active link data rate, given in bits per second.stateβ the current physical port state. Possible values areFI_LINK_UNKNOWN,FI_LINK_DOWN, andFI_LINK_UP, to indicate if the port state is unknown or not applicable (unknown), inactive (down), or active (up).network_typeβ specifies the type of network interface currently active, such as Ethernet or InfiniBand.
π§ Provider Attributes π§
Provider attributes reference provider specific details of the device. These attributes are both provider and device specific. The attributes can be interpreted by fi_tostr(3). Applications may also use the other attribute fields, such as the related fi_fabric_attr: prov_name field, to determine an appropriate structure to cast the attributes. The format and definition of this field is outside the scope of the libfabric core framework, but may be available as part of a provider specific header file included with libfabric package π.
π NOTES π
The fid_nic structure is returned as part of a call to fi_getinfo(3). It is automatically freed as part of calling fi_freeinfo(3).
π SEE ALSO π
Go read fi_getinfo(3) too, bestie π«Ά.
πΈ AUTHORS πΈ
OpenFabrics.
kisses, this page is from the Libfabric Programmerβs Manual, Libfabric v2.5.1, dated 2024-12-10 πβ¨
π¦ where this page comes from
- centos-stream 10: libfabric-devel 2.5.1-1.el10 Β· BSD-2-Clause OR GPL-2.0-only
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms