mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-05 10:31:46 +09:00
net/mlx5e: Don't offload internal port if filter device is out device
[ Upstream commit06b4eac9c4] 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:100ad4e2d7("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> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
107ff0034b
commit
76f96854aa
@@ -23,7 +23,8 @@ static int mlx5e_set_int_port_tunnel(struct mlx5e_priv *priv,
|
|||||||
|
|
||||||
route_dev = dev_get_by_index(dev_net(e->out_dev), e->route_dev_ifindex);
|
route_dev = dev_get_by_index(dev_net(e->out_dev), e->route_dev_ifindex);
|
||||||
|
|
||||||
if (!route_dev || !netif_is_ovs_master(route_dev))
|
if (!route_dev || !netif_is_ovs_master(route_dev) ||
|
||||||
|
attr->parse_attr->filter_dev == e->out_dev)
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
err = mlx5e_set_fwd_to_int_port_actions(priv, attr, e->route_dev_ifindex,
|
err = mlx5e_set_fwd_to_int_port_actions(priv, attr, e->route_dev_ifindex,
|
||||||
|
|||||||
Reference in New Issue
Block a user