}
for (auto const& link_name : names) {
simgrid::kernel::resource::LinkImpl* l =
- surf_network_model->createLink(link_name, link->bandwidth, link->latency, link->policy);
+ surf_network_model->create_link(link_name, link->bandwidth, link->latency, link->policy);
if (link->properties) {
for (auto const& elm : *link->properties)
simgrid::kernel::actor::ProcessArg* arg =
new simgrid::kernel::actor::ProcessArg(actor_name, code, nullptr, host, kill_time, properties, auto_restart);
- host->pimpl_->boot_processes.push_back(arg);
+ host->pimpl_->boot_processes_.push_back(arg);
if (start_time > SIMIX_get_clock()) {
simgrid::s4u::on_platform_creation();
/* Initialize the surf models. That must be done after we got all config, and before we need the models.
- * That is, after the last <config> tag, if any, and before the first of cluster|peer|AS|trace|trace_connect
+ * That is, after the last <config> tag, if any, and before the first of cluster|peer|zone|trace|trace_connect
*
* I'm not sure for <trace> and <trace_connect>, there may be a bug here
* (FIXME: check it out by creating a file beginning with one of these tags)
- * but cluster and peer create ASes internally, so putting the code in there is ok.
+ * but cluster and peer come down to zone creations, so putting this verification here is correct.
*/
surf_parse_models_setup_already_called = 1;
surf_config_models_setup();
/* search the routing model */
simgrid::kernel::routing::NetZoneImpl* new_zone = nullptr;
+ simgrid::kernel::resource::NetworkModel* netmodel =
+ current_routing == nullptr ? surf_network_model : current_routing->network_model_;
switch (zone->routing) {
case A_surfxml_AS_routing_Cluster:
- new_zone = new simgrid::kernel::routing::ClusterZone(current_routing, zone->id);
+ new_zone = new simgrid::kernel::routing::ClusterZone(current_routing, zone->id, netmodel);
break;
case A_surfxml_AS_routing_ClusterDragonfly:
- new_zone = new simgrid::kernel::routing::DragonflyZone(current_routing, zone->id);
+ new_zone = new simgrid::kernel::routing::DragonflyZone(current_routing, zone->id, netmodel);
break;
case A_surfxml_AS_routing_ClusterTorus:
- new_zone = new simgrid::kernel::routing::TorusZone(current_routing, zone->id);
+ new_zone = new simgrid::kernel::routing::TorusZone(current_routing, zone->id, netmodel);
break;
case A_surfxml_AS_routing_ClusterFatTree:
- new_zone = new simgrid::kernel::routing::FatTreeZone(current_routing, zone->id);
+ new_zone = new simgrid::kernel::routing::FatTreeZone(current_routing, zone->id, netmodel);
break;
case A_surfxml_AS_routing_Dijkstra:
- new_zone = new simgrid::kernel::routing::DijkstraZone(current_routing, zone->id, false);
+ new_zone = new simgrid::kernel::routing::DijkstraZone(current_routing, zone->id, netmodel, false);
break;
case A_surfxml_AS_routing_DijkstraCache:
- new_zone = new simgrid::kernel::routing::DijkstraZone(current_routing, zone->id, true);
+ new_zone = new simgrid::kernel::routing::DijkstraZone(current_routing, zone->id, netmodel, true);
break;
case A_surfxml_AS_routing_Floyd:
- new_zone = new simgrid::kernel::routing::FloydZone(current_routing, zone->id);
+ new_zone = new simgrid::kernel::routing::FloydZone(current_routing, zone->id, netmodel);
break;
case A_surfxml_AS_routing_Full:
- new_zone = new simgrid::kernel::routing::FullZone(current_routing, zone->id);
+ new_zone = new simgrid::kernel::routing::FullZone(current_routing, zone->id, netmodel);
break;
case A_surfxml_AS_routing_None:
- new_zone = new simgrid::kernel::routing::EmptyZone(current_routing, zone->id);
+ new_zone = new simgrid::kernel::routing::EmptyZone(current_routing, zone->id, netmodel);
break;
case A_surfxml_AS_routing_Vivaldi:
- new_zone = new simgrid::kernel::routing::VivaldiZone(current_routing, zone->id);
+ new_zone = new simgrid::kernel::routing::VivaldiZone(current_routing, zone->id, netmodel);
break;
default:
xbt_die("Not a valid model!");