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.
Unified · Split
| @@ -535,7 +535,7 @@ static void ndisc_send_unsol_na(struct net_device *dev) · 534 unmodified lines | ||
| 535 | 535 | { |
| 536 | 536 | struct inet6_dev *idev; |
| 537 | 537 | struct inet6_ifaddr *ifa; |
| 538 | − struct in6_addr mcaddr; | |
| 538 | + struct in6_addr mcaddr = IN6ADDR_LINKLOCAL_ALLNODES_INIT; | |
| 539 | 539 | |
| 540 | 540 | idev = in6_dev_get(dev); |
| 541 | 541 | if (!idev) |
| @@ -543,7 +543,6 @@ static void ndisc_send_unsol_na(struct net_device *dev) · 1 unmodified line | ||
| 543 | 543 | |
| 544 | 544 | read_lock_bh(&idev->lock); |
| 545 | 545 | list_for_each_entry(ifa, &idev->addr_list, if_list) { |
| 546 | − addrconf_addr_solict_mult(&ifa->addr, &mcaddr); | |
| 547 | 546 | ndisc_send_na(dev, NULL, &mcaddr, &ifa->addr, |
| 548 | 547 | /*router=*/ !!idev->cnf.forwarding, |
| 549 | 548 | /*solicited=*/ false, /*override=*/ true, |