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