All of lore.kernel.org
 help / color / mirror / Atom feed
From: Heiner Kallweit <heiner.kallweit@web.de>
To: netdev@vger.kernel.org
Subject: Bug 71591 - Temporary address re-generated when it should not (public address about to expire)
Date: Thu, 06 Mar 2014 17:41:21 +0100	[thread overview]
Message-ID: <5318A531.4060900@web.de> (raw)

Recently I faced the issue that a public address was about to expire and 
3s before expiry a new temporary address was generated which instantly 
went into deprecated state.
This didn't do any harm however it's wrong IMHO. Problem seems to be in 
function ipv6_create_tempaddr in addrconf.c.
A new temporary address is generated if this condition is met: 
tmp_prefered_lft > regen_advance
tmp_prefered_lft however is an offset from tstamp, not from now.
This condition only checks that the new address is preferred until more 
than regen_advance from tstamp,
but it should check that the new address is preferred until more than 
regen_advance from now.

I submitted this issue to kernel bugzilla -> 71591
Hannes asked me to propose a patch, here it comes.

Rgds, Heiner

diff -uNr linux-3.10.32.vanilla/net/ipv6/addrconf.c 
linux-3.10.32.patched/net/ipv6/addrconf.c
--- linux-3.10.32.vanilla/net/ipv6/addrconf.c    2014-02-22 
14:41:54.000000000 -0600
+++ linux-3.10.32.patched/net/ipv6/addrconf.c    2014-03-06 
17:07:12.953699438 -0600
@@ -1111,8 +1111,9 @@
       * Lifetime is greater than REGEN_ADVANCE time units.  In particular,
       * an implementation must not create a temporary address with a zero
       * Preferred Lifetime.
+     * Note that tmp_prefered_lft is relative to ifp->tstamp not now.
       */
-    if (tmp_prefered_lft <= regen_advance) {
+    if (tmp_prefered_lft <= regen_advance + age) {
          in6_ifa_put(ifp);
          in6_dev_put(idev);
          ret = -1;

             reply	other threads:[~2014-03-06 16:41 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-03-06 16:41 Heiner Kallweit [this message]
  -- strict thread matches above, loose matches on Subject: below --
2014-03-06 16:38 Bug 71591 - Temporary address re-generated when it should not (public address about to expire) Heiner Kallweit
2014-03-06 16:43 ` Hannes Frederic Sowa
2014-03-06 17:02   ` Heiner Kallweit
2014-03-06 16:29 Heiner Kallweit

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5318A531.4060900@web.de \
    --to=heiner.kallweit@web.de \
    --cc=netdev@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.