On Sat, Sep 21, 2013 at 11:45:08AM +0200, Ondrej Zajicek wrote: > On Fri, Sep 20, 2013 at 09:09:32PM +0400, Alexander V. Chernikov wrote: > > Hello list! > > > > Currently bird assumes (bsd sysdep) that any prefix on p2p link is /32. > > > > For example: > > > > bird: direct1 < primary address 10.0.0.3/31 on interface gif15 added > > bird: Ignoring bogus prefix 10.0.0.3/31 received via direct1 > > bird: direct1 > invalid 10.0.0.3/31 dev gif15 > > > > Can we do the same for IPv4 ? > > That could be done, but i wonder why ever check for IF_MULTIACCESS, is > that relevant for IPs on BSD? Does BSD support peer addresses on > multiaccess interfaces? > > Do you think we could do it with the same logic as it is done in Linux:
That would be: if (masklen < BITS_PER_IP_ADDRESS) { ifa.prefix = ipa_and(ifa.ip, ipa_mkmask(masklen)); if (masklen == (BITS_PER_IP_ADDRESS - 1)) ifa.opposite = ipa_opposite_m1(ifa.ip); #ifndef IPV6 if (masklen == (BITS_PER_IP_ADDRESS - 2)) ifa.opposite = ipa_opposite_m2(ifa.ip); #endif } else if (masklen == BITS_PER_IP_ADDRESS) { ifa.prefix = ifa.brd; if (ipa_equal(ifa.ip, ifa.brd)) ifa.flags |= IA_HOST; else { ifa.flags |= IA_PEER; ifa.opposite = ifa.brd; } } else // BAD px len -- Elen sila lumenn' omentielvo Ondrej 'SanTiago' Zajicek (email: santi...@crfreenet.org) OpenPGP encrypted e-mails preferred (KeyID 0x11DEADC3, wwwkeys.pgp.net) "To err is human -- to blame it on a computer is even more so."
signature.asc
Description: Digital signature