/*
* \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);
}
/**
* \brief Add a "router" to the network element list
*/
-static void parse_S_router(void)
+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,struct_router->V_router_id, ROUTING_ASR_LEVEL),
+ xbt_assert(!xbt_lib_get_or_null(as_router_lib,router->V_router_id, ROUTING_ASR_LEVEL),
"Reading a router, processing unit \"%s\" already exists",
- struct_router->V_router_id);
+ router->V_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,
- struct_router->V_router_id);
+ router->V_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,struct_router->V_router_id,ROUTING_ASR_LEVEL,(void *) info);
+ xbt_lib_set(as_router_lib,router->V_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,struct_router->V_router_id,COORD_ASR_LEVEL,(void *) ctn);
+ xbt_lib_set(as_router_lib,router->V_router_id,COORD_ASR_LEVEL,(void *) ctn);
}
}
/**
* brief Add a "router" to the network element list from XML description
*/
-static void parse_S_router_XML(void)
-{
- return parse_S_router();
-}
-
-/**
- * brief Add a "router" to the network element list from XML description
- */
-static void parse_S_router_lua(const char* router_id)
-{
- struct_router->V_router_id = xbt_strdup(router_id);
- struct_router->V_router_coord = xbt_strdup("");
- return parse_S_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 = "";
+ return parse_S_router(&router);
}
/**
current_routing = NULL;
/* parse generic elements */
- surf_parse_host_add_cb(parse_S_host_XML);
+ sg_platf_host_add_cb(parse_S_host_XML);
surfxml_add_callback(ETag_surfxml_host_cb_list, &parse_E_host_XML);
- surfxml_add_callback(STag_surfxml_router_cb_list, &parse_S_router_XML);
+ sg_platf_router_add_cb(parse_S_router);
surfxml_add_callback(STag_surfxml_route_cb_list,
&parse_S_route_new_and_endpoints_XML);
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\tid=\"%s\"\tpower=\"%f\">", 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 = "";
- surf_parse_host(&host);
- XBT_DEBUG("</host>");
-
- 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\tid=\"%s\"\tbw=\"%f\"\tlat=\"%f\"/>", 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)
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,"") )
host.V_host_core = struct_cluster->S_cluster_core;
host.V_host_state_initial = SURF_RESOURCE_ON;
host.V_host_coord = "";
- surf_parse_host(&host);
+ sg_platf_new_host(&host);
XBT_DEBUG("</host>");
A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_SHARED;
host.V_host_core = struct_cluster->S_cluster_core;
host.V_host_state_initial = SURF_RESOURCE_ON;
host.V_host_coord = "";
- surf_parse_host(&host);
+ sg_platf_new_host(&host);
XBT_DEBUG("</host>");
A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_SHARED;