X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/dccf1b41e9c7b5a696f01abceaa2779fe65f154f..bf6c2bfc3494a13dfeb329e9dba5145d1e33fe91:/src/kernel/routing/AsClusterTorus.cpp diff --git a/src/kernel/routing/AsClusterTorus.cpp b/src/kernel/routing/AsClusterTorus.cpp index 9bbb806ed0..495f5bbc9f 100644 --- a/src/kernel/routing/AsClusterTorus.cpp +++ b/src/kernel/routing/AsClusterTorus.cpp @@ -4,8 +4,9 @@ * under the terms of the license (GNU LGPL) which comes with this package. */ #include "src/kernel/routing/AsClusterTorus.hpp" +#include "src/kernel/routing/NetCard.hpp" + #include "src/surf/network_interface.hpp" -#include "src/surf/xml/platf.hpp" // FIXME: move that back to the parsing area XBT_LOG_NEW_DEFAULT_SUBCATEGORY(surf_route_cluster_torus, surf_route_cluster, "Torus Routing part of surf"); @@ -61,24 +62,25 @@ namespace simgrid { link.latency = cluster->lat; link.policy = cluster->sharing_policy; sg_platf_new_link(&link); - s_surf_parsing_link_up_down_t info; + Link* linkUp; + Link* linkDown; if (link.policy == SURF_LINK_FULLDUPLEX) { char *tmp_link = bprintf("%s_UP", link_id); - info.linkUp = Link::byName(tmp_link); + linkUp = Link::byName(tmp_link); free(tmp_link); tmp_link = bprintf("%s_DOWN", link_id); - info.linkDown = Link::byName(tmp_link); + linkDown = Link::byName(tmp_link); free(tmp_link); } else { - info.linkUp = Link::byName(link_id); - info.linkDown = info.linkUp; + linkUp = Link::byName(link_id); + linkDown = linkUp; } /* * Add the link to its appropriate position; * note that position rankId*(xbt_dynar_length(dimensions)+has_loopback?+has_limiter?) * holds the link "rankId->rankId" */ - privateLinks_.insert({position + j, info}); + privateLinks_.insert({position + j, {linkUp, linkDown}}); dim_product *= current_dimension; xbt_free(link_id); } @@ -119,11 +121,11 @@ namespace simgrid { return; if (src->id() == dst->id() && hasLoopback_) { - s_surf_parsing_link_up_down_t info = privateLinks_.at(src->id() * linkCountPerNode_); + std::pair info = privateLinks_.at(src->id() * linkCountPerNode_); - route->link_list->push_back(info.linkUp); + route->link_list->push_back(info.first); if (lat) - *lat += info.linkUp->latency(); + *lat += info.first->latency(); return; } @@ -197,23 +199,23 @@ namespace simgrid { dim_product *= cur_dim; } - s_surf_parsing_link_up_down_t info; + std::pair info; if (hasLimiter_) { // limiter for sender info = privateLinks_.at(nodeOffset + hasLoopback_); - route->link_list->push_back(info.linkUp); + route->link_list->push_back(info.first); } info = privateLinks_.at(linkOffset); if (use_lnk_up == false) { - route->link_list->push_back(info.linkDown); + route->link_list->push_back(info.second); if (lat) - *lat += info.linkDown->latency(); + *lat += info.second->latency(); } else { - route->link_list->push_back(info.linkUp); + route->link_list->push_back(info.first); if (lat) - *lat += info.linkUp->latency(); + *lat += info.first->latency(); } current_node = next_node; next_node = 0;