From: Michael Baum
> These patches add support to external Rx queues.
> External queue is a queue that is managed by a process external to PMD, but
> uses PMD process to generate its flow rules.
>
> For the hardware to allow the DPDK process to set rules for it, the process
> needs
> to use the same PD of the external process. In addition, the indexes of the
> queues in hardware are represented by 32-bit compared to the rte_flow indexes
> represented by 16-bit, so the processes need to share some mapping between
> the indexes.
>
> These patches allow the external process to provide devargs which enable
> importing its context and PD, instead of prepare new ones. In addition, an
> API is
> provided for mapping for the indexes of the queues.
>
> v2:
> - Rebase.
> - Add ABI exception for common/mlx5 library.
> - Correct DevX flag updating.
> - Improve explanations in doc and comments.
> - Remove teatpmd part.
>
Series-acked-by: Matan Azrad <ma...@nvidia.com>
> Michael Baum (6):
> common/mlx5: consider local functions as internal
> common/mlx5: glue device and PD importation
> common/mlx5: add remote PD and CTX support
> net/mlx5: optimize RxQ/TxQ control structure
> net/mlx5: add external RxQ mapping API
> net/mlx5: support queue/RSS action for external RxQ
>
> devtools/libabigail.abignore | 4 +
> doc/guides/nics/mlx5.rst | 1 +
> doc/guides/platform/mlx5.rst | 37 ++-
> doc/guides/rel_notes/release_22_03.rst | 1 +
> drivers/common/mlx5/linux/meson.build | 2 +
> drivers/common/mlx5/linux/mlx5_common_os.c | 196 ++++++++++++--
> drivers/common/mlx5/linux/mlx5_common_os.h | 7 +-
> drivers/common/mlx5/linux/mlx5_glue.c | 41 +++
> drivers/common/mlx5/linux/mlx5_glue.h | 4 +
> drivers/common/mlx5/mlx5_common.c | 64 ++++-
> drivers/common/mlx5/mlx5_common.h | 23 +-
> drivers/common/mlx5/version.map | 3 +
> drivers/common/mlx5/windows/mlx5_common_os.c | 37 ++-
> drivers/common/mlx5/windows/mlx5_common_os.h | 1 -
> drivers/net/mlx5/linux/mlx5_os.c | 18 ++
> drivers/net/mlx5/mlx5.c | 6 +
> drivers/net/mlx5/mlx5.h | 1 +
> drivers/net/mlx5/mlx5_defs.h | 3 +
> drivers/net/mlx5/mlx5_devx.c | 52 ++--
> drivers/net/mlx5/mlx5_ethdev.c | 18 +-
> drivers/net/mlx5/mlx5_flow.c | 43 ++--
> drivers/net/mlx5/mlx5_flow_dv.c | 14 +-
> drivers/net/mlx5/mlx5_rx.h | 49 +++-
> drivers/net/mlx5/mlx5_rxq.c | 258 +++++++++++++++++--
> drivers/net/mlx5/mlx5_trigger.c | 36 +--
> drivers/net/mlx5/mlx5_tx.h | 7 +-
> drivers/net/mlx5/mlx5_txq.c | 14 +-
> drivers/net/mlx5/rte_pmd_mlx5.h | 50 +++-
> drivers/net/mlx5/version.map | 3 +
> 29 files changed, 821 insertions(+), 172 deletions(-)
>
> --
> 2.25.1