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 module exports a sysfs attribute to publish the kernel ABI version for iwpmd. This patch series can also be viewed at: https://github.com/larrystevenwise/linux/tree/topic/no-port-map-rfc The corresponding rdma-core changes are at: https://github.com/larrystevenwise/rdma-core/tree/wip/no-port-map I will submit the rdma-core series soon for review. 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 | 4 +- drivers/infiniband/core/iwpm_msg.c | 64 ++++++++++++++++++++--------- drivers/infiniband/core/iwpm_util.c | 31 +++++++++++++- drivers/infiniband/core/iwpm_util.h | 3 ++ 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 | 5 ++- include/uapi/rdma/rdma_netlink.h | 38 +++++++++++++++-- 9 files changed, 134 insertions(+), 28 deletions(-) -- 1.8.3.1