[v1,00/38] Introduce mlx5 vDPA driver
mbox series

Message ID 1579539790-3882-1-git-send-email-matan@mellanox.com
Headers show
Series
  • Introduce mlx5 vDPA driver
Related show

Message

Matan Azrad Jan. 20, 2020, 5:02 p.m. UTC
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