]> git.openfabrics.org - ~shefty/libibverbs.git/commit
libibverbs: Add support for XRC QPs
authorSean Hefty <sean.hefty@intel.com>
Mon, 17 Sep 2012 23:00:12 +0000 (16:00 -0700)
committerSean Hefty <sean.hefty@intel.com>
Tue, 18 Sep 2012 04:26:27 +0000 (21:26 -0700)
commit1827739d13302a2a03fb445fa0984a447ad343c4
treef41ea5f9d30f07ef1eebc93e4a7a6eef484c20cf
parent4533085cc46f8b356d9f1ade0e737acfe744471b
libibverbs: Add support for XRC QPs

XRC queue pairs: xrc defines two new types of QPs.  The
initiator, or send-side, xrc qp behaves similar to a send-
only RC qp.  xrc send qp's are managed through the existing
QP functions.  The send_wr structure is extended in a back-
wards compatible way to support posting sends on a send xrc
qp, which require specifying the remote xrc srq.

The target, or receive-side, xrc qp behaves differently
than other implemented qp's.  A recv xrc qp can be created,
modified, and destroyed like other qp's through the existing
calls.  The qp_init_attr structure is extended for xrc qp's.

Because xrc recv qp's are bound to an xrcd, rather than a pd,
it is intended to be used among multiple processes.  Any process
with access to an xrcd may allocate and connect an xrc recv qp.
The actual xrc recv qp is allocated and managed by the kernel.
If the owning process explicit destroys the xrc recv qp, it is
destroyed.  However, if the xrc recv qp is left open when the
user process exits or closes its device, then the lifetime of
the xrc recv qp is bound with the lifetime of the xrcd.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
include/infiniband/driver.h
include/infiniband/kern-abi.h
include/infiniband/verbs.h
src/cmd.c
src/libibverbs.map
src/verbs.c