net/mlx5e: Add mlx5e_flower_parse_meta support
authorwenxu <wenxu@ucloud.cn>
Tue, 7 Jan 2020 09:16:06 +0000 (17:16 +0800)
committerSaeed Mahameed <saeedm@mellanox.com>
Thu, 23 Jan 2020 06:28:29 +0000 (22:28 -0800)
commit6d65bc64e232896251daba7c43933f0f35859bc3
tree883079010ce80daee36f31e9aff7b8de8605ba10
parente15cf98ee8a76472144a19a24ca73d26fefa5237
net/mlx5e: Add mlx5e_flower_parse_meta support

In the flowtables offload all the devices in the flowtables
share the same flow_block. An offload rule will be installed on
all the devices. This scenario is not correct.

It is no problem if there are only two devices in the flowtable,
The rule with ingress and egress on the same device can be reject
by driver.

But more than two devices in the flowtable will install the wrong
rules on hardware.

For example:
Three devices in a offload flowtables: dev_a, dev_b, dev_c

A rule ingress from dev_a and egress to dev_b:
The rule will install on device dev_a.
The rule will try to install on dev_b but failed for ingress
and egress on the same device.
The rule will install on dev_c. This is not correct.

The flowtables offload avoid this case through restricting the ingress dev
with FLOW_DISSECTOR_KEY_META.

So the mlx5e driver also should support the FLOW_DISSECTOR_KEY_META parse.

Signed-off-by: wenxu <wenxu@ucloud.cn>
Acked-by: Roi Dayan <roid@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c