Refactor Messenger class family.

In preparation for XioMessenger and other new transports,
reorganize Messenger class family to remove SimpleMessenger
details the interface.

This change moves Connection to its own header, and moves Pipe
details to a new PipeConnection descdendant class, among other
changes.

Signed-off-by: Matt Benjamin <matt@linuxbox.com>
msgr: move PipeConnection out of Connection.h; make anon

Remove last reference to PipeConnection outside of SimpleeMessenger by
creating a create_anon_connection() method for Messenger.

Signed-off-by: Sage Weil <sage@inktank.com>
msg: factor policy handling out of SimpleMessenger

Signed-off-by: Sage Weil <sage@inktank.com>
Ceph Accelio/RDMA Transport (XioMessenger).

XioMessenger implements a Ceph Messenger provider for Accelio,
a high-performance messaging transport by Mellanox.  Current
Accelio is layered on ibverbs, and supports Infiniband, ROCE,
and other RDMA transports.  Future Accelio verions will support
alternative transports (including TCP), and flexible transport
selection.

Signed-off-by: Matt Benjamin <matt@linuxbox.com>
common: add dout_format

I don't want to have to rewrite a bunch of
c style debugging printf statements as the corresponding c++ stuff.

Signed-off-by: Marcus Watts <mdw@cohortfs.com>
Signed-off-by: Matt Benjamin <matt@linuxbox.com>
msg: Add GENERIC entity names.

Signed-off-by: Matt Benjamin <matt@linuxbox.com>
Revert "msg: Add GENERIC entity names."

This reverts commit 73dabc51d3d3d5173d9051c5d152a5257a312fd8.
Forward add() in RefCountedObject.

Signed-off-by: Matt Benjamin <matt@linuxbox.com>
Permit AuthNoneAuthorizeHandler empty authorizer.

This removed an unexpected fault using XioMessenger for
Mon traffic, before Firefly merge.

Signed-off-by: Matt Benjamin <matt@linuxbox.com>
Add MDataPing.h

Signed-off-by: Matt Benjamin <matt@linuxbox.com>
Add Xio buffer raw extensions.

Signed-off-by: Matt Benjamin <matt@linuxbox.com>
Add SUBSYS xio to config_opts.h.

Signed-off-by: Matt Benjamin <matt@linuxbox.com>
XioMessenger adjustments to Message base class.

Signed-off-by: Matt Benjamin <matt@linuxbox.com>
Accelio Autotools glue.

Add Accelio to build process with --enable-xio is provided.

Signed-off-by: Matt Benjamin <matt@linuxbox.com>
Accelio Test Programs.

Provides simple_client/simple_server and xio_client/xio_server
for standalone Messenger testing.

Signed-off-by: Matt Benjamin <matt@linuxbox.com>
no generic
Accelio in MonClient.

Permit RadosClient to conditionally use Accelio (--xio)
when communicating with the Monitors.

Signed-off-by: Matt Benjamin <matt@linuxbox.com>
Accelio in Objecter.

Permit RadosClient to conditionally use Accelio (--xio)
when communicating with OSDs.

Signed-off-by: Matt Benjamin <matt@linuxbox.com>
New Completion Path.

This change pulls up Marcus' new XioCompletion logic, with
further cleanups in the same direction.  With this change, the
message completion path no longer requires special claim behavior,
and we may wish to remove the claim method.

A cosmetic change is XioCompletionHook::cleanup_xio() is renamed
to release_msgs().  While doing this, go further, and revert the
change to hide XioConnection and XioCompletionHook from the
release thread, and instead destroy the entire msg sequence there,
rather than one xio_msg at a time.

Signed-off-by: Matt Benjamin <matt@linuxbox.com>

Conflicts:
	src/msg/XioPortal.h
Fix up xiopool to not use malloc at all, also fix up noreg pool
initialization to just use "generic" power of 2 sizes and
not look like fortran.

Signed-off-by: Marcus Watts <mdw@cohortfs.com>
Signed-off-by: Matt Benjamin <matt@linuxbox.com>