This patch series implements the xrc transport for the rdma_rxe driver. It is based on the current for-next branch of rdma-linux. The first two patches in the series do some cleanup which is helpful for this effort. The remaining patches implement the xrc functionality. There is a matching patch set for the user space rxe provider driver. The communications between these is accomplished without making an ABI change by taking advantage of the space freed up by a recent patch called "Remove redundant num_sge fields" which is a reprequisite for this patch series. The two patch sets have been tested with the pyverbs regression test suite with and without each set installed. This series enables 5 of the 6 xrc test cases in pyverbs. The ODP case does is currently skipped but should work once the ODP patch series is accepted. Signed-off-by: Bob Pearson <rpearsonhpe@xxxxxxxxx> --- v2 Rebased to current for-next Bob Pearson (13): RDMA/rxe: Replace START->FIRST, END->LAST RDMA/rxe: Move next_opcode() to rxe_opcode.c RDMA: Add xrc opcodes to ib_pack.h RDMA/rxe: Extend opcodes and headers to support xrc RDMA/rxe: Add xrc opcodes to next_opcode() RDMA/rxe: Implement open_xrcd and close_xrcd RDMA/rxe: Extend srq verbs to support xrcd RDMA/rxe: Extend rxe_qp.c to support xrc qps RDMA/rxe: Extend rxe_recv.c to support xrc RDMA/rxe: Extend rxe_comp.c to support xrc qps RDMA/rxe: Extend rxe_req.c to support xrc qps RDMA/rxe: Extend rxe_net.c to support xrc qps RDMA/rxe: Extend rxe_resp.c to support xrc qps drivers/infiniband/sw/rxe/rxe.c | 2 + drivers/infiniband/sw/rxe/rxe_av.c | 3 +- drivers/infiniband/sw/rxe/rxe_comp.c | 51 +- drivers/infiniband/sw/rxe/rxe_hdr.h | 41 +- drivers/infiniband/sw/rxe/rxe_loc.h | 13 +- drivers/infiniband/sw/rxe/rxe_mw.c | 14 +- drivers/infiniband/sw/rxe/rxe_net.c | 23 +- drivers/infiniband/sw/rxe/rxe_opcode.c | 766 +++++++++++++++++++++---- drivers/infiniband/sw/rxe/rxe_opcode.h | 9 +- drivers/infiniband/sw/rxe/rxe_param.h | 3 + drivers/infiniband/sw/rxe/rxe_pool.c | 8 + drivers/infiniband/sw/rxe/rxe_pool.h | 1 + drivers/infiniband/sw/rxe/rxe_qp.c | 308 ++++++---- drivers/infiniband/sw/rxe/rxe_recv.c | 79 ++- drivers/infiniband/sw/rxe/rxe_req.c | 204 +------ drivers/infiniband/sw/rxe/rxe_resp.c | 168 ++++-- drivers/infiniband/sw/rxe/rxe_srq.c | 131 +++-- drivers/infiniband/sw/rxe/rxe_verbs.c | 57 +- drivers/infiniband/sw/rxe/rxe_verbs.h | 20 +- include/rdma/ib_pack.h | 32 +- include/uapi/rdma/rdma_user_rxe.h | 4 +- 21 files changed, 1341 insertions(+), 596 deletions(-) base-commit: cbdae01d8b517b81ed271981395fee8ebd08ba7d -- 2.34.1