• Petr Machata's avatar
    mlxsw: spectrum_router: Fix determining underlay for a GRE tunnel · baa888ca
    Petr Machata authored
    [ Upstream commit 1fc16577 ]
    
    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: 6ddb7426 ("mlxsw: spectrum_router: Introduce loopback RIFs")
    Signed-off-by: default avatarPetr Machata <petrm@mellanox.com>
    Signed-off-by: default avatarIdo Schimmel <idosch@mellanox.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    baa888ca
spectrum_router.c 199 KB