fabric: Replace max_tag_value with mem_tag_format

The maximum tag value allows a provider to indicate the largest tag
that they can support.  Rather than reporting this, use a tag format
instead.  The advantage of a tag format allows the provider and
app to exchange information on not only the size of the tag, but
the general usage of it.  If a tag is used to convey fields of data,
rather than simply individual bits, then a provider may be able
to optimize its matching algorithm.  For example, each field can
represent a separate queue, which would allow for parallel searches,
plus reduce the list of waiting tags to check.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
include: static inline for av lookup

Static inline function for av lookup was missing.

Signed-off-by: Sayantan Sur <sayantan.sur@intel.com>
Merge pull request #83 from sayantansur/av-lookup-fix

include: static inline for av lookup
Merge pull request #84 from shefty/master

fabric: Replace max_tag_value with mem_tag_format
man: Add missing fi_version.3 man page

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

man: Add missing fi_version.3 man page
fabric: Remove unused code rom fi_prov.h

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
fabric: Improve EQ interfaces

Separate the EQ interfaces into control and data EQs.  Control
EQs will be used to report control operations - CM and AV events,
memory registration completions, and other registered events.
Data EQs will be used to report completions of data transfer
operations.

Rename the data EQ as a CQ (aligns better with existing APIs).
Simplify the APIs and data structures for EQs and CQs.  CQs
will become domain level objects.  EQs are fabric level objects.

These changes are needed to clarify when a domain EQ versus
a fabric EQ should be used, and to allow the provider to
distinguish between the two.

As part of this update, include a fix for the verbs provider
where completions may be lost when an error occurs.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
fabric: fix the prototype of fi_tsearch

"Src_addr" should be an input/output parameter, and "src_addrlen"
is no longer needed.

Signed-off-by: Jianxin Xiong <jianxin.xiong@intel.com>
prov/psm: check flags and set src_addr in fi_tsearch

Signed-off-by: Jianxin Xiong <jianxin.xiong@intel.com>
Merge pull request #90 from shefty/master

Separate EQ class into control and data EQ classes
Merge pull request #91 from j-xiong/master

fabric: fix the prototype of fi_tsearch
prov/psm: fix a few FIXME's related to the EQ separation

Signed-off-by: Jianxin Xiong <jianxin.xiong@intel.com>
prov/psm: make the two event creation functions consistent

Both can take format instead of cq as the first parameter.

Signed-off-by: Jianxin Xiong <jianxin.xiong@intel.com>
Merge pull request #93 from j-xiong/master

prov/psm: post EQ separation cleanup
fabric: Remove data_flow_cnt EP attribute

There's no useful definition for data flow.  Remove it from the
API.  It can be added later if needed.

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

fabric: Remove data_flow_cnt EP attribute
fabric: Remove fi_mr_unreg

Use standard fi_close call directly.

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

fabric: Remove fi_mr_unreg
fabric: Eliminate unnecessary endpoint options

Now that we have an endpoint attribute structure, it can be used
to configure portions of an endpoint.  Remove duplication endpoint
options used with getopt/setopt.

Cleanup the man pages to eliminate left-over data flow documentation.

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