+void AsCluster::create_links_for_node(sg_platf_cluster_cbarg_t cluster, int id, int , int position){
+ s_sg_platf_link_cbarg_t link;
+ s_surf_parsing_link_up_down_t info;
+ char* link_id = bprintf("%s_link_%d", cluster->id, id);
+
+ memset(&link, 0, sizeof(link));
+ link.id = link_id;
+ link.bandwidth = cluster->bw;
+ link.latency = cluster->lat;
+ link.state = SURF_RESOURCE_ON;
+ link.policy = cluster->sharing_policy;
+ sg_platf_new_link(&link);
+
+ if (link.policy == SURF_LINK_FULLDUPLEX) {
+ char *tmp_link = bprintf("%s_UP", link_id);
+ info.link_up = xbt_lib_get_or_null(link_lib, tmp_link, SURF_LINK_LEVEL);
+ xbt_free(tmp_link);
+ tmp_link = bprintf("%s_DOWN", link_id);
+ info.link_down = xbt_lib_get_or_null(link_lib, tmp_link, SURF_LINK_LEVEL);
+ xbt_free(tmp_link);
+ } else {
+ info.link_up = xbt_lib_get_or_null(link_lib, link_id, SURF_LINK_LEVEL);
+ info.link_down = info.link_up;
+ }
+ xbt_dynar_set(p_linkUpDownList, position, &info);
+ xbt_free(link_id);
+}
+