X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/bd2cf2d478d8e130e47a9b2943af0269b8da910a..04c10dad7fa6089786021b0f8b4413f86bafd6fd:/src/surf/surf_routing.c diff --git a/src/surf/surf_routing.c b/src/surf/surf_routing.c index f354e0596b..24f8467e32 100644 --- a/src/surf/surf_routing.c +++ b/src/surf/surf_routing.c @@ -101,38 +101,29 @@ struct s_model_type routing_models[] = { {"Full", /** * \brief Add a "host" to the network element list */ -static void parse_S_host(const char *host_id, const char* coord) -{ +static void parse_S_host(sg_platf_host_cbarg_t host) { network_element_info_t info = NULL; if (current_routing->hierarchy == SURF_ROUTING_NULL) current_routing->hierarchy = SURF_ROUTING_BASE; - xbt_assert(!xbt_lib_get_or_null(host_lib, host_id,ROUTING_HOST_LEVEL), + xbt_assert(!xbt_lib_get_or_null(host_lib, host->id,ROUTING_HOST_LEVEL), "Reading a host, processing unit \"%s\" already exists", - host_id); + host->id); xbt_assert(current_routing->set_processing_unit, "no defined method \"set_processing_unit\" in \"%s\"", current_routing->name); - (*(current_routing->set_processing_unit)) (current_routing, host_id); + (*(current_routing->set_processing_unit)) (current_routing, host->id); info = xbt_new0(s_network_element_info_t, 1); info->rc_component = current_routing; info->rc_type = SURF_NETWORK_ELEMENT_HOST; - xbt_lib_set(host_lib,host_id,ROUTING_HOST_LEVEL,(void *) info); - if (strcmp(coord,"")) { - if(!COORD_HOST_LEVEL) xbt_die("To use coordinates, you must set configuration 'coordinates' to 'yes'"); - xbt_dynar_t ctn = xbt_str_split_str(coord, " "); + xbt_lib_set(host_lib,host->id,ROUTING_HOST_LEVEL,(void *) info); + if (host->coord && strcmp(host->coord,"")) { + if(!COORD_HOST_LEVEL) xbt_die("To use coordinates, you must set configuration 'coordinates' to 'yes'"); + xbt_dynar_t ctn = xbt_str_split_str(host->coord, " "); xbt_dynar_shrink(ctn, 0); - xbt_lib_set(host_lib,host_id,COORD_HOST_LEVEL,(void *) ctn); + xbt_lib_set(host_lib,host->id,COORD_HOST_LEVEL,(void *) ctn); } } -/* - * \brief Add a host to the network element list from XML - */ -static void parse_S_host_XML(sg_platf_host_cbarg_t h) -{ - parse_S_host(h->V_host_id, h->V_host_coord); -} - /** * \brief Add a "router" to the network element list */ @@ -141,24 +132,23 @@ static void parse_S_router(sg_platf_router_cbarg_t router) network_element_info_t info = NULL; if (current_routing->hierarchy == SURF_ROUTING_NULL) current_routing->hierarchy = SURF_ROUTING_BASE; - xbt_assert(!xbt_lib_get_or_null(as_router_lib,router->V_router_id, ROUTING_ASR_LEVEL), + xbt_assert(!xbt_lib_get_or_null(as_router_lib,router->id, ROUTING_ASR_LEVEL), "Reading a router, processing unit \"%s\" already exists", - router->V_router_id); + router->id); xbt_assert(current_routing->set_processing_unit, "no defined method \"set_processing_unit\" in \"%s\"", current_routing->name); - (*(current_routing->set_processing_unit)) (current_routing, - router->V_router_id); + (*(current_routing->set_processing_unit)) (current_routing, router->id); info = xbt_new0(s_network_element_info_t, 1); info->rc_component = current_routing; info->rc_type = SURF_NETWORK_ELEMENT_ROUTER; - xbt_lib_set(as_router_lib,router->V_router_id,ROUTING_ASR_LEVEL,(void *) info); + xbt_lib_set(as_router_lib,router->id,ROUTING_ASR_LEVEL,(void *) info); if (strcmp(A_surfxml_router_coordinates,"")) { if(!COORD_ASR_LEVEL) xbt_die("To use coordinates, you must set configuration 'coordinates' to 'yes'"); xbt_dynar_t ctn = xbt_str_split_str(A_surfxml_router_coordinates, " "); xbt_dynar_shrink(ctn, 0); - xbt_lib_set(as_router_lib,router->V_router_id,COORD_ASR_LEVEL,(void *) ctn); + xbt_lib_set(as_router_lib,router->id,COORD_ASR_LEVEL,(void *) ctn); } } @@ -168,8 +158,8 @@ static void parse_S_router(sg_platf_router_cbarg_t router) static void parse_S_router_lua(const char* router_id) { s_sg_platf_router_cbarg_t router; memset(&router,0,sizeof(router)); - router.V_router_id = router_id; - router.V_router_coord = ""; + router.id = router_id; + router.coord = ""; return parse_S_router(&router); } @@ -884,7 +874,7 @@ void routing_model_create(size_t size_of_links, void *loopback, double_f_cpvoid_ current_routing = NULL; /* parse generic elements */ - sg_platf_host_add_cb(parse_S_host_XML); + sg_platf_host_add_cb(parse_S_host); sg_platf_router_add_cb(parse_S_router); surfxml_add_callback(STag_surfxml_route_cb_list, @@ -1434,13 +1424,13 @@ void routing_parse_Scluster(void) link_id = bprintf("%s_link_%d", struct_cluster->V_cluster_id, start); XBT_DEBUG("", host_id, struct_cluster->S_cluster_power); - host.V_host_id = host_id; + host.id = host_id; if(strcmp(struct_cluster->V_cluster_availability_file,"")){ xbt_dict_set(patterns, "radical", bprintf("%d", start), 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); + host.power_trace = tmgr_trace_new(tmp_availability_file); xbt_free(tmp_availability_file); } else @@ -1451,7 +1441,7 @@ void routing_parse_Scluster(void) 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); + host.state_trace = tmgr_trace_new(tmp_state_file); xbt_free(tmp_state_file); } else @@ -1459,11 +1449,11 @@ void routing_parse_Scluster(void) 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 = ""; + host.power_peak = struct_cluster->S_cluster_power; + host.power_scale = 1.0; + host.core_amount = struct_cluster->S_cluster_core; + host.initial_state = SURF_RESOURCE_ON; + host.coord = ""; sg_platf_new_host(&host); XBT_DEBUG(""); @@ -1532,13 +1522,13 @@ void routing_parse_Scluster(void) A_surfxml_host_state = A_surfxml_host_state_ON; XBT_DEBUG("", host_id, struct_cluster->S_cluster_power); - host.V_host_id = host_id; + host.id = 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); + host.power_trace = tmgr_trace_new(tmp_availability_file); xbt_free(tmp_availability_file); } else @@ -1549,7 +1539,7 @@ void routing_parse_Scluster(void) 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); + host.state_trace = tmgr_trace_new(tmp_state_file); xbt_free(tmp_state_file); } else @@ -1557,11 +1547,11 @@ void routing_parse_Scluster(void) 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 = ""; + host.power_peak = struct_cluster->S_cluster_power; + host.power_scale = 1.0; + host.core_amount = struct_cluster->S_cluster_core; + host.initial_state = SURF_RESOURCE_ON; + host.coord = ""; sg_platf_new_host(&host); XBT_DEBUG(""); @@ -1951,19 +1941,6 @@ static void routing_parse_Srandom(void) } } -/* - * New methods to init the routing model component from the lua script - */ - - -/* - * add a host to the network element list - */ - -void routing_add_host(const char *host_id) -{ - parse_S_host(host_id, ""); // FIXME propagate coordinate system to lua -} /* * Set a new link on the actual list of link for a route or ASroute