netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Saeed Mahameed <saeed@kernel.org>
To: "David S. Miller" <davem@davemloft.net>,
	Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
	Eric Dumazet <edumazet@google.com>
Cc: Saeed Mahameed <saeedm@nvidia.com>,
	netdev@vger.kernel.org, Tariq Toukan <tariqt@nvidia.com>
Subject: [pull request][net-next 00/15] mlx5 updates 2023-04-14
Date: Fri, 14 Apr 2023 15:09:24 -0700	[thread overview]
Message-ID: <20230414220939.136865-1-saeed@kernel.org> (raw)

From: Saeed Mahameed <saeedm@nvidia.com>

SW Steering support for pattern and arguments modify_header actions
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 c11d2e718c792468e67389b506451eddf26c2dac:

  Merge branch 'msg_control-split' (2023-04-14 11:09:27 +0100)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux.git tags/mlx5-updates-2023-04-14

for you to fetch changes up to 220ae987838c893fe11e46a3e3994a549f203daa:

  net/mlx5: DR, Enable patterns and arguments for supporting devices (2023-04-14 15:06:22 -0700)

----------------------------------------------------------------
mlx5-updates-2023-04-14

Yevgeny Kliteynik Says:
=======================

SW Steering: Support pattern/args modify_header actions

The following patch series adds support for a new pattern/arguments type
of modify_header actions.

Starting with ConnectX-6 DX, we use a new design of modify_header FW object.
The current modify_header object allows for having only limited number of
these FW objects, which means that we are limited in the number of offloaded
flows that require modify_header action.

The new approach comprises of two types of objects: pattern and argument.
Pattern holds header modification templates, later used with corresponding
argument object to create complete header modification actions.
The pattern indicates which headers are modified, while the arguments
provide the specific values.
Therefore a single pattern can be used with different arguments in different
flows, enabling offloading of large number of modify_header flows.

 - Patch 1, 2: Add ICM pool for modify-header-pattern objects and implement
   patterns cache, allowing patterns reuse for different flows
 - Patch 3: Allow for chunk allocation separately for STEv0 and STEv1
 - Patch 4: Read related device capabilities
 - Patch 5: Add create/destroy functions for the new general object type
 - Patch 6: Add support for writing modify header argument to ICM
 - Patch 7, 8: Some required fixes to support pattern/arg - separate read
   buffer from the write buffer and fix QP continuous allocation
 - Patch 9: Add pool for modify header arg objects
 - Patch 10, 11, 12: Implement MODIFY_HEADER and TNL_L3_TO_L2 actions with
   the new patterns/args design
 - Patch 13: Optimization - set modify header action of size 1 directly on
   the STE instead of separate pattern/args combination
 - Patch 14: Adjust debug dump for patterns/args
 - Patch 15: Enable patterns and arguments for supporting devices

=======================

