- "The routing component of src and dst is not the same as the network elements belong (%s==%s)",rc->name,dst_as->name);
-}
-
-static void routing_full_parse_Scluster(void)
-{
- static int AX_ptr = 0;
-
- char *cluster_id = A_surfxml_cluster_id;
- char *cluster_prefix = A_surfxml_cluster_prefix;
- char *cluster_suffix = A_surfxml_cluster_suffix;
- char *cluster_radical = A_surfxml_cluster_radical;
- char *cluster_power = A_surfxml_cluster_power;
- char *cluster_bw = A_surfxml_cluster_bw;
- char *cluster_lat = A_surfxml_cluster_lat;
- char *cluster_bb_bw = A_surfxml_cluster_bb_bw;
- char *cluster_bb_lat = A_surfxml_cluster_bb_lat;
- char *host_id, *groups, *link_id;
- char *router_id, *link_router, *link_backbone, *route_src_dst;
- unsigned int iter;
- int start, end, i;
- xbt_dynar_t radical_elements;
- xbt_dynar_t radical_ends;
- #ifndef HAVE_PCRE_LIB
- xbt_dynar_t tab_elements_num = xbt_dynar_new(sizeof(int), NULL);
- char *route_src,*route_dst;
- int j;
- #endif
-
- static unsigned int surfxml_buffer_stack_stack_ptr = 1;
- static unsigned int surfxml_buffer_stack_stack[1024];
-
- surfxml_buffer_stack_stack[0]= 0;
-
- surfxml_bufferstack_push(1);
-
- SURFXML_BUFFER_SET(AS_id, cluster_id);
-#ifdef HAVE_PCRE_LIB
- SURFXML_BUFFER_SET(AS_routing, "RuleBased");
- DEBUG1("<AS id=\"%s\"\trouting=\"RuleBased\">",cluster_id);
-#else
- SURFXML_BUFFER_SET(AS_routing, "Full");
- DEBUG1("<AS id=\"%s\"\trouting=\"Full\">",cluster_id);
-#endif
- SURFXML_START_TAG(AS);
-
- radical_elements = xbt_str_split(cluster_radical, ",");
- xbt_dynar_foreach(radical_elements, iter, groups)
- {
- radical_ends = xbt_str_split(groups, "-");
- switch (xbt_dynar_length(radical_ends))
- {
- case 1:
- surf_parse_get_int(&start, xbt_dynar_get_as(radical_ends, 0, char *));
- host_id = bprintf("%s_%d%s", cluster_prefix, start, cluster_suffix);
- #ifndef HAVE_PCRE_LIB
- xbt_dynar_push_as(tab_elements_num, int, start);
- #endif
- link_id = bprintf("%s_link_%d", cluster_id, start);
-
- DEBUG2("<host\tid=\"%s\"\tpower=\"%s\"/>",host_id,cluster_power);
- SURFXML_BUFFER_SET(host_id, host_id);
- SURFXML_BUFFER_SET(host_power, cluster_power);
- SURFXML_BUFFER_SET(host_availability, "1.0");
- SURFXML_BUFFER_SET(host_availability_file, "");
- A_surfxml_host_state = A_surfxml_host_state_ON;
- SURFXML_BUFFER_SET(host_state_file, "");
- SURFXML_BUFFER_SET(host_interference_send, "1.0");
- SURFXML_BUFFER_SET(host_interference_recv, "1.0");
- SURFXML_BUFFER_SET(host_interference_send_recv, "1.0");
- SURFXML_BUFFER_SET(host_max_outgoing_rate, "-1.0");
- SURFXML_START_TAG(host);
- SURFXML_END_TAG(host);
-
- DEBUG3("<link\tid=\"%s\"\tbw=\"%s\"\tlat=\"%s\"/>",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, "");
- A_surfxml_link_state = A_surfxml_link_state_ON;
- SURFXML_BUFFER_SET(link_state_file, "");
- A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_SHARED;
- SURFXML_START_TAG(link);
- SURFXML_END_TAG(link);
-
- break;
-
- case 2:
-
- surf_parse_get_int(&start, xbt_dynar_get_as(radical_ends, 0, char *));
- surf_parse_get_int(&end, xbt_dynar_get_as(radical_ends, 1, char *));
- DEBUG2("Create hosts and links from %d to %d",start,end);
- for (i = start; i <= end; i++)
- {
- host_id = bprintf("%s_%d%s", cluster_prefix, i, cluster_suffix);
- #ifndef HAVE_PCRE_LIB
- xbt_dynar_push_as(tab_elements_num, int, i);
- #endif
- link_id = bprintf("%s_link_%d", cluster_id, i);
-
- DEBUG2("<host\tid=\"%s\"\tpower=\"%s\"/>",host_id,cluster_power);
- SURFXML_BUFFER_SET(host_id, host_id);
- SURFXML_BUFFER_SET(host_power, cluster_power);
- SURFXML_BUFFER_SET(host_availability, "1.0");
- SURFXML_BUFFER_SET(host_availability_file, "");
- A_surfxml_host_state = A_surfxml_host_state_ON;
- SURFXML_BUFFER_SET(host_state_file, "");
- SURFXML_BUFFER_SET(host_interference_send, "1.0");
- SURFXML_BUFFER_SET(host_interference_recv, "1.0");
- SURFXML_BUFFER_SET(host_interference_send_recv, "1.0");
- SURFXML_BUFFER_SET(host_max_outgoing_rate, "-1.0");
- SURFXML_START_TAG(host);
- SURFXML_END_TAG(host);
-
- DEBUG3("<link\tid=\"%s\"\tbw=\"%s\"\tlat=\"%s\"/>",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, "");
- A_surfxml_link_state = A_surfxml_link_state_ON;
- SURFXML_BUFFER_SET(link_state_file, "");
- A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_SHARED;
- SURFXML_START_TAG(link);
- SURFXML_END_TAG(link);
- }
- break;