net/mlx5e: Duplicate offloaded TC eswitch rules under uplink LAG
authorAviv Heller <avivh@mellanox.com>
Tue, 2 Oct 2018 14:18:44 +0000 (17:18 +0300)
committerSaeed Mahameed <saeedm@mellanox.com>
Fri, 14 Dec 2018 21:28:53 +0000 (13:28 -0800)
commit1418ddd96afdb097ab9a2fe09c94e820d596321a
tree49fc1bfc179f3ae8dfa52853dea5d5a6eadd0206
parent7ba58ba7ba5e19324b3879000ef341966b19727b
net/mlx5e: Duplicate offloaded TC eswitch rules under uplink LAG

Under uplink LAG, packets that match a flow might arrive on both uplink
ports and transmitted through both as part of supporting aggregation and
high-availability.

When the netdevs representing the uplinks are set into LAG (bonding,
teaming), duplicate the TC flow offloading into each of the per-uplink
e-switches.

Duplication is not required if the source is the bond device, since in
this case it is assumed that the bond and the uplink netdevs share the
same TC block, and thus duplication will occur naturally by the stack.

Note that under encapsulation scheme, both flows will use the same
neighbour and hence both will contribute to the last-used feedback
towards the stack.

Signed-off-by: Aviv Heller <avivh@mellanox.com>
Signed-off-by: Rabie Loulou <rabiel@mellanox.com>
Reviewed-by: Or Gerlitz <ogerlitz@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