libopensmssa: Provide independent package for SSA opensm plugin

Define build package for libopensmssa under the plugin directory.
Links are provided from plugin/include to the base include
directory for code sharing.

The new autotool files are based on a combination of the existing
files and the librdmacm.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
Remove IN/OUT define usage

These are null defines.  const is a better choice and doesn't
result in eclipse underlying all of the source code in squiggly
orange lines.  :)

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
Replace gid2str call with direct call to inet_ntop. Store all GIDs in network order, which is more convenient. Reduce stack usage by decreasing the size of string buffers.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
Use ntoh/hton calls in place of complib routines.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
Remove master subdirectory

Use plugin directory.  Eventually, it may make sense to rename to
a core directory, but use plugin for now.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
Move ibssa_db.h to infiniband/ssa_db.h

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
Remove config file processing from SSA core

The SSA modules will share configuration file processing code.
Keep the current osm_pi_config.* processing source code as
reference for common config processing, but remove it from
the SSA core/plugin build.

Signed-of-by: Sean Hefty <sean.hefty@intel.com>
Migrate the SSA core/plugin to using the shared SSA code

The shared SSA code provides a generic framework for all SSA
nodes.  Move the plugin to use the shared framework and
update the framework to account for the features needed
by the core plugin.  Specifically, users of the shared
code have a chance to process all messages directed to a
specific service before generic code handling is invoked.

The core now uses umad, instead of the opensm vendor mad layer,
has the same threading structure as other SSA components,
and makes use of ssa logging functions.  The use of complib has
been replaced by dlist and tsearch.  The core layer itself
tries to join the SSA disribution tree, similar to other nodes.
This will be needed to support backup core nodes.

Note that the SSA framework still lacks configuration file
processing, so that ends up being removed from the plugin
until a framework has been constructed.  Needed configuration
items (location of log file) are hard-coded, similar to ibacm,
with configuration file processing to override those values.

The SSA framework generates join requests, but they do not
reach the SSA core.  There are several other areas identified
where missing functionality is needed.  The existing SSA
plugin code is left in the tree, but is no longer part of the
build for the plugin.  A follow on patch will remove those
files.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
Remove unused files

The common framework provides most of the functionality
that was in the 'ibssa*' files.  Remove unneeded files.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>