Thread (9 messages) 9 messages, 3 authors, 2010-08-27

Re: [net-next] ipv6: Enable netlink notification for tentative addresses.

From: Brian Haley <hidden>
Date: 2010-08-26 19:57:54

On 08/26/2010 02:50 PM, Ben Greear wrote:
On 08/25/2010 09:24 PM, David Miller wrote:
quoted
From: Ben Greear<redacted>
Date: Wed, 25 Aug 2010 11:26:17 -0700
quoted
By default, netlink messages are not sent when an IPv6 address
is added if it is in tentative state.  This makes it harder
for user-space applications to know the current state of the
IPv6 addresses.  This patch adds an ipv6 sysctl that will
allow tentative address notifications to be sent.  The sysctl
is off by default.

Signed-off-by: Ben Greear<redacted>
It's inconsistent to send two NEWADDR events for the same add.

I would advise that we unconditionally do the NEWADDR once,
when the tentative state address is added, and completely
elide the one we current send when it leaves tentative state.
But then we get a message for an address that can't be used because
it hasn't passed DAD, I'm not so sure that is a good thing,
especially if we don't get notified when it passes DAD.
quoted hunk ↗ jump to hunk
@@ -697,9 +698,10 @@ ipv6_add_addr(struct inet6_dev *idev, const struct
in6_addr *addr, int pfxlen,
 out2:
        rcu_read_unlock_bh();

-       if (likely(err == 0))
+       if (likely(err == 0)) {
                atomic_notifier_call_chain(&inet6addr_chain, NETDEV_UP,
ifa);
-       else {
+               inet6_ifa_notify(RTM_NEWADDR, ifa);
+       } else {
                kfree(ifa);
                ifa = ERR_PTR(err);
        }
This will generate two messages in some cases, for example, when lo is
configured, or a SIT tunnel is added, see add_addr() in addrconf.c.

-Brian
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help