• Sean Hefty's avatar
    RDMA/core: Add XRC QPs · b42b63cf
    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).
    
    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: default avatarSean Hefty <sean.hefty@intel.com>
    Signed-off-by: default avatarRoland Dreier <roland@purestorage.com>
    b42b63cf
ib_verbs.h 60.8 KB