Message ID | 20231230043252.10530-1-alexhenrie24@gmail.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 8cdafdd94654ba418648d039c48e7a90508c1982 |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | Revert "net: ipv6/addrconf: clamp preferred_lft to the minimum required" | expand |
On 12/29/23 11:32 PM, Alex Henrie wrote: > The commit had a bug and might not have been the right approach anyway. > > Fixes: 629df6701c8a ("net: ipv6/addrconf: clamp preferred_lft to the minimum required") > Fixes: ec575f885e3e ("Documentation: networking: explain what happens if temp_prefered_lft is too small or too large") > Reported-by: Dan Moulding <dan@danm.net> > Closes: https://lore.kernel.org/netdev/20231221231115.12402-1-dan@danm.net/ > Link: https://lore.kernel.org/netdev/CAMMLpeTdYhd=7hhPi2Y7pwdPCgnnW5JYh-bu3hSc7im39uxnEA@mail.gmail.com/ > Signed-off-by: Alex Henrie <alexhenrie24@gmail.com> > --- > Documentation/networking/ip-sysctl.rst | 2 +- > net/ipv6/addrconf.c | 18 +++++------------- > 2 files changed, 6 insertions(+), 14 deletions(-) > Reviewed-by: David Ahern <dsahern@kernel.org>
Hello: This patch was applied to netdev/net.git (main) by Jakub Kicinski <kuba@kernel.org>: On Fri, 29 Dec 2023 21:32:44 -0700 you wrote: > The commit had a bug and might not have been the right approach anyway. > > Fixes: 629df6701c8a ("net: ipv6/addrconf: clamp preferred_lft to the minimum required") > Fixes: ec575f885e3e ("Documentation: networking: explain what happens if temp_prefered_lft is too small or too large") > Reported-by: Dan Moulding <dan@danm.net> > Closes: https://lore.kernel.org/netdev/20231221231115.12402-1-dan@danm.net/ > Link: https://lore.kernel.org/netdev/CAMMLpeTdYhd=7hhPi2Y7pwdPCgnnW5JYh-bu3hSc7im39uxnEA@mail.gmail.com/ > Signed-off-by: Alex Henrie <alexhenrie24@gmail.com> > > [...] Here is the summary with links: - Revert "net: ipv6/addrconf: clamp preferred_lft to the minimum required" https://git.kernel.org/netdev/net/c/8cdafdd94654 You are awesome, thank you!
diff --git a/Documentation/networking/ip-sysctl.rst b/Documentation/networking/ip-sysctl.rst index 4dfe0d9a57bb..7afff42612e9 100644 --- a/Documentation/networking/ip-sysctl.rst +++ b/Documentation/networking/ip-sysctl.rst @@ -2511,7 +2511,7 @@ temp_valid_lft - INTEGER temp_prefered_lft - INTEGER Preferred lifetime (in seconds) for temporary addresses. If temp_prefered_lft is less than the minimum required lifetime (typically - 5 seconds), the preferred lifetime is the minimum required. If + 5 seconds), temporary addresses will not be created. If temp_prefered_lft is greater than temp_valid_lft, the preferred lifetime is temp_valid_lft. diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c index 2692a7b24c40..733ace18806c 100644 --- a/net/ipv6/addrconf.c +++ b/net/ipv6/addrconf.c @@ -1407,23 +1407,15 @@ static int ipv6_create_tempaddr(struct inet6_ifaddr *ifp, bool block) write_unlock_bh(&idev->lock); - /* From RFC 4941: - * - * A temporary address is created only if this calculated Preferred - * Lifetime is greater than REGEN_ADVANCE time units. In - * particular, an implementation must not create a temporary address - * with a zero Preferred Lifetime. - * - * Clamp the preferred lifetime to a minimum of regen_advance, unless - * that would exceed valid_lft. - * + /* A temporary address is created only if this calculated Preferred + * Lifetime is greater than REGEN_ADVANCE time units. In particular, + * an implementation must not create a temporary address with a zero + * Preferred Lifetime. * Use age calculation as in addrconf_verify to avoid unnecessary * temporary addresses being generated. */ age = (now - tmp_tstamp + ADDRCONF_TIMER_FUZZ_MINUS) / HZ; - if (cfg.preferred_lft <= regen_advance + age) - cfg.preferred_lft = regen_advance + age + 1; - if (cfg.preferred_lft > cfg.valid_lft) { + if (cfg.preferred_lft <= regen_advance + age) { in6_ifa_put(ifp); in6_dev_put(idev); ret = -1;
The commit had a bug and might not have been the right approach anyway. Fixes: 629df6701c8a ("net: ipv6/addrconf: clamp preferred_lft to the minimum required") Fixes: ec575f885e3e ("Documentation: networking: explain what happens if temp_prefered_lft is too small or too large") Reported-by: Dan Moulding <dan@danm.net> Closes: https://lore.kernel.org/netdev/20231221231115.12402-1-dan@danm.net/ Link: https://lore.kernel.org/netdev/CAMMLpeTdYhd=7hhPi2Y7pwdPCgnnW5JYh-bu3hSc7im39uxnEA@mail.gmail.com/ Signed-off-by: Alex Henrie <alexhenrie24@gmail.com> --- Documentation/networking/ip-sysctl.rst | 2 +- net/ipv6/addrconf.c | 18 +++++------------- 2 files changed, 6 insertions(+), 14 deletions(-)