[Olsr-dev] problem with olsr-0.5.6 branch: old links remain in the topology

L. Aaron Kaplan (spam-protected)
Sun Feb 1 23:05:33 CET 2009


So, Henning and me were debugging tonight... we could reproduce a bug  
which was reported by markus kittenberger earlier.
Problem is that when one node loses connectivity (in the experiment  
olsrd was killed there), then other nodes will keep a route to it.
This is IMHO still a showstopper for 0.5.6-r4.

Testsetup (how to repeat):  (linksys, freifunk firmware 1.3.36)

    |         \
    |          \
    |    -----> \ (freebsd, olsr-0.5.6 branch )
    |<--/ (openbsd, olsr-0.5.6 branch)

so all nodes see each other.

The topology tables of 100.127 will still show:

Source IP addr  Dest IP addr          LQ        ETX 0.592/1.000    1.689 0.541/0.992    1.862   0.996/0.514    1.954 0.984/0.965    1.053   0.996/0.529    1.896 0.984/0.992    1.024

Let ETX values settle to ~ 1.0. Then turn off for example 100.126.
Afterwards the topology table will look like this:

Source IP addr  Dest IP addr          LQ        ETX 0.592/1.000    1.689 0.541/0.992    1.862   0.996/0.529    1.896 0.984/0.992    1.024

So essentially the entries with src address 100.126 were deleted.
But the nodes 100.127 and 100.1 still keep a topology link to 100.126  
even though it is gone!

Henning and me stepped thru the src/link_set.c functions
static void olsr_delete_link_entry(struct link_entry *link)

void olsr_set_link_timer(struct link_entry *link, unsigned int  

olsr_set_link_timer gets actually called regularly.
olsr_delete_link_entry seems to get called once.

Nevertheless the wrong topology entries still remain.

More debugging is needed here. I am just documenting this here now,  
maybe someone else can spot the bug.


More information about the Olsr-dev mailing list