mlxsw: spectrum_router: Handle encap to demoted tunnels
authorPetr Machata <petrm@mellanox.com>
Tue, 28 Nov 2017 12:17:13 +0000 (13:17 +0100)
committerDavid S. Miller <davem@davemloft.net>
Tue, 28 Nov 2017 14:55:47 +0000 (09:55 -0500)
commitd97cda5f465bacc82659263a885703d73759ea04
tree49a4f04a8da3d07b1592e70b048f44078b0108d1
parentcab43d9c877456d2d8feb77335327316d3de9871
mlxsw: spectrum_router: Handle encap to demoted tunnels

Some tunnels that are offloadable on their own can nonetheless be
demoted to slow path if their local address is in conflict with that of
another tunnel. When a route is formed for such a tunnel,
mlxsw_sp_nexthop_ipip_init() fails to find the corresponding IPIP entry,
and that triggers a FIB abort.

Resolve the problem by not assuming that a tunnel for which
mlxsw_sp_ipip_ops.can_offload() holds also automatically has an IPIP
entry.

Fixes: af641713e97d ("mlxsw: spectrum_router: Onload conflicting tunnels")
Signed-off-by: Petr Machata <petrm@mellanox.com>
Reviewed-by: Ido Schimmel <idosch@mellanox.com>
Signed-off-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c