Fix adding IPv6 routes on BSD. 31/head
authorStefan Sperling <stsp@stsp.name>
Thu, 22 Jun 2017 16:18:26 +0000 (18:18 +0200)
committerStefan Sperling <stsp@stsp.name>
Fri, 23 Jun 2017 08:46:47 +0000 (10:46 +0200)
commitd3e6c5106f68513259b836fadbcb5dbc756f62a0
tree0b13e67daca306ec5ef97418921ef16b3ca81c31
parent455802d0ad5b5c34133eeb400998b6e87cae575f
Fix adding IPv6 routes on BSD.

The KAME hack (storing the interface index inside the prefix) is only used
for link-local addresses. So only apply it in case the gateway is link-local.

For gateway routes (reachable on-link), install a cloning route which tells
the kernel to perform NDP address resolution to find the gateway.

The previous code was installing a bogus route to fe:80::1 for any destination.
I don't see how this could ever have worked.

Tested in Berlin's Freifunk mesh.

Signed-off-by: Stefan Sperling <stsp@stsp.name>
src/bsd/kernel_routes.c