- std::string tmp_link = link_id + "_loopback";
- XBT_DEBUG("<loopback\tid=\"%s\"\tbw=\"%f\"/>", tmp_link.c_str(), cluster->loopback_bw);
-
- simgrid::kernel::routing::LinkCreationArgs link;
- link.id = tmp_link;
- link.bandwidths.push_back(cluster->loopback_bw);
- link.latency = cluster->loopback_lat;
- link.policy = simgrid::s4u::Link::SharingPolicy::FATPIPE;
- sg_platf_new_link(&link);
- linkUp = simgrid::s4u::Link::by_name_or_null(tmp_link);
- linkDown = simgrid::s4u::Link::by_name_or_null(tmp_link);
-
- current_zone->add_private_link_at(current_zone->node_pos(rankId), {linkUp->get_impl(), linkDown->get_impl()});
+ std::string loopback_name = link_id + "_loopback";
+ XBT_DEBUG("<loopback\tid=\"%s\"\tbw=\"%f\"/>", loopback_name.c_str(), cluster->loopback_bw);
+
+ simgrid::s4u::Link* loopback = current_zone->create_link(loopback_name, std::vector<double>{cluster->loopback_bw})
+ ->set_sharing_policy(simgrid::s4u::Link::SharingPolicy::FATPIPE)
+ ->set_latency(cluster->loopback_lat);
+ loopback->seal();
+
+ current_zone->add_private_link_at(current_zone->node_pos(rankId), {loopback->get_impl(), loopback->get_impl()});