[v2 00/16] net/mlx5/hws: support range and partial hash matching
Matan Azrad
matan at nvidia.com
Mon Feb 6 16:07:18 CET 2023
From: Alex Vesker
> 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
Series-acked-by: Matan Azrad <matan at nvidia.com>
> 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
More information about the dev
mailing list