Project

General

Profile

Actions

Bug #4799

closed

FIB unregisters route to neighbor permanently after refresh entry time

Added by Ashlesh Gawande over 5 years ago. Updated over 5 years ago.

Status:
Closed
Priority:
High
Target version:
Start date:
Due date:
% Done:

100%

Estimated time:

Description

When a FIB entry is installed or updated, we schedule a refresh after FIB entry refresh time (which is 2 * LSA refresh time by default).
If the neighbor goes down and recovery is not done in 2*LSA refresh time then, the refresh is cancelled. So NLSR will no longer have a route to send the INFO interest to its neighbor.

To reproduce, run Mini-NDN mcn failure experiment with LSA refresh time: 240 seconds added to nlsr.py. Convergence time of 480 seconds with the following topology:

a----b

Scenario is explained in the attached figure.

Seems like the solution is to not schedule the refresh (register) of neighbor's router FIB entry:

@@ -142,7 +142,7 @@ Fib::update(const ndn::Name& name, const NexthopList& allHops)
     entryIt = m_table.find(name);

   }
-  if (entryIt != m_table.end() && !entryIt->second.getRefreshEventId()) {
+  if (entryIt != m_table.end() && !entryIt->second.getRefreshEventId() && isPrefixUpdatable(entryIt->second.getName())) {
     scheduleEntryRefresh(entryIt->second,
                          [this] (FibEntry& entry) {
                            scheduleLoop(entry);


Files

fib-problem.png (50 KB) fib-problem.png Ashlesh Gawande, 12/20/2018 06:04 PM
Actions #1

Updated by Ashlesh Gawande over 5 years ago

  • Status changed from In Progress to Code review
  • % Done changed from 0 to 100
Actions #2

Updated by Ashlesh Gawande over 5 years ago

  • Status changed from Code review to Closed
Actions

Also available in: Atom PDF