Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
add limiter_link option to cluster tag, to add a pseudo-shared link, to limit bandwid...
[simgrid.git] / src / surf / surfxml_parse.c
index e367d9e..64d6f7f 100644 (file)
@@ -348,6 +348,8 @@ void STag_surfxml_cluster(void){
     cluster.bb_bw = surf_parse_get_double(A_surfxml_cluster_bb___bw);
   if(strcmp(A_surfxml_cluster_bb___lat,""))
     cluster.bb_lat = surf_parse_get_double(A_surfxml_cluster_bb___lat);
+  if(strcmp(A_surfxml_cluster_limiter___link,""))
+    cluster.limiter_link = surf_parse_get_double(A_surfxml_cluster_limiter___link);
   cluster.router_id = A_surfxml_cluster_router___id;
 
   switch (AX_surfxml_cluster_sharing___policy) {
@@ -483,6 +485,22 @@ void STag_surfxml_link___ctn(void){
   xbt_dynar_push(parsed_link_list, &link_id);
 }
 
+void ETag_surfxml_backbone(void){
+  s_sg_platf_link_cbarg_t link;
+  memset(&link,0,sizeof(link));
+
+  link.properties = NULL;
+
+  link.id = A_surfxml_backbone_id;
+  link.bandwidth = surf_parse_get_double(A_surfxml_backbone_bandwidth);
+  link.latency = surf_parse_get_double(A_surfxml_backbone_latency);
+  link.state = SURF_RESOURCE_ON;
+  link.policy = SURF_LINK_SHARED;
+
+  sg_platf_new_link(&link);
+  routing_cluster_add_backbone(xbt_lib_get_or_null(link_lib, A_surfxml_backbone_id, SURF_LINK_LEVEL));
+}
+
 void STag_surfxml_route(void){
   xbt_assert(strlen(A_surfxml_route_src) > 0 || strlen(A_surfxml_route_dst) > 0,
       "Missing end-points while defining route \"%s\"->\"%s\"",
@@ -783,6 +801,7 @@ void ETag_surfxml_host___link(void){}
 void ETag_surfxml_cluster(void){}
 void ETag_surfxml_cabinet(void){}
 void ETag_surfxml_peer(void){}
+void STag_surfxml_backbone(void){}
 void ETag_surfxml_link___ctn(void){}
 void ETag_surfxml_argument(void){}
 
@@ -824,6 +843,7 @@ void surf_parse_close(void)
   xbt_dynar_free(&surf_parsed_filename_stack);
 
   free(surf_parsed_filename);
+  surf_parsed_filename = NULL;
 
   if (surf_file_to_parse) {
     surf_parse__delete_buffer(surf_input_buffer);