From patchwork Tue Jan 29 21:33:35 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Steve Wise X-Patchwork-Id: 10787261 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 0D620922 for ; Tue, 29 Jan 2019 21:40:06 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id F387A2D295 for ; Tue, 29 Jan 2019 21:40:05 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id F1E8C2D2F2; Tue, 29 Jan 2019 21:40:05 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 5D0F42D2A4 for ; Tue, 29 Jan 2019 21:40:05 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727630AbfA2VkF (ORCPT ); Tue, 29 Jan 2019 16:40:05 -0500 Received: from opengridcomputing.com ([72.48.214.68]:39702 "EHLO smtp.opengridcomputing.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727320AbfA2VkF (ORCPT ); Tue, 29 Jan 2019 16:40:05 -0500 Received: by smtp.opengridcomputing.com (Postfix, from userid 503) id 7289422787; Tue, 29 Jan 2019 15:40:04 -0600 (CST) Message-Id: From: Steve Wise Date: Tue, 29 Jan 2019 13:33:35 -0800 Subject: [PATCH v2 rdma-next 0/3] IWPM support for no port mapping To: dledford@redhat.com, jgg@mellanox.com Cc: linux-rdma@vger.kernel.org, BMT@zurich.ibm.com, shiraz.saleem@intel.com, tatyana.e.nikolova@intel.com Sender: linux-rdma-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP A soft iwarp driver that uses the host TCP stack via a kernel mode socket does not need port mapping. In fact, if the port map daemon, iwpmd, is running, then iwpmd must not try and create/bind a socket to the actual port for a soft iwarp connection, since the driver already has that socket bound. Yet if the soft iwarp driver wants to interoperate with hard iwarp devices that -are- using port mapping, then the soft iwarp driver's mappings still need to be maintained and advertised by the iwpm protocol. This patch enhances the rdma driver<->iwcm interface to allow an iwarp driver to specify that it does not want port mapping. The iwpm kernel<->iwpmd interface is also enhanced to pass up this information on map requests. Care is taken to interoperate with the current iwpmd version (ABI version 3) and only use the new NL attributes if iwpmd supports ABI version 4. The ABI version define has also been created in rdma_netlink.h so both kernel and user code can share it. The iwcm and iwpmd negotiate the ABI version to use with a new HELLO netlink message. This patch series can also be viewed at: https://github.com/larrystevenwise/linux/tree/topic/no-port-map-v2 The corresponding rdma-core changes are at: https://github.com/larrystevenwise/rdma-core/tree/topic/no-port-map-v1 https://www.spinics.net/lists/linux-rdma/msg74538.html Changes since v1: - rename iwpm_user_ulib_version to iwpm_ulib_version - remove unneeded local variable from iwpm_send_hello() - pr_warn_once() if the kernel detects a down-level iwpmd - don't use BIT() - add reviewed-by tag - rebased to top-of-tree rdma-for-next Changes since rfc: - removed the sysfs abi_version file, replaced with inband abi_version negotiation via a new HELLO message. Steve Wise (3): iw_cxgb*: kzalloc the iwcm verbs struct RDMA/IWPM: refactor the IWPM message attribute names RDMA/IWPM: Support no port mapping requirements drivers/infiniband/core/iwcm.c | 7 +- drivers/infiniband/core/iwpm_msg.c | 120 +++++++++++++++++++++++----- drivers/infiniband/core/iwpm_util.c | 48 ++++++++++- drivers/infiniband/core/iwpm_util.h | 12 +++ drivers/infiniband/hw/cxgb3/iwch_provider.c | 2 +- drivers/infiniband/hw/cxgb4/provider.c | 2 +- include/rdma/iw_cm.h | 13 +++ include/rdma/iw_portmap.h | 15 +++- include/uapi/rdma/rdma_netlink.h | 45 ++++++++++- 9 files changed, 235 insertions(+), 29 deletions(-)