From patchwork Mon Jan 20 17:02:32 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matan Azrad X-Patchwork-Id: 64944 Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id C7354A0526; Mon, 20 Jan 2020 18:04:17 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id F21C71BFBE; Mon, 20 Jan 2020 18:03:29 +0100 (CET) Received: from mellanox.co.il (mail-il-dmz.mellanox.com [193.47.165.129]) by dpdk.org (Postfix) with ESMTP id 1CF031BF95 for ; Mon, 20 Jan 2020 18:03:13 +0100 (CET) Received: from Internal Mail-Server by MTLPINE1 (envelope-from asafp@mellanox.com) with ESMTPS (AES256-SHA encrypted); 20 Jan 2020 19:03:12 +0200 Received: from pegasus07.mtr.labs.mlnx (pegasus07.mtr.labs.mlnx [10.210.16.112]) by labmailer.mlnx (8.13.8/8.13.8) with ESMTP id 00KH3BGJ024424; Mon, 20 Jan 2020 19:03:11 +0200 From: Matan Azrad To: dev@dpdk.org Cc: Maxime Coquelin , Thomas Monjalon Date: Mon, 20 Jan 2020 17:02:32 +0000 Message-Id: <1579539790-3882-1-git-send-email-matan@mellanox.com> X-Mailer: git-send-email 1.8.3.1 Subject: [dpdk-dev] [PATCH v1 00/38] Introduce mlx5 vDPA driver X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Steps: - Prepare net/mlx5 for code sharing. - Introduce new common lib for mlx5 devices. - Share code from net/mlx5 to common/mlx5. - Introduce vDPA driver for Mellanox devices. Matan Azrad (38): net/mlx5: separate DevX commands interface mlx5: prepare common library mlx5: share the mlx5 glue reference mlx5: share mlx5 PCI device detection mlx5: share mlx5 devices information drivers: introduce mlx5 vDPA driver common/mlx5: expose vDPA DevX capabilities vdpa/mlx5: support queues number operation vdpa/mlx5: support features get operations common/mlx5: glue null memory region allocation common/mlx5: support DevX indirect mkey creation common/mlx5: glue event queue query common/mlx5: glue event interrupt commands common/mlx5: glue UAR allocation common/mlx5: add DevX command to create CQ common/mlx5: glue VAR allocation common/mlx5: add DevX virtio emulation commands vdpa/mlx5: prepare memory regions mlx5: share CQ entry check vdpa/mlx5: prepare completion queues vdpa/mlx5: handle completions vdpa/mlx5: prepare virtio queues vdpa/mlx5: support stateless offloads common/mlx5: allow type configuration for DevX RQT common/mlx5: add TIR fields constants common/mlx5: add DevX command to modify RQT common/mlx5: get DevX capability for max RQT size vdpa/mlx5: add basic steering configurations vdpa/mlx5: support queue state operation vdpa/mlx5: map doorbell vdpa/mlx5: support live migration vdpa/mlx5: support close and config operations mlx5: skip probing according to the vDPA mode net/mlx5: separate Netlink commands interface net/mlx5: reduce Netlink commands dependencies mlx5: share Netlink commands common/mlx5: support ROCE disable through Netlink vdpa/mlx5: disable ROCE MAINTAINERS | 9 + config/common_base | 5 + doc/guides/rel_notes/release_20_02.rst | 5 + doc/guides/vdpadevs/features/mlx5.ini | 27 + doc/guides/vdpadevs/index.rst | 1 + doc/guides/vdpadevs/mlx5.rst | 89 + drivers/common/Makefile | 4 + drivers/common/meson.build | 2 +- drivers/common/mlx5/Makefile | 350 ++++ drivers/common/mlx5/meson.build | 210 +++ drivers/common/mlx5/mlx5_common.c | 332 ++++ drivers/common/mlx5/mlx5_common.h | 214 +++ drivers/common/mlx5/mlx5_common_utils.h | 20 + drivers/common/mlx5/mlx5_devx_cmds.c | 1363 ++++++++++++++ drivers/common/mlx5/mlx5_devx_cmds.h | 322 ++++ drivers/common/mlx5/mlx5_glue.c | 1296 ++++++++++++++ drivers/common/mlx5/mlx5_glue.h | 305 ++++ drivers/common/mlx5/mlx5_nl.c | 1699 ++++++++++++++++++ drivers/common/mlx5/mlx5_nl.h | 63 + drivers/common/mlx5/mlx5_prm.h | 2165 +++++++++++++++++++++++ drivers/common/mlx5/rte_common_mlx5_version.map | 48 + drivers/meson.build | 8 +- drivers/net/mlx5/Makefile | 307 +--- drivers/net/mlx5/meson.build | 257 +-- drivers/net/mlx5/mlx5.c | 196 +- drivers/net/mlx5/mlx5.h | 324 +--- drivers/net/mlx5/mlx5_defs.h | 8 - drivers/net/mlx5/mlx5_devx_cmds.c | 967 ---------- drivers/net/mlx5/mlx5_ethdev.c | 161 +- drivers/net/mlx5/mlx5_flow.c | 12 +- drivers/net/mlx5/mlx5_flow.h | 3 +- drivers/net/mlx5/mlx5_flow_dv.c | 12 +- drivers/net/mlx5/mlx5_flow_meter.c | 2 + drivers/net/mlx5/mlx5_flow_verbs.c | 7 +- drivers/net/mlx5/mlx5_glue.c | 1150 ------------ drivers/net/mlx5/mlx5_glue.h | 264 --- drivers/net/mlx5/mlx5_mac.c | 16 +- drivers/net/mlx5/mlx5_mr.c | 3 +- drivers/net/mlx5/mlx5_nl.c | 1402 --------------- drivers/net/mlx5/mlx5_prm.h | 1883 -------------------- drivers/net/mlx5/mlx5_rss.c | 2 +- drivers/net/mlx5/mlx5_rxmode.c | 12 +- drivers/net/mlx5/mlx5_rxq.c | 7 +- drivers/net/mlx5/mlx5_rxtx.c | 7 +- drivers/net/mlx5/mlx5_rxtx.h | 46 +- drivers/net/mlx5/mlx5_rxtx_vec.c | 5 +- drivers/net/mlx5/mlx5_rxtx_vec.h | 3 +- drivers/net/mlx5/mlx5_rxtx_vec_altivec.h | 5 +- drivers/net/mlx5/mlx5_rxtx_vec_neon.h | 5 +- drivers/net/mlx5/mlx5_rxtx_vec_sse.h | 5 +- drivers/net/mlx5/mlx5_stats.c | 5 +- drivers/net/mlx5/mlx5_txq.c | 7 +- drivers/net/mlx5/mlx5_utils.h | 79 +- drivers/net/mlx5/mlx5_vlan.c | 137 +- drivers/vdpa/Makefile | 2 + drivers/vdpa/meson.build | 3 +- drivers/vdpa/mlx5/Makefile | 43 + drivers/vdpa/mlx5/meson.build | 34 + drivers/vdpa/mlx5/mlx5_vdpa.c | 539 ++++++ drivers/vdpa/mlx5/mlx5_vdpa.h | 294 +++ drivers/vdpa/mlx5/mlx5_vdpa_cq.c | 283 +++ drivers/vdpa/mlx5/mlx5_vdpa_lm.c | 132 ++ drivers/vdpa/mlx5/mlx5_vdpa_mem.c | 351 ++++ drivers/vdpa/mlx5/mlx5_vdpa_steer.c | 288 +++ drivers/vdpa/mlx5/mlx5_vdpa_utils.h | 20 + drivers/vdpa/mlx5/mlx5_vdpa_virtq.c | 397 +++++ drivers/vdpa/mlx5/rte_pmd_mlx5_vdpa_version.map | 3 + mk/rte.app.mk | 14 +- 68 files changed, 11239 insertions(+), 7000 deletions(-) create mode 100644 doc/guides/vdpadevs/features/mlx5.ini create mode 100644 doc/guides/vdpadevs/mlx5.rst create mode 100644 drivers/common/mlx5/Makefile create mode 100644 drivers/common/mlx5/meson.build create mode 100644 drivers/common/mlx5/mlx5_common.c create mode 100644 drivers/common/mlx5/mlx5_common.h create mode 100644 drivers/common/mlx5/mlx5_common_utils.h create mode 100644 drivers/common/mlx5/mlx5_devx_cmds.c create mode 100644 drivers/common/mlx5/mlx5_devx_cmds.h create mode 100644 drivers/common/mlx5/mlx5_glue.c create mode 100644 drivers/common/mlx5/mlx5_glue.h create mode 100644 drivers/common/mlx5/mlx5_nl.c create mode 100644 drivers/common/mlx5/mlx5_nl.h create mode 100644 drivers/common/mlx5/mlx5_prm.h create mode 100644 drivers/common/mlx5/rte_common_mlx5_version.map delete mode 100644 drivers/net/mlx5/mlx5_devx_cmds.c delete mode 100644 drivers/net/mlx5/mlx5_glue.c delete mode 100644 drivers/net/mlx5/mlx5_glue.h delete mode 100644 drivers/net/mlx5/mlx5_nl.c delete mode 100644 drivers/net/mlx5/mlx5_prm.h create mode 100644 drivers/vdpa/mlx5/Makefile create mode 100644 drivers/vdpa/mlx5/meson.build create mode 100644 drivers/vdpa/mlx5/mlx5_vdpa.c create mode 100644 drivers/vdpa/mlx5/mlx5_vdpa.h create mode 100644 drivers/vdpa/mlx5/mlx5_vdpa_cq.c create mode 100644 drivers/vdpa/mlx5/mlx5_vdpa_lm.c create mode 100644 drivers/vdpa/mlx5/mlx5_vdpa_mem.c create mode 100644 drivers/vdpa/mlx5/mlx5_vdpa_steer.c create mode 100644 drivers/vdpa/mlx5/mlx5_vdpa_utils.h create mode 100644 drivers/vdpa/mlx5/mlx5_vdpa_virtq.c create mode 100644 drivers/vdpa/mlx5/rte_pmd_mlx5_vdpa_version.map