summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlin Nastac <alin.nastac@gmail.com>2020-02-05 14:36:33 +0100
committerHans Dedecker <dedeckeh@gmail.com>2020-02-05 21:53:03 +0100
commitdbdef938279ec649b25b98a9b61f81f17953ef21 (patch)
tree254e16a4bfec5ab48b53f4addc8321576862a472
parent1321c1bd8fe921986c4eb39c3783ddd827b79543 (diff)
downloadnetifd-dbdef938279ec649b25b98a9b61f81f17953ef21.tar.gz
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 <alin.nastac@gmail.com>
-rw-r--r--interface-ip.c3
1 files changed, 2 insertions, 1 deletions
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;