X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/bf41d7b09bccdac18be3631c03256f2a34bdb202..c139b4e36702f58bd8a75e87cf537959da82dbc9:/src/kernel/routing/NetZoneImpl.cpp diff --git a/src/kernel/routing/NetZoneImpl.cpp b/src/kernel/routing/NetZoneImpl.cpp index f980bba4c8..bbff2db92f 100644 --- a/src/kernel/routing/NetZoneImpl.cpp +++ b/src/kernel/routing/NetZoneImpl.cpp @@ -43,8 +43,8 @@ NetZoneImpl::~NetZoneImpl() simgrid::s4u::Engine::getInstance()->netpointUnregister(netpoint_); } -simgrid::s4u::Host* NetZoneImpl::createHost(const char* name, std::vector* speedPerPstate, int coreAmount, - std::map* props) +simgrid::s4u::Host* NetZoneImpl::create_host(const char* name, std::vector* speedPerPstate, int coreAmount, + std::map* props) { simgrid::s4u::Host* res = new simgrid::s4u::Host(name); @@ -64,24 +64,24 @@ simgrid::s4u::Host* NetZoneImpl::createHost(const char* name, std::vector& link_list, bool symmetrical) +void NetZoneImpl::add_bypass_route(NetPoint* src, NetPoint* dst, NetPoint* gw_src, NetPoint* gw_dst, + std::vector& link_list, bool symmetrical) { /* Argument validity checks */ if (gw_dst) { - XBT_DEBUG("Load bypassNetzoneRoute from %s@%s to %s@%s", src->getCname(), gw_src->getCname(), dst->getCname(), - gw_dst->getCname()); - xbt_assert(not link_list.empty(), "Bypass route between %s@%s and %s@%s cannot be empty.", src->getCname(), - gw_src->getCname(), dst->getCname(), gw_dst->getCname()); + XBT_DEBUG("Load bypassNetzoneRoute from %s@%s to %s@%s", src->get_cname(), gw_src->get_cname(), dst->get_cname(), + gw_dst->get_cname()); + xbt_assert(not link_list.empty(), "Bypass route between %s@%s and %s@%s cannot be empty.", src->get_cname(), + gw_src->get_cname(), dst->get_cname(), gw_dst->get_cname()); xbt_assert(bypass_routes_.find({src, dst}) == bypass_routes_.end(), - "The bypass route between %s@%s and %s@%s already exists.", src->getCname(), gw_src->getCname(), - dst->getCname(), gw_dst->getCname()); + "The bypass route between %s@%s and %s@%s already exists.", src->get_cname(), gw_src->get_cname(), + dst->get_cname(), gw_dst->get_cname()); } else { - XBT_DEBUG("Load bypassRoute from %s to %s", src->getCname(), dst->getCname()); - xbt_assert(not link_list.empty(), "Bypass route between %s and %s cannot be empty.", src->getCname(), - dst->getCname()); + XBT_DEBUG("Load bypassRoute from %s to %s", src->get_cname(), dst->get_cname()); + xbt_assert(not link_list.empty(), "Bypass route between %s and %s cannot be empty.", src->get_cname(), + dst->get_cname()); xbt_assert(bypass_routes_.find({src, dst}) == bypass_routes_.end(), - "The bypass route between %s and %s already exists.", src->getCname(), dst->getCname()); + "The bypass route between %s and %s already exists.", src->get_cname(), dst->get_cname()); } /* Build a copy that will be stored in the dict */ @@ -148,8 +148,8 @@ static void find_common_ancestors(NetPoint* src, NetPoint* dst, NetZoneImpl** dst_ancestor) { /* Deal with the easy base case */ - if (src->netzone() == dst->netzone()) { - *common_ancestor = src->netzone(); + if (src->get_englobing_zone() == dst->get_englobing_zone()) { + *common_ancestor = src->get_englobing_zone(); *src_ancestor = *common_ancestor; *dst_ancestor = *common_ancestor; return; @@ -158,21 +158,21 @@ static void find_common_ancestors(NetPoint* src, NetPoint* dst, /* engage the full recursive search */ /* (1) find the path to root of src and dst*/ - NetZoneImpl* src_as = src->netzone(); - NetZoneImpl* dst_as = dst->netzone(); + NetZoneImpl* src_as = src->get_englobing_zone(); + NetZoneImpl* dst_as = dst->get_englobing_zone(); - xbt_assert(src_as, "Host %s must be in a netzone", src->getCname()); - xbt_assert(dst_as, "Host %s must be in a netzone", dst->getCname()); + xbt_assert(src_as, "Host %s must be in a netzone", src->get_cname()); + xbt_assert(dst_as, "Host %s must be in a netzone", dst->get_cname()); /* (2) find the path to the root routing component */ std::vector path_src; - NetZoneImpl* current = src->netzone(); + NetZoneImpl* current = src->get_englobing_zone(); while (current != nullptr) { path_src.push_back(current); current = static_cast(current->getFather()); } std::vector path_dst; - current = dst->netzone(); + current = dst->get_englobing_zone(); while (current != nullptr) { path_dst.push_back(current); current = static_cast(current->getFather()); @@ -203,15 +203,15 @@ static void find_common_ancestors(NetPoint* src, NetPoint* dst, } /* PRECONDITION: this is the common ancestor of src and dst */ -bool NetZoneImpl::getBypassRoute(routing::NetPoint* src, routing::NetPoint* dst, - /* OUT */ std::vector& links, double* latency) +bool NetZoneImpl::get_bypass_route(routing::NetPoint* src, routing::NetPoint* dst, + /* OUT */ std::vector& links, double* latency) { // If never set a bypass route return nullptr without any further computations if (bypass_routes_.empty()) return false; /* Base case, no recursion is needed */ - if (dst->netzone() == this && src->netzone() == this) { + if (dst->get_englobing_zone() == this && src->get_englobing_zone() == this) { if (bypass_routes_.find({src, dst}) != bypass_routes_.end()) { BypassRoute* bypassedRoute = bypass_routes_.at({src, dst}); for (surf::LinkImpl* const& link : bypassedRoute->links) { @@ -219,7 +219,7 @@ bool NetZoneImpl::getBypassRoute(routing::NetPoint* src, routing::NetPoint* dst, if (latency) *latency += link->latency(); } - XBT_DEBUG("Found a bypass route from '%s' to '%s' with %zu links", src->getCname(), dst->getCname(), + XBT_DEBUG("Found a bypass route from '%s' to '%s' with %zu links", src->get_cname(), dst->get_cname(), bypassedRoute->links.size()); return true; } @@ -230,14 +230,14 @@ bool NetZoneImpl::getBypassRoute(routing::NetPoint* src, routing::NetPoint* dst, /* (1) find the path to the root routing component */ std::vector path_src; - NetZone* current = src->netzone(); + NetZone* current = src->get_englobing_zone(); while (current != nullptr) { path_src.push_back(static_cast(current)); current = current->father_; } std::vector path_dst; - current = dst->netzone(); + current = dst->get_englobing_zone(); while (current != nullptr) { path_dst.push_back(static_cast(current)); current = current->father_; @@ -295,39 +295,39 @@ bool NetZoneImpl::getBypassRoute(routing::NetPoint* src, routing::NetPoint* dst, if (bypassedRoute) { XBT_DEBUG("Found a bypass route from '%s' to '%s' with %zu links. We may have to complete it with recursive " "calls to getRoute", - src->getCname(), dst->getCname(), bypassedRoute->links.size()); + src->get_cname(), dst->get_cname(), bypassedRoute->links.size()); if (src != key.first) - getGlobalRoute(src, bypassedRoute->gw_src, links, latency); + get_global_route(src, bypassedRoute->gw_src, links, latency); for (surf::LinkImpl* const& link : bypassedRoute->links) { links.push_back(link); if (latency) *latency += link->latency(); } if (dst != key.second) - getGlobalRoute(bypassedRoute->gw_dst, dst, links, latency); + get_global_route(bypassedRoute->gw_dst, dst, links, latency); return true; } - XBT_DEBUG("No bypass route from '%s' to '%s'.", src->getCname(), dst->getCname()); + XBT_DEBUG("No bypass route from '%s' to '%s'.", src->get_cname(), dst->get_cname()); return false; } -void NetZoneImpl::getGlobalRoute(routing::NetPoint* src, routing::NetPoint* dst, - /* OUT */ std::vector& links, double* latency) +void NetZoneImpl::get_global_route(routing::NetPoint* src, routing::NetPoint* dst, + /* OUT */ std::vector& links, double* latency) { RouteCreationArgs route; - XBT_DEBUG("Resolve route from '%s' to '%s'", src->getCname(), dst->getCname()); + XBT_DEBUG("Resolve route from '%s' to '%s'", src->get_cname(), dst->get_cname()); /* Find how src and dst are interconnected */ NetZoneImpl *common_ancestor; NetZoneImpl *src_ancestor; NetZoneImpl *dst_ancestor; find_common_ancestors(src, dst, &common_ancestor, &src_ancestor, &dst_ancestor); - XBT_DEBUG("elements_father: common ancestor '%s' src ancestor '%s' dst ancestor '%s'", common_ancestor->getCname(), - src_ancestor->getCname(), dst_ancestor->getCname()); + XBT_DEBUG("elements_father: common ancestor '%s' src ancestor '%s' dst ancestor '%s'", common_ancestor->get_cname(), + src_ancestor->get_cname(), dst_ancestor->get_cname()); /* Check whether a direct bypass is defined. If so, use it and bail out */ - if (common_ancestor->getBypassRoute(src, dst, links, latency)) + if (common_ancestor->get_bypass_route(src, dst, links, latency)) return; /* If src and dst are in the same netzone, life is good */ @@ -342,17 +342,17 @@ void NetZoneImpl::getGlobalRoute(routing::NetPoint* src, routing::NetPoint* dst, common_ancestor->getLocalRoute(src_ancestor->netpoint_, dst_ancestor->netpoint_, &route, latency); xbt_assert((route.gw_src != nullptr) && (route.gw_dst != nullptr), "bad gateways for route from \"%s\" to \"%s\"", - src->getCname(), dst->getCname()); + src->get_cname(), dst->get_cname()); /* If source gateway is not our source, we have to recursively find our way up to this point */ if (src != route.gw_src) - getGlobalRoute(src, route.gw_src, links, latency); + get_global_route(src, route.gw_src, links, latency); for (auto const& link : route.link_list) links.push_back(link); /* If dest gateway is not our destination, we have to recursively find our way from this point */ if (route.gw_dst != dst) - getGlobalRoute(route.gw_dst, dst, links, latency); + get_global_route(route.gw_dst, dst, links, latency); } } }