route: Ensure nexthops are reregistered correctly
Reregister prefixes if nexthops don't change
Remove invalid nexthops instead of all of them
Cancel FibEntry expiration events before scheduling new ones
Remove FibEntry refreshing
Add grace period to LSA expiration
refs: #1892
Change-Id: I5136b6b0f52a47b6ba72e04b0cea81b85ebccd45
diff --git a/src/route/fib.hpp b/src/route/fib.hpp
index 2522928..6b448fb 100644
--- a/src/route/fib.hpp
+++ b/src/route/fib.hpp
@@ -74,6 +74,12 @@
isPrefixUpdatable(const ndn::Name& name);
void
+ addNextHopsToFibEntryAndNfd(FibEntry& entry, NexthopList& nextHopList);
+
+ void
+ removeOldNextHopsFromFibEntryAndNfd(FibEntry& entry, NexthopList& newHopList);
+
+ void
removeHop(NexthopList& nl, const std::string& doNotRemoveHopFaceUri,
const ndn::Name& name);
@@ -81,15 +87,12 @@
getNumberOfFacesForName(NexthopList& nextHopList, uint32_t maxFacesPerPrefix);
ndn::EventId
- scheduleEntryRefreshing(const ndn::Name& name, int32_t feSeqNum,
+ scheduleEntryExpiration(const ndn::Name& name, int32_t feSeqNum,
const ndn::time::seconds& expTime);
void
cancelScheduledExpiringEvent(ndn::EventId eid);
- void
- refreshEntry(const ndn::Name& name, int32_t feSeqNum);
-
public:
void
registerPrefix(const ndn::Name& namePrefix, const std::string& faceUri,