X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/b238eef0dd669192bc4be176656ad1c2207dfc4c..a5bd980adf8f67f79372fba958d1e8b4a2f9e963:/src/surf/surf_routing.c diff --git a/src/surf/surf_routing.c b/src/surf/surf_routing.c index 375a7c2a82..e34912999f 100644 --- a/src/surf/surf_routing.c +++ b/src/surf/surf_routing.c @@ -1561,35 +1561,54 @@ void routing_parse_Scluster(void) surf_parse_get_int(&start, xbt_dynar_get_as(radical_ends, 0, char *)); host_id = bprintf("%s%d%s", cluster_prefix, start, cluster_suffix); link_id = bprintf("%s_link_%d", cluster_id, start); - xbt_dict_set(patterns, "radical", bprintf("%d", start), xbt_free); - XBT_DEBUG("", host_id, cluster_power); A_surfxml_host_state = A_surfxml_host_state_ON; + + XBT_DEBUG("", host_id, cluster_power); SURFXML_BUFFER_SET(host_id, host_id); SURFXML_BUFFER_SET(host_power, cluster_power); + + if(!strcmp(A_surfxml_cluster_availability_file,"")){ + char* tmp_availability_file = xbt_strdup(availability_file); + xbt_str_varsubst(tmp_availability_file,patterns); + XBT_DEBUG("\tavailability_file=\"%s\"",tmp_availability_file); + SURFXML_BUFFER_SET(host_availability_file, tmp_availability_file); + xbt_free(tmp_availability_file); + } + else + { + XBT_DEBUG("\tavailability_file=\"\""); + SURFXML_BUFFER_SET(host_availability_file, ""); + } + if(!strcmp(A_surfxml_cluster_state_file,"")){ + char *tmp_state_file = xbt_strdup(state_file); + xbt_str_varsubst(tmp_state_file,patterns); + XBT_DEBUG("\tstate_file=\"%s\"",tmp_state_file); + SURFXML_BUFFER_SET(host_state_file, tmp_state_file); + xbt_free(tmp_state_file); + } + else + { + XBT_DEBUG("\tstate_file=\"\""); + SURFXML_BUFFER_SET(host_state_file, ""); + } + SURFXML_BUFFER_SET(host_core, cluster_core); SURFXML_BUFFER_SET(host_availability, "1.0"); SURFXML_BUFFER_SET(host_coordinates, ""); - - char* tmp_availability_file = xbt_strdup(availability_file); - char* tmp_state_file = xbt_strdup(state_file); - XBT_DEBUG("\tavailability_file=\"%s\"",xbt_str_varsubst(tmp_availability_file,patterns)); - XBT_DEBUG("\tstate_file=\"%s\"",xbt_str_varsubst(tmp_state_file,patterns)); - SURFXML_BUFFER_SET(host_availability_file, xbt_str_varsubst(tmp_availability_file,patterns)); - SURFXML_BUFFER_SET(host_state_file, xbt_str_varsubst(tmp_state_file,patterns)); - xbt_free(tmp_availability_file); - xbt_free(tmp_state_file); - XBT_DEBUG(""); SURFXML_START_TAG(host); SURFXML_END_TAG(host); + XBT_DEBUG(""); - XBT_DEBUG("", link_id,cluster_bw, cluster_lat); A_surfxml_link_state = A_surfxml_link_state_ON; A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_SHARED; if(cluster_sharing_policy == A_surfxml_cluster_sharing_policy_FULLDUPLEX) {A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_FULLDUPLEX;} if(cluster_sharing_policy == A_surfxml_cluster_sharing_policy_FATPIPE) {A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_FATPIPE;} + + XBT_DEBUG("", link_id,cluster_bw, cluster_lat); + SURFXML_BUFFER_SET(link_id, link_id); SURFXML_BUFFER_SET(link_bandwidth, cluster_bw); SURFXML_BUFFER_SET(link_latency, cluster_lat); @@ -1609,48 +1628,67 @@ void routing_parse_Scluster(void) xbt_dynar_get_as(radical_ends, 0, char *)); surf_parse_get_int(&end, xbt_dynar_get_as(radical_ends, 1, char *)); for (i = start; i <= end; i++) { - host_id = bprintf("%s%d%s", cluster_prefix, i, cluster_suffix); - link_id = bprintf("%s_link_%d", cluster_id, i); - - xbt_dict_set(patterns, "radical", bprintf("%d", i), xbt_free); - XBT_DEBUG("", host_id, cluster_power); - A_surfxml_host_state = A_surfxml_host_state_ON; - SURFXML_BUFFER_SET(host_id, host_id); - SURFXML_BUFFER_SET(host_power, cluster_power); - SURFXML_BUFFER_SET(host_core, cluster_core); - SURFXML_BUFFER_SET(host_availability, "1.0"); - SURFXML_BUFFER_SET(host_coordinates, ""); - - char* tmp_availability_file = xbt_strdup(availability_file); - char* tmp_state_file = xbt_strdup(state_file); - XBT_DEBUG("\tavailability_file=\"%s\"",xbt_str_varsubst(tmp_availability_file,patterns)); - XBT_DEBUG("\tstate_file=\"%s\"",xbt_str_varsubst(tmp_state_file,patterns)); - SURFXML_BUFFER_SET(host_availability_file, xbt_str_varsubst(tmp_availability_file,patterns)); - SURFXML_BUFFER_SET(host_state_file, xbt_str_varsubst(tmp_state_file,patterns)); - xbt_free(tmp_availability_file); - xbt_free(tmp_state_file); - XBT_DEBUG(""); - SURFXML_START_TAG(host); - SURFXML_END_TAG(host); - - XBT_DEBUG("", link_id,cluster_bw, cluster_lat); - A_surfxml_link_state = A_surfxml_link_state_ON; - A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_SHARED; - if(cluster_sharing_policy == A_surfxml_cluster_sharing_policy_FULLDUPLEX) - {A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_FULLDUPLEX;} - if(cluster_sharing_policy == A_surfxml_cluster_sharing_policy_FATPIPE) - {A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_FATPIPE;} - SURFXML_BUFFER_SET(link_id, link_id); - SURFXML_BUFFER_SET(link_bandwidth, cluster_bw); - SURFXML_BUFFER_SET(link_latency, cluster_lat); - SURFXML_BUFFER_SET(link_bandwidth_file, ""); - SURFXML_BUFFER_SET(link_latency_file, ""); - SURFXML_BUFFER_SET(link_state_file, ""); - SURFXML_START_TAG(link); - SURFXML_END_TAG(link); - - free(link_id); - free(host_id); + host_id = bprintf("%s%d%s", cluster_prefix, i, cluster_suffix); + link_id = bprintf("%s_link_%d", cluster_id, i); + xbt_dict_set(patterns, "radical", bprintf("%d", i), xbt_free); + A_surfxml_host_state = A_surfxml_host_state_ON; + + XBT_DEBUG("", host_id, cluster_power); + SURFXML_BUFFER_SET(host_id, host_id); + SURFXML_BUFFER_SET(host_power, cluster_power); + + if(!strcmp(A_surfxml_cluster_availability_file,"")){ + char* tmp_availability_file = xbt_strdup(availability_file); + xbt_str_varsubst(tmp_availability_file,patterns); + XBT_DEBUG("\tavailability_file=\"%s\"",tmp_availability_file); + SURFXML_BUFFER_SET(host_availability_file, tmp_availability_file); + xbt_free(tmp_availability_file); + } + else + { + XBT_DEBUG("\tavailability_file=\"\""); + SURFXML_BUFFER_SET(host_availability_file, ""); + } + if(!strcmp(A_surfxml_cluster_state_file,"")){ + char *tmp_state_file = xbt_strdup(state_file); + xbt_str_varsubst(tmp_state_file,patterns); + XBT_DEBUG("\tstate_file=\"%s\"",tmp_state_file); + SURFXML_BUFFER_SET(host_state_file, tmp_state_file); + xbt_free(tmp_state_file); + } + else + { + XBT_DEBUG("\tstate_file=\"\""); + SURFXML_BUFFER_SET(host_state_file, ""); + } + + SURFXML_BUFFER_SET(host_core, cluster_core); + SURFXML_BUFFER_SET(host_availability, "1.0"); + SURFXML_BUFFER_SET(host_coordinates, ""); + SURFXML_START_TAG(host); + SURFXML_END_TAG(host); + XBT_DEBUG(""); + + A_surfxml_link_state = A_surfxml_link_state_ON; + A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_SHARED; + if(cluster_sharing_policy == A_surfxml_cluster_sharing_policy_FULLDUPLEX) + {A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_FULLDUPLEX;} + if(cluster_sharing_policy == A_surfxml_cluster_sharing_policy_FATPIPE) + {A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_FATPIPE;} + + XBT_DEBUG("", link_id,cluster_bw, cluster_lat); + + SURFXML_BUFFER_SET(link_id, link_id); + SURFXML_BUFFER_SET(link_bandwidth, cluster_bw); + SURFXML_BUFFER_SET(link_latency, cluster_lat); + SURFXML_BUFFER_SET(link_bandwidth_file, ""); + SURFXML_BUFFER_SET(link_latency_file, ""); + SURFXML_BUFFER_SET(link_state_file, ""); + SURFXML_START_TAG(link); + SURFXML_END_TAG(link); + + free(link_id); + free(host_id); } break;