linux-cp: Handle RTA_VIA routes.

RTA_VIA allows routes to have a next-hop in a different address family.
This commit makes linux-cp import those types of routes correctly,
instead of importing the routes without a gateway.

This uses rtnl_route_nh_get_gateway, which is available since libnl
3.4.0 (Oct. 9, 2017). Even Debian Stretch has it via backports.

Type: fix
Change-Id: I06297c700461ba7874eb8baf9355bd40990b3121
Signed-off-by: Adrian Pistol <vifino@posteo.net>
This commit is contained in:
Adrian Pistol
2023-04-12 18:03:50 +02:00
committed by Matthew Smith
parent b8a663c56d
commit 8f78c935f8

View File

@ -1022,10 +1022,11 @@ lcp_router_route_path_parse (struct rtnl_nexthop *rnh, void *arg)
path->frp_preference = ctx->preference; path->frp_preference = ctx->preference;
addr = rtnl_route_nh_get_gateway (rnh); addr = rtnl_route_nh_get_gateway (rnh);
if (!addr)
addr = rtnl_route_nh_get_via (rnh);
if (addr) if (addr)
fproto = lcp_router_mk_addr46 (rtnl_route_nh_get_gateway (rnh), fproto = lcp_router_mk_addr46 (addr, &path->frp_addr);
&path->frp_addr);
else else
fproto = ctx->route_proto; fproto = ctx->route_proto;