This small series hardens our checks against a single matcher containing
rules that match on IPv4 and IPv6. This scenario is not supported by
hardware steering and the implementation now signals this instead of
failing silently.
Patches:
* Patch 1 forbids a single definer to match on mixed IP versions for
source and destination address.
* Patch 2 reproduces a couple of firmware checks: it forbids creating
a definer that matches on IP address without matching on IP version,
and also disallows matching on IPv6 addresses and the IPv4 IHL fields
in the same definer.
* Patch 3 forbids mixing rules that match on IPv4 and IPv6 addresses in
the same matcher. The underlying definer mechanism does not support
that.
Thanks,
Mark
Vlad Dogaru (3):
net/mlx5: HWS, Fix IP version decision
net/mlx5: HWS, Harden IP version definer checks
net/mlx5: HWS, Disallow matcher IP version mixing
.../mellanox/mlx5/core/steering/hws/definer.c | 78 +++++++----
.../mellanox/mlx5/core/steering/hws/matcher.c | 26 ++++
.../mellanox/mlx5/core/steering/hws/matcher.h | 12 ++
.../mellanox/mlx5/core/steering/hws/rule.c | 122 ++++++++++++++++++
4 files changed, 216 insertions(+), 22 deletions(-)
base-commit: 07e32237ed9d3f5815fb900dee9458b5f115a678
--
2.34.1