docs: Remove developer certificate of origin

OpenFabrics has developer contribution agreements as
part of their bylaws.  Remove the copied certificate that
was pulled in from the Linux kernel and instead reference
the OFA bylaws.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
fabric: Remove NONCOHERENT mode bit

There are no known providers that will require this bit.  Remove
it.  It can be added back if a provider ever requires it.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
fabric: Remove AV sync call

AV sync was originaly defined such that an app could insert
several addresses into an AV, then call sync in order to
finish the request.  However, the AV interfaces have evolved
such that the insert call itself is asynchronous, which
eliminates the need for AV sync.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
fabric: Remove EP sync call

Support for EP sync may be difficult for providers to implement,
as it requires providers to track all operations that have been
submitted by an app prior to the sync call being made.  For calls
that do not generate completion entries, there's no clear way for
the provider to know when the call has completed.

The use of a counter doesn't even help, as the provider must be
able to distinguish between calls issued before sync was
invoked, versus calls issued after sync is called, which is
difficult to track when completion may occur out of order.
Out of order completions is common for RDM endpoints and networks
that make use of adaptive routing algorithms.

The problems become more pronounced if the app does something
deranged like call sync after every request.

So, we basically need to punt this up to the application, which
can do a much better job of tracking which requests need to be
completed and has other optimization techniques available, such
as directing completions to different counters.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
fabric: Remove sync call from base fid

Sync is no longer used by any sub-class.  Remove it.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
fabric/cq/eq: Change strerror buf parameter to char *

We're returning a string, so make the return parameter char *,
not void *.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
fabric: Define new shared transmit context object

Shared transmit contexts are currently exposed as struct fi_endpoint.
However, data transfer operations are not posted directely to a
shared tx context.  Instead, transfers are posted to the transport
level endpoints, as those are associated with AVs and CQs.

To avoid confusion, create a new fabric descriptor object for
shared transmit contexts.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
fabric: Add CQ count to domain attributes

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
fabric: Remove provider free/dup info calls

The framework itself should provide the implementation for
fi_freeinfo and fi_dupinfo.  The API does not require that
an app use an fi_info structure that has been returned from
fi_getinfo in any of the function calls.  This restricts a
provider from attempting to do anything fancy in the
fi_getinfo call.

We can simplify the provider interface by only allowing
the framework to implement the free/dup info calls.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
fabric: Remove unneeded len param from EQ/CQ readerr calls

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
fabric: Use object-specific bind calls in place of fi_bind

To increase ease of use and documentation, provide object
specific bind implementations, rather than using a generic
fi_bind routine.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
man: Fixup minor typos from markdown conversion

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
man/cq: Document lifespan of fi_cq_err_entry::err_data

The lifetime is documented in the header file as a comment,
but add this to the man page.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
man/getinfo: Clarify use of hints src/dest address

Document that hints.dest_addr is ignored on input to
fi_getinfo.  If FI_SOURCE flag is specified, document
that hints.src_addr is ignored.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
prov/verbs: Return timeout if sread times out

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
Merge pull request #329 from shefty/master

Big set of random updates
fabric: separate entry/class for scalable ep

The scalable endpoint is a different type of endpoint.

Scalable endpoints do not support any send/recv
operations. The application is required to create TX/RX
contexts off the scalable endpoint for communication.

Having a separate class and entrypoint for this type of
endpoint will help providers do a better job error-checking,
and simpler usage for apps.

Signed-off-by: Sayantan Sur <sayantan.sur@intel.com>
Merge pull request #340 from sayantansur/fi-class-sep

fabric.h: separate class for scalable endpoints
Updated nroff-generated man pages
fabric: create tx/rx ctx using scalable endpoints

This fixes some leftover issues in PR #340 that was
merged in c5a08e9.

The application creates a scalable endpoint, and must
use fid_sep in order to create the TX/RX contexts.

Also, include a separate fi_scalable_ep_bind() that
only documents binding an address vector to a scalable
endpoint.

Signed-off-by: Sayantan Sur <sayantan.sur@intel.com>