prov/ibverbs: Add stub for fi_cancel() as ibv_msg_ep_cancel()

Signed-off-by: stan smith <stan.smith@intel.com>
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
Makefile.am: remove non-existent file from EXTRA_DIST

Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
fabric: Fix struct fi_poll name to struct fid_poll

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
prov/sockets: Add sockets provider framework

Create a sockets based provider.  This will allow us to implement
the APIs over any network, so that apps can test that they map
well to their needs.  It can be used for development and
debugging, without requiring the use of specialized hardware.

The provider is not intended to be used for performance.

Provide an initial framework.  Subsequent patches will expand
on the implementation.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
fabric/man: Document that an fi_info may only be used once

A single struct fi_info can only be used to allocate a single
endpoint.  The limitation is a result of providers being able to
use the data field to pass data from the fi_getinfo call to
the open endpoint call.  This capability is itself an optimization
made available to the provider, in order to avoid duplicate
memory allocations or computations.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
fabric: Rename mem_desc_size of mr_key_size

Rename to better match with rest of API and document value.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
prov/psm: Add psmx.h to distribution

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
fabric: Change FI_BLOCK from a per op call to an object property

Allowing FI_BLOCK on a single memory registration or AV insert call
results in undesirable complexity in the providers.  Instead, allow
the app to specify whether all memory registration or AV insertion
calls should operate synchronously or asynchronously.

This behavior is less flexible than specifying synchronous
behavior on a call by call basis, but matches better to expected
application usage and simplifies things greatly for the providers.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
fabric/man: Man page cleanups

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
prov/sockets: Add counter framework

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
prov/sockets: Add AV framework

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
prov/psm: Remove unneeded code and 'reverse' binding support

The AV update left code in av bind commented out for more discussion
on whether it should be kept or added.  The question is whether a
provider should implement bind(av, ep) in addition to bind(ep, av).
Rather than requiring all providers to support bind being called
with the parameters in any order, only support those calls defined
by the man pages.

It is safe to remove the commented code.  Remove similar reverse
binding code as well.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
fabric: Remove FI_AV address format

Format is not anticipated to be used.  Removed for now.
It can be added back later if needed.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
man/fi_av: Document that map_addr is ignored if name is NULL

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
fabric: Simplify fi_ops::bind call

Eliminate the fi_resource structure and allow the user to
provide the fid and flags directly.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
fabric: Remove op size field in favor of global version

Remove the size fields from op structures.  Instead, have the
providers give a version when registering with libfabric.  This
reduces the size of the op structures and simplifies adding new
functions in the future.  Libfabric will check that the version
is supportable, and flag any registrations where an older
vendor library is mixed with a newer version of libfabric.

For internal providers, this is a non-issue.  For external
providers, it requires re-compiling the provider libraries
whenever a minor release update occurs to libfabric.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
fabric: Remove compatibility size from struct fid

The libfabric and provider libraries will be kept in sync using
a simple version provided during registration.  The size field
is not needed.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
fabric: Remove size field from struct fi_info

The size field is not guaranteed to work for forward
compatibility.  Remove and rely on using standard library
versioning mechanisms for now.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
prov/verbs: Use correct return code for unsupported flags

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
prov/psm: add option to bypass PSM version check.

Signed-off-by: Jianxin Xiong <jianxin.xiong@intel.com>