RDMA/core: Add XRC domain support
authorSean Hefty <sean.hefty@intel.com>
Tue, 24 May 2011 00:52:46 +0000 (17:52 -0700)
committerRoland Dreier <roland@purestorage.com>
Wed, 12 Oct 2011 17:32:26 +0000 (10:32 -0700)
commit59991f94eb32e954aa767f659eb642461e9e8b37
treedd107c1ce5faf54a4561b7e5349eed102741772b
parent976d167615b64e14bc1491ca51d424e2ba9a5e84
RDMA/core: Add XRC domain support

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).

A few new concepts are introduced to support this.  This patch adds:

 - A new device capability flag, IB_DEVICE_XRC, which low-level
   drivers set to indicate that a device supports XRC.
 - A new object type, XRC domains (struct ib_xrcd), and new verbs
   ib_alloc_xrcd()/ib_dealloc_xrcd().  XRCDs are used to limit which
   XRC SRQs an incoming message can target.

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