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
}
/*