numam-dpdk/drivers/common/mlx5
Alexander Kozyrev 54c2d46b16 net/mlx5: support flow tag and packet header miniCQEs
CQE compression allows us to save the PCI bandwidth and improve
the performance by compressing several CQEs together to a miniCQE.
But the miniCQE size is only 8 bytes and this limits the ability
to successfully keep the compression session in case of various
traffic patterns.

The current miniCQE format only keeps the compression session alive
in case of uniform traffic with the Hash RSS as the only difference.
There are requests to keep the compression session in case of tagged
traffic by RTE Flow Mark Id and mixed UDP/TCP and IPv4/IPv6 traffic.
Add 2 new miniCQE formats in order to achieve the best performance
for these traffic patterns: Flow Tag and Packet Header miniCQEs.

The existing rxq_cqe_comp_en devarg is modified to specify the
desired miniCQE format. Specifying 2 selects Flow Tag format
for better compression rate in case of RTE Flow Mark traffic.
Specifying 3 selects Checksum format (existing format for MPRQ).
Specifying 4 selects L3/L4 Header format for better compression
rate in case of mixed TCP/UDP and IPv4/IPv6 traffic.

Signed-off-by: Alexander Kozyrev <akozyrev@nvidia.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
2020-11-03 23:35:07 +01:00
..
linux net/mlx: remove separate ABI version for glue libraries 2020-11-03 23:35:07 +01:00
meson.build build: standardize component names and defines 2020-10-19 22:15:34 +02:00
mlx5_common_mp.c common/mlx5: convert control path memory to unified malloc 2020-07-21 15:46:21 +02:00
mlx5_common_mp.h net/mlx5: add queue start and stop 2020-07-21 15:46:30 +02:00
mlx5_common_mr.c common/mlx5: convert data path objects to unified malloc 2020-07-21 15:46:30 +02:00
mlx5_common_mr.h common/mlx5: remove inclusion of Verbs header files 2020-07-21 15:46:30 +02:00
mlx5_common_pci.c common/mlx5: fix PCI driver name 2020-11-03 23:35:03 +01:00
mlx5_common_pci.h common/mlx5: introduce layer for multiple class drivers 2020-07-28 19:01:11 +02:00
mlx5_common_utils.h common/mlx5: introduce common library 2020-02-05 09:51:20 +01:00
mlx5_common.c common/mlx5: fix queue doorbell record size 2020-07-30 00:41:23 +02:00
mlx5_common.h common/mlx5: add ConnectX-7 and Bluefield-3 device IDs 2020-11-03 23:35:04 +01:00
mlx5_devx_cmds.c net/mlx5: support flow tag and packet header miniCQEs 2020-11-03 23:35:07 +01:00
mlx5_devx_cmds.h net/mlx5: support flow tag and packet header miniCQEs 2020-11-03 23:35:07 +01:00
mlx5_malloc.c common/mlx5: add glue function for domain sync 2020-11-03 23:35:04 +01:00
mlx5_malloc.h common/mlx5: fix aligned malloc 2020-09-18 18:55:11 +02:00
mlx5_prm.h net/mlx5: support flow tag and packet header miniCQEs 2020-11-03 23:35:07 +01:00
version.map common/mlx5: modify advanced Rx object via DevX 2020-11-03 23:35:02 +01:00