There is a bug in dhcpcd in 7.6-release that makes it so the IPv6 prefix
delegation expires before renewal.
https://github.com/NetworkConfiguration/dhcpcd/issues/368
There was a bug fix that was implemented upstream
https://github.com/NetworkConfiguration/dhcpcd/commit/6cb9e8b74f033afdf1b4f29cd5b9943268a32a60
The diff is small, only 3 lines according to the commit. Currently, as
an Xfinity
user, my prefix delegation expires now since my upgrade to 7.6 and I
have to occasionally
restart dhcpcd to keep it/get it back. The fix made it into dhcpcd
10.1.0, but 7.6-release
is on 10.0.10. Is it possible to get this fix into 7.6-stable or get
dhcpcd 10.1.0 ported to 7.6-stable?
I made a patches/patch-src_dhcp6_c file for the port. Built it and
running now to see if that solves the issue.
Index: src/dhcp6.c
--- src/dhcp6.c.orig
+++ src/dhcp6.c
@@ -2251,8 +2251,8 @@ dhcp6_findpd(struct interface *ifp, const uint8_t *iai
memcpy(&pdp_plen, o, sizeof(pdp_plen));
o += sizeof(pdp_plen);
- pdp_pltime = (uint16_t)ntohl(pdp_pltime);
- pdp_vltime = (uint16_t)ntohl(pdp_vltime);
+ pdp_pltime = ntohl(pdp_pltime);
+ pdp_vltime = ntohl(pdp_vltime);
/* RFC 3315 22.6 */
if (pdp_pltime > pdp_vltime) {
errno = EINVAL;
@@ -2561,7 +2561,7 @@ dhcp6_deprecateaddrs(struct ipv6_addrhead *addrs)
continue;
}
TAILQ_REMOVE(addrs, ia, next);
- if (ia->flags & IPV6_AF_EXTENDED)
+ if (!(ia->flags & IPV6_AF_EXTENDED))
ipv6_deleteaddr(ia);
ipv6_freeaddr(ia);
}
Courtney