----------------------------------------------------------------
Yevgeny Kliteynik (15):
      net/mlx5: DR, Move ACTION_CACHE_LINE_SIZE macro to header
      net/mlx5: DR, Add cache for modify header pattern
      net/mlx5: DR, Split chunk allocation to HW-dependent ways
      net/mlx5: DR, Check for modify_header_argument device capabilities
      net/mlx5: DR, Add create/destroy for modify-header-argument general object
      net/mlx5: DR, Add support for writing modify header argument
      net/mlx5: DR, Read ICM memory into dedicated buffer
      net/mlx5: DR, Fix QP continuous allocation
      net/mlx5: DR, Add modify header arg pool mechanism
      net/mlx5: DR, Add modify header argument pointer to actions attributes
      net/mlx5: DR, Apply new accelerated modify action and decapl3
      net/mlx5: DR, Support decap L3 action using pattern / arg mechanism
      net/mlx5: DR, Modify header action of size 1 optimization
      net/mlx5: DR, Add support for the pattern/arg parameters in debug dump
      net/mlx5: DR, Enable patterns and arguments for supporting devices

 drivers/net/ethernet/mellanox/mlx5/core/Makefile   |   2 +-
 .../mellanox/mlx5/core/steering/dr_action.c        |  92 +++----
 .../ethernet/mellanox/mlx5/core/steering/dr_arg.c  | 273 +++++++++++++++++++++
 .../ethernet/mellanox/mlx5/core/steering/dr_cmd.c  |  54 ++++
 .../ethernet/mellanox/mlx5/core/steering/dr_dbg.c  |  30 ++-
 .../mellanox/mlx5/core/steering/dr_domain.c        |  15 +-
 .../ethernet/mellanox/mlx5/core/steering/dr_ptrn.c | 198 +++++++++++++++
 .../ethernet/mellanox/mlx5/core/steering/dr_send.c | 210 ++++++++++++++--
 .../ethernet/mellanox/mlx5/core/steering/dr_ste.c  |  57 +++++
 .../ethernet/mellanox/mlx5/core/steering/dr_ste.h  |   2 +
 .../mellanox/mlx5/core/steering/dr_ste_v1.c        | 113 ++++++++-
 .../mellanox/mlx5/core/steering/dr_ste_v1.h        |   2 +
 .../mellanox/mlx5/core/steering/dr_ste_v2.c        |   2 +
 .../mellanox/mlx5/core/steering/dr_types.h         |  62 ++++-
 .../mlx5/core/steering/mlx5_ifc_dr_ste_v1.h        |   2 +-
 15 files changed, 1025 insertions(+), 89 deletions(-)
 create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_arg.c

             reply	other threads:[~2023-04-14 22:09 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-04-14 22:09 Saeed Mahameed [this message]
2023-04-14 22:09 ` [net-next 01/15] net/mlx5: DR, Move ACTION_CACHE_LINE_SIZE macro to header Saeed Mahameed
2023-04-17  7:20   ` patchwork-bot+netdevbpf
2023-04-14 22:09 ` [net-next 02/15] net/mlx5: DR, Add cache for modify header pattern Saeed Mahameed
2023-04-14 22:09 ` [net-next 03/15] net/mlx5: DR, Split chunk allocation to HW-dependent ways Saeed Mahameed
2023-04-14 22:09 ` [net-next 04/15] net/mlx5: DR, Check for modify_header_argument device capabilities Saeed Mahameed
2023-04-14 22:09 ` [net-next 05/15] net/mlx5: DR, Add create/destroy for modify-header-argument general object Saeed Mahameed
2023-04-14 22:09 ` [net-next 06/15] net/mlx5: DR, Add support for writing modify header argument Saeed Mahameed
2023-04-14 22:09 ` [net-next 07/15] net/mlx5: DR, Read ICM memory into dedicated buffer Saeed Mahameed
2023-04-14 22:09 ` [net-next 08/15] net/mlx5: DR, Fix QP continuous allocation Saeed Mahameed
2023-04-14 22:09 ` [net-next 09/15] net/mlx5: DR, Add modify header arg pool mechanism Saeed Mahameed
2023-04-14 22:09 ` [net-next 10/15] net/mlx5: DR, Add modify header argument pointer to actions attributes Saeed Mahameed
2023-04-14 22:09 ` [net-next 11/15] net/mlx5: DR, Apply new accelerated modify action and decapl3 Saeed Mahameed
2023-04-14 22:09 ` [net-next 12/15] net/mlx5: DR, Support decap L3 action using pattern / arg mechanism Saeed Mahameed
2023-04-14 22:09 ` [net-next 13/15] net/mlx5: DR, Modify header action of size 1 optimization Saeed Mahameed
2023-04-14 22:09 ` [net-next 14/15] net/mlx5: DR, Add support for the pattern/arg parameters in debug dump Saeed Mahameed
2023-04-14 22:09 ` [net-next 15/15] net/mlx5: DR, Enable patterns and arguments for supporting devices Saeed Mahameed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230414220939.136865-1-saeed@kernel.org \
    --to=saeed@kernel.org \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=kuba@kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=saeedm@nvidia.com \
    --cc=tariqt@nvidia.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).