Actions
Bug #4799
closedFIB unregisters route to neighbor permanently after refresh entry time
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
Updated by Ashlesh Gawande almost 6 years ago
- Status changed from In Progress to Code review
- % Done changed from 0 to 100
Updated by Ashlesh Gawande almost 6 years ago
- Status changed from Code review to Closed
Actions