mlxsw: spectrum_router: Fix determining underlay for a GRE tunnel
authorPetr Machata <petrm@mellanox.com>
Mon, 18 Nov 2019 07:18:42 +0000 (09:18 +0200)
committerDavid S. Miller <davem@davemloft.net>
Tue, 19 Nov 2019 01:09:31 +0000 (17:09 -0800)
commit1fc1657775dc1b19e9ac1d46b4054ed8ae5d99ab
tree66b17b6c90dd22ff8b6d7e83b472a9d670fb8bfa
parent60f5c4aaae452ae9252128ef7f9ae222aa70c569
mlxsw: spectrum_router: Fix determining underlay for a GRE tunnel

The helper mlxsw_sp_ipip_dev_ul_tb_id() determines the underlay VRF of a
GRE tunnel. For a tunnel without a bound device, it uses the same VRF that
the tunnel is in. However in Linux, a GRE tunnel without a bound device
uses the main VRF as the underlay. Fix the function accordingly.

mlxsw further assumed that moving a tunnel to a different VRF could cause
conflict in local tunnel endpoint address, which cannot be offloaded.
However, the only way that an underlay could be changed by moving the
tunnel device itself is if the tunnel device does not have a bound device.
But in that case the underlay is always the main VRF, so there is no
opportunity to introduce a conflict by moving such device. Thus this check
constitutes a dead code, and can be removed, which do.

Fixes: 6ddb7426a7d4 ("mlxsw: spectrum_router: Introduce loopback RIFs")
Signed-off-by: Petr Machata <petrm@mellanox.com>
Signed-off-by: Ido Schimmel <idosch@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c