-/* Cluster tag functions */
-
-static void parse_cluster(void)
-{
- static int AX_ptr = 0;
- static int surfxml_bufferstack_size = 2048;
-
- 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* saved_buff = surfxml_bufferstack;
-
- char * backbone_name;
-
- surfxml_bufferstack = xbt_new0(char, surfxml_bufferstack_size);
-
- /* Make set */
- SURFXML_BUFFER_SET(set_id, cluster_id);
- SURFXML_BUFFER_SET(set_prefix, cluster_prefix);
- SURFXML_BUFFER_SET(set_suffix, cluster_suffix);
- SURFXML_BUFFER_SET(set_radical, cluster_radical);
-
- SURFXML_START_TAG(set);
- SURFXML_END_TAG(set);
-
- /* Make foreach */
- SURFXML_BUFFER_SET(foreach_set_id, cluster_id);
-
- SURFXML_START_TAG(foreach);
-
- /* Make host for the foreach */
- parse_change_cpu_data("$1", cluster_power, "1.0", "", "");
- A_surfxml_host_state = A_surfxml_host_state_ON;
-
- SURFXML_START_TAG(host);
- SURFXML_END_TAG(host);
-
- /* Make link for the foreach */
- parse_change_link_data("$1", cluster_bw, "", cluster_lat, "", "");
- A_surfxml_link_state = A_surfxml_link_state_ON;
- A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_SHARED;
-
- SURFXML_START_TAG(link);
- SURFXML_END_TAG(link);
-
- SURFXML_END_TAG(foreach);
-
- /* Make backbone link */
- backbone_name = bprintf("%s_bb", cluster_id);
- parse_change_link_data(backbone_name, cluster_bb_bw, "", cluster_bb_lat, "", "");
- A_surfxml_link_state = A_surfxml_link_state_ON;
- A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_FATPIPE;
-
- SURFXML_START_TAG(link);
- SURFXML_END_TAG(link);
-
- /* Make route multi with the outside world, i.e. cluster->$* */
- SURFXML_BUFFER_SET(route_c_multi_src, cluster_id);
- SURFXML_BUFFER_SET(route_c_multi_dst, "$*");
- A_surfxml_route_c_multi_symmetric = A_surfxml_route_c_multi_symmetric_NO;
- A_surfxml_route_c_multi_action = A_surfxml_route_c_multi_action_OVERRIDE;
-
- SURFXML_START_TAG(route_c_multi);
-
- SURFXML_BUFFER_SET(link_c_ctn_id, "$src");
-
- SURFXML_START_TAG(link_c_ctn);
- SURFXML_END_TAG(link_c_ctn);
-
- SURFXML_END_TAG(route_c_multi);
-
- /* Make route multi between cluster hosts, i.e. cluster->cluster */
- SURFXML_BUFFER_SET(route_c_multi_src, cluster_id);
- SURFXML_BUFFER_SET(route_c_multi_dst, cluster_id);
- A_surfxml_route_c_multi_action = A_surfxml_route_c_multi_action_POSTPEND;
- A_surfxml_route_c_multi_symmetric = A_surfxml_route_c_multi_symmetric_NO;
-
- SURFXML_START_TAG(route_c_multi);
-
- SURFXML_BUFFER_SET(link_c_ctn_id, backbone_name);
-
- SURFXML_START_TAG(link_c_ctn);
- SURFXML_END_TAG(link_c_ctn);
-
- SURFXML_END_TAG(route_c_multi);
-
-
- /* Restore buff */
- free(surfxml_bufferstack);
- surfxml_bufferstack = saved_buff;
-}