X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/6e7f2fe14eee0c4db1b815d0130dd8888886222c..9970cff0913d40427d9007333bfee5af3a4d2163:/src/surf/surf_routing.c diff --git a/src/surf/surf_routing.c b/src/surf/surf_routing.c index ccb2c3ae08..ca28b7a9eb 100644 --- a/src/surf/surf_routing.c +++ b/src/surf/surf_routing.c @@ -172,42 +172,18 @@ static void parse_S_host(const char *host_id, const char* coord) } } -static void parse_E_host(void) -{ - xbt_dict_cursor_t cursor = NULL; - char *key; - char *elem; - - xbt_dict_foreach(current_property_set, cursor, key, elem) { - XBT_DEBUG("property : %s = %s",key,elem); - } -} - /* * \brief Add a host to the network element list from XML */ -static void parse_S_host_XML(surf_parsing_host_arg_t h) +static void parse_S_host_XML(sg_platf_host_cbarg_t h) { parse_S_host(h->V_host_id, h->V_host_coord); } -static void parse_E_host_XML(void) -{ - parse_E_host(); -} - -/* - * \brief Add a host to the network element list from lua script - */ -static void parse_S_host_lua(const char *host_id, const char *coord) -{ - parse_S_host(host_id, coord); -} - /** * \brief Add a "router" to the network element list */ -static void parse_S_router(surf_parsing_router_arg_t router) +static void parse_S_router(sg_platf_router_cbarg_t router) { network_element_info_t info = NULL; if (current_routing->hierarchy == SURF_ROUTING_NULL) @@ -237,7 +213,7 @@ static void parse_S_router(surf_parsing_router_arg_t router) * brief Add a "router" to the network element list from XML description */ static void parse_S_router_lua(const char* router_id) { - s_surf_parsing_router_arg_t router; + s_sg_platf_router_cbarg_t router; memset(&router,0,sizeof(router)); router.V_router_id = router_id; router.V_router_coord = ""; @@ -960,9 +936,8 @@ void routing_model_create(size_t size_of_links, void *loopback, double_f_cpvoid_ current_routing = NULL; /* parse generic elements */ - surf_parse_host_add_cb(parse_S_host_XML); - surfxml_add_callback(ETag_surfxml_host_cb_list, &parse_E_host_XML); - surf_parse_router_add_cb(parse_S_router); + sg_platf_host_add_cb(parse_S_host_XML); + sg_platf_router_add_cb(parse_S_router); surfxml_add_callback(STag_surfxml_route_cb_list, &parse_S_route_new_and_endpoints_XML); @@ -1462,103 +1437,6 @@ void generic_src_dst_check(routing_component_t rc, const char *src, src,dst,src_as->name, dst_as->name,rc->name); } - -static void parse_create_host_link(int i) -{ - char *host_id, *link_id = NULL; - s_surf_parsing_host_arg_t host; - memset(&host,0,sizeof(host)); - - host_id = bprintf("%s%d%s", struct_cluster->V_cluster_prefix, i, struct_cluster->V_cluster_suffix); - link_id = bprintf("%s_link_%d", struct_cluster->V_cluster_id, i); - - A_surfxml_host_state = A_surfxml_host_state_ON; - - XBT_DEBUG("", host_id, struct_cluster->S_cluster_power); - host.V_host_id = xbt_strdup(host_id); - if(strcmp(struct_cluster->V_cluster_availability_file,"")){ - xbt_dict_set(patterns, "radical", bprintf("%d", i), xbt_free); - char* tmp_availability_file = xbt_strdup(struct_cluster->V_cluster_availability_file); - xbt_str_varsubst(tmp_availability_file,patterns); - XBT_DEBUG("\tavailability_file=\"%s\"",tmp_availability_file); - host.V_host_power_trace = tmgr_trace_new(tmp_availability_file); - xbt_free(tmp_availability_file); - } - else - { - XBT_DEBUG("\tavailability_file=\"\""); - } - if(strcmp(struct_cluster->V_cluster_state_file,"")){ - char *tmp_state_file = xbt_strdup(struct_cluster->V_cluster_state_file); - xbt_str_varsubst(tmp_state_file,patterns); - XBT_DEBUG("\tstate_file=\"%s\"",tmp_state_file); - host.V_host_state_trace = tmgr_trace_new(tmp_state_file); - xbt_free(tmp_state_file); - } - else - { - XBT_DEBUG("\tstate_file=\"\""); - } - - host.V_host_power_peak = struct_cluster->S_cluster_power; - host.V_host_power_scale = 1.0; - host.V_host_core = struct_cluster->S_cluster_core; - host.V_host_state_initial = SURF_RESOURCE_ON; - host.V_host_coord = ""; - sg_platf_new_host(&host); - XBT_DEBUG(""); - - A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_SHARED; - if(AX_surfxml_cluster_sharing_policy == A_surfxml_cluster_sharing_policy_FULLDUPLEX) - {A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_FULLDUPLEX;} - if(AX_surfxml_cluster_sharing_policy == A_surfxml_cluster_sharing_policy_FATPIPE) - {A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_FATPIPE;} - - XBT_DEBUG("", link_id,struct_cluster->S_cluster_bw, struct_cluster->S_cluster_lat); - - struct_lnk = xbt_new0(s_surf_parsing_link_arg_t, 1); - struct_lnk->V_link_id = xbt_strdup(link_id); - struct_lnk->V_link_bandwidth = struct_cluster->S_cluster_bw; - struct_lnk->V_link_latency = struct_cluster->S_cluster_lat; - struct_lnk->V_link_bandwidth_file = NULL; - struct_lnk->V_link_latency_file = NULL; - struct_lnk->V_link_state_file = NULL; - struct_lnk->V_link_state = SURF_RESOURCE_ON; - struct_lnk->V_link_sharing_policy = A_surfxml_link_sharing_policy; - - if (A_surfxml_link_sharing_policy == A_surfxml_link_sharing_policy_SHARED) - struct_lnk->V_policy_initial_link = SURF_LINK_SHARED; - else - { - if (A_surfxml_link_sharing_policy == A_surfxml_link_sharing_policy_FATPIPE) - struct_lnk->V_policy_initial_link = SURF_LINK_FATPIPE; - else if (A_surfxml_link_sharing_policy == A_surfxml_link_sharing_policy_FULLDUPLEX) - struct_lnk->V_policy_initial_link = SURF_LINK_FULLDUPLEX; - } - surf_parse_link(); - - ETag_surfxml_host(); - ETag_surfxml_link(); - - surf_parsing_link_up_down_t info = xbt_new0(s_surf_parsing_link_up_down_t, 1); - - if (A_surfxml_link_sharing_policy == A_surfxml_link_sharing_policy_FULLDUPLEX){ - char* tmp_link = bprintf("%s_UP",link_id); - info->link_up = xbt_lib_get_or_null(link_lib, tmp_link, SURF_LINK_LEVEL); - 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); - 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_dict_set(cluster_host_link,host_id,info,xbt_free); - xbt_free(link_id); - xbt_free(host_id); -} - void routing_parse_Scluster(void) { if(!cluster_host_link) @@ -1567,7 +1445,7 @@ void routing_parse_Scluster(void) static int AX_ptr = 0; char *host_id, *groups, *link_id = NULL; - s_surf_parsing_host_arg_t host; + s_sg_platf_host_cbarg_t host; if( strcmp(struct_cluster->V_cluster_availability_file,"") || strcmp(struct_cluster->V_cluster_state_file,"") ) @@ -1670,11 +1548,25 @@ void routing_parse_Scluster(void) } surf_parse_link(); - xbt_dict_set(cluster_host_link,host_id,strdup(link_id),free); -// XBT_INFO("key '%s' Value '%s'",host_id,link_id); - ETag_surfxml_host(); ETag_surfxml_link(); + surf_parsing_link_up_down_t info = xbt_new0(s_surf_parsing_link_up_down_t, 1); + if (A_surfxml_link_sharing_policy == A_surfxml_link_sharing_policy_FULLDUPLEX){ + char* tmp_link = bprintf("%s_UP",link_id); + info->link_up = xbt_lib_get_or_null(link_lib, tmp_link, SURF_LINK_LEVEL); + 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); + 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_dict_set(cluster_host_link,host_id,info,xbt_free); + xbt_free(link_id); + xbt_free(host_id); + break; case 2: @@ -1750,12 +1642,25 @@ void routing_parse_Scluster(void) } surf_parse_link(); - xbt_dict_set(cluster_host_link,host_id,strdup(link_id),free); -// XBT_INFO("key '%s' Value '%s'",host_id,link_id); - - ETag_surfxml_host(); ETag_surfxml_link(); + surf_parsing_link_up_down_t info = xbt_new0(s_surf_parsing_link_up_down_t, 1); + if (A_surfxml_link_sharing_policy == A_surfxml_link_sharing_policy_FULLDUPLEX){ + char* tmp_link = bprintf("%s_UP",link_id); + info->link_up = xbt_lib_get_or_null(link_lib, tmp_link, SURF_LINK_LEVEL); + 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); + 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_dict_set(cluster_host_link,host_id,info,xbt_free); + xbt_free(link_id); + xbt_free(host_id); + } break; @@ -1786,7 +1691,7 @@ void routing_parse_Scluster(void) {A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_FATPIPE;} struct_lnk = xbt_new0(s_surf_parsing_link_arg_t, 1); - struct_lnk->V_link_id = xbt_strdup(link_backbone); + struct_lnk->V_link_id = link_backbone; struct_lnk->V_link_bandwidth = struct_cluster->S_cluster_bb_bw; struct_lnk->V_link_latency = struct_cluster->S_cluster_bb_lat; struct_lnk->V_link_bandwidth_file = NULL; @@ -2117,7 +2022,7 @@ static void routing_parse_Erandom(void) void routing_add_host(const char *host_id) { - parse_S_host_lua((char *) host_id, (char*)""); // FIXME propagate coordinate system to lua + parse_S_host(host_id, ""); // FIXME propagate coordinate system to lua } /*