On 12/21/2010 01:21 AM, Ondrej Zajicek wrote:
diff --git a/sysdep/bsd/krt-sock.c b/sysdep/bsd/krt-sock.c
index 53b30ca..fc73be8 100644 --- a/sysdep/bsd/krt-sock.c +++ b/sysdep/bsd/krt-sock.c @@ -541,7 +541,7 @@ krt_read_addr(struct ks_msg *msg) _I0(ifa.ip) = 0xfe800000; #endif
- if (iface->flags & IF_MULTIACCESS) + if ((iface->flags & IF_MULTIACCESS) || ipa_has_link_scope(ifa.ip)) { ifa.prefix = ipa_and(ifa.ip, ipa_mkmask(masklen));
What is exactly that? Link-local addresses are broken (in BIRD) on non-multiaccess devices on *BSD?
Without that patch, on *BSD link-local addresses will be marked as unnumbered on pointopoint interfaces, while they are in fact /64. This breaks the is_connected() check that's called from neigh_find2(), as there is no opposite address. Matthias Schiffer