1fi_fabric(3)                   Libfabric v1.10.0                  fi_fabric(3)
2
3
4

NAME

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

SYNOPSIS

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

ARGUMENTS

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

DESCRIPTION

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

NOTES

140       The following resources are associated with fabric domains: access  do‐
141       mains, passive endpoints, and CM event queues.
142

FABRIC ATTRIBUTES

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

RETURN VALUE

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

ERRORS

SEE ALSO

207       fabric(7), fi_getinfo(3), fi_domain(3), fi_eq(3), fi_endpoint(3)
208

AUTHORS

210       OpenFabrics.
211
212
213
214Libfabric Programmer's Manual     2020-01-07                      fi_fabric(3)
Impressum