From patchwork Wed Dec 12 05:11:37 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [3.5.y.z, extended, stable] Patch "ipv6: send unsolicited neighbour advertisements to all-nodes" has been added to staging queue Date: Tue, 11 Dec 2012 19:11:37 -0000 From: Herton Ronaldo Krzesinski X-Patchwork-Id: 205417 Message-Id: <1355289097-31447-1-git-send-email-herton.krzesinski@canonical.com> To: Hannes Frederic Sowa Cc: kernel-team@lists.ubuntu.com, "David S. Miller" This is a note to let you know that I have just added a patch titled ipv6: send unsolicited neighbour advertisements to all-nodes to the linux-3.5.y-queue branch of the 3.5.y.z extended stable tree which can be found at: http://kernel.ubuntu.com/git?p=ubuntu/linux.git;a=shortlog;h=refs/heads/linux-3.5.y-queue If you, or anyone else, feels it should not be added to this tree, please reply to this email. For more information about the 3.5.y.z tree, see https://wiki.ubuntu.com/Kernel/Dev/ExtendedStable Thanks. -Herton ------ >From b9dec27e04fe17f702977c81e73d0e5eb9a9add4 Mon Sep 17 00:00:00 2001 From: Hannes Frederic Sowa Date: Tue, 6 Nov 2012 16:18:41 +0000 Subject: [PATCH] ipv6: send unsolicited neighbour advertisements to all-nodes commit 60713a0ca7fd6651b951cc1b4dbd528d1fc0281b upstream. As documented in RFC4861 (Neighbor Discovery for IP version 6) 7.2.6., unsolicited neighbour advertisements should be sent to the all-nodes multicast address. Signed-off-by: Hannes Frederic Sowa Signed-off-by: David S. Miller Signed-off-by: Herton Ronaldo Krzesinski --- net/ipv6/ndisc.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) -- 1.7.9.5 diff --git a/net/ipv6/ndisc.c b/net/ipv6/ndisc.c index 54f62d3..35bfebc 100644 --- a/net/ipv6/ndisc.c +++ b/net/ipv6/ndisc.c @@ -580,7 +580,7 @@ static void ndisc_send_unsol_na(struct net_device *dev) { struct inet6_dev *idev; struct inet6_ifaddr *ifa; - struct in6_addr mcaddr; + struct in6_addr mcaddr = IN6ADDR_LINKLOCAL_ALLNODES_INIT; idev = in6_dev_get(dev); if (!idev) @@ -588,7 +588,6 @@ static void ndisc_send_unsol_na(struct net_device *dev) read_lock_bh(&idev->lock); list_for_each_entry(ifa, &idev->addr_list, if_list) { - addrconf_addr_solict_mult(&ifa->addr, &mcaddr); ndisc_send_na(dev, NULL, &mcaddr, &ifa->addr, /*router=*/ !!idev->cnf.forwarding, /*solicited=*/ false, /*override=*/ true,