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 -- 1.8.3.1