diff --git a/helper/ndn-global-routing-helper.cpp b/helper/ndn-global-routing-helper.cpp index cf52c6f..e56fec8 100644 --- a/helper/ndn-global-routing-helper.cpp +++ b/helper/ndn-global-routing-helper.cpp @@ -315,10 +315,11 @@ GlobalRoutingHelper::CalculateAllPossibleRoutes() int faceNumber = 0; std::vector originalMetric(uint32_t(l3->getForwarder()->getFaceTable().size())); for (auto& i : l3->getForwarder()->getFaceTable()) { - faceNumber++; shared_ptr nfdFace = std::dynamic_pointer_cast(i); originalMetric[uint32_t(faceNumber)] = nfdFace->getMetric(); nfdFace->setMetric(std::numeric_limits::max() - 1); + + faceNumber++; // value std::numeric_limits::max () MUST NOT be used (reserved) } @@ -332,7 +333,7 @@ GlobalRoutingHelper::CalculateAllPossibleRoutes() } // enabling only faceId - face->setMetric(originalMetric[uint32_t(faceNumber)]); + face->setMetric(originalMetric[uint32_t(faceNumber)-1]); boost::DistancesMap distances; @@ -381,9 +382,9 @@ GlobalRoutingHelper::CalculateAllPossibleRoutes() // recover original interface statuses faceNumber = 0; for (auto& i : l3->getForwarder()->getFaceTable()) { - faceNumber++; shared_ptr face = std::dynamic_pointer_cast(i); face->setMetric(originalMetric[faceNumber]); + faceNumber++; } } }