On Fri, 2020-05-22 at 22:59 +0200, Ondrej Zajicek wrote: > On Fri, May 22, 2020 at 07:14:44PM +0000, Kenth Eriksson wrote: > > On Thu, 2020-05-21 at 12:43 +0200, Ondrej Zajicek wrote: > > > This patch should fix the issue, could you try it? > > > > Looks promising, applied on top of 2.0.7, and a quick test on the 5 > > node setup looks correct. Will do some more testing. > > > > We definitely need this fix in the pending 2.0.8 :-) > > This issue has a long history. In 2012, we changed data field for > unnumbered PtP links from iface id (specified by RFC) to IP address based > on reports of bugs in Quagga that required it, and we used out-of-band > information to distinquish unnumberred PtPs with the same local IP > address. > > Then with OSPF graceful restart implementation, we found that we can no > longer use out-of-band information, and we need to use only LSAdb info > for routing table calculation, but i forgot to finish handling of this > case, so multiple unnumbered PtPs with the same local IP addresses were > broken. > > This patch returned back iface id to data field for unnumbered PtP links > (i.e. reverted back the change from 2012), while doing computation just > from LSAdb info. It fixed your case (multiple unnumbered PtPs with the > same local IP address) and is correct per RFC, but it may trigger bugs > with other implementations (like the one that led to the 2012 change).
Not sure I follow here, have you done away with rt_pos_to_ifa() and friends now and gone back to the old way? The old way had several drawbacks, one of them was this dependency on interface ID. Does current impl. depend on a well behaved neighbor too? Is it compatible with any other Bird release? Jocke
