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>
path->frp_preference = ctx->preference;
addr = rtnl_route_nh_get_gateway (rnh);
+ if (!addr)
+ addr = rtnl_route_nh_get_via (rnh);
if (addr)
- fproto = lcp_router_mk_addr46 (rtnl_route_nh_get_gateway (rnh),
- &path->frp_addr);
+ fproto = lcp_router_mk_addr46 (addr, &path->frp_addr);
else
fproto = ctx->route_proto;