Hi Jocke, yes i missed to take care of the ospfv3/ipv6 cases wherever im sending using allospfrouters as src ip.your are right, mcast changes in packet.c is mostly hack since im not comfortable with the bird code since i have only 1 week of bird code experience.reason i did not change inside ospf_send_to() is,since dst address is one of the parameter to the function and i don't want to override inside it. In Hello.c, ospf_send_hello they do some what similar, checking different interface types before they call ospf_send_to() Thanks and Regards,Senthil On Friday, May 7, 2021, 06:14:16 PM GMT+5:30, Joakim Tjernlund <joakim.tjernl...@infinera.com> wrote: On Thu, 2021-05-06 at 17:09 +0000, Senthil Kumar Nagappan wrote: > Hi, > > I did sent this message a week back but I could not see it in the mailing, > moreover just now subscribed to this mailing list, so sending this again. > > I’m seeing some issues with ospf adj over ptp numbered/unnumbered interface. > > 1. For p2p connections, ospf should be sending only multicast packets to > allospfrouters, but I see its sending to unicast address. > (From RFC “On physical point-to-point networks, the IP destination is always > set to the address AllSPFRouters”) > 2. For ptp over unnumbered interface, bird requires peer address > configuration which is not required from the ospf perspective. Because bird > is using peer address and sending > unicast packets, bird cannot form multiple ospf adj over ptp unnumbered > interface between 2 endpoints using same peer address. > Made some quick changes and have attached the patch that addresses the > issues. Relaxed the source ip address validation for ptp link in packet.c for > now. More validation can be > added to make it complete. > > Thanks and Regards, > Senthil >
Hi Senthil I took a closer look at your hack/patch ... You seem to miss correcting a few ospf_send_to() call sites. I wonder in its not better to override the dst addr inside ospf_send_to() instead? Also, the mcast changes in packet.c looks incomplete, there is IPv6 and and area == 0 further down to consider. Jocke