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 ?