1fi_nic(3)                      Libfabric v1.14.0                     fi_nic(3)
2
3
4

NAME

6       fi_nic - Fabric network interface card attributes
7

NETWORK INTERFACE CARD ATTRIBUTES

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 interpreted by fi_tostr(3).  Applications may also use the other
130       attribute fields, such as related fi_fabric_attr: prov_name  field,  to
131       determine  an appropriate structure to cast the attributes.  The format
132       and definition of this field is outside the scope of the libfabric core
133       framework,  but  may be available as part of a provider specific header
134       file included with libfabric package.
135

NOTES

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

SEE ALSO

141       fi_getinfo(3)
142

AUTHORS

144       OpenFabrics.
145
146
147
148Libfabric Programmer’s Manual     2021-03-22                         fi_nic(3)
Impressum