- xbt_assert(netpoint->netzone() == this, "Cannot add a peer link to a netpoint that is not in this netzone");
-
- new simgrid::kernel::routing::vivaldi::Coords(netpoint, coord);
-
- std::string link_up = "link_" + netpoint->name() + "_UP";
- std::string link_down = "link_" + netpoint->name() + "_DOWN";
- surf::LinkImpl* linkUp = surf_network_model->createLink(link_up, bw_out, 0, SURF_LINK_SHARED);
- surf::LinkImpl* linkDown = surf_network_model->createLink(link_down, bw_in, 0, SURF_LINK_SHARED);
- privateLinks_.insert({netpoint->id(), {linkUp, linkDown}});
-}
-
-void VivaldiZone::getLocalRoute(NetPoint* src, NetPoint* dst, sg_platf_route_cbarg_t route, double* lat)
-{
- XBT_DEBUG("vivaldi getLocalRoute from '%s'[%u] '%s'[%u]", src->cname(), src->id(), dst->cname(), dst->id());
-
- if (src->isNetZone()) {
- std::string srcName = "router_" + src->name();
- std::string dstName = "router_" + dst->name();
- route->gw_src = simgrid::s4u::Engine::getInstance()->getNetpointByNameOrNull(srcName.c_str());
- route->gw_dst = simgrid::s4u::Engine::getInstance()->getNetpointByNameOrNull(dstName.c_str());
- }
-
- /* Retrieve the private links */
- auto src_link = privateLinks_.find(src->id());
- if (src_link != privateLinks_.end()) {
- std::pair<surf::LinkImpl*, surf::LinkImpl*> info = src_link->second;
- if (info.first) {
- route->link_list->push_back(info.first);
- if (lat)
- *lat += info.first->latency();
- }
- } else {
- XBT_DEBUG("Source of private link (%u) doesn't exist", src->id());
- }
-
- auto dst_link = privateLinks_.find(dst->id());
- if (dst_link != privateLinks_.end()) {
- std::pair<surf::LinkImpl*, surf::LinkImpl*> info = dst_link->second;
- if (info.second) {
- route->link_list->push_back(info.second);
- if (lat)
- *lat += info.second->latency();
- }
- } else {
- XBT_DEBUG("Destination of private link (%u) doesn't exist", dst->id());
+ XBT_DEBUG("vivaldi getLocalRoute from '%s'[%lu] '%s'[%lu]", src->get_cname(), src->id(), dst->get_cname(), dst->id());
+ const auto* engine = s4u::Engine::get_instance();
+ if (src->is_netzone()) {
+ std::string srcName = "router_" + src->get_name();
+ std::string dstName = "router_" + dst->get_name();
+ route->gw_src_ = engine->netpoint_by_name_or_null(srcName);
+ route->gw_dst_ = engine->netpoint_by_name_or_null(dstName);