1fi_fabric(3) Libfabric v1.6.1 fi_fabric(3)
2
3
4
6 fi_fabric - Fabric domain operations
7
8 fi_fabric / fi_close : Open / close a fabric domain
9
10 fi_tostr : Convert fabric attributes, flags, and capabilities to print‐
11 able string
12
14 #include <rdma/fabric.h>
15
16 int fi_fabric(struct fi_fabric_attr *attr,
17 struct fid_fabric **fabric, void *context);
18
19 int fi_close(struct fid *fabric);
20
21 char * fi_tostr(const void *data, enum fi_type datatype);
22
24 attr : Attributes of fabric to open.
25
26 fabric : Fabric domain
27
28 context : User specified context associated with the opened object.
29 This context is returned as part of any associated asynchronous event.
30
32 A fabric domain represents a collection of hardware and software
33 resources that access a single physical or virtual network. All net‐
34 work ports on a system that can communicate with each other through
35 their attached networks belong to the same fabric domain. A fabric
36 domain shares network addresses and can span multiple providers.
37
38 fi_fabric
39 Opens a fabric provider. The attributes of the fabric provider are
40 specified through the open call, and may be obtained by calling fi_get‐
41 info.
42
43 fi_close
44 The fi_close call is used to release all resources associated with a
45 fabric domain or interface. All items associated with the opened fab‐
46 ric must be released prior to calling fi_close.
47
48 fi_tostr
49 Converts fabric interface attributes, capabilities, flags, and enum
50 values into a printable string. The data parameter accepts a pointer
51 to the attribute or value(s) to display, with the datatype parameter
52 indicating the type of data referenced by the data parameter. Valid
53 values for the datatype are listed below, along with the corresponding
54 datatype or field value.
55
56 FI_TYPE_INFO : struct fi_info
57
58 FI_TYPE_EP_TYPE : struct fi_info::type field
59
60 FI_TYPE_EP_CAP : struct fi_info::ep_cap field
61
62 FI_TYPE_OP_FLAGS : struct fi_info::op_flags field, or general uint64_t
63 flags
64
65 FI_TYPE_ADDR_FORMAT : struct fi_info::addr_format field
66
67 FI_TYPE_TX_ATTR : struct fi_tx_attr
68
69 FI_TYPE_RX_ATTR : struct fi_rx_attr
70
71 FI_TYPE_EP_ATTR : struct fi_ep_attr
72
73 FI_TYPE_DOMAIN_ATTR : struct fi_domain_attr
74
75 FI_TYPE_FABRIC_ATTR : struct fi_fabric_attr
76
77 FI_TYPE_DOMAIN_CAP : struct fi_info::domain_cap field
78
79 FI_TYPE_THREADING : enum fi_threading
80
81 FI_TYPE_PROGRESS : enum fi_progress
82
83 FI_TYPE_PROTO : struct fi_ep_attr::protocol field
84
85 FI_TYPE_MSG_ORDER : struct fi_ep_attr::msg_order field
86
87 FI_TYPE_VERSION : Returns the library version of libfabric in string
88 form. The data parameter is ignored.
89
90 fi_tostr() will return a pointer to an internal libfabric buffer that
91 should not be modified, and will be overwritten the next time
92 fi_tostr() is invoked. fi_tostr() is not thread safe.
93
95 The following resources are associated with fabric domains: access
96 domains, passive endpoints, and CM event queues.
97
99 The fi_fabric_attr structure defines the set of attributes associated
100 with a fabric and a fabric provider.
101
102 struct fi_fabric_attr {
103 struct fid_fabric *fabric;
104 char *name;
105 char *prov_name;
106 uint32_t prov_version;
107 uint32_t api_version;
108 };
109
110 fabric
111 On input to fi_getinfo, a user may set this to an opened fabric
112 instance to restrict output to the given fabric. On output from
113 fi_getinfo, if no fabric was specified, but the user has an opened
114 instance of the named fabric, this will reference the first opened
115 instance. If no instance has been opened, this field will be NULL.
116
117 name
118 A fabric identifier.
119
120 prov_name - Provider Name
121 The name of the underlying fabric provider.
122
123 To request an utility provider layered over a specific core provider,
124 both the provider names have to be specified using ";" as delimiter.
125
126 e.g. "ofi_rxm;verbs" or "verbs;ofi_rxm"
127
128 For debugging and administrative purposes, environment variables can be
129 used to control which fabric providers will be registered with libfab‐
130 ric. Specifying "FI_PROVIDER=foo,bar" will allow any providers with
131 the names "foo" or "bar" to be registered. Similarly, specifying
132 "FI_PROVIDER=^foo,bar" will prevent any providers with the names "foo"
133 or "bar" from being registered. Providers which are not registered
134 will not appear in fi_getinfo results. Applications which need a spe‐
135 cific set of providers should implement their own filtering of fi_get‐
136 info's results rather than relying on these environment variables in a
137 production setting.
138
139 prov_version - Provider Version
140 Version information for the fabric provider, in a major.minor format.
141 The use of the FI_MAJOR() and FI_MINOR() version macros may be used to
142 extract the major and minor version data. See fi_version(3).
143
144 In case of an utility provider layered over a core provider, the ver‐
145 sion would always refer to that of the utility provider.
146
147 api_version
148 The interface version requested by the application. This value corre‐
149 sponds to the version parameter passed into fi_getinfo(3).
150
152 Returns FI_SUCCESS on success. On error, a negative value correspond‐
153 ing to fabric errno is returned. Fabric errno values are defined in
154 rdma/fi_errno.h.
155
158 fabric(7), fi_getinfo(3), fi_domain(3), fi_eq(3), fi_endpoint(3)
159
161 OpenFabrics.
162
163
164
165Libfabric Programmer's Manual 2017-10-18 fi_fabric(3)