DPDK patches and discussions
 help / color / mirror / Atom feed
From: Alex Vesker <valex@nvidia.com>
To: <valex@nvidia.com>, <viacheslavo@nvidia.com>, <thomas@monjalon.net>
Cc: <matan@nvidia.com>, <dev@dpdk.org>, <orika@nvidia.com>
Subject: [v2 00/16] net/mlx5/hws: support range and partial hash matching
Date: Wed, 1 Feb 2023 09:27:59 +0200	[thread overview]
Message-ID: <20230201072815.1329101-1-valex@nvidia.com> (raw)
In-Reply-To: <20230131093346.1261066-1-valex@nvidia.com>

ConnectX and BlueField devices which support HWS are capable of performing
advanced match, range-match and hashing operations on packet headers. This
patch-set introduces support for (1) range matching - allows combining
range and exact match over provided item fields using spec, last and mask.
A useful example for Range and exact match is matching exact IP and port
range. This series also introduces (2) partial hash, which allows using
the same matcher and performing partial hashing in case of multiple match
templates are provided. The matcher create code finds the union and
intersection fields to split the hash and match in a way the HW can
support. This increases the match templates combinations possible although
it may limit the maximum PPS. Since (1) and (2) are not fully support on
current HW the implementation is done on top of a HW like FW API using
WQEs.

v2:
-Fix missed checkpatch comments

Alex Vesker (16):
  net/mlx5/hws: support synchronous drain
  net/mlx5/hws: matcher remove AT and MT limitation
  net/mlx5/hws: support GTA WQE write using FW command
  net/mlx5/hws: add capability query for gen wqe command
  net/mlx5/hws: align RTC create command with PRM format
  net/mlx5/hws: add send FW match STE using gen WQE
  net/mlx5/hws: add send FW range STE WQE
  net/mlx5/hws: move matcher size check to function
  net/mlx5/hws: support range match
  net/mlx5/hws: redesign definer create
  net/mlx5/hws: support partial hash
  net/mlx5/hws: add range definer creation support
  net/mlx5/hws: add FW WQE rule creation logic
  net/mlx5/hws: add debug dump support for range and hash
  net/mlx5/hws: rename pattern cache object
  net/mlx5/hws: cache definer for reuse

 drivers/common/mlx5/mlx5_prm.h         |  53 +-
 drivers/net/mlx5/hws/mlx5dr.h          |   6 +-
 drivers/net/mlx5/hws/mlx5dr_cmd.c      |  72 ++-
 drivers/net/mlx5/hws/mlx5dr_cmd.h      |  27 +-
 drivers/net/mlx5/hws/mlx5dr_context.c  |  12 +-
 drivers/net/mlx5/hws/mlx5dr_context.h  |   1 +
 drivers/net/mlx5/hws/mlx5dr_debug.c    |  41 +-
 drivers/net/mlx5/hws/mlx5dr_debug.h    |   4 +-
 drivers/net/mlx5/hws/mlx5dr_definer.c  | 750 +++++++++++++++++++++----
 drivers/net/mlx5/hws/mlx5dr_definer.h  |  44 +-
 drivers/net/mlx5/hws/mlx5dr_internal.h |   2 +-
 drivers/net/mlx5/hws/mlx5dr_matcher.c  | 279 ++++++---
 drivers/net/mlx5/hws/mlx5dr_matcher.h  |  43 +-
 drivers/net/mlx5/hws/mlx5dr_pat_arg.c  |  49 +-
 drivers/net/mlx5/hws/mlx5dr_pat_arg.h  |   6 +-
 drivers/net/mlx5/hws/mlx5dr_rule.c     | 193 ++++++-
 drivers/net/mlx5/hws/mlx5dr_rule.h     |   2 +
 drivers/net/mlx5/hws/mlx5dr_send.c     | 169 +++++-
 drivers/net/mlx5/hws/mlx5dr_send.h     |  24 +-
 drivers/net/mlx5/mlx5_flow_hw.c        |   2 +-
 20 files changed, 1475 insertions(+), 304 deletions(-)

