-----"Dennis Dalessandro" <dennis.dalessandro@xxxxxxxxx> wrote: ----- >To: bmt@xxxxxxxxxxxxxx, linux-rdma@xxxxxxxxxxxxxxx >From: "Dennis Dalessandro" <dennis.dalessandro@xxxxxxxxx> >Date: 01/30/2019 06:57PM >Subject: Re: [PATCH v4 00/13] SIW: Request for Comments > >On 1/30/2019 12:21 PM, 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://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_zrlio >_softiwarp-2Dfor-2Dlinux-2Drdma.git&d=DwICaQ&c=jf_iaSHvJObTbx-siA1ZOg >&r=2TaYXQ0T-r8ZO1PP1alNwU_QJcRRLfmYTAgd3QCvqSc&m=7ICg1VK6TratuVrcLMEX >5jrsvgP8SJgNbpkEJtuyHSc&s=uazaVPxlb69Q6XmFwTkfEkCAPz1P7OF2BkxK67ywX1Y >&e= >> 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://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_zrlio >_softiwarp-2Duser-2Dfor-2Dlinux-2Drdma.git&d=DwICaQ&c=jf_iaSHvJObTbx- >siA1ZOg&r=2TaYXQ0T-r8ZO1PP1alNwU_QJcRRLfmYTAgd3QCvqSc&m=7ICg1VK6Tratu >VrcLMEX5jrsvgP8SJgNbpkEJtuyHSc&s=t3URSplWVy22TgOGUGiJnD7O3YLQUK0pgM32 >-MW-_YY&e=. >> 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'. >> >> >> As always, we'd highly appreciate your code review. Thanks >> very much for your time. >> >> Bernard >> >> Bernard Metzler (13): >> iWarp wire packet format >> SIW main include file >> SIW network and RDMA core interface >> SIW object management >> 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 >> >> drivers/infiniband/Kconfig | 1 + >> drivers/infiniband/sw/Makefile | 1 + >> drivers/infiniband/sw/siw/Kconfig | 17 + >> drivers/infiniband/sw/siw/Makefile | 15 + >> drivers/infiniband/sw/siw/iwarp.h | 415 ++++ >> drivers/infiniband/sw/siw/siw.h | 805 ++++++++ >> drivers/infiniband/sw/siw/siw_ae.c | 120 ++ >> drivers/infiniband/sw/siw/siw_cm.c | 2185 >++++++++++++++++++++++ >> drivers/infiniband/sw/siw/siw_cm.h | 156 ++ >> drivers/infiniband/sw/siw/siw_cq.c | 150 ++ >> drivers/infiniband/sw/siw/siw_debug.c | 467 +++++ >> drivers/infiniband/sw/siw/siw_debug.h | 87 + >> drivers/infiniband/sw/siw/siw_main.c | 846 +++++++++ >> drivers/infiniband/sw/siw/siw_mem.c | 243 +++ >> drivers/infiniband/sw/siw/siw_obj.c | 338 ++++ >> drivers/infiniband/sw/siw/siw_obj.h | 200 ++ >> drivers/infiniband/sw/siw/siw_qp.c | 1473 +++++++++++++++ >> drivers/infiniband/sw/siw/siw_qp_rx.c | 1533 +++++++++++++++ >> drivers/infiniband/sw/siw/siw_qp_tx.c | 1340 +++++++++++++ >> drivers/infiniband/sw/siw/siw_verbs.c | 1888 >+++++++++++++++++++ >> drivers/infiniband/sw/siw/siw_verbs.h | 119 ++ >> include/uapi/rdma/rdma_user_ioctl_cmds.h | 1 + >> include/uapi/rdma/siw_user.h | 216 +++ >> 23 files changed, 12616 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_ae.c >> 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_obj.c >> create mode 100644 drivers/infiniband/sw/siw/siw_obj.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_user.h > >Don't forget a MAINTAINERS file update. > >- Absolutely! Thanks for pointing out. Bernard