From: Courtney Subject: dhcpcd delegation expiration bug To: ports@openbsd.org Date: Wed, 4 Dec 2024 14:30:55 -0800 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