This patch set contributes the SoftiWarp driver rebased for Kernel 5.2-rc1. SoftiWarp (siw) implements the iWarp RDMA protocol over kernel TCP sockets. The driver integrates with the linux-rdma framework. With this new driver version, the following things where changed, compared to the v8 RFC of siw: o Rebased to 5.2-rc1 o All IDR code got removed. o Both MR and QP deallocation verbs now synchronously free the resources referenced by the RDMA mid-layer. o IPv6 support was added. o For compatibility with Chelsio iWarp hardware, the RX path was slightly reworked. It now allows packet intersection between tagged and untagged RDMAP operations. While not a defined behavior as of IETF RFC 5040/5041, some RDMA hardware may intersect an ongoing outbound (large) tagged message, such as an multisegment RDMA Read Response with sending an untagged message, such as an RDMA Send frame. This behavior was only detected in an NVMeF setup, where siw was used at target side, and RDMA hardware at client side (during file write). siw now implements two input paths for tagged and untagged messages each, and allows the intersected placement of both messages. o The siw kernel abi file got renamed from siw_user.h to siw-abi.h. Many thanks for reviewing and testing the driver, especially to Steve, Leon, Jason, Doug, Olga, Dennis, Gal. You all helped to significantly improve the siw driver over the last year. It is very much appreciated. Many thanks! Bernard. Bernard Metzler (12): iWarp wire packet format SIW main include file SIW network and RDMA core interface SIW connection management SIW application interface SIW application buffer management SIW queue pair methods SIW transmit path SIW receive path SIW completion queue methods SIW debugging SIW addition to kernel build environment MAINTAINERS | 7 + drivers/infiniband/Kconfig | 1 + drivers/infiniband/sw/Makefile | 1 + drivers/infiniband/sw/siw/Kconfig | 17 + drivers/infiniband/sw/siw/Makefile | 12 + drivers/infiniband/sw/siw/iwarp.h | 380 ++++ drivers/infiniband/sw/siw/siw.h | 720 ++++++++ drivers/infiniband/sw/siw/siw_cm.c | 2109 ++++++++++++++++++++++ drivers/infiniband/sw/siw/siw_cm.h | 133 ++ drivers/infiniband/sw/siw/siw_cq.c | 109 ++ drivers/infiniband/sw/siw/siw_debug.c | 102 ++ drivers/infiniband/sw/siw/siw_debug.h | 35 + drivers/infiniband/sw/siw/siw_main.c | 701 +++++++ drivers/infiniband/sw/siw/siw_mem.c | 462 +++++ drivers/infiniband/sw/siw/siw_mem.h | 74 + drivers/infiniband/sw/siw/siw_qp.c | 1345 ++++++++++++++ drivers/infiniband/sw/siw/siw_qp_rx.c | 1537 ++++++++++++++++ drivers/infiniband/sw/siw/siw_qp_tx.c | 1276 +++++++++++++ drivers/infiniband/sw/siw/siw_verbs.c | 1778 ++++++++++++++++++ drivers/infiniband/sw/siw/siw_verbs.h | 102 ++ include/uapi/rdma/rdma_user_ioctl_cmds.h | 1 + include/uapi/rdma/siw-abi.h | 186 ++ 22 files changed, 11088 insertions(+) create mode 100644 drivers/infiniband/sw/siw/Kconfig create mode 100644 drivers/infiniband/sw/siw/Makefile create mode 100644 drivers/infiniband/sw/siw/iwarp.h create mode 100644 drivers/infiniband/sw/siw/siw.h create mode 100644 drivers/infiniband/sw/siw/siw_cm.c create mode 100644 drivers/infiniband/sw/siw/siw_cm.h create mode 100644 drivers/infiniband/sw/siw/siw_cq.c create mode 100644 drivers/infiniband/sw/siw/siw_debug.c create mode 100644 drivers/infiniband/sw/siw/siw_debug.h create mode 100644 drivers/infiniband/sw/siw/siw_main.c create mode 100644 drivers/infiniband/sw/siw/siw_mem.c create mode 100644 drivers/infiniband/sw/siw/siw_mem.h create mode 100644 drivers/infiniband/sw/siw/siw_qp.c create mode 100644 drivers/infiniband/sw/siw/siw_qp_rx.c create mode 100644 drivers/infiniband/sw/siw/siw_qp_tx.c create mode 100644 drivers/infiniband/sw/siw/siw_verbs.c create mode 100644 drivers/infiniband/sw/siw/siw_verbs.h create mode 100644 include/uapi/rdma/siw-abi.h -- 2.17.2