net/mlx5e: Don't offload internal port if filter device is out device
authorJianbo Liu <jianbol@nvidia.com>
Tue, 12 Sep 2023 02:28:47 +0000 (02:28 +0000)
committerSaeed Mahameed <saeedm@nvidia.com>
Thu, 12 Oct 2023 18:10:35 +0000 (11:10 -0700)
commit06b4eac9c4beda520b8a4dbbb8e33dba9d1c8fba
treea14339ce2d6b91a4a1f274f152ae59ce1ddc2814
parentc51c673462a266fb813cf189f8190798a12d3124
net/mlx5e: Don't offload internal port if filter device is out device

In the cited commit, if the routing device is ovs internal port, the
out device is set to uplink, and packets go out after encapsulation.

If filter device is uplink, it can trigger the following syndrome:
mlx5_core 0000:08:00.0: mlx5_cmd_out_err:803:(pid 3966): SET_FLOW_TABLE_ENTRY(0x936) op_mod(0x0) failed, status bad parameter(0x3), syndrome (0xcdb051), err(-22)

Fix this issue by not offloading internal port if filter device is out
device. In this case, packets are not forwarded to the root table to
be processed, the termination table is used instead to forward them
from uplink to uplink.

Fixes: 100ad4e2d758 ("net/mlx5e: Offload internal port as encap route device")
Signed-off-by: Jianbo Liu <jianbol@nvidia.com>
Reviewed-by: Ariel Levkovich <lariel@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun_encap.c