Hi, > -----Original Message----- > From: Alex Vesker <va...@nvidia.com> > Sent: Wednesday, February 1, 2023 9:28 AM > To: Alex Vesker <va...@nvidia.com>; Slava Ovsiienko > <viachesl...@nvidia.com>; NBU-Contact-Thomas Monjalon (EXTERNAL) > <tho...@monjalon.net> > Cc: Matan Azrad <ma...@nvidia.com>; dev@dpdk.org; Ori Kam > <or...@nvidia.com> > Subject: [v2 00/16] net/mlx5/hws: support range and partial hash matching > > 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
Series applied to next-net-mlx, Kindest regards, Raslan Darawsheh