]> www.infradead.org Git - users/hch/misc.git/commit
net/mlx5: HWS, update flow - remove the use of dual RTCs
authorYevgeny Kliteynik <kliteyn@nvidia.com>
Thu, 9 Jan 2025 16:05:45 +0000 (18:05 +0200)
committerJakub Kicinski <kuba@kernel.org>
Tue, 14 Jan 2025 03:21:09 +0000 (19:21 -0800)
commitab6912ff6558a504d9a02c01333ef8f4247681ad
treec9cab6da2558253a0b982ae83e18b68e71d0e83f
parent9fc43b5e3933a7e5924ba83d7561399d439de5bb
net/mlx5: HWS, update flow - remove the use of dual RTCs

This patch is the first part of update flow implementation.

Update flow should support rules with single STE (match STE only),
as well as rules with multiple STEs (match STE plus action STEs).

Supporting the rules with single STE is straightforward: we just
overwrite the STE, which is an atomic operation.
Supporting the rules with action STEs is a more complicated case.
The existing implementation uses two action RTCs per matcher and
alternates between the two for each update request.
This implementation was unnecessarily complex and lead to some
unhandled edge cases, so the support for rule update with multiple
STEs wasn't really functional.

This patch removes this code, and the next patch adds implementation
of a different approach.

Note that after applying this patch and before applying the next
patch we still have support for update rule with single STE (only
match STE w/o action STEs), but update will fail for rules with
action STEs.

Signed-off-by: Yevgeny Kliteynik <kliteyn@nvidia.com>
Signed-off-by: Vlad Dogaru <vdogaru@nvidia.com>
Reviewed-by: Mark Bloch <mbloch@nvidia.com>
Signed-off-by: Tariq Toukan <tariqt@nvidia.com>
Link: https://patch.msgid.link/20250109160546.1733647-15-tariqt@nvidia.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/debug.c
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/internal.h
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/matcher.c
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/matcher.h
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/rule.c
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/rule.h