return count;
}
+s4u::Link* NetZoneImpl::create_link(const std::string& name, const std::vector<double>& bandwidths, double latency,
+ s4u::Link::SharingPolicy policy,
+ const std::unordered_map<std::string, std::string>* props)
+{
+ static double last_warned_latency = sg_surf_precision;
+ if (latency != 0.0 && latency < last_warned_latency) {
+ XBT_WARN("Latency for link %s is smaller than surf/precision (%g < %g)."
+ " For more accuracy, consider setting \"--cfg=surf/precision:%g\".",
+ name.c_str(), latency, sg_surf_precision, latency);
+ last_warned_latency = latency;
+ }
+
+ auto* l = surf_network_model->create_link(name, bandwidths, latency, policy);
+
+ if (props)
+ l->set_properties(*props);
+
+ return l->get_iface();
+}
s4u::Host* NetZoneImpl::create_host(const std::string& name, const std::vector<double>& speed_per_pstate,
- int coreAmount, const std::map<std::string, std::string>* props)
+ int coreAmount, const std::unordered_map<std::string, std::string>* props)
{
auto* res = new s4u::Host(name);
/* Not in the same netzone, no bypass. We'll have to find our path between the netzones recursively */
common_ancestor->get_local_route(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\"",
+ xbt_assert((route.gw_src != nullptr) && (route.gw_dst != nullptr), "Bad gateways for route from '%s' to '%s'.",
src->get_cname(), dst->get_cname());
/* If source gateway is not our source, we have to recursively find our way up to this point */