Subject: [PATCH net-next 3/3] net: ipv6: flush neighbor entries when carrier is off

From: David Ahern <[email-masked]>
Date: Sun, 5 Nov 2017 22:57:53 -0800

Similar to IPv4, flush non-permanent neighbor entries on carrier down
to improve path selection for multipath routes.

Signed-off-by: Satish Ashok <[email-masked]>
Signed-off-by: David Ahern <[email-masked]>
---
 net/ipv6/addrconf.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c
index 5a8a10229a07..85bddff5eac6 100644
--- a/net/ipv6/addrconf.c
+++ b/net/ipv6/addrconf.c
@@ -3432,6 +3432,9 @@ static int addrconf_notify(struct notifier_block *this, unsigned long event,
 				run_pending = 1;
 			}
 		} else if (event == NETDEV_CHANGE) {
+			if (idev && idev->cnf.ignore_routes_with_linkdown)
+				neigh_carrier_down(&nd_tbl, dev);
+
 			if (!addrconf_link_ready(dev)) {
 				/* device is still not ready. */
 				break;
-- 
2.1.4