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

NAME

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

SYNOPSIS

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

ARGUMENTS

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

DESCRIPTION

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

NOTES

95       The following resources are  associated  with  fabric  domains:  access
96       domains, passive endpoints, and CM event queues.
97

FABRIC ATTRIBUTES

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

RETURN VALUE

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

ERRORS

SEE ALSO

158       fabric(7), fi_getinfo(3), fi_domain(3), fi_eq(3), fi_endpoint(3)
159

AUTHORS

161       OpenFabrics.
162
163
164
165Libfabric Programmer's Manual     2017-10-18                      fi_fabric(3)
Impressum