net: ipv6: Set protocol to kernel for local routes
IPv6 stack does not set the protocol for local routes, so those routes show up with proto "none": $ ip -6 ro ls table local local ::1 dev lo proto none metric 0 pref medium local 2100:3:: dev lo proto none metric 0 pref medium local 2100:3::4 dev lo proto none metric 0 pref medium local fe80:: dev lo proto none metric 0 pref medium ... Set rt6i_protocol to RTPROT_KERNEL for consistency with IPv4. Now routes show up with proto "kernel": $ ip -6 ro ls table local local ::1 dev lo proto kernel metric 0 pref medium local 2100:3:: dev lo proto kernel metric 0 pref medium local 2100:3::4 dev lo proto kernel metric 0 pref medium local fe80:: dev lo proto kernel metric 0 pref medium ... Signed-off-by: David Ahern <dsa@cumulusnetworks.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
3898fac1f4
commit
94b5e0f970
|
@ -2634,6 +2634,7 @@ struct rt6_info *addrconf_dst_alloc(struct inet6_dev *idev,
|
||||||
rt->dst.output = ip6_output;
|
rt->dst.output = ip6_output;
|
||||||
rt->rt6i_idev = idev;
|
rt->rt6i_idev = idev;
|
||||||
|
|
||||||
|
rt->rt6i_protocol = RTPROT_KERNEL;
|
||||||
rt->rt6i_flags = RTF_UP | RTF_NONEXTHOP;
|
rt->rt6i_flags = RTF_UP | RTF_NONEXTHOP;
|
||||||
if (anycast)
|
if (anycast)
|
||||||
rt->rt6i_flags |= RTF_ANYCAST;
|
rt->rt6i_flags |= RTF_ANYCAST;
|
||||||
|
|
Loading…
Reference in New Issue