1fi_nic(3) Libfabric v1.7.0 fi_nic(3)
2
3
4
6 fi_nic - Fabric network interface card attributes
7
9 The fid_nic structure defines attributes for a struct fi_info that is
10 directly associated with underlying networking hardware and may be re‐
11 turned directly from calling fi_getinfo(3). The format of fid_nic and
12 the related substructures are defined below.
13
14 Note that not all fields of all structures may be available. Unavail‐
15 able or fields that are not applicable to the indicated device will be
16 set to NULL or 0.
17
18 struct fid_nic {
19 struct fid fid;
20 struct fi_device_attr *device_attr;
21 struct fi_bus_attr *bus_attr;
22 struct fi_link_attr *link_attr;
23 void *prov_attr;
24 };
25
26 struct fi_device_attr {
27 char *name;
28 char *device_id;
29 char *device_version;
30 char *vendor_id;
31 char *driver;
32 char *firmware;
33 };
34
35 struct fi_pci_attr {
36 uint16_t domain_id;
37 uint8_t bus_id;
38 uint8_t device_id;
39 uint8_t function_id;
40 };
41
42 struct fi_bus_attr {
43 enum fi_bus_type bus_type;
44 union {
45 struct fi_pci_attr pci;
46 } attr;
47 };
48
49 struct fi_link_attr {
50 char *address;
51 size_t mtu;
52 size_t speed;
53 enum fi_link_state state;
54 char *network_type;
55 };
56
57 Device Attributes
58 Device attributes are used to identify the specific virtual or hardware
59 NIC associated with an fi_info structure.
60
61 name The operating system name associated with the device. This may
62 be a logical network interface name (e.g. eth0 or eno1) or an
63 absolute filename.
64
65 device_id
66 This is a vendor specific identifier for the device or product.
67
68 device_version
69 Indicates the version of the device.
70
71 vendor_id
72 Indicates the name of the vendor that distributes the NIC.
73
74 driver The name of the driver associated with the device
75
76 firmware
77 The device's firmware version.
78
79 Bus Attributes
80 The bus attributes are used to identify the physical location of the
81 NIC in the system.
82
83 bus_type
84 Indicates the type of system bus where the NIC is located.
85 Valid values are FI_BUS_PCI or FI_BUS_UNKNOWN.
86
87 attr.pci.domain_id
88 The domain where the PCI bus is located. Valid only if bus_type
89 is FI_BUS_PCI.
90
91 attr.pci.bus_id
92 The PCI bus identifier where the device is located. Valid only
93 if bus_type is FI_BUS_PCI.
94
95 attr.pci.device_id
96 The identifier on the PCI bus where the device is located.
97 Valid only if bus_type is FI_BUS_PCI.
98
99 attr.pci.function_id
100 The function on the device being referenced. Valid only if
101 bus_type is FI_BUS_PCI.
102
103 Link Attributes
104 Link attributes describe low-level details about the network connection
105 into the fabric.
106
107 address
108 The primary link-level address associated with the NIC, such as
109 a MAC address. If multiple addresses are available, only one
110 will be reported.
111
112 mtu The maximum transfer unit of link level frames or packets, in
113 bytes.
114
115 speed The active link data rate, given in bits per second.
116
117 state The current physical port state. Possible values are
118 FI_LINK_UNKNOWN, FI_LINK_DOWN, and FI_LINK_UP, to indicate if
119 the port state is unknown or not applicable (unknown), inactive
120 (down), or active (up).
121
122 network_type
123 Specifies the type of network interface currently active, such
124 as Ethernet or InfiniBand.
125
126 Provider Attributes
127 Provider attributes reference provider specific details of the device.
128 These attributes are both provider and device specific. The attributes
129 can be interpretted by fi_tostr(3). Applications may also use the oth‐
130 er attribute fields, such as related fi_fabric_attr: prov_name field,
131 to determine an appropriate structure to cast the attributes. The for‐
132 mat and definition of this field is outside the scope of the libfabric
133 core framework, but may be available as part of a provider specific
134 header file included with libfabric package.
135
137 The fid_nic structure is returned as part of a call to fi_getinfo(3).
138 It is automatically freed as part of calling fi_freeinfo(3)
139
141 fi_getinfo(3)
142
144 OpenFabrics.
145
146
147
148Libfabric Programmer's Manual 2018-10-05 fi_nic(3)