From: Alin Nastac Date: Wed, 5 Feb 2020 13:36:33 +0000 (+0100) Subject: interface-ip: transfer prefix route ownership for deprecated ipv6addr to kernel X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=dbdef938279ec649b25b98a9b61f81f17953ef21;p=oweals%2Fnetifd.git interface-ip: transfer prefix route ownership for deprecated ipv6addr to kernel When netifd manages the prefix route directly, it will remove it the moment prefix gets deprecated. This will make it impossible for the target to send ICMPv6 errors back to LAN devices still using the deprecated prefix, thus breaking the L-14 requirement of RFC 7084. Signed-off-by: Alin Nastac --- diff --git a/interface-ip.c b/interface-ip.c index 91c305b..ff8f219 100644 --- a/interface-ip.c +++ b/interface-ip.c @@ -913,7 +913,7 @@ interface_set_prefix_address(struct device_prefix_assignment *assignment, addr.addr.in6 = assignment->addr; addr.mask = assignment->length; - addr.flags = DEVADDR_INET6 | DEVADDR_OFFLINK; + addr.flags = DEVADDR_INET6; addr.preferred_until = prefix->preferred_until; addr.valid_until = prefix->valid_until; @@ -960,6 +960,7 @@ interface_set_prefix_address(struct device_prefix_assignment *assignment, route.addr = addr.addr; } + addr.flags |= DEVADDR_OFFLINK; if (system_add_address(l3_downlink, &addr)) return;