void LinkStateRoutingTableCalculator::addAllLsNextHopsToRoutingTable(Nlsr& pnlsr, RoutingTable& rt, Map& pMap, uint32_t sourceRouter) { _LOG_DEBUG("LinkStateRoutingTableCalculator::addAllNextHopsToRoutingTable Called"); int nextHopRouter = 0; for (size_t i = 0; i < m_nRouters ; i++) { if (i != sourceRouter) { nextHopRouter = getLsNextHop(i, sourceRouter); if (nextHopRouter != NO_NEXT_HOP) { double routeCost = m_distance[i]; ndn::Name nextHopRouterName = pMap.getRouterNameByMappingNo(nextHopRouter); std::string nextHopFace = pnlsr.getAdjacencyList().getAdjacent(nextHopRouterName).getConnectingFaceUri(); // Add next hop to routing table NextHop nh(nextHopFace, routeCost); rt.addNextHop(pMap.getRouterNameByMappingNo(i), nh); } } } }
void RoutingTable::calculateHypDryRoutingTable(Nlsr& nlsr) { Map map; map.createFromAdjLsdb(nlsr); map.writeLog(); size_t nRouters = map.getMapSize(); HyperbolicRoutingCalculator calculator(nRouters, true, nlsr.getConfParameter().getRouterPrefix()); calculator.calculatePaths(map, ndn::ref(*this), nlsr.getLsdb(), nlsr.getAdjacencyList()); }