• Sean Hefty's avatar
    RDMA/core: Add XRC domain support · 59991f94
    Sean Hefty authored
    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: default avatarSean Hefty <sean.hefty@intel.com>
    Signed-off-by: default avatarRoland Dreier <roland@purestorage.com>
    59991f94
ib_verbs.h 60.3 KB