Hi , I am using bird 1.5.0 and running OSPF along with a custom protocol which learns all routes and redistributes its routes into OSPF (import all/export all). When I restart OSPF and my protocol, I see a few times LSA ID collisions. I even tried this scenario to see the outcome : (linux box running OSPF and peering with a router where BGP routes are redistributed into OSPF). OSPF(bird) <-----------------> OSPF/BGP (router) I could see a lot of LSA ID collision messages in log. I tried to debug this and realized that in some cases, the hash entry (en->nf) is NULL and we throw a LSA ID collision error. In a different scenario, I saw that the en->nf.fn was not freed from the earlier hash entry (when I print out the prefix and prefix length it is completely different than the lsa->nf.fn which results in the same error. I cannot recreate this scenario at will but had some success when restarting protocols or rebooting the linux box or feeding 1000+ routes (to BGP and redistribute to OSPF in router) to the setup mentioned above. My IP address space was not overlapping either, so the LSA ID generated would have been unique. Also, I noticed that if I insert overlapping addresses in my protocol and redistribute to OSPF , I see LSA ID collisions (bug ?) Eg: 2016-03-17 16:29:21 <ERR> ospf_0: LSA ID collision for 10.0.192.127/32 2016-03-17 16:30:31 <ERR> ospf_0: LSA ID collision for 10.0.192.0/25 I tried to look around but could not track why we would have this problem. Any suggestions or input is appreciated. Some additional logs : ( i had added some additional info to log statements) 2016-03-17 17:36:12 <INFO> Received message to resend routes in Table: T2 2016-03-17 17:36:12 <INFO> 0 messages sent for Table: T2 2016-03-17 17:36:12 <INFO> <INSERT_ROUTE> Installing route(id = 29) 10.0.2.0/24, rtd=127.0.0.2 with cost of 5(RD : 2) 2016-03-17 17:36:12 <INFO> Processed 2 routes for message of size 30 2016-03-17 17:36:12 <INFO> <INSERT_ROUTE> Installing route(id = 4) 10.0.1.0/24, rtd=127.0.0.2 with cost of 5(RD : 0) 2016-03-17 17:36:12 <INFO> <INSERT_ROUTE> Installing route(id = 3) 10.0.2.0/24, rtd=127.0.0.2 with cost of 5(RD : 0) 2016-03-17 17:36:12 <INFO> <INSERT_ROUTE> Installing route(id = 5) 50.1.1.0/24, rtd=127.0.0.2 with cost of 5(RD : 0) 2016-03-17 17:36:12 <INFO> Received message to resend routes in Table: T0 2016-03-17 17:36:12 <INFO> 0 messages sent for Table: T0 2016-03-17 17:36:12 <INFO> Processed 4 routes for message of size 60 2016-03-17 17:36:12 <INFO> Received message to resend routes in Table: T1 2016-03-17 17:36:12 <INFO> 0 messages sent for Table: T1 2016-03-17 17:36:12 <INFO> <INSERT_ROUTE> Installing route(id = 19) 10.0.1.0/24, rtd=127.0.0.2 with cost of 5(RD : 1) 2016-03-17 17:36:12 <INFO> Processed 2 routes for message of size 30 2016-03-17 17:36:12 <TRACE> ospf_0: HELLO packet received from nbr 50.1.1.2 on vni-0 2016-03-17 17:36:12 <TRACE> ospf_0: New neighbor 50.1.1.2 on vni-0, IP address 10.0.1.129 2016-03-17 17:36:12 <TRACE> ospf_0: Neighbor 50.1.1.2 on vni-0 changed state from Down to Init 2016-03-17 17:36:12 <TRACE> ospf_0: Neighbor 50.1.1.2 on vni-0 changed state from Init to 2-Way 2016-03-17 17:36:12 <TRACE> ospf_0: Neighbor 50.1.1.2 on vni-0 changed state from 2-Way to ExStart 2016-03-17 17:36:13 <TRACE> ospf_0: DBDES packet sent to nbr 50.1.1.2 on vni-0 2016-03-17 17:36:13 <TRACE> ospf_0: length 32 2016-03-17 17:36:13 <TRACE> ospf_0: router 10.0.1.11 2016-03-17 17:36:13 <TRACE> ospf_0: mtu 1500 2016-03-17 17:36:13 <TRACE> ospf_0: imms I M MS 2016-03-17 17:36:13 <TRACE> ospf_0: ddseq 602132310 2016-03-17 17:36:13 <TRACE> ospf_0: Updating router state for area 0.0.0.0 2016-03-17 17:36:13 <ERR> ospf_0 ospf_install_lsa:get new hash entry 0000000000691d38 10.0.1.11 rtr:10.0.1.11 2016-03-17 17:36:13 <TRACE> ospf_0: DBDES packet received from nbr 50.1.1.2 on vni-0 2016-03-17 17:36:13 <TRACE> ospf_0: length 32 2016-03-17 17:36:13 <TRACE> ospf_0: router 50.1.1.2 2016-03-17 17:36:13 <TRACE> ospf_0: mtu 1500 2016-03-17 17:36:13 <TRACE> ospf_0: imms I M MS 2016-03-17 17:36:13 <TRACE> ospf_0: ddseq 4921 2016-03-17 17:36:13 <TRACE> ospf_0: Neighbor 50.1.1.2 on vni-0 changed state from ExStart to Exchange 2016-03-17 17:36:13 <TRACE> ospf_0: DBDES packet sent to nbr 50.1.1.2 on vni-0 2016-03-17 17:36:13 <TRACE> ospf_0: length 172 2016-03-17 17:36:13 <TRACE> ospf_0: router 10.0.1.11 2016-03-17 17:36:13 <TRACE> ospf_0: mtu 1500 2016-03-17 17:36:13 <TRACE> ospf_0: imms 2016-03-17 17:36:13 <TRACE> ospf_0: ddseq 4921 2016-03-17 17:36:13 <TRACE> ospf_0: LSA Type: 0005, Id: 10.0.2.255, Rt: 10.0.1.11, Seq: 800000da, Age: 735, Sum: a1b0 2016-03-17 17:36:13 <TRACE> ospf_0: LSA Type: 0005, Id: 10.0.1.0, Rt: 10.0.1.11, Seq: 800000da, Age: 735, Sum: aca6 2016-03-17 17:36:13 <TRACE> ospf_0: LSA Type: 0001, Id: 10.0.1.11, Rt: 10.0.1.11, Seq: 80000d02, Age: 731, Sum: 0cf5 2016-03-17 17:36:13 <TRACE> ospf_0: LSA Type: 0001, Id: 50.1.1.2, Rt: 50.1.1.2, Seq: 80000c3c, Age: 745, Sum: b2b0 2016-03-17 17:36:13 <TRACE> ospf_0: LSA Type: 0003, Id: 10.0.129.0, Rt: 50.1.1.2, Seq: 800000e4, Age: 2036, Sum: d9bc 2016-03-17 17:36:13 <TRACE> ospf_0: LSA Type: 0005, Id: 50.1.1.0, Rt: 10.0.1.11, Seq: 800000d2, Age: 740, Sum: a68b 2016-03-17 17:36:13 <TRACE> ospf_0: LSA Type: 0002, Id: 10.0.1.129, Rt: 50.1.1.2, Seq: 8000000a, Age: 741, Sum: ac75 2016-03-17 17:36:13 <TRACE> ospf_0: DBDES packet received from nbr 50.1.1.2 on vni-0 2016-03-17 17:36:13 <TRACE> ospf_0: length 392 2016-03-17 17:36:13 <TRACE> ospf_0: router 50.1.1.2 2016-03-17 17:36:13 <TRACE> ospf_0: mtu 1500 2016-03-17 17:36:13 <TRACE> ospf_0: imms M MS 2016-03-17 17:36:13 <TRACE> ospf_0: ddseq 4922 2016-03-17 17:36:13 <TRACE> ospf_0: LSA Type: 0001, Id: 10.0.1.11, Rt: 10.0.1.11, Seq: 80000d02, Age: 731, Sum: 2249 2016-03-17 17:36:13 <TRACE> ospf_0: LSA Type: 0001, Id: 50.1.1.2, Rt: 50.1.1.2, Seq: 80000c3c, Age: 744, Sum: b2b0 2016-03-17 17:36:13 <TRACE> ospf_0: LSA Type: 0002, Id: 10.0.1.129, Rt: 50.1.1.2, Seq: 8000000a, Age: 740, Sum: ac75 2016-03-17 17:36:13 <TRACE> ospf_0: LSA Type: 0003, Id: 10.0.129.0, Rt: 50.1.1.2, Seq: 800000e4, Age: 2036, Sum: d9bc 2016-03-17 17:36:13 <TRACE> ospf_0: LSA Type: 0005, Id: 0.0.0.0, Rt: 10.0.1.11, Seq: 80000001, Age: 733, Sum: ed4a 2016-03-17 17:36:13 <TRACE> ospf_0: LSA Type: 0005, Id: 10.0.1.0, Rt: 10.0.1.11, Seq: 800000da, Age: 736, Sum: aca6 2016-03-17 17:36:13 <TRACE> ospf_0: LSA Type: 0005, Id: 10.0.2.255, Rt: 10.0.1.11, Seq: 800000da, Age: 736, Sum: a1b0 2016-03-17 17:36:13 <TRACE> ospf_0: LSA Type: 0005, Id: 10.1.1.0, Rt: 10.0.1.11, Seq: 80000002, Age: 729, Sum: 52d8 2016-03-17 17:36:13 <TRACE> ospf_0: LSA Type: 0005, Id: 10.1.2.255, Rt: 10.0.1.11, Seq: 80000002, Age: 729, Sum: 47e2 2016-03-17 17:36:13 <TRACE> ospf_0: LSA Type: 0005, Id: 10.1.3.0, Rt: 10.0.1.11, Seq: 80000002, Age: 729, Sum: 3cec 2016-03-17 17:36:13 <TRACE> ospf_0: LSA Type: 0005, Id: 10.2.1.0, Rt: 10.0.1.11, Seq: 80000001, Age: 734, Sum: 48e2 2016-03-17 17:36:13 <TRACE> ospf_0: LSA Type: 0005, Id: 10.2.2.255, Rt: 10.0.1.11, Seq: 80000001, Age: 734, Sum: 3dec 2016-03-17 17:36:13 <TRACE> ospf_0: LSA Type: 0005, Id: 10.100.1.0, Rt: 10.0.1.11, Seq: 80000001, Age: 734, Sum: ab1d 2016-03-17 17:36:13 <TRACE> ospf_0: LSA Type: 0005, Id: 10.100.2.255, Rt: 10.0.1.11, Seq: 80000001, Age: 734, Sum: a027 2016-03-17 17:36:13 <TRACE> ospf_0: LSA Type: 0005, Id: 10.100.129.0, Rt: 10.0.1.11, Seq: 80000001, Age: 734, Sum: 3017 2016-03-17 17:36:13 <TRACE> ospf_0: LSA Type: 0005, Id: 11.123.10.255, Rt: 10.0.1.11, Seq: 80000001, Age: 733, Sum: 4460 2016-03-17 17:36:13 <TRACE> ospf_0: LSA Type: 0005, Id: 12.125.10.255, Rt: 10.0.1.11, Seq: 80000001, Age: 733, Sum: 01a3 2016-03-17 17:36:13 <TRACE> ospf_0: LSA Type: 0005, Id: 50.1.1.0, Rt: 10.0.1.11, Seq: 800000d3, Age: 736, Sum: a48c 2016-03-17 17:36:13 <ERR> get new hash e:0000000000692628 LSA ID 10.0.1.11 rtr:10.0.1.11 2016-03-17 17:36:13 <ERR> get new hash e:00000000006926c8 LSA ID 0.0.0.0 rtr:10.0.1.11 2016-03-17 17:36:13 <ERR> get new hash e:0000000000692768 LSA ID 10.1.1.0 rtr:10.0.1.11 2016-03-17 17:36:13 <ERR> get new hash e:0000000000692808 LSA ID 10.1.2.255 rtr:10.0.1.11 2016-03-17 17:36:13 <ERR> get new hash e:00000000006928a8 LSA ID 10.1.3.0 rtr:10.0.1.11 2016-03-17 17:36:13 <ERR> get new hash e:0000000000692948 LSA ID 10.2.1.0 rtr:10.0.1.11 2016-03-17 17:36:13 <ERR> get new hash e:00000000006929e8 LSA ID 10.2.2.255 rtr:10.0.1.11 2016-03-17 17:36:13 <ERR> get new hash e:0000000000692a88 LSA ID 10.100.1.0 rtr:10.0.1.11 2016-03-17 17:36:13 <ERR> get new hash e:0000000000692b28 LSA ID 10.100.2.255 rtr:10.0.1.11 2016-03-17 17:36:13 <ERR> get new hash e:0000000000692bc8 LSA ID 10.100.129.0 rtr:10.0.1.11 2016-03-17 17:36:13 <ERR> get new hash e:0000000000692c68 LSA ID 11.123.10.255 rtr:10.0.1.11 2016-03-17 17:36:13 <ERR> get new hash e:0000000000692d08 LSA ID 12.125.10.255 rtr:10.0.1.11 2016-03-17 17:36:13 <ERR> get new hash e:0000000000692da8 LSA ID 50.1.1.0 rtr:10.0.1.11 2016-03-17 17:36:13 <TRACE> ospf_0: DBDES packet sent to nbr 50.1.1.2 on vni-0 2016-03-17 17:36:13 <TRACE> ospf_0: length 32 2016-03-17 17:36:13 <TRACE> ospf_0: router 10.0.1.11 2016-03-17 17:36:13 <TRACE> ospf_0: mtu 1500 2016-03-17 17:36:13 <TRACE> ospf_0: imms 2016-03-17 17:36:13 <TRACE> ospf_0: ddseq 4922 2016-03-17 17:36:13 <TRACE> ospf_0: LSREQ packet sent to nbr 50.1.1.2 on vni-0 2016-03-17 17:36:13 <TRACE> ospf_0: length 180 2016-03-17 17:36:13 <TRACE> ospf_0: router 10.0.1.11 2016-03-17 17:36:13 <TRACE> ospf_0: LSR Type: 0001, Id: 10.0.1.11, Rt: 10.0.1.11 2016-03-17 17:36:13 <TRACE> ospf_0: LSR Type: 0005, Id: 0.0.0.0, Rt: 10.0.1.11 2016-03-17 17:36:13 <TRACE> ospf_0: LSR Type: 0005, Id: 10.1.1.0, Rt: 10.0.1.11 2016-03-17 17:36:13 <TRACE> ospf_0: LSR Type: 0005, Id: 10.1.2.255, Rt: 10.0.1.11 2016-03-17 17:36:13 <TRACE> ospf_0: LSR Type: 0005, Id: 10.1.3.0, Rt: 10.0.1.11 2016-03-17 17:36:13 <TRACE> ospf_0: LSR Type: 0005, Id: 10.2.1.0, Rt: 10.0.1.11 2016-03-17 17:36:13 <TRACE> ospf_0: LSR Type: 0005, Id: 10.2.2.255, Rt: 10.0.1.11 2016-03-17 17:36:13 <TRACE> ospf_0: LSR Type: 0005, Id: 10.100.1.0, Rt: 10.0.1.11 2016-03-17 17:36:13 <TRACE> ospf_0: LSR Type: 0005, Id: 10.100.2.255, Rt: 10.0.1.11 2016-03-17 17:36:13 <TRACE> ospf_0: LSR Type: 0005, Id: 10.100.129.0, Rt: 10.0.1.11 2016-03-17 17:36:13 <TRACE> ospf_0: LSR Type: 0005, Id: 11.123.10.255, Rt: 10.0.1.11 2016-03-17 17:36:13 <TRACE> ospf_0: LSR Type: 0005, Id: 12.125.10.255, Rt: 10.0.1.11 2016-03-17 17:36:13 <TRACE> ospf_0: LSR Type: 0005, Id: 50.1.1.0, Rt: 10.0.1.11 2016-03-17 17:36:13 <TRACE> ospf_0: DBDES packet received from nbr 50.1.1.2 on vni-0 2016-03-17 17:36:13 <TRACE> ospf_0: length 32 2016-03-17 17:36:13 <TRACE> ospf_0: router 50.1.1.2 2016-03-17 17:36:13 <TRACE> ospf_0: mtu 1500 2016-03-17 17:36:13 <TRACE> ospf_0: imms MS 2016-03-17 17:36:13 <TRACE> ospf_0: ddseq 4923 2016-03-17 17:36:13 <TRACE> ospf_0: DBDES packet sent to nbr 50.1.1.2 on vni-0 2016-03-17 17:36:13 <TRACE> ospf_0: length 32 2016-03-17 17:36:13 <TRACE> ospf_0: router 10.0.1.11 2016-03-17 17:36:13 <TRACE> ospf_0: mtu 1500 2016-03-17 17:36:13 <TRACE> ospf_0: imms 2016-03-17 17:36:13 <TRACE> ospf_0: ddseq 4923 2016-03-17 17:36:13 <TRACE> ospf_0: Neighbor 50.1.1.2 on vni-0 changed state from Exchange to Loading 2016-03-17 17:36:13 <TRACE> ospf_0: LSUPD packet received from nbr 50.1.1.2 on vni-0 2016-03-17 17:36:13 <TRACE> ospf_0: length 496 2016-03-17 17:36:13 <TRACE> ospf_0: router 50.1.1.2 2016-03-17 17:36:13 <TRACE> ospf_0: LSA Type: 0001, Id: 10.0.1.11, Rt: 10.0.1.11, Seq: 80000d02, Age: 732, Sum: 2249 2016-03-17 17:36:13 <TRACE> ospf_0: LSA Type: 0005, Id: 0.0.0.0, Rt: 10.0.1.11, Seq: 80000001, Age: 734, Sum: ed4a 2016-03-17 17:36:13 <TRACE> ospf_0: LSA Type: 0005, Id: 10.1.1.0, Rt: 10.0.1.11, Seq: 80000002, Age: 730, Sum: 52d8 2016-03-17 17:36:13 <TRACE> ospf_0: LSA Type: 0005, Id: 10.1.2.255, Rt: 10.0.1.11, Seq: 80000002, Age: 730, Sum: 47e2 2016-03-17 17:36:13 <TRACE> ospf_0: LSA Type: 0005, Id: 10.1.3.0, Rt: 10.0.1.11, Seq: 80000002, Age: 730, Sum: 3cec 2016-03-17 17:36:13 <TRACE> ospf_0: LSA Type: 0005, Id: 10.2.1.0, Rt: 10.0.1.11, Seq: 80000001, Age: 735, Sum: 48e2 2016-03-17 17:36:13 <TRACE> ospf_0: LSA Type: 0005, Id: 10.2.2.255, Rt: 10.0.1.11, Seq: 80000001, Age: 735, Sum: 3dec 2016-03-17 17:36:13 <TRACE> ospf_0: LSA Type: 0005, Id: 10.100.1.0, Rt: 10.0.1.11, Seq: 80000001, Age: 735, Sum: ab1d 2016-03-17 17:36:13 <TRACE> ospf_0: LSA Type: 0005, Id: 10.100.2.255, Rt: 10.0.1.11, Seq: 80000001, Age: 735, Sum: a027 2016-03-17 17:36:13 <TRACE> ospf_0: LSA Type: 0005, Id: 10.100.129.0, Rt: 10.0.1.11, Seq: 80000001, Age: 735, Sum: 3017 2016-03-17 17:36:13 <TRACE> ospf_0: LSA Type: 0005, Id: 11.123.10.255, Rt: 10.0.1.11, Seq: 80000001, Age: 734, Sum: 4460 2016-03-17 17:36:13 <TRACE> ospf_0: LSA Type: 0005, Id: 12.125.10.255, Rt: 10.0.1.11, Seq: 80000001, Age: 734, Sum: 01a3 2016-03-17 17:36:13 <TRACE> ospf_0: LSA Type: 0005, Id: 50.1.1.0, Rt: 10.0.1.11, Seq: 800000d3, Age: 737, Sum: a48c 2016-03-17 17:36:13 <TRACE> ospf_0: Received unexpected self-originated LSA 2016-03-17 17:36:13 <TRACE> ospf_0: Advancing LSA: Type: 2001, Id: 10.0.1.11, Rt: 10.0.1.11, Seq: 80000d03 2016-03-17 17:36:13 <ERR> ospf_lsa_lsrq_down:LSA hash 0000000000692628 removed ID 10.0.1.11 rtr:10.0.1.11 2016-03-17 17:36:13 <ERR> ospf_lsa_lsrt_up:get new hash entry same as 0000000000691d38 10.0.1.11 rtr:10.0.1.11 2016-03-17 17:36:13 <ERR> get new hash e:000000000069db78 LSA ID 10.0.1.11 rtr:10.0.1.11 2016-03-17 17:36:13 <TRACE> ospf_0: Received unexpected self-originated LSA 2016-03-17 17:36:13 <ERR> ospf_0 ospf_install_lsa:get new hash entry 0000000000691518 0.0.0.0 rtr:10.0.1.11 2016-03-17 17:36:13 <TRACE> ospf_0: Installing LSA: Type: 4005, Id: 0.0.0.0, Rt: 10.0.1.11, Seq: 80000001, Age: 3600 2016-03-17 17:36:13 <ERR> ospf_lsa_lsrq_down:LSA hash 00000000006926c8 removed ID 0.0.0.0 rtr:10.0.1.11 2016-03-17 17:36:13 <ERR> ospf_lsa_lsrt_up:get new hash entry same as 0000000000691518 0.0.0.0 rtr:10.0.1.11 2016-03-17 17:36:13 <ERR> get new hash e:000000000069dc18 LSA ID 0.0.0.0 rtr:10.0.1.11 2016-03-17 17:36:13 <TRACE> ospf_0: Received unexpected self-originated LSA 2016-03-17 17:36:13 <ERR> ospf_0 ospf_install_lsa:get new hash entry 0000000000691b58 10.1.1.0 rtr:10.0.1.11 2016-03-17 17:36:13 <TRACE> ospf_0: Installing LSA: Type: 4005, Id: 10.1.1.0, Rt: 10.0.1.11, Seq: 80000002, Age: 3600 2016-03-17 17:36:13 <ERR> ospf_lsa_lsrq_down:LSA hash 0000000000692768 removed ID 10.1.1.0 rtr:10.0.1.11 2016-03-17 17:36:13 <ERR> ospf_lsa_lsrt_up:get new hash entry same as 0000000000691b58 10.1.1.0 rtr:10.0.1.11 2016-03-17 17:36:13 <ERR> get new hash e:000000000069dcb8 LSA ID 10.1.1.0 rtr:10.0.1.11 2016-03-17 17:36:13 <TRACE> ospf_0: Received unexpected self-originated LSA 2016-03-17 17:36:13 <ERR> ospf_0 ospf_install_lsa:get new hash entry 0000000000691ab8 10.1.2.255 rtr:10.0.1.11 2016-03-17 17:36:13 <TRACE> ospf_0: Installing LSA: Type: 4005, Id: 10.1.2.255, Rt: 10.0.1.11, Seq: 80000002, Age: 3600 2016-03-17 17:36:13 <ERR> ospf_lsa_lsrq_down:LSA hash 0000000000692808 removed ID 10.1.2.255 rtr:10.0.1.11 2016-03-17 17:36:13 <ERR> ospf_lsa_lsrt_up:get new hash entry same as 0000000000691ab8 10.1.2.255 rtr:10.0.1.11 2016-03-17 17:36:13 <ERR> get new hash e:000000000069dd58 LSA ID 10.1.2.255 rtr:10.0.1.11 2016-03-17 17:36:13 <TRACE> ospf_0: Received unexpected self-originated LSA 2016-03-17 17:36:13 <ERR> ospf_0 ospf_install_lsa:get new hash entry 00000000006918d8 10.1.3.0 rtr:10.0.1.11 2016-03-17 17:36:13 <TRACE> ospf_0: Installing LSA: Type: 4005, Id: 10.1.3.0, Rt: 10.0.1.11, Seq: 80000002, Age: 3600 2016-03-17 17:36:13 <ERR> ospf_lsa_lsrq_down:LSA hash 00000000006928a8 removed ID 10.1.3.0 rtr:10.0.1.11 2016-03-17 17:36:13 <ERR> ospf_lsa_lsrt_up:get new hash entry same as 00000000006918d8 10.1.3.0 rtr:10.0.1.11 2016-03-17 17:36:13 <ERR> get new hash e:000000000069ddf8 LSA ID 10.1.3.0 rtr:10.0.1.11 2016-03-17 17:36:13 <TRACE> ospf_0: Received unexpected self-originated LSA 2016-03-17 17:36:13 <ERR> ospf_0 ospf_install_lsa:get new hash entry 0000000000691798 10.2.1.0 rtr:10.0.1.11 2016-03-17 17:36:13 <TRACE> ospf_0: Installing LSA: Type: 4005, Id: 10.2.1.0, Rt: 10.0.1.11, Seq: 80000001, Age: 3600 2016-03-17 17:36:13 <ERR> ospf_lsa_lsrq_down:LSA hash 0000000000692948 removed ID 10.2.1.0 rtr:10.0.1.11 2016-03-17 17:36:13 <ERR> ospf_lsa_lsrt_up:get new hash entry same as 0000000000691798 10.2.1.0 rtr:10.0.1.11 2016-03-17 17:36:13 <ERR> get new hash e:000000000069de98 LSA ID 10.2.1.0 rtr:10.0.1.11 2016-03-17 17:36:13 <TRACE> ospf_0: Received unexpected self-originated LSA 2016-03-17 17:36:13 <ERR> ospf_0 ospf_install_lsa:get new hash entry 00000000006915b8 10.2.2.255 rtr:10.0.1.11 2016-03-17 17:36:13 <TRACE> ospf_0: Installing LSA: Type: 4005, Id: 10.2.2.255, Rt: 10.0.1.11, Seq: 80000001, Age: 3600 2016-03-17 17:36:13 <ERR> ospf_lsa_lsrq_down:LSA hash 00000000006929e8 removed ID 10.2.2.255 rtr:10.0.1.11 2016-03-17 17:36:13 <ERR> ospf_lsa_lsrt_up:get new hash entry same as 00000000006915b8 10.2.2.255 rtr:10.0.1.11 2016-03-17 17:36:13 <ERR> get new hash e:000000000069df38 LSA ID 10.2.2.255 rtr:10.0.1.11 2016-03-17 17:36:13 <TRACE> ospf_0: Received unexpected self-originated LSA 2016-03-17 17:36:13 <ERR> ospf_0 ospf_install_lsa:get new hash entry 0000000000691c98 10.100.1.0 rtr:10.0.1.11 2016-03-17 17:36:13 <TRACE> ospf_0: Installing LSA: Type: 4005, Id: 10.100.1.0, Rt: 10.0.1.11, Seq: 80000001, Age: 3600 2016-03-17 17:36:13 <ERR> ospf_lsa_lsrq_down:LSA hash 0000000000692a88 removed ID 10.100.1.0 rtr:10.0.1.11 2016-03-17 17:36:13 <ERR> ospf_lsa_lsrt_up:get new hash entry same as 0000000000691c98 10.100.1.0 rtr:10.0.1.11 2016-03-17 17:36:13 <ERR> get new hash e:000000000069dfd8 LSA ID 10.100.1.0 rtr:10.0.1.11 2016-03-17 17:36:13 <TRACE> ospf_0: Received unexpected self-originated LSA 2016-03-17 17:36:13 <ERR> ospf_0 ospf_install_lsa:get new hash entry 0000000000691bf8 10.100.2.255 rtr:10.0.1.11 2016-03-17 17:36:13 <TRACE> ospf_0: Installing LSA: Type: 4005, Id: 10.100.2.255, Rt: 10.0.1.11, Seq: 80000001, Age: 3600 2016-03-17 17:36:13 <ERR> ospf_lsa_lsrq_down:LSA hash 0000000000692b28 removed ID 10.100.2.255 rtr:10.0.1.11 2016-03-17 17:36:13 <ERR> ospf_lsa_lsrt_up:get new hash entry same as 0000000000691bf8 10.100.2.255 rtr:10.0.1.11 2016-03-17 17:36:13 <ERR> get new hash e:000000000069e078 LSA ID 10.100.2.255 rtr:10.0.1.11 2016-03-17 17:36:13 <TRACE> ospf_0: Received unexpected self-originated LSA 2016-03-17 17:36:13 <ERR> ospf_0 ospf_install_lsa:get new hash entry 0000000000691978 10.100.129.0 rtr:10.0.1.11 2016-03-17 17:36:13 <TRACE> ospf_0: Installing LSA: Type: 4005, Id: 10.100.129.0, Rt: 10.0.1.11, Seq: 80000001, Age: 3600 2016-03-17 17:36:13 <ERR> ospf_lsa_lsrq_down:LSA hash 0000000000692bc8 removed ID 10.100.129.0 rtr:10.0.1.11 2016-03-17 17:36:13 <ERR> ospf_lsa_lsrt_up:get new hash entry same as 0000000000691978 10.100.129.0 rtr:10.0.1.11 2016-03-17 17:36:13 <ERR> get new hash e:000000000069e118 LSA ID 10.100.129.0 rtr:10.0.1.11 2016-03-17 17:36:13 <TRACE> ospf_0: Received unexpected self-originated LSA 2016-03-17 17:36:13 <ERR> ospf_0 ospf_install_lsa:get new hash entry 0000000000691478 11.123.10.255 rtr:10.0.1.11 2016-03-17 17:36:13 <TRACE> ospf_0: Installing LSA: Type: 4005, Id: 11.123.10.255, Rt: 10.0.1.11, Seq: 80000001, Age: 3600 2016-03-17 17:36:13 <ERR> ospf_lsa_lsrq_down:LSA hash 0000000000692c68 removed ID 11.123.10.255 rtr:10.0.1.11 2016-03-17 17:36:13 <ERR> ospf_lsa_lsrt_up:get new hash entry same as 0000000000691478 11.123.10.255 rtr:10.0.1.11 2016-03-17 17:36:13 <ERR> get new hash e:000000000069e1b8 LSA ID 11.123.10.255 rtr:10.0.1.11 2016-03-17 17:36:13 <TRACE> ospf_0: Received unexpected self-originated LSA 2016-03-17 17:36:13 <ERR> ospf_0 ospf_install_lsa:get new hash entry 0000000000691838 12.125.10.255 rtr:10.0.1.11 2016-03-17 17:36:13 <TRACE> ospf_0: Installing LSA: Type: 4005, Id: 12.125.10.255, Rt: 10.0.1.11, Seq: 80000001, Age: 3600 2016-03-17 17:36:13 <ERR> ospf_lsa_lsrq_down:LSA hash 0000000000692d08 removed ID 12.125.10.255 rtr:10.0.1.11 2016-03-17 17:36:13 <ERR> ospf_lsa_lsrt_up:get new hash entry same as 0000000000691838 12.125.10.255 rtr:10.0.1.11 2016-03-17 17:36:13 <ERR> get new hash e:000000000069e258 LSA ID 12.125.10.255 rtr:10.0.1.11 2016-03-17 17:36:13 <TRACE> ospf_0: Received unexpected self-originated LSA 2016-03-17 17:36:13 <TRACE> ospf_0: Advancing LSA: Type: 4005, Id: 50.1.1.0, Rt: 10.0.1.11, Seq: 800000d4 2016-03-17 17:36:13 <ERR> ospf_lsa_lsrq_down:LSA hash 0000000000692da8 removed ID 50.1.1.0 rtr:10.0.1.11 2016-03-17 17:36:13 <TRACE> ospf_0: Neighbor 50.1.1.2 on vni-0 changed state from Loading to Full 2016-03-17 17:36:13 <ERR> ospf_lsa_lsrt_up:get new hash entry same as 0000000000691fb8 50.1.1.0 rtr:10.0.1.11 2016-03-17 17:36:13 <ERR> get new hash e:000000000069e2f8 LSA ID 50.1.1.0 rtr:10.0.1.11 2016-03-17 17:36:13 <TRACE> ospf_0: LSUPD packet flooded via vni-0 2016-03-17 17:36:13 <TRACE> ospf_0: length 496 2016-03-17 17:36:13 <TRACE> ospf_0: router 10.0.1.11 2016-03-17 17:36:13 <TRACE> ospf_0: LSA Type: 0001, Id: 10.0.1.11, Rt: 10.0.1.11, Seq: 80000d03, Age: 1, Sum: 0af6 2016-03-17 17:36:13 <TRACE> ospf_0: LSA Type: 0005, Id: 0.0.0.0, Rt: 10.0.1.11, Seq: 80000001, Age: 3600, Sum: ed4a 2016-03-17 17:36:13 <TRACE> ospf_0: LSA Type: 0005, Id: 10.1.1.0, Rt: 10.0.1.11, Seq: 80000002, Age: 3600, Sum: 52d8 2016-03-17 17:36:13 <TRACE> ospf_0: LSA Type: 0005, Id: 10.1.2.255, Rt: 10.0.1.11, Seq: 80000002, Age: 3600, Sum: 47e2 2016-03-17 17:36:13 <TRACE> ospf_0: LSA Type: 0005, Id: 10.1.3.0, Rt: 10.0.1.11, Seq: 80000002, Age: 3600, Sum: 3cec 2016-03-17 17:36:13 <TRACE> ospf_0: LSA Type: 0005, Id: 10.2.1.0, Rt: 10.0.1.11, Seq: 80000001, Age: 3600, Sum: 48e2 2016-03-17 17:36:13 <TRACE> ospf_0: LSA Type: 0005, Id: 10.2.2.255, Rt: 10.0.1.11, Seq: 80000001, Age: 3600, Sum: 3dec 2016-03-17 17:36:13 <TRACE> ospf_0: LSA Type: 0005, Id: 10.100.1.0, Rt: 10.0.1.11, Seq: 80000001, Age: 3600, Sum: ab1d 2016-03-17 17:36:13 <TRACE> ospf_0: LSA Type: 0005, Id: 10.100.2.255, Rt: 10.0.1.11, Seq: 80000001, Age: 3600, Sum: a027 2016-03-17 17:36:13 <TRACE> ospf_0: LSA Type: 0005, Id: 10.100.129.0, Rt: 10.0.1.11, Seq: 80000001, Age: 3600, Sum: 3017 2016-03-17 17:36:13 <TRACE> ospf_0: LSA Type: 0005, Id: 11.123.10.255, Rt: 10.0.1.11, Seq: 80000001, Age: 3600, Sum: 4460 2016-03-17 17:36:13 <TRACE> ospf_0: LSA Type: 0005, Id: 12.125.10.255, Rt: 10.0.1.11, Seq: 80000001, Age: 3600, Sum: 01a3 2016-03-17 17:36:13 <TRACE> ospf_0: LSA Type: 0005, Id: 50.1.1.0, Rt: 10.0.1.11, Seq: 800000d4, Age: 1, Sum: a28d 2016-03-17 17:36:13 <TRACE> ospf_0: LSUPD packet received from nbr 50.1.1.2 on vni-0 2016-03-17 17:36:13 <TRACE> ospf_0: length 64 2016-03-17 17:36:13 <TRACE> ospf_0: router 50.1.1.2 2016-03-17 17:36:13 <TRACE> ospf_0: LSA Type: 0001, Id: 10.0.1.11, Rt: 10.0.1.11, Seq: 80000d03, Age: 2, Sum: 0af6 2016-03-17 17:36:13 <ERR> ospf_lsa_lsrt_down_:LSA hash 000000000069db78 removed ID 10.0.1.11 rtr:10.0.1.11 2016-03-17 17:36:13 <TRACE> ospf_0: LSUPD packet received from nbr 50.1.1.2 on vni-0 2016-03-17 17:36:13 <TRACE> ospf_0: length 496 2016-03-17 17:36:13 <TRACE> ospf_0: router 50.1.1.2 2016-03-17 17:36:13 <TRACE> ospf_0: LSA Type: 0005, Id: 0.0.0.0, Rt: 10.0.1.11, Seq: 80000001, Age: 3600, Sum: ed4a 2016-03-17 17:36:13 <TRACE> ospf_0: LSA Type: 0005, Id: 10.1.1.0, Rt: 10.0.1.11, Seq: 80000002, Age: 3600, Sum: 52d8 2016-03-17 17:36:13 <TRACE> ospf_0: LSA Type: 0005, Id: 10.1.2.255, Rt: 10.0.1.11, Seq: 80000002, Age: 3600, Sum: 47e2 2016-03-17 17:36:13 <TRACE> ospf_0: LSA Type: 0005, Id: 10.1.3.0, Rt: 10.0.1.11, Seq: 80000002, Age: 3600, Sum: 3cec 2016-03-17 17:36:13 <TRACE> ospf_0: LSA Type: 0005, Id: 10.2.1.0, Rt: 10.0.1.11, Seq: 80000001, Age: 3600, Sum: 48e2 2016-03-17 17:36:13 <TRACE> ospf_0: LSA Type: 0005, Id: 10.2.2.255, Rt: 10.0.1.11, Seq: 80000001, Age: 3600, Sum: 3dec 2016-03-17 17:36:13 <TRACE> ospf_0: LSA Type: 0005, Id: 10.100.1.0, Rt: 10.0.1.11, Seq: 80000001, Age: 3600, Sum: ab1d 2016-03-17 17:36:13 <TRACE> ospf_0: LSA Type: 0005, Id: 10.100.2.255, Rt: 10.0.1.11, Seq: 80000001, Age: 3600, Sum: a027 2016-03-17 17:36:13 <TRACE> ospf_0: LSA Type: 0005, Id: 10.100.129.0, Rt: 10.0.1.11, Seq: 80000001, Age: 3600, Sum: 3017 2016-03-17 17:36:13 <TRACE> ospf_0: LSA Type: 0005, Id: 11.123.10.255, Rt: 10.0.1.11, Seq: 80000001, Age: 3600, Sum: 4460 2016-03-17 17:36:13 <TRACE> ospf_0: LSA Type: 0005, Id: 12.125.10.255, Rt: 10.0.1.11, Seq: 80000001, Age: 3600, Sum: 01a3 2016-03-17 17:36:13 <TRACE> ospf_0: LSA Type: 0005, Id: 50.1.1.0, Rt: 10.0.1.11, Seq: 800000d4, Age: 2, Sum: a28d 2016-03-17 17:36:13 <TRACE> ospf_0: LSA Type: 0005, Id: 10.100.1.0, Rt: 50.1.1.2, Seq: 80000001, Age: 1, Sum: aeed 2016-03-17 17:36:13 <ERR> ospf_lsa_lsrt_down_:LSA hash 000000000069dc18 removed ID 0.0.0.0 rtr:10.0.1.11 2016-03-17 17:36:13 <ERR> ospf_lsa_lsrt_down_:LSA hash 000000000069dcb8 removed ID 10.1.1.0 rtr:10.0.1.11 2016-03-17 17:36:13 <ERR> ospf_lsa_lsrt_down_:LSA hash 000000000069dd58 removed ID 10.1.2.255 rtr:10.0.1.11 2016-03-17 17:36:13 <ERR> ospf_lsa_lsrt_down_:LSA hash 000000000069ddf8 removed ID 10.1.3.0 rtr:10.0.1.11 2016-03-17 17:36:13 <ERR> ospf_lsa_lsrt_down_:LSA hash 000000000069de98 removed ID 10.2.1.0 rtr:10.0.1.11 2016-03-17 17:36:13 <ERR> ospf_lsa_lsrt_down_:LSA hash 000000000069df38 removed ID 10.2.2.255 rtr:10.0.1.11 2016-03-17 17:36:13 <ERR> ospf_lsa_lsrt_down_:LSA hash 000000000069dfd8 removed ID 10.100.1.0 rtr:10.0.1.11 2016-03-17 17:36:13 <ERR> ospf_lsa_lsrt_down_:LSA hash 000000000069e078 removed ID 10.100.2.255 rtr:10.0.1.11 2016-03-17 17:36:13 <ERR> ospf_lsa_lsrt_down_:LSA hash 000000000069e118 removed ID 10.100.129.0 rtr:10.0.1.11 2016-03-17 17:36:13 <ERR> ospf_lsa_lsrt_down_:LSA hash 000000000069e1b8 removed ID 11.123.10.255 rtr:10.0.1.11 2016-03-17 17:36:13 <ERR> ospf_lsa_lsrt_down_:LSA hash 000000000069e258 removed ID 12.125.10.255 rtr:10.0.1.11 2016-03-17 17:36:13 <ERR> ospf_lsa_lsrt_down_:LSA hash 000000000069e2f8 removed ID 50.1.1.0 rtr:10.0.1.11 2016-03-17 17:36:13 <ERR> get new hash e:0000000000691f18 LSA ID 10.100.1.0 rtr:50.1.1.2 2016-03-17 17:36:13 <ERR> ospf_0 ospf_install_lsa:get new hash entry 0000000000691f18 10.100.1.0 rtr:50.1.1.2 2016-03-17 17:36:13 <TRACE> ospf_0: Installing LSA: Type: 4005, Id: 10.100.1.0, Rt: 50.1.1.2, Seq: 80000001, Age: 1 2016-03-17 17:36:13 <TRACE> ospf_0: Scheduling routing table calculation 2016-03-17 17:36:13 <INFO> <INSERT_ROUTE> Installing route(id = 13) 10.1.1.0/24, rtd=127.0.0.2 with cost of 5(RD : 0) 2016-03-17 17:36:13 <TRACE> ospf_0 < added 10.1.1.0/24 via 127.0.0.2 on eth-bird 2016-03-17 17:36:13 <ERR> ospf_0 ospf_install_lsa:get new hash entry 0000000000691b58 10.1.1.0 rtr:10.0.1.11 2016-03-17 17:36:13 <ERR> ospf_0: en:0000000000691b58 old nf:00000000006909e8 new nf:0000000000690468 LSA ID collision for 10.1.1.0/24 2016-03-17 17:36:13 <INFO> <INSERT_ROUTE> Installing route(id = 12) 10.1.2.0/24, rtd=127.0.0.2 with cost of 5(RD : 0) 2016-03-17 17:36:13 <TRACE> ospf_0 < added 10.1.2.0/24 via 127.0.0.2 on eth-bird 2016-03-17 17:36:13 <ERR> ospf_0 ospf_install_lsa:get new hash entry 0000000000691ab8 10.1.2.255 rtr:10.0.1.11 2016-03-17 17:36:13 <ERR> ospf_0: en:0000000000691ab8 old nf:0000000000690968 new nf:00000000006906e8 LSA ID collision for 10.1.2.0/24 2016-03-17 17:36:13 <INFO> <INSERT_ROUTE> Installing route(id = 11) 10.1.3.0/24, rtd=127.0.0.2 with cost of 5(RD : 0) 2016-03-17 17:36:13 <TRACE> ospf_0 < added 10.1.3.0/24 via 127.0.0.2 on eth-bird 2016-03-17 17:36:13 <ERR> ospf_0 ospf_install_lsa:get new hash entry 00000000006918d8 10.1.3.0 rtr:10.0.1.11 2016-03-17 17:36:13 <ERR> ospf_0: en:00000000006918d8 old nf:0000000000690a68 new nf:0000000000690668 LSA ID collision for 10.1.3.0/24 2016-03-17 17:36:13 <INFO> Processed 3 routes for message of size 45 2016-03-17 17:36:13 <INFO> <INSERT_ROUTE> Installing route(id = 22) 10.1.1.0/24, rtd=127.0.0.2 with cost of 5(RD : 1) 2016-03-17 17:36:13 <TRACE> ospf_1 < added 10.1.1.0/24 via 127.0.0.2 on eth-bird 2016-03-17 17:36:13 <ERR> ospf_1 ospf_install_lsa:get new hash entry 00000000006b5d68 10.1.1.0 rtr:10.0.1.11 2016-03-17 17:36:13 <TRACE> ospf_1: Originating LSA: Type: 4005, Id: 10.1.1.0, Rt: 10.0.1.11, Seq: 8000001d 2016-03-17 17:36:13 <INFO> Processed 1 routes for message of size 15 2016-03-17 17:36:13 <TRACE> ospf_0: Removing LSA: Type: 4005, Id: 10.100.129.0, Rt: 10.0.1.11, Seq: 80000001 -- Jigar Mehta
On Thu, Mar 17, 2016 at 06:14:24PM -0400, Jigar Mehta wrote:
Hi ,
I cannot recreate this scenario at will but had some success when restarting protocols or rebooting the linux box or feeding 1000+ routes (to BGP and redistribute to OSPF in router) to the setup mentioned above. My IP address space was not overlapping either, so the LSA ID generated would have been unique.
Also, I noticed that if I insert overlapping addresses in my protocol and redistribute to OSPF , I see LSA ID collisions (bug ?) Eg: 2016-03-17 16:29:21 <ERR> ospf_0: LSA ID collision for 10.0.192.127/32 2016-03-17 16:30:31 <ERR> ospf_0: LSA ID collision for 10.0.192.0/25
Hi I don't know about the first case, but the second case (with overlaps) is expected. For each prefix, the number of possible subprefixes is about about two times larger than the number or possible LSA IDs. BIRD uses static assignment of LSA IDs <-> prefixes, so there are collisions even if just some subprefixes are originated. There is a simple rule to avoid LSA ID collisions - when exporting a prefix, do not export /32 representing the first and the last IP address in that prefix. Other overlapping prefixes should be fine. -- Elen sila lumenn' omentielvo Ondrej 'Santiago' Zajicek (email: santiago@crfreenet.org) OpenPGP encrypted e-mails preferred (KeyID 0x11DEADC3, wwwkeys.pgp.net) "To err is human -- to blame it on a computer is even more so."
So I tried tracing down this problem and here is what I got : (Note : 1. 10.1.1.0 is a static route on the box and exported by custom protocol to ospf 2. All these events happen within the same second) 1. when bird just comes up (box is rebooted), it tries to form adjacency and eventually exchanges DBDES packets. In this case, it inserts (example route )10.1.1.0/24 with a hash of 0000000000692768 and LSA ID : 10.1.1.0. In this case, we use lsrqh hash table (Link state request queue hash) to store the hash. 2. Now, bird sends out LSREQ packets to the DR(50.1.1.2) and receives LSUPD packet from the DR static the following : LSA Type: 0005, Id: 10.1.1.0, Rt: 10.0.1.11, Seq: 80000002, Age: 730, Sum: 52d8 Bird identifies that the Rt:10.0.1.11 is its own IP and so marks this as a self originated LSA (RFC 2328 13.4) 3. Bird installs the LSA with MAX AGE since it does not have a local copy of the route and tries to flood out this update(floods out with max age of 3600) (RFC 2328 13.5(f) The LSA is installed using graph tree hash table. hash entry 0000000000691b58 LSA ID: 10.1.1.0 ospf_lsa_lsrq_down:LSA hash 0000000000692768 removed ID 10.1.1.0 rtr:10.0.1.11 ospf_lsa_lsrt_up:get new hash entry same as 0000000000691b58 10.1.1.0 get new hash e:000000000069dcb8 LSA ID 10.1.1.0 So now, the lsrqh hash table has LSA ID 10.1.1.0 with hash set as 000000000069dcb8 4. Due to flooding, we receive LSUPDATE packet from our DR and now since we have a local copy, we delete the hash entry from lsrqh hash table as per RFC 2328 13.3 LSA hash 000000000069dcb8 removed ID 10.1.1.0 < So at this point, there is no hash entry for 10.1.1.0 in lsrqh but we still have a hash entry in the top graph tree hash table (p->gr) since we call ospf_disp (ospf hearbeat/ospf table calculations) every second and all of this is happening within same second > 5. Now custom protocol tries to redistribute apn routes to ospf and ospf tries to add it to the top graph hash table where the hash already exists resulting in LSA ID collision. (Note this would happen even with BGP redistributing to OSPF) Also, is there a good way to announce from the custom protocol every X seconds to sync up route tables with other protocols (send its routes to other protocols). I wanted to add this to my protocol so inspite of the above collisions, I can still add back the routes. Might try using rte_announce() but the problem is my protocol stores multiple routes to same network with different cost and in this case, I want to announce ALL routes not just RA_OPTIMAL. - On Fri, Mar 18, 2016 at 5:43 AM, Ondrej Zajicek <santiago@crfreenet.org> wrote:
On Thu, Mar 17, 2016 at 06:14:24PM -0400, Jigar Mehta wrote:
Hi ,
I cannot recreate this scenario at will but had some success when restarting protocols or rebooting the linux box or feeding 1000+ routes (to BGP and redistribute to OSPF in router) to the setup mentioned above. My IP address space was not overlapping either, so the LSA ID generated would have been unique.
Also, I noticed that if I insert overlapping addresses in my protocol and redistribute to OSPF , I see LSA ID collisions (bug ?) Eg: 2016-03-17 16:29:21 <ERR> ospf_0: LSA ID collision for 10.0.192.127/32 2016-03-17 16:30:31 <ERR> ospf_0: LSA ID collision for 10.0.192.0/25
Hi
I don't know about the first case, but the second case (with overlaps) is expected. For each prefix, the number of possible subprefixes is about about two times larger than the number or possible LSA IDs. BIRD uses static assignment of LSA IDs <-> prefixes, so there are collisions even if just some subprefixes are originated.
There is a simple rule to avoid LSA ID collisions - when exporting a prefix, do not export /32 representing the first and the last IP address in that prefix. Other overlapping prefixes should be fine.
-- Elen sila lumenn' omentielvo
Ondrej 'Santiago' Zajicek (email: santiago@crfreenet.org) OpenPGP encrypted e-mails preferred (KeyID 0x11DEADC3, wwwkeys.pgp.net) "To err is human -- to blame it on a computer is even more so."
-- Jigar Mehta
On Mon, Mar 21, 2016 at 09:29:29AM -0400, Jigar Mehta wrote:
So I tried tracing down this problem and here is what I got :
(Note : ... 4. Due to flooding, we receive LSUPDATE packet from our DR and now since we have a local copy, we delete the hash entry from lsrqh hash table as per RFC 2328 13.3 LSA hash 000000000069dcb8 removed ID 10.1.1.0
< So at this point, there is no hash entry for 10.1.1.0 in lsrqh but we still have a hash entry in the top graph tree hash table (p->gr) since we call ospf_disp (ospf hearbeat/ospf table calculations) every second and all of this is happening within same second >
Hi Thanks for the analysis. I think i understand the problem. The hash entry (in p->gr) is in the 'flushing' state (regardless whether we are waiting for implicit ACK by LSUPDATE or whether we already received that and just waiting for periodic cleanup) but because it was not originally created by ospf_originate_lsa() but by ospf_advance_lsa()/ospf_install_lsa() then en->nf is unset for the first hash entry (in p->gr). The check for LSA ID collision is probably just overzealous, in this case the new LSA should be properly propagated. I think the attached patch should fix the problem. If you could try it and report log messages (with debug events for OSPF) related to that LSA origination without and with the patch.
Also, is there a good way to announce from the custom protocol every X seconds to sync up route tables with other protocols (send its routes to other protocols).
You could announce (by rte_update()) routes periodically every X seconds, but if they are the same as ones already in the routing table, then the updates are ignored as nothing changes. You definitely should not propagate routes directly from one protocol to another (i.e. call rte_announce() from one protocol to another). You could call periodically proto_request_feeding() for the destination protocol, but i doubt there is a good reason for that. -- Elen sila lumenn' omentielvo Ondrej 'Santiago' Zajicek (email: santiago@crfreenet.org) OpenPGP encrypted e-mails preferred (KeyID 0x11DEADC3, wwwkeys.pgp.net) "To err is human -- to blame it on a computer is even more so."
participants (2)
-
Jigar Mehta -
Ondrej Zajicek