- auto* backbone = current_zone->create_link(bb_name, std::vector<double>{cluster->bb_bw})
- ->set_sharing_policy(cluster->bb_sharing_policy)
- ->set_latency(cluster->bb_lat)
- ->seal();
- current_zone->set_backbone(backbone->get_impl());
+void sg_platf_new_tag_cluster(simgrid::kernel::routing::ClusterCreationArgs* cluster)
+{
+ switch (cluster->topology) {
+ case simgrid::kernel::routing::ClusterTopology::TORUS:
+ case simgrid::kernel::routing::ClusterTopology::DRAGONFLY:
+ case simgrid::kernel::routing::ClusterTopology::FAT_TREE:
+ sg_platf_new_cluster_hierarchical(cluster);
+ break;
+ default:
+ sg_platf_new_cluster_flat(cluster);
+ break;
+ }
+}
+/*************************************************************************************************/
+/** @brief Set the links for internal node inside a Cluster(Star) */
+static void sg_platf_cluster_set_hostlink(simgrid::kernel::routing::StarZone* zone,
+ simgrid::kernel::routing::NetPoint* netpoint,
+ const simgrid::s4u::Link* link_up, const simgrid::s4u::Link* link_down,
+ const simgrid::s4u::Link* backbone)
+{
+ XBT_DEBUG("Push Host_link for host '%s' to position %u", netpoint->get_cname(), netpoint->id());
+ if (backbone) {
+ zone->add_route(netpoint, nullptr, nullptr, nullptr, {link_up, backbone}, false);
+ zone->add_route(nullptr, netpoint, nullptr, nullptr, {backbone, link_down}, false);
+ } else {
+ zone->add_route(netpoint, nullptr, nullptr, nullptr, {link_up}, false);
+ zone->add_route(nullptr, netpoint, nullptr, nullptr, {link_down}, false);