X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/9a02e3654bd28c13ac053247383566f54fa4498a..4b8be43e2c03939bc780b6112d841d8b839a79bb:/src/kernel/routing/AsImpl.cpp diff --git a/src/kernel/routing/AsImpl.cpp b/src/kernel/routing/AsImpl.cpp index 1509825091..30fe08537a 100644 --- a/src/kernel/routing/AsImpl.cpp +++ b/src/kernel/routing/AsImpl.cpp @@ -158,8 +158,8 @@ namespace simgrid { /* Base case, no recursion is needed */ if (dst->containingAS() == this && src->containingAS() == this) { - if (bypassRoutes_.find({src->name(), dst->name()}) != bypassRoutes_.end()) { - std::vector* bypassedRoute = bypassRoutes_.at({src->name(), dst->name()}); + if (bypassRoutes_.find({src, dst}) != bypassRoutes_.end()) { + std::vector* bypassedRoute = bypassRoutes_.at({src, dst}); for (surf::Link* link : *bypassedRoute) { links->push_back(link); if (latency) @@ -176,17 +176,17 @@ namespace simgrid { std::vector* bypassedRoute = nullptr; /* (1) find the path to the root routing component */ - std::vector path_src; + std::vector path_src; As* current = src->containingAS(); while (current != nullptr) { - path_src.push_back(current); + path_src.push_back(static_cast(current)); current = current->father_; } - std::vector path_dst; + std::vector path_dst; current = dst->containingAS(); while (current != nullptr) { - path_dst.push_back(current); + path_dst.push_back(static_cast(current)); current = current->father_; } @@ -202,17 +202,18 @@ namespace simgrid { int max_index = std::max(max_index_src, max_index_dst); + std::pair key; for (int max = 0; max <= max_index; max++) { for (int i = 0; i < max; i++) { if (i <= max_index_src && max <= max_index_dst) { - const std::pair key = {path_src.at(i)->name(), path_dst.at(max)->name()}; + key = {path_src.at(i)->netcard_, path_dst.at(max)->netcard_}; if (bypassRoutes_.find(key) != bypassRoutes_.end()) { bypassedRoute = bypassRoutes_.at(key); break; } } if (max <= max_index_src && i <= max_index_dst) { - const std::pair key = {path_src.at(max)->name(), path_dst.at(i)->name()}; + key = {path_src.at(max)->netcard_, path_dst.at(i)->netcard_}; if (bypassRoutes_.find(key) != bypassRoutes_.end()) { bypassedRoute = bypassRoutes_.at(key); break; @@ -224,7 +225,7 @@ namespace simgrid { break; if (max <= max_index_src && max <= max_index_dst) { - const std::pair key = {path_src.at(max)->name(), path_dst.at(max)->name()}; + key = {path_src.at(max)->netcard_, path_dst.at(max)->netcard_}; if (bypassRoutes_.find(key) != bypassRoutes_.end()) { bypassedRoute = bypassRoutes_.at(key); break;