On Wed, Jan 30, 2019 at 06:21:23PM +0100, bmt@xxxxxxxxxxxxxx wrote: > From: Bernard Metzler <bmt@xxxxxxxxxxxxxx> > > This patch set contributes a new version of the SoftiWarp > driver, as originally introduced to the list Oct 6th, 2017. > SoftiWarp (siw) implements the iWarp RDMA protocol over > kernel TCP sockets. The driver integrates with the > linux-rdma framework. > > For this patch series, we aimed at fixing the main > obstacles, which prevented siw acceptance in the past: > > 1. siw now uses the recently extended rdma netlink protocol > for adding and removing siw devices. It became the > only way of managing siw devices. > > 2. The driver integrates with the currently reviewed > RDMA/IWPM patch series on introducing no port mapping > requirements. These patches as provided by Steve Wise > are a pre-requisit to run siw in an environment with > active iwpmd. > > The code has the following known limitations: > > 1. Only IPv4 addresses are supported / no IPv6 support. > > 2. All previously flexible module parameters are translated > into const values as defined in siw_main.c. We propose > another extension of the netlink protocol to make those > driver parameters dynamically settable. Ideally, we would > distinguish between link specific and connection specific > parameters. > > Currently, we would like to see the following parameters > settable: > o MPA peer-to-peer mode (boolean on/off) > o MPA CRC (boolean on/off) > o MPA CRC negotiation mode: accept different CRC setting > from peer (boolean on/off) > o TCP_NODELAY to control Nagle settings of TCP socket > (boolean on/off) > o MPA version (0, 1 or 2) > o Zerocopy to let TCP transmit out of application > buffers wr/o copying data (boolean on/off) > o GSO to select Generic Segementation Offload for > larger frames (one frame may span 1 .. n Ethernet > frames, if advertised by TCP socket) > > In principle, all of those parameters could be controlled > per connection. At least, dynamically setting those per > device is highly desirable. Please let's agree on the > most clean solution for that. > > We maintain a snapshot of the current code at > https://github.com/zrlio/softiwarp-for-linux-rdma.git > within branch 'siw-for-rdma-next-nvme-5.0'. > This branch is based on the rdma-next tree and additionally > includes the latest netlink and portmapper patches from > Steve Wise as well as the latest nvme-5.0 code changes from > git://git.infradead.org/nvme.git. We tested siw with > NVMeF host and target applications and therefor merged > with latest nvme development. > > The matching siw user library is maintained at > https://github.com/zrlio/softiwarp-user-for-linux-rdma.git. > It is based on rdma-core, and extended with Steve's patches > to both rdma netlink and portmapper. The relevant branch > name is 'siw-for-rdma-next'. This needs to be sent as a PR to rdma-core - I don't want to merge drivers that don't have a ready to merge user space as well. Jason