--- a/proto/ospf/lsupd.c +++ b/proto/ospf/lsupd.c @@ -595,6 +595,13 @@ ospf_receive_lsupd(struct ospf_packet *pkt, struct ospf_iface *ifa, (ospf_is_v2(p) && (lsa_type == LSA_T_NET) && ospf_addr_is_local(p, ifa->oa, ipa_from_u32(lsa.id))))) { OSPF_TRACE(D_EVENTS, "Received unexpected self-originated LSA"); + if ((lsa_type == LSA_T_NET) && (lsa.rt != p->router_id)) + { + lsa.age = LSA_MAXAGE; + en = ospf_install_lsa(p, &lsa, lsa_type, lsa_domain, body); + ospf_flood_lsa(p, en, NULL); + continue; + } ospf_advance_lsa(p, en, &lsa, lsa_type, lsa_domain, body); continue; }