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

_______________________________________________
Babel-users mailing list
[email protected]
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/babel-users

Reply via email to