Daniel Gröber <dxld@darkboxed.org> writes:
The route expiration code appears to have been stolen from rip.c, in that code the rt_notify function actually does modify the rtable fib by calling fib_get. The babel code however does no such thing, so this inefficient restart is just entirely uneccesarry.
Erm, huh? The babel rt_notify() function calls babel_get_entry(), which calls fib_get()? It's quite similar to the rip one, in fact (which, as you note, is no coincidence).
To prove this is true I add a bunch of checking code that can be removed later.
That doesn't really prove anything, though, unless you can also show that you did an exhaustive torture test of all possible route expiry/retraction possibilities? :) More to the point, what problem are you really trying to solve here? Did you observe any particular performance issue with the current code, for instance? -Toke