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

Reply via email to