net: track link status of ipv6 nexthops
authorAndy Gospodarek <gospo@cumulusnetworks.com>
Thu, 13 Aug 2015 14:39:00 +0000 (10:39 -0400)
committerDavid S. Miller <davem@davemloft.net>
Fri, 14 Aug 2015 04:27:18 +0000 (21:27 -0700)
Add support to track current link status of ipv6 nexthops to match
recent changes that added support for ipv4 nexthops.  This takes a
simple approach to track linkdown status for next-hops and simply
checks the dev for the dst entry and sets proper flags that to be used
in the netlink message.

v2: drop use of rt6i_nhflags since it is not needed right now

Signed-off-by: Andy Gospodarek <gospo@cumulusnetworks.com>
Signed-off-by: Dinesh Dutt <ddutt@cumulusnetworks.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv6/route.c

index c0fa61eba8f2b0262a97742339cce76013611d2f..370f72785385399cc19fdf50ab1a0236c4fb6830 100644 (file)
@@ -2887,6 +2887,8 @@ static int rt6_fill_node(struct net *net,
        else
                rtm->rtm_type = RTN_UNICAST;
        rtm->rtm_flags = 0;
+       if (!netif_carrier_ok(rt->dst.dev))
+               rtm->rtm_flags |= RTNH_F_LINKDOWN;
        rtm->rtm_scope = RT_SCOPE_UNIVERSE;
        rtm->rtm_protocol = rt->rt6i_protocol;
        if (rt->rt6i_flags & RTF_DYNAMIC)