IPv6: set RTPROT_KERNEL to initial route
The use of unspecified protocol in IPv6 initial route prevents quagga to
install IPv6 default route:
# show ipv6 route
S ::/0 [1/0] via fe80::1, eth1_0
K>* ::/0 is directly connected, lo, rej
C>* ::1/128 is directly connected, lo
C>* fe80::/64 is directly connected, eth1_0
# ip -6 route
fe80::/64 dev eth1_0 proto kernel metric 256 mtu 1500 advmss 1440
hoplimit -1
ff00::/8 dev eth1_0 metric 256 mtu 1500 advmss 1440 hoplimit -1
unreachable default dev lo proto none metric -1 error -101 hoplimit 255
The attached patch ensures RTPROT_KERNEL to the default initial route
and fixes the problem for quagga.
This is similar to "ipv6: protocol for address routes"
f410a1fba7
.
# show ipv6 route
S>* ::/0 [1/0] via fe80::1, eth1_0
C>* ::1/128 is directly connected, lo
C>* fe80::/64 is directly connected, eth1_0
# ip -6 route
fe80::/64 dev eth1_0 proto kernel metric 256 mtu 1500 advmss 1440
hoplimit -1
fe80::/64 dev eth1_0 proto kernel metric 256 mtu 1500 advmss 1440
hoplimit -1
ff00::/8 dev eth1_0 metric 256 mtu 1500 advmss 1440 hoplimit -1
default via fe80::1 dev eth1_0 proto zebra metric 1024 mtu 1500
advmss 1440 hoplimit -1
unreachable default dev lo proto kernel metric -1 error -101 hoplimit 255
Signed-off-by: Jean-Mickael Guerin <jean-mickael.guerin@6wind.com>
Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
86c2fe1e3a
commit
4f72427998
1 changed files with 3 additions and 0 deletions
|
@ -137,6 +137,7 @@ static struct rt6_info ip6_null_entry_template = {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
.rt6i_flags = (RTF_REJECT | RTF_NONEXTHOP),
|
.rt6i_flags = (RTF_REJECT | RTF_NONEXTHOP),
|
||||||
|
.rt6i_protocol = RTPROT_KERNEL,
|
||||||
.rt6i_metric = ~(u32) 0,
|
.rt6i_metric = ~(u32) 0,
|
||||||
.rt6i_ref = ATOMIC_INIT(1),
|
.rt6i_ref = ATOMIC_INIT(1),
|
||||||
};
|
};
|
||||||
|
@ -159,6 +160,7 @@ static struct rt6_info ip6_prohibit_entry_template = {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
.rt6i_flags = (RTF_REJECT | RTF_NONEXTHOP),
|
.rt6i_flags = (RTF_REJECT | RTF_NONEXTHOP),
|
||||||
|
.rt6i_protocol = RTPROT_KERNEL,
|
||||||
.rt6i_metric = ~(u32) 0,
|
.rt6i_metric = ~(u32) 0,
|
||||||
.rt6i_ref = ATOMIC_INIT(1),
|
.rt6i_ref = ATOMIC_INIT(1),
|
||||||
};
|
};
|
||||||
|
@ -176,6 +178,7 @@ static struct rt6_info ip6_blk_hole_entry_template = {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
.rt6i_flags = (RTF_REJECT | RTF_NONEXTHOP),
|
.rt6i_flags = (RTF_REJECT | RTF_NONEXTHOP),
|
||||||
|
.rt6i_protocol = RTPROT_KERNEL,
|
||||||
.rt6i_metric = ~(u32) 0,
|
.rt6i_metric = ~(u32) 0,
|
||||||
.rt6i_ref = ATOMIC_INIT(1),
|
.rt6i_ref = ATOMIC_INIT(1),
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue