fi_nic(3) | #VERSION# | fi_nic(3) |
fi_nic - Fabric network interface card attributes
The fid_nic structure defines attributes for a struct fi_info that is directly associated with underlying networking hardware and may be returned directly from calling fi_getinfo(3). The format of fid_nic and the related substructures are defined below.
Note that not all fields of all structures may be available. Unavailable or fields that are not applicable to the indicated device will be set to NULL or 0.
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 are used to identify the specific virtual or hardware NIC associated with an fi_info structure.
The bus attributes are used to identify the physical location of the NIC in the system.
Link attributes describe low-level details about the network connection into the fabric.
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 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.
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)
OpenFabrics.
2022-12-11 | Libfabric Programmer’s Manual |