<html><head></head><body><div class="ydpcb2fc484yahoo-style-wrap" style="font-family:Helvetica Neue, Helvetica, Arial, sans-serif;font-size:13px;"><div></div>
<div dir="ltr" data-setdir="false"><span><span style="color: rgb(0, 0, 0); font-family: Helvetica Neue, Helvetica, Arial, sans-serif;">For <span><span style="color: rgb(0, 0, 0); font-family: Helvetica Neue, Helvetica, Arial, sans-serif;">unnumbered ptp interface, if it had <span><span style="color: rgb(0, 0, 0); font-family: Helvetica Neue, Helvetica, Arial, sans-serif;">borrowed an address with /32, then bird</span></span></span></span></span></span> currently wont send hello packets and wont try to form adj. </div><div><br></div>
</div><div id="ydpf1f6945eyahoo_quoted_1390602544" class="ydpf1f6945eyahoo_quoted">
<div style="font-family:'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;color:#26282a;">
<div>
On Saturday, May 8, 2021, 09:33:37 PM GMT+5:30, Joakim Tjernlund <joakim.tjernlund@infinera.com> wrote:
</div>
<div><br></div>
<div><br></div>
<div><div dir="ltr">On Sat, 2021-05-08 at 17:45 +0200, Joakim Tjernlund wrote:<br clear="none">> On Fri, 2021-05-07 at 14:03 +0000, Senthil Kumar Nagappan wrote:<br clear="none">> > Hi Jocke,<br clear="none">> > <br clear="none">> > yes i missed to take care of the ospfv3/ipv6 cases wherever im sending using allospfrouters as src ip.<br clear="none">> > 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.<br clear="none">> > 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. <br clear="none">> > In Hello.c, ospf_send_hello they do some what similar, checking different interface types before they call ospf_send_to()<br clear="none">> <br clear="none">> Ondrej, what is your preference? Perhaps you want to do the impl. yourself?<br clear="none">> <br clear="none">> <br clear="none">> Jocke<br clear="none"><br clear="none">Meanwhile I did this:<br clear="none">--- a/proto/ospf/packet.c<br clear="none">+++ b/proto/ospf/packet.c<br clear="none">@@ -415,7 +415,7 @@ ospf_rx_hook(sock *sk, uint len)<br clear="none"> * that (src_local || dst_local), therefore we are eliminating all<br clear="none"> * such cases.<br clear="none"> */<br clear="none">- if (dst_mcast && !src_local)<br clear="none">+ if (ifa->type != OSPF_IT_PTP && dst_mcast && !src_local)<br clear="none"> return 1;<br clear="none"> if (!dst_mcast && !dst_local)<br clear="none"> return 1;<br clear="none">@@ -430,7 +430,7 @@ ospf_rx_hook(sock *sk, uint len)<br clear="none"> * RFC 5340 says that local (non-vlink) packets use<br clear="none"> * link-local src address, but does not enforce it. Strange.<br clear="none"> */<br clear="none">- if (dst_mcast && !src_local)<br clear="none">+ if (ifa->type != OSPF_IT_PTP && dst_mcast && !src_local)<br clear="none"> LOG_PKT_WARN("Multicast packet received from non-link-local %I via %s",<br clear="none"> sk->faddr, ifa->ifname);<br clear="none"> }<br clear="none">@@ -654,6 +654,12 @@ ospf_send_to(struct ospf_iface *ifa, ip_addr dst)<br clear="none"> struct ospf_packet *pkt = (struct ospf_packet *) sk->tbuf;<br clear="none"> uint plen = ntohs(pkt->length);<br clear="none"> <br clear="none">+ /* RFC : On physical point-to-point networks, the IP destination<br clear="none">+ * is always set to the address AllSPFRouters.<br clear="none">+ */<br clear="none">+ if (ifa->type == OSPF_IT_PTP)<br clear="none">+ dst = ifa->all_routers;<br clear="none">+<br clear="none"> if (ospf_is_v2(ifa->oa->po))<br clear="none"> ospf_pkt_finalize2(ifa, pkt, &plen);<br clear="none"> else<br clear="none"><br clear="none"><br clear="none">In your patch you also have:<br clear="none">--- a/proto/ospf/iface.c<br clear="none">+++ b/proto/ospf/iface.c<br clear="none">@@ -535,6 +535,9 @@ ospf_iface_stubby(struct ospf_iface_patt *ip, struct ifa *addr)<br clear="none"> if (ip->type == OSPF_IT_VLINK)<br clear="none"> return 0;<br clear="none"> <br clear="none">+ if (ip->type == OSPF_IT_PTP)<br clear="none">+ return 0;<br clear="none">+<br clear="none"><br clear="none">What is that about? Is it unrelated to AllSPFRouters change?<div class="ydpf1f6945eyqt9432249543" id="ydpf1f6945eyqtfd10549"><br clear="none"><br clear="none"> Jocke<br clear="none"></div></div></div>
</div>
</div></body></html>