1ibacm(1)                             ibacm                            ibacm(1)
2
3
4

NAME

6       ibacm - address and route resolution services for InfiniBand.
7

SYNOPSIS

9       ibacm [-D] [-P] [-A addr_file] [-O option_file]
10

DESCRIPTION

12       The  IB  ACM implements and provides a framework for name, address, and
13       route (path) resolution services over InfiniBand.  It  is  intended  to
14       address connection setup scalability issues running MPI applications on
15       large clusters.  The IB ACM provides information needed to establish  a
16       connection, but does not implement the CM protocol.
17
18       A  primary  user  of  the ibacm service is the librdmacm library.  This
19       enables applications to make use of  the  ibacm  service  without  code
20       changes  or  needing to be aware that the service is in use.  librdmacm
21       versions 1.0.12 - 1.0.15 can invoke IB ACM services  when  built  using
22       the  --with-ib_acm  option.  Version 1.0.16 and newer of librdmacm will
23       automatically use the IB ACM if it is installed.  The IB  ACM  services
24       tie in under the rdma_resolve_addr, rdma_resolve_route, and rdma_getad‐
25       drinfo routines.  For maximum  benefit,  the  rdma_getaddrinfo  routine
26       should be used, however existing applications should still see signifi‐
27       cant connection scaling benefits using the calls available in librdmacm
28       1.0.11 and previous releases.
29
30       The  IB  ACM  is  focused on being scalable and efficient.  The current
31       implementation limits network traffic, SA interactions, and centralized
32       services.   ACM supports multiple resolution protocols in order to han‐
33       dle different fabric topologies.
34
35       The IB ACM package is comprised of two components:  the  ibacm  service
36       and  a test/configuration utility - ib_acme.  Both are userspace compo‐
37       nents and are available for Linux and Windows.  Additional details  are
38       given below.
39

OPTIONS

41       -D     run in daemon mode (default)
42
43       -P     run as standard process
44
45       -A addr_file
46              address configuration file
47
48       -O option_file
49              option configuration file
50

QUICK START GUIDE

52       1.  Prerequisites:  libibverbs and libibumad must be installed.  The IB
53       stack should be running with IPoIB configured.  These steps assume that
54       the user has administrative privileges.
55
56       2.  Install  the  IB  ACM  package.   This installs ibacm, ib_acme, and
57       init.d scripts.
58
59       3. Run 'ibacm' as administrator to start the ibacm daemon.
60
61       4. Optionally, run 'ib_acme -d <dest_ip> -v' to verify that  the  ibacm
62       service is running.
63
64       5.  Install  librdmacm, using the build option --with-ib_acm if needed.
65       This build option is not needed with librdmacm 1.0.17  or  newer.   The
66       librdmacm  will  automatically use the ibacm service.  On failures, the
67       librdmacm will fall back to normal resolution.
68
69       6. You can use ib_acme -P to gather  performance  statistics  from  the
70       local ibacm daemon to see if the service is working correctly.
71

NOTES

