From: Long Li <longli@xxxxxxxxxxxxx> SMB3 defines a protocol for transfer data over RDMA transport such as Infiniband, RoCE and iWARP. The prococol is published in [MS-SMBD] (https://msdn.microsoft.com/en-us/library/hh536346.aspx). This is the series 1 of two patch sets. This patch set implements the SMBD transport for doing RDMA send/recv. This patch set is the foundation of series 2 patch set, which implements sending upper layer RDMA read/write via memory registration. Long Li (37): [CIFS] SMBD: Add parsing for new rdma mount option [CIFS] SMBD: Add structure for SMBD transport [CIFS] SMBD: Add logging functions for debug [CIFS] SMBD: Define per-channel SMBD transport parameters and default values [CIFS] SMBD: Implement API for upper layer to create SMBD transport and establish RDMA connection [CIFS] SMBD: Add definition and cache for SMBD response [CIFS] SMBD: Implement receive buffer for handling SMBD response [CIFS] SMBD: Define packet format for SMBD data transfer message [CIFS] SMBD: Add SMBD request and cache [CIFS] SMBD: Introduce wait queue when sending SMBD request [CIFS] SMBD: Post a receive request [CIFS] SMBD: Handle send completion from CQ [CIFS] SMBD: Implement SMBD protocol negotiation [CIFS] SMBD: Post a SMBD data transfer message with page payload [CIFS] SMBD: Post a SMBD data transfer message with data payload [CIFS] SMBD: Post a SMBD message with no payload [CIFS] SMBD: Track status for transport [CIFS] SMBD: Implement API for upper layer to send data [CIFS] SMBD: Manage credits on SMBD client and server [CIFS] SMBD: Implement reassembly queue for receiving data [CIFS] SMBD: Implement API for upper layer to receive data [CIFS] SMBD: Implement API for upper layer to receive data to page [CIFS] SMBD: Implement API for upper layer to reconnect transport [CIFS] SMBD: Support for SMBD keep alive protocol [CIFS] SMBD: Support SMBD idle connection timer [CIFS] SMBD: Send an immediate packet when it's needed [CIFS] SMBD: Destroy transport when RDMA channel is disconnected [CIFS] SMBD: Implement API for upper layer to destroy the transport [CIFS] SMBD: Disconnect RDMA connection on QP errors [CIFS] SMBD: Add SMBDirect transport to Makefile [CIFS] Add SMBD transport to SMB session context [CIFS] Add SMBD debug couters to CIFS debug exports [CIFS] Connect to SMBD transport when specified in mount option [CIFS] Reconnect to SMBD transport when it's used [CIFS] Destroy SMBD transport on exit [CIFS] Read from SMBD transport when it's used [CIFS] Write to SMBD transport when it's used fs/cifs/Makefile | 2 +- fs/cifs/cifs_debug.c | 25 + fs/cifs/cifsfs.c | 2 + fs/cifs/cifsglob.h | 3 + fs/cifs/cifsrdma.c | 1833 ++++++++++++++++++++++++++++++++++++++++++++++++++ fs/cifs/cifsrdma.h | 243 +++++++ fs/cifs/connect.c | 56 +- fs/cifs/transport.c | 7 + 8 files changed, 2164 insertions(+), 7 deletions(-) create mode 100644 fs/cifs/cifsrdma.c create mode 100644 fs/cifs/cifsrdma.h -- 2.7.4 -- To unsubscribe from this list: send the line "unsubscribe linux-cifs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html