From: Roy Marples Date: Sat, 4 May 2024 22:33:11 +0000 (+0100) Subject: DHCPv6: Don't re-INFORM if the RA changes X-Git-Tag: v10.0.7~4 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=dfb0dc2577680ed2ac6dd7e2274f7f7e22804229;p=thirdparty%2Fdhcpcd.git DHCPv6: Don't re-INFORM if the RA changes RFC 8415 21.23 If the Reply to an Information-request message does not contain this option, the client MUST behave as if the option with the value IRT_DEFAULT was provided. So we should not be influenced by only the RA changing the pl/vl times of it's addresses. --- diff --git a/src/dhcp6.c b/src/dhcp6.c index 037cc242..e187a376 100644 --- a/src/dhcp6.c +++ b/src/dhcp6.c @@ -3965,20 +3965,16 @@ dhcp6_start(struct interface *ifp, enum DH6S init_state) case DH6S_INIT: goto gogogo; case DH6S_INFORM: + /* RFC 8415 21.23 + * If D6_OPTION_INFO_REFRESH_TIME does not exist + * then we MUST refresh by IRT_DEFAULT seconds + * and should not be influenced by only the + * pl/vl time of the RA changing. */ if (state->state == DH6S_INIT || - state->state == DH6S_INFORMED || (state->state == DH6S_DISCOVER && !(ifp->options->options & DHCPCD_IA_FORCED) && !ipv6nd_hasradhcp(ifp, true))) - { - /* We don't want log spam when the RA - * has just adjusted it's prefix times. */ - if (state->state != DH6S_INFORMED) { - state->new_start = true; - state->failed = false; - } dhcp6_startinform(ifp); - } break; case DH6S_REQUEST: if (ifp->options->options & DHCPCD_DHCP6 &&