]> git.baikalelectronics.ru Git - kernel.git/commit
net/mlx5e: E-Switch, Add misc bit when misc fields changed for mirroring
authorJianbo Liu <jianbol@mellanox.com>
Thu, 2 Jul 2020 01:06:37 +0000 (01:06 +0000)
committerSaeed Mahameed <saeedm@mellanox.com>
Fri, 31 Jul 2020 01:53:50 +0000 (18:53 -0700)
commitc65b7b011e79a8fa9139eca8f113e7825fa36966
treed4b29e24b4d27ad41c59d0031b0f4b3a2009add5
parentae934b42ac8f4f3dbf9af1c4896c8a60f4e43cb3
net/mlx5e: E-Switch, Add misc bit when misc fields changed for mirroring

The modified flow_context fields in FTE must be indicated in
modify_enable bitmask. Previously, the misc bit in modify_enable is
always set as source vport must be set for each rule. So, when parsing
vxlan/gre/geneve/qinq rules, this bit is not set because those are all
from the same misc fileds that source vport fields are located at, and
we don't need to set the indicator twice.

After adding per vport tables for mirroring, misc bit is not set, then
firmware syndrome happens. To fix it, set the bit wherever misc fileds
are changed. This also makes it unnecessary to check misc fields and set
the misc bit accordingly in metadata matching, so here remove it.

Besides, flow_source must be specified for uplink because firmware
will check it and some actions are only allowed for packets received
from uplink.

Fixes: 9dcde02e5029 ("net/mlx5e: Eswitch, Use per vport tables for mirroring")
Signed-off-by: Jianbo Liu <jianbol@mellanox.com>
Reviewed-by: Chris Mi <chrism@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_tun_geneve.c
drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun_gre.c
drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun_vxlan.c
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c