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 similar to an RC QP, 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>