On 20.09.2013 21:09, Alexander V. Chernikov wrote:
Hello list!

Currently bird assumes (bsd sysdep) that any prefix on p2p link is /32.
Just to be more specific: krt_read_addr() assumes the following for every non-multiaccess interfaces:

else /* PtP iface */
{
ifa.flags |= IA_PEER;
ifa.prefix = ifa.opposite = ifa.brd;
}

For every mask != 32 this (except /31 and higher address) gives you wrong prefix like in example below:

For example:

ifconfig gif15 inet 10.0.0.2/31 10.0.0.3
ifconfig gif15
gif15: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> metric 0 mtu 1280
...
        inet 10.0.0.2 --> 10.0.0.3 netmask 0xfffffffe


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

IPv6 case was fixed in 3f5843740 <https://gitlab.labs.nic.cz/labs/bird/commit/3f58437405f8e37e9c14d83274a6b82ffd9583f8>.
Can we do the same for IPv4 ?




Reply via email to