net/mlx5e: Set geneve_tlv_option_0_exist when matching on geneve option
authorMaor Dickman <maord@nvidia.com>
Sun, 1 Aug 2021 11:45:17 +0000 (14:45 +0300)
committerSaeed Mahameed <saeedm@nvidia.com>
Wed, 28 Dec 2022 19:38:51 +0000 (11:38 -0800)
commite54638a8380bd9c146a883035fffd0a821813682
tree889489b6edc1921bca2cefdf000e1a5173f5fa40
parent1e267ab88dc44c48f556218f7b7f14c76f7aa066
net/mlx5e: Set geneve_tlv_option_0_exist when matching on geneve option

The cited patch added support of matching on geneve option by setting
geneve_tlv_option_0_data mask and key but didn't set geneve_tlv_option_0_exist
bit which is required on some HWs when matching geneve_tlv_option_0_data parameter,
this may cause in some cases for packets to wrongly match on rules with different
geneve option.

Example of such case is packet with geneve_tlv_object class=789 and data=456
will wrongly match on rule with match geneve_tlv_object class=123 and data=456.

Fix it by setting geneve_tlv_option_0_exist bit when supported by the HW when matching
on geneve_tlv_option_0_data parameter.

Fixes: 9272e3df3023 ("net/mlx5e: Geneve, Add support for encap/decap flows offload")
Signed-off-by: Maor Dickman <maord@nvidia.com>
Reviewed-by: Roi Dayan <roid@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun_geneve.c