net/mlx5e: Allow dissector meta key in tc flower
authorVlad Buslov <vladbu@mellanox.com>
Thu, 11 Jul 2019 10:03:48 +0000 (13:03 +0300)
committerSaeed Mahameed <saeedm@mellanox.com>
Mon, 15 Jul 2019 20:04:04 +0000 (13:04 -0700)
Recently, fl_flow_key->indev_ifindex int field was refactored into
flow_dissector_key_meta field. With this, flower classifier also sets
FLOW_DISSECTOR_KEY_META flow dissector key. However, mlx5 flower dissector
validation code rejects filters that use flow dissector keys that are not
supported. Add FLOW_DISSECTOR_KEY_META to the list of allowed dissector
keys in __parse_cls_flower() to prevent following error when offloading
flower classifier to mlx5:

Error: mlx5_core: Unsupported key.

Fixes: 8212ed777f40 ("net: sched: cls_flower: use flow_dissector for ingress ifindex")
Signed-off-by: Vlad Buslov <vladbu@mellanox.com>
Reviewed-by: Roi Dayan <roid@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c

index b95e0ae4d7fda1bc8441adfcddab029ecfde5882..cc096f6011d964051405dd5fa3514b428086cc5a 100644 (file)
@@ -1499,7 +1499,8 @@ static int __parse_cls_flower(struct mlx5e_priv *priv,
        *match_level = MLX5_MATCH_NONE;
 
        if (dissector->used_keys &
-           ~(BIT(FLOW_DISSECTOR_KEY_CONTROL) |
+           ~(BIT(FLOW_DISSECTOR_KEY_META) |
+             BIT(FLOW_DISSECTOR_KEY_CONTROL) |
              BIT(FLOW_DISSECTOR_KEY_BASIC) |
              BIT(FLOW_DISSECTOR_KEY_ETH_ADDRS) |
              BIT(FLOW_DISSECTOR_KEY_VLAN) |