]> git.baikalelectronics.ru Git - kernel.git/commit
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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 12 Jan 2023 11:02:14 +0000 (12:02 +0100)
commitfd596af2a092cfeacd15ff3df29fa05307d446b1
treed00c9c0fe34a2c965fed17036f54859034c3ce6a
parent4928a815c794fc2e5c119acd0ad4490c92ee1089
net/mlx5e: Set geneve_tlv_option_0_exist when matching on geneve option

[ Upstream commit e54638a8380bd9c146a883035fffd0a821813682 ]

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: 342ceeb2a14d ("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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun_geneve.c