RDMA/core: Add XRC QPs
authorSean Hefty <sean.hefty@intel.com>
Tue, 24 May 2011 02:59:25 +0000 (19:59 -0700)
committerRoland Dreier <roland@purestorage.com>
Thu, 13 Oct 2011 16:16:19 +0000 (09:16 -0700)
commitb42b63cf0dde2af6eec462b2d6cca7d938702a28
treeabb1c06c6903bdc816b5a09a25ea3e4b2bda7842
parent418d51307d102e72e745031adb4f5ba0ddb646e2
RDMA/core: Add XRC QPs

XRC ("eXtended reliable connected") is an IB transport that provides
better scalability by allowing senders to specify which shared receive
queue (SRQ) should be used to receive a message, which essentially
allows one transport context (QP connection) to serve multiple
destinations (as long as they share an adapter, of course).

XRC communication is between an initiator (INI) QP and a target (TGT)
QP.  Target QPs are associated with SRQs through an XRCD.  An XRC TGT QP
behaves like a receive-only RD QP.  XRC INI QPs behave similarly to RC
QPs, except that work requests posted to an XRC INI QP must specify the
remote SRQ that is the target of the work request.

We define two new QP types for XRC, to distinguish between INI and TGT
QPs, and update the core layer to support XRC QPs.

This patch is derived from work by Jack Morgenstein
<jackm@dev.mellanox.co.il>

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
drivers/infiniband/core/verbs.c
include/rdma/ib_verbs.h