X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/59823017c3f9f3dba0ef09292bb55ed9ab906254..d531b19a0d1b2931ce8177bacd0124065c68476f:/src/surf/surf_routing_cluster.c diff --git a/src/surf/surf_routing_cluster.c b/src/surf/surf_routing_cluster.c index dc7fdbd415..fbd7b4211d 100644 --- a/src/surf/surf_routing_cluster.c +++ b/src/surf/surf_routing_cluster.c @@ -23,13 +23,27 @@ static void cluster_get_route_and_latency(AS_t as, { s_surf_parsing_link_up_down_t info; - XBT_DEBUG("cluster_get_route_and_latency from '%s'[%d] to '%s'[%d]", + XBT_VERB("cluster_get_route_and_latency from '%s'[%d] to '%s'[%d]", src->name, src->id, dst->name, dst->id); if (src->rc_type != SURF_NETWORK_ELEMENT_ROUTER) { // No specific link for router info = xbt_dynar_get_as(as->link_up_down_list, src->id, s_surf_parsing_link_up_down_t); + + if((src->id == dst->id) && info.loopback_link ){ + xbt_dynar_push_as(route->link_list, void *, info.loopback_link); + if (lat) + *lat += + surf_network_model->extension.network.get_link_latency(info. + loopback_link); + return; + } + + + if (info.limiter_link) // limiter for sender + xbt_dynar_push_as(route->link_list, void *, info.limiter_link); + if (info.link_up) { // link up xbt_dynar_push_as(route->link_list, void *, info.link_up); if (lat) @@ -58,6 +72,10 @@ static void cluster_get_route_and_latency(AS_t as, surf_network_model->extension.network.get_link_latency(info. link_down); } + + if (info.limiter_link) // limiter for receiver + xbt_dynar_push_as(route->link_list, void *, info.limiter_link); + } } @@ -119,9 +137,10 @@ static void cluster_get_graph(xbt_graph_t graph, xbt_dict_t nodes, } else { new_xbt_graph_edge(graph, current, routerNode, edges); } + } } - } + } } static void model_cluster_finalize(AS_t as)