sif: XRC: XRC support and PSIF 2.1 limitation #3521
This commit addresses the issue of XRC support (Orabug:
23044600).
Changes include
XRCTGT QP not to allocate SQ
Introduced get_sq/rq function to check XRC cases
(XRC INI/TGT QP has no RQ, XRC TGT QP has no SQ & RQ).
Overload "ib_qp_attr" attributes for modify XRC QP (RTS state)
requirement of PSIF
Rearranged/moved all QP helper functions to be in sif_qp.c/.h files
Note about user space support for XRC:
Since a XRCSRQ can be targeted by multiple XRCTGTQPs with same
XRC domain, simply getting a QP# in completion doesn't help.
MLX-hw overloads the "src_qp" with XRCSRQ# for completions.
For now, we limit the XRC association (not related to kernel context)
one user-context <--> one XRCTGTQP/XSRQ
Signed-off-by: Vinay Shaw <vinay.shaw@oracle.com>
Reviewed-by: Knut Omang <knut.omang@oracle.com>