X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/fcfc0ea5eb247b371f85af9dd1e730d93f5c7f38..877fd76c223fe2fba051129f3ba0339bb5566bce:/src/kernel/routing/AsFull.cpp diff --git a/src/kernel/routing/AsFull.cpp b/src/kernel/routing/AsFull.cpp index 0b5807e497..eb84b0c392 100644 --- a/src/kernel/routing/AsFull.cpp +++ b/src/kernel/routing/AsFull.cpp @@ -4,6 +4,7 @@ * under the terms of the license (GNU LGPL) which comes with this package. */ #include "src/kernel/routing/AsFull.hpp" +#include "src/kernel/routing/NetCard.hpp" #include "src/surf/network_interface.hpp" XBT_LOG_NEW_DEFAULT_SUBCATEGORY(surf_route_full, surf, "Routing part of surf"); @@ -13,9 +14,8 @@ XBT_LOG_NEW_DEFAULT_SUBCATEGORY(surf_route_full, surf, "Routing part of surf"); namespace simgrid { namespace kernel { namespace routing { - AsFull::AsFull(const char*name) - : AsRoutedGraph(name) - { +AsFull::AsFull(As* father, const char* name) : AsRoutedGraph(father, name) +{ } void AsFull::seal() { @@ -30,7 +30,7 @@ void AsFull::seal() { routingTable_ = xbt_new0(sg_platf_route_cbarg_t, table_size * table_size); /* Add the loopback if needed */ - if (routing_platf->loopback_ && hierarchy_ == RoutingMode::base) { + if (surf_network_model->loopback_ && hierarchy_ == RoutingMode::base) { for (i = 0; i < table_size; i++) { e_route = TO_ROUTE_FULL(i, i); if (!e_route) { @@ -38,7 +38,7 @@ void AsFull::seal() { e_route->gw_src = nullptr; e_route->gw_dst = nullptr; e_route->link_list = new std::vector(); - e_route->link_list->push_back(routing_platf->loopback_); + e_route->link_list->push_back(surf_network_model->loopback_); TO_ROUTE_FULL(i, i) = e_route; } } @@ -60,36 +60,28 @@ AsFull::~AsFull(){ } } -void AsFull::getRouteAndLatency(NetCard *src, NetCard *dst, sg_platf_route_cbarg_t res, double *lat) +void AsFull::getLocalRoute(NetCard* src, NetCard* dst, sg_platf_route_cbarg_t res, double* lat) { - XBT_DEBUG("full_get_route_and_latency from %s[%d] to %s[%d]", - src->name(), src->id(), dst->name(), dst->id()); + XBT_DEBUG("full getLocalRoute from %s[%d] to %s[%d]", src->cname(), src->id(), dst->cname(), dst->id()); - /* set utils vars */ size_t table_size = vertices_.size(); + sg_platf_route_cbarg_t e_route = TO_ROUTE_FULL(src->id(), dst->id()); - sg_platf_route_cbarg_t e_route = nullptr; - - e_route = TO_ROUTE_FULL(src->id(), dst->id()); - - if (e_route) { + if (e_route != nullptr) { res->gw_src = e_route->gw_src; res->gw_dst = e_route->gw_dst; for (auto link : *e_route->link_list) { res->link_list->push_back(link); if (lat) - *lat += static_cast(link)->getLatency(); + *lat += link->latency(); } } } void AsFull::addRoute(sg_platf_route_cbarg_t route) { - NetCard *src_net_elm = route->src; - NetCard *dst_net_elm = route->dst; - const char *src = src_net_elm->name(); - const char *dst = dst_net_elm->name(); - + NetCard* src = route->src; + NetCard* dst = route->dst; addRouteCheckParams(route); size_t table_size = vertices_.size(); @@ -99,33 +91,36 @@ void AsFull::addRoute(sg_platf_route_cbarg_t route) /* Check that the route does not already exist */ if (route->gw_dst) // AS route (to adapt the error message, if any) - xbt_assert(nullptr == TO_ROUTE_FULL(src_net_elm->id(), dst_net_elm->id()), - "The route between %s@%s and %s@%s already exists (Rq: routes are symmetrical by default).", - src,route->gw_src->name(),dst,route->gw_dst->name()); + xbt_assert(nullptr == TO_ROUTE_FULL(src->id(), dst->id()), + "The route between %s@%s and %s@%s already exists (Rq: routes are symmetrical by default).", + src->cname(), route->gw_src->cname(), dst->cname(), route->gw_dst->cname()); else - xbt_assert(nullptr == TO_ROUTE_FULL(src_net_elm->id(), dst_net_elm->id()), - "The route between %s and %s already exists (Rq: routes are symmetrical by default).", src,dst); + xbt_assert(nullptr == TO_ROUTE_FULL(src->id(), dst->id()), + "The route between %s and %s already exists (Rq: routes are symmetrical by default).", src->cname(), + dst->cname()); /* Add the route to the base */ - TO_ROUTE_FULL(src_net_elm->id(), dst_net_elm->id()) = newExtendedRoute(hierarchy_, route, 1); - TO_ROUTE_FULL(src_net_elm->id(), dst_net_elm->id())->link_list->shrink_to_fit(); + TO_ROUTE_FULL(src->id(), dst->id()) = newExtendedRoute(hierarchy_, route, 1); + TO_ROUTE_FULL(src->id(), dst->id())->link_list->shrink_to_fit(); - if (route->symmetrical == true && src_net_elm != dst_net_elm) { + if (route->symmetrical == true && src != dst) { if (route->gw_dst && route->gw_src) { NetCard* gw_tmp = route->gw_src; route->gw_src = route->gw_dst; route->gw_dst = gw_tmp; } if (route->gw_dst) // AS route (to adapt the error message, if any) - xbt_assert(nullptr == TO_ROUTE_FULL(dst_net_elm->id(), src_net_elm->id()), + xbt_assert( + nullptr == TO_ROUTE_FULL(dst->id(), src->id()), "The route between %s@%s and %s@%s already exists. You should not declare the reverse path as symmetrical.", - dst,route->gw_dst->name(),src,route->gw_src->name()); + dst->cname(), route->gw_dst->cname(), src->cname(), route->gw_src->cname()); else - xbt_assert(nullptr == TO_ROUTE_FULL(dst_net_elm->id(), src_net_elm->id()), - "The route between %s and %s already exists. You should not declare the reverse path as symmetrical.", dst,src); + xbt_assert(nullptr == TO_ROUTE_FULL(dst->id(), src->id()), + "The route between %s and %s already exists. You should not declare the reverse path as symmetrical.", + dst->cname(), src->cname()); - TO_ROUTE_FULL(dst_net_elm->id(), src_net_elm->id()) = newExtendedRoute(hierarchy_, route, 0); - TO_ROUTE_FULL(dst_net_elm->id(), src_net_elm->id())->link_list->shrink_to_fit(); + TO_ROUTE_FULL(dst->id(), src->id()) = newExtendedRoute(hierarchy_, route, 0); + TO_ROUTE_FULL(dst->id(), src->id())->link_list->shrink_to_fit(); } }