-- 
2.18.1


  parent reply	other threads:[~2023-02-01  7:28 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-01-31  9:33 [v1 " Alex Vesker
2023-01-31  9:33 ` [v1 01/16] net/mlx5/hws: support synchronous drain Alex Vesker
2023-01-31  9:33 ` [v1 02/16] net/mlx5/hws: matcher remove AT and MT limitation Alex Vesker
2023-01-31  9:33 ` [v1 03/16] net/mlx5/hws: support GTA WQE write using FW command Alex Vesker
2023-01-31  9:33 ` [v1 04/16] net/mlx5/hws: add capability query for gen wqe command Alex Vesker
2023-01-31  9:33 ` [v1 05/16] net/mlx5/hws: align RTC create command with PRM format Alex Vesker
2023-01-31  9:33 ` [v1 06/16] net/mlx5/hws: add send FW match STE using gen WQE Alex Vesker
2023-01-31  9:33 ` [v1 07/16] net/mlx5/hws: add send FW range STE WQE Alex Vesker
2023-01-31  9:33 ` [v1 08/16] net/mlx5/hws: move matcher size check to function Alex Vesker
2023-01-31  9:33 ` [v1 09/16] net/mlx5/hws: support range match Alex Vesker
2023-01-31  9:33 ` [v1 10/16] net/mlx5/hws: redesign definer create Alex Vesker
2023-01-31  9:33 ` [v1 11/16] net/mlx5/hws: support partial hash Alex Vesker
2023-01-31  9:33 ` [v1 12/16] net/mlx5/hws: add range definer creation support Alex Vesker
2023-01-31  9:33 ` [v1 13/16] net/mlx5/hws: add FW WQE rule creation logic Alex Vesker
2023-01-31  9:33 ` [v1 14/16] net/mlx5/hws: add debug dump support for range and hash Alex Vesker
2023-01-31  9:33 ` [v1 15/16] net/mlx5/hws: rename pattern cache object Alex Vesker
2023-01-31  9:33 ` [v1 16/16] net/mlx5/hws: cache definer for reuse Alex Vesker
2023-02-01  7:27 ` Alex Vesker [this message]
2023-02-01  7:28   ` [v2 01/16] net/mlx5/hws: support synchronous drain Alex Vesker
2023-02-01  7:28   ` [v2 02/16] net/mlx5/hws: matcher remove AT and MT limitation Alex Vesker
2023-02-01  7:28   ` [v2 03/16] net/mlx5/hws: support GTA WQE write using FW command Alex Vesker
2023-02-01  7:28   ` [v2 04/16] net/mlx5/hws: add capability query for gen wqe command Alex Vesker
2023-02-01  7:28   ` [v2 05/16] net/mlx5/hws: align RTC create command with PRM format Alex Vesker
2023-02-01  7:28   ` [v2 06/16] net/mlx5/hws: add send FW match STE using gen WQE Alex Vesker
2023-02-01  7:28   ` [v2 07/16] net/mlx5/hws: add send FW range STE WQE Alex Vesker
2023-02-01  7:28   ` [v2 08/16] net/mlx5/hws: move matcher size check to function Alex Vesker
2023-02-01  7:28   ` [v2 09/16] net/mlx5/hws: support range match Alex Vesker
2023-02-01  7:28   ` [v2 10/16] net/mlx5/hws: redesign definer create Alex Vesker
2023-02-01  7:28   ` [v2 11/16] net/mlx5/hws: support partial hash Alex Vesker
2023-02-01  7:28   ` [v2 12/16] net/mlx5/hws: add range definer creation support Alex Vesker
2023-02-01  7:28   ` [v2 13/16] net/mlx5/hws: add FW WQE rule creation logic Alex Vesker
2023-02-01  7:28   ` [v2 14/16] net/mlx5/hws: add debug dump support for range and hash Alex Vesker
2023-02-01  7:28   ` [v2 15/16] net/mlx5/hws: rename pattern cache object Alex Vesker
2023-02-01  7:28   ` [v2 16/16] net/mlx5/hws: cache definer for reuse Alex Vesker
2023-02-06 15:07   ` [v2 00/16] net/mlx5/hws: support range and partial hash matching Matan Azrad
2023-02-13  8:27   ` Raslan Darawsheh

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=20230201072815.1329101-1-valex@nvidia.com \
    --to=valex@nvidia.com \
    --cc=dev@dpdk.org \
    --cc=matan@nvidia.com \
    --cc=orika@nvidia.com \
    --cc=thomas@monjalon.net \
    --cc=viacheslavo@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).