X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/6534c58a2afafe609a4671073f6b20f839e20fd7..571ed94e23c9aefbd5f81f1a800eb5f1dddd8ae9:/src/surf/surf_routing_vivaldi.cpp diff --git a/src/surf/surf_routing_vivaldi.cpp b/src/surf/surf_routing_vivaldi.cpp index c22d2f5976..278d195ff8 100644 --- a/src/surf/surf_routing_vivaldi.cpp +++ b/src/surf/surf_routing_vivaldi.cpp @@ -25,7 +25,7 @@ static XBT_INLINE double euclidean_dist_comp(int index, xbt_dynar_t src, xbt_dyn namespace simgrid { namespace surf { AsVivaldi::AsVivaldi(const char *name) - : AsGeneric(name) + : AsRoutedGraph(name) {} void AsVivaldi::getRouteAndLatency(NetCard *src, NetCard *dst, sg_platf_route_cbarg_t route, double *lat) @@ -33,11 +33,11 @@ void AsVivaldi::getRouteAndLatency(NetCard *src, NetCard *dst, sg_platf_route_cb s_surf_parsing_link_up_down_t info; XBT_DEBUG("vivaldi_get_route_and_latency from '%s'[%d] '%s'[%d]", - src->getName(), src->getId(), dst->getName(), dst->getId()); + src->name(), src->id(), dst->name(), dst->id()); - if(src->getRcType() == SURF_NETWORK_ELEMENT_AS) { - char *src_name = ROUTER_PEER(src->getName()); - char *dst_name = ROUTER_PEER(dst->getName()); + if(src->isAS()) { + char *src_name = ROUTER_PEER(src->name()); + char *dst_name = ROUTER_PEER(dst->name()); route->gw_src = (sg_netcard_t) xbt_lib_get_or_null(as_router_lib, src_name, ROUTING_ASR_LEVEL); route->gw_dst = (sg_netcard_t) xbt_lib_get_or_null(as_router_lib, dst_name, ROUTING_ASR_LEVEL); xbt_free(src_name); @@ -48,36 +48,36 @@ void AsVivaldi::getRouteAndLatency(NetCard *src, NetCard *dst, sg_platf_route_cb xbt_dynar_t src_ctn, dst_ctn; char *tmp_src_name, *tmp_dst_name; - if(src->getRcType() == SURF_NETWORK_ELEMENT_HOST){ - tmp_src_name = HOST_PEER(src->getName()); + if(src->isHost()){ + tmp_src_name = HOST_PEER(src->name()); - if ((int)xbt_dynar_length(p_linkUpDownList)>src->getId()) { - info = xbt_dynar_get_as(p_linkUpDownList, src->getId(), s_surf_parsing_link_up_down_t); + if ((int)xbt_dynar_length(upDownLinks)>src->id()) { + info = xbt_dynar_get_as(upDownLinks, src->id(), s_surf_parsing_link_up_down_t); if(info.link_up) { // link up - xbt_dynar_push_as(route->link_list, void*, info.link_up); + route->link_list->push_back(info.link_up); if (lat) *lat += static_cast(info.link_up)->getLatency(); } } src_ctn = (xbt_dynar_t) simgrid::s4u::Host::by_name_or_create(tmp_src_name)->extension(COORD_HOST_LEVEL); if (src_ctn == nullptr) - src_ctn = (xbt_dynar_t) simgrid::s4u::Host::by_name_or_create(src->getName())->extension(COORD_HOST_LEVEL); + src_ctn = (xbt_dynar_t) simgrid::s4u::Host::by_name_or_create(src->name())->extension(COORD_HOST_LEVEL); } - else if(src->getRcType() == SURF_NETWORK_ELEMENT_ROUTER || src->getRcType() == SURF_NETWORK_ELEMENT_AS){ - tmp_src_name = ROUTER_PEER(src->getName()); + else if(src->isRouter() || src->isAS()){ + tmp_src_name = ROUTER_PEER(src->name()); src_ctn = (xbt_dynar_t) xbt_lib_get_or_null(as_router_lib, tmp_src_name, COORD_ASR_LEVEL); } else{ THROW_IMPOSSIBLE; } - if(dst->getRcType() == SURF_NETWORK_ELEMENT_HOST){ - tmp_dst_name = HOST_PEER(dst->getName()); + if(dst->isHost()){ + tmp_dst_name = HOST_PEER(dst->name()); - if ((int)xbt_dynar_length(p_linkUpDownList)>dst->getId()) { - info = xbt_dynar_get_as(p_linkUpDownList, dst->getId(), s_surf_parsing_link_up_down_t); + if ((int)xbt_dynar_length(upDownLinks)>dst->id()) { + info = xbt_dynar_get_as(upDownLinks, dst->id(), s_surf_parsing_link_up_down_t); if(info.link_down) { // link down - xbt_dynar_push_as(route->link_list,void*,info.link_down); + route->link_list->push_back(info.link_down); if (lat) *lat += static_cast(info.link_down)->getLatency(); } @@ -85,11 +85,11 @@ void AsVivaldi::getRouteAndLatency(NetCard *src, NetCard *dst, sg_platf_route_cb dst_ctn = (xbt_dynar_t) simgrid::s4u::Host::by_name_or_create(tmp_dst_name) ->extension(COORD_HOST_LEVEL); if (dst_ctn == nullptr) - dst_ctn = (xbt_dynar_t) simgrid::s4u::Host::by_name_or_create(dst->getName()) + dst_ctn = (xbt_dynar_t) simgrid::s4u::Host::by_name_or_create(dst->name()) ->extension(COORD_HOST_LEVEL); } - else if(dst->getRcType() == SURF_NETWORK_ELEMENT_ROUTER || dst->getRcType() == SURF_NETWORK_ELEMENT_AS){ - tmp_dst_name = ROUTER_PEER(dst->getName()); + else if(dst->isRouter() || dst->isAS()){ + tmp_dst_name = ROUTER_PEER(dst->name()); dst_ctn = (xbt_dynar_t) xbt_lib_get_or_null(as_router_lib, tmp_dst_name, COORD_ASR_LEVEL); } else{ @@ -110,11 +110,5 @@ void AsVivaldi::getRouteAndLatency(NetCard *src, NetCard *dst, sg_platf_route_cb } } -int AsVivaldi::parsePU(NetCard *elm) { - XBT_DEBUG("Load process unit \"%s\"", elm->getName()); - xbt_dynar_push_as(p_indexNetworkElm, sg_netcard_t, elm); - return xbt_dynar_length(p_indexNetworkElm)-1; -} - } }