[Babel-users] Update Source procedure

Hauck Antoine HSLU T&A antoine.hauck at hslu.ch
Thu Nov 10 10:00:02 UTC 2011


A question about the babeld implementation for the update_source method in source.c:

The method will only update the feas. dist. for the source when the following conditions are met (as described in RFC Sec. 3.7.3. Maintaining Feasibility Distances):

-          if seqno > seqno', then seqno' := seqno, metric' := metric;

-          if seqno = seqno' and metric' > metric, then metric' := metric;

But the method also checks with

src->time < now.tv_sec - SOURCE_GC_TIME

if the garbage-collection period already elapsed for the source entry. If the condition is true, the FD will still be updated. Why? The source entry is expired, it should not update.

In Sec.  3.7.3. it's also specified:

Before SENDING an update ... a Babel node updates the feasibility distance maintained in the source table.
If no entry indexed by (prefix, plen, router-id) exists in the source table, then one is created with value ...

But the update_source method does not create a new entry for this phase, AFAIK an entry is created in the find_source method, which is called in the phase after RECEIVING an update.

Thanks in advance for the clarification

Antoine

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.alioth.debian.org/pipermail/babel-users/attachments/20111110/a16d7c44/attachment.html>


More information about the Babel-users mailing list