Sean Hefty [Wed, 25 Aug 2010 17:26:22 +0000 (10:26 -0700)]
ibacm: support distros with older versions of gcc
ibacm implements atomics using gcc intrinsics that were introduced
in gcc 4.1.2. If an older version of gcc is used to compile the
code, an error results. Check that the required atomic calls are
supported, and if not, provide our own implementation.
Sean Hefty [Sat, 24 Jul 2010 00:12:24 +0000 (17:12 -0700)]
ibacm: change location of default configuration file
Move the default location of the configuration files from the
current directory to /etc/ibacm. Change ib_acme to create the
files in this location, and modify ibacm to use the files here
by default.
Sean Hefty [Sat, 8 May 2010 21:53:25 +0000 (14:53 -0700)]
ibacm: wait for SA query to finish before sending reply
When using the SA for route resolution, we need to delay sending
back the client response until SA resolution is complete. If
we cache an ACM address for resolution, but we are not the target
of the resolution, do not respond to queued client requests.
Sean Hefty [Wed, 5 May 2010 18:38:39 +0000 (11:38 -0700)]
ibacm: fix log file usage
The ibacm service inserts a space into the log file name. Remove it.
Flush log file entries to disk, since the file is never closed, to avoid
losing entries. Finally, set the default to write the log file to disk,
rather than the stdout.
Sean Hefty [Mon, 3 May 2010 21:21:10 +0000 (14:21 -0700)]
ib/acm: supporting querying the SA for routing data
To support complex routing topologies, we add the ability to
query the SA for path record data when resolving IB routing data.
Address resolution still relies on the ACM protocol, but route
resolution can select between the ACM protocol and SA queries.
Sean Hefty [Thu, 22 Apr 2010 17:16:04 +0000 (10:16 -0700)]
ib/acm: add state tracking
To support alternate address and route resolution protocols,
add state tracking to destinations. This will allow for the
completion of address resolution separate from route
resolution.
As part of this change, we add locking to destinations,
rather than relying on the endpoint locking.
Sean Hefty [Fri, 9 Apr 2010 18:48:10 +0000 (11:48 -0700)]
ibacm: resolve source address if not given
Allow the user to only provide the destination address into
ACM. If a source address is not given, resolve a usable
source address, and return it to the user.
Sean Hefty [Thu, 29 Oct 2009 21:02:22 +0000 (13:02 -0800)]
ibacm: rework socket interface messages
Rather than indicating the src/dst address type in the acm message
header, indicate the type in the acm_ep_addr structure directly.
This adds more flexibility and will permit additional acm_ep_addr
structures to be carried in a single message request or response.
Allow multiple addresses in a request or response message. This
is needed to support a wider range of fabric topologies, where the
inbound and outbound paths may differ, plus support failover.
Add path records to the resolve message, rather than as a separate
operation. Return path records directly from the lookup.
Sean Hefty [Fri, 2 Oct 2009 19:48:47 +0000 (12:48 -0700)]
libacm: open devices once
Instead of opening IB devices on every call to ib_acm_convert_to_path,
open all devices during initialization and store the necessary data.
This optimizes multiple calls to ib_acm_convert_to_path to improve
connection setup times.