From: Saeed Mahameed <sae...@nvidia.com> Hi Dave, Jakub,
This series removes the mlx5 netdev restriction of enabling both PTP time-stamping and CQE-Compression features. For more information please see tag log below. Please pull and let me know if there is any problem. Thanks, Saeed. --- The following changes since commit d0922bf7981799fd86e248de330fb4152399d6c2: hv_netvsc: Add error handling while switching data path (2021-03-29 16:35:59 -0700) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux.git tags/mlx5-updates-2021-03-29 for you to fetch changes up to 885b8cfb161ed3d8f41e7b37e14d35bd8d3aaf6b: net/mlx5e: Update ethtool setting of CQE compression (2021-03-29 21:21:54 -0700) ---------------------------------------------------------------- mlx5-updates-2021-03-29 Coexistence of CQE compression and HW PTP time-stamp: >From Aya this series improves mlx5 netdev driver to allow both mlx5 CQE compression (RX descriptor compression, that saves on PCI transactions) and HW time-stamp PTP to co-exist. Prior to this series both features were mutually exclusive due to the nature of CQE compression which reduces the size of RX descriptor for the price of trimming some data, such as the time-stamp. In order to allow CQE compression when PTP time stamping is enabled, We enable it on the regular performance critical RX queues which will service all the data path traffic that is not PTP. PTP traffic will be re-directed to dedicated RX queues on which we will not enable CQE compression and thus keep the time-stamp intact. Having both features is critical for systems with low PCI BW, e.g. Multi-Host. The series will be adding: 1) Infrastructure to create a dedicated RX queue to service the PTP traffic 2) Flow steering plumbing to capture PTP traffic both UDP packets with destination port 319 and L2 packets with ethertype 0x88F7 3) Steer PTP traffic to the dedicated RX queue. 4) The feature will be enabled when PTP is being configured via the already existing PTP IOCTL when CQE compression is active, otherwise no change to the driver flow. ---------------------------------------------------------------- Aya Levin (12): net/mlx5e: Add states to PTP channel net/mlx5e: Add RQ to PTP channel net/mlx5e: Add PTP-RX statistics net:mlx5e: Add PTP-TIR and PTP-RQT net/mlx5e: Refactor RX reporter diagnostics net/mlx5e: Add PTP RQ to RX reporter net/mlx5e: Cleanup Flow Steering level net/mlx5e: Introduce Flow Steering UDP API net/mlx5e: Introduce Flow Steering ANY API net/mlx5e: Add PTP Flow Steering support net/mlx5e: Allow coexistence of CQE compression and HW TS PTP net/mlx5e: Update ethtool setting of CQE compression drivers/net/ethernet/mellanox/mlx5/core/Makefile | 2 +- drivers/net/ethernet/mellanox/mlx5/core/en.h | 6 + drivers/net/ethernet/mellanox/mlx5/core/en/fs.h | 13 +- .../mellanox/mlx5/core/en/fs_tt_redirect.c | 605 +++++++++++++++++++++ .../mellanox/mlx5/core/en/fs_tt_redirect.h | 26 + drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c | 331 ++++++++++- drivers/net/ethernet/mellanox/mlx5/core/en/ptp.h | 12 + .../ethernet/mellanox/mlx5/core/en/reporter_rx.c | 172 ++++-- .../ethernet/mellanox/mlx5/core/en/reporter_tx.c | 12 +- .../net/ethernet/mellanox/mlx5/core/en_ethtool.c | 14 +- drivers/net/ethernet/mellanox/mlx5/core/en_fs.c | 8 + drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 93 +++- drivers/net/ethernet/mellanox/mlx5/core/en_rep.c | 2 + drivers/net/ethernet/mellanox/mlx5/core/en_stats.c | 114 +++- drivers/net/ethernet/mellanox/mlx5/core/en_stats.h | 1 + drivers/net/ethernet/mellanox/mlx5/core/en_tx.c | 11 +- drivers/net/ethernet/mellanox/mlx5/core/fs_core.c | 2 +- .../net/ethernet/mellanox/mlx5/core/ipoib/ipoib.c | 1 + .../ethernet/mellanox/mlx5/core/ipoib/ipoib_vlan.c | 1 + 19 files changed, 1298 insertions(+), 128 deletions(-) create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en/fs_tt_redirect.c create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en/fs_tt_redirect.h