Add support for XRC QPs

Implement the XRC APIs for libmlx4.  Hook the XRC functions as part of
mlx4_init_context(), then make relevant changes on both control and
data path to work properly with XRC.

Main changes include using verbs_qp, verbs_srq, which are extendable
based as part of calling libibverbs command API (i.e. cmd.c), managing
an XRC SRQ table for mapping between mlx4_srq and srqn, differentiating
between IBV_QPT_XRC_SEND and IBV_QPT_XRC_RECV.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
Signed-off-by: Yishai Hadas <yishaih@mellanox.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
8 files changed