73       ib_acme:
74
75       The  ib_acme  program serves a dual role.  It acts as a utility to test
76       ibacm operation and help verify if the ibacm service and selected  pro‐
77       tocol  is  usable for a given cluster configuration.   Additionally, it
78       automatically generates ibacm configuration files  to  assist  with  or
79       eliminate manual setup.
80
81       ibacm configuration files:
82
83       The ibacm service relies on two configuration files.
84
85       The  ibacm_addr.cfg file contains name and address mappings for each IB
86       <device,  port,  pkey>   endpoint.    Although   the   names   in   the
87       ibacm_addr.cfg  file can be anything, ib_acme maps the host name and IP
88       addresses to the IB endpoints.  If the address file  cannot  be  found,
89       the ibacm service will attempt to create one using default values.
90
91       The  ibacm_opts.cfg file provides a set of configurable options for the
92       ibacm service, such as timeout, number of retries, logging level,  etc.
93       ib_acme generates the ibacm_opts.cfg file using static information.  If
94       an option file cannot be found, ibacm will use default values.
95
96       ibacm:
97
98       The ibacm service is responsible for resolving names and  addresses  to
99       InfiniBand  path  information and caching such data.  It should execute
100       with administrative privileges.
101
102       The ibacm implements a client interface  over  TCP  sockets,  which  is
103       abstracted  by  the  librdmacm library.  One or more back-end protocols
104       are used by the ibacm service to satisfy user requests.   Although  the
105       ibacm supports standard SA path record queries on the back-end, it also
106       supports a resolution protocol based on multicast traffic.  The  latter
107       is  not usable on all fabric topologies, specifically ones that may not
108       have reversible paths or fabrics using torus routing.  Users should use
109       the  ib_acme utility to verify that multicast protocol is usable before
110       running other applications.
111
112       Conceptually, the ibacm service implements an  ARP  like  protocol  and
113       either  uses  IB  multicast  records  to  construct path record data or
114       queries the SA directly, depending on the selected route protocol.   By
115       default, the ibacm services uses and caches SA path record queries.
116
117       Specifically, all IB endpoints join a number of multicast groups.  Mul‐
118       ticast groups differ based on rates, mtu, sl,  etc.,  and  are  priori‐
119       tized.   All participating endpoints must be able to communicate on the
120       lowest priority  multicast  group.   The  ibacm  assigns  one  or  more
121       names/addresses  to  each  IB  endpoint  using the ibacm_addr.cfg file.
122       Clients provide source and destination names or addresses as  input  to
123       the service, and receive as output path record data.
124
125       The service maps a client's source name/address to a local IB endpoint.
126       If a client does not provide a source address, then the  ibacm  service
127       will  select one based on the destination and local routing tables.  If
128       the destination name/address is not cached locally, it sends  a  multi‐
129       cast  request  out  on the lowest priority multicast group on the local
130       endpoint.  The request carries a list  of  multicast  groups  that  the
131       sender  can use.  The recipient of the request selects the highest pri‐
132       ority multicast group that it can use as well and returns that informa‐
133       tion  directly  to  the sender.  The request data is cached by all end‐
134       points that receive the multicast request message.  The source endpoint
135       also caches the response and uses the multicast group that was selected
136       to construct or obtain path record  data,  which  is  returned  to  the
137       client.
138
139       The  current  implementation  of  the  IB  ACM  has  several additional
140       restrictions:
141
142       - The ibacm is limited in its handling of dynamic changes.  ibacm  must
143       be stopped and restarted if a cluster is reconfigured.
144
145       -  Cached  data does not timed out and is only updated if a new resolu‐
146       tion request is received from a different QPN than a cached request.
147
148       - Support for IPv6 has not been verified.
149
150       - The number of addresses that can be assigned to a single endpoint  is
151       limited to 4.
152
153       -  The  number of multicast groups that an endpoint can support is lim‐
154       ited to 2.
155
156       The ibacm contains several internal caches.  These include  caches  for
157       GID and LID destination addresses.  These caches can be optionally pre‐
158       loaded. ibacm supports the OpenSM dump_pr plugin "full" PathRecord for‐
159       mat  which  is used to preload these caches.  The file format is speci‐
160       fied in the ibacm_opts.cfg file via  the  route_preload  setting  which
161       should  be  set to full_opensm_v1 for this file format.  Default format
162       is none which does not preload these caches.  See dump_pr.notes.txt  in
163       dump_pr  for more information on the full_opensm_v1 file format and how
164       to configure OpenSM to generate this file.
165
166       Additionally, the name, IPv4, and IPv6 caches can be  be  preloaded  by
167       using  the  addr_preload  option.   The  default is none which does not
168       preload these caches. To preload  these  caches,  set  this  option  to
169       acm_hosts and configure the addr_data_file appropriately.
170

SEE ALSO

172       ibacm(7), ib_acme(1), rdma_cm(7)
173
174
175
176ibacm                             2013-07-18                          ibacm(1)
Impressum