You've already forked linux-rockchip
mirror of
https://github.com/armbian/linux-rockchip.git
synced 2026-01-06 11:08:10 -08:00
net/mlx5e: Don't match double-vlan packets if cvlan is not set
commitada09af92eupstream. Currently, match VLAN rule also matches packets that have multiple VLAN headers. This behavior is similar to buggy flower classifier behavior that has recently been fixed. Fix the issue by matching on outer_second_cvlan_tag with value 0 which will cause the HW to verify the packet doesn't contain second vlan header. Fixes:699e96ddf4("net/mlx5e: Support offloading tc double vlan headers match") Signed-off-by: Vlad Buslov <vladbu@nvidia.com> Reviewed-by: Maor Dickman <maord@nvidia.com> Signed-off-by: Saeed Mahameed <saeedm@nvidia.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
c7f87ad115
commit
d8338a7a09
@@ -2396,6 +2396,17 @@ static int __parse_cls_flower(struct mlx5e_priv *priv,
|
||||
match.key->vlan_priority);
|
||||
|
||||
*match_level = MLX5_MATCH_L2;
|
||||
|
||||
if (!flow_rule_match_key(rule, FLOW_DISSECTOR_KEY_CVLAN) &&
|
||||
match.mask->vlan_eth_type &&
|
||||
MLX5_CAP_FLOWTABLE_TYPE(priv->mdev,
|
||||
ft_field_support.outer_second_vid,
|
||||
fs_type)) {
|
||||
MLX5_SET(fte_match_set_misc, misc_c,
|
||||
outer_second_cvlan_tag, 1);
|
||||
spec->match_criteria_enable |=
|
||||
MLX5_MATCH_MISC_PARAMETERS;
|
||||
}
|
||||
}
|
||||
} else if (*match_level != MLX5_MATCH_NONE) {
|
||||
/* cvlan_tag enabled in match criteria and
|
||||
|
||||
Reference in New Issue
Block a user