X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/0213e3927d6ac21f3089d8a2d60f3603c8cbac43..8353ca761ac086a2dffa56a6b1c862f19b803879:/src/surf/network.c diff --git a/src/surf/network.c b/src/surf/network.c index e22c2b6d37..e6b74426b9 100644 --- a/src/surf/network.c +++ b/src/surf/network.c @@ -8,6 +8,8 @@ #include "xbt/log.h" #include "xbt/str.h" +#include "surf/surfxml_parse_values.h" + XBT_LOG_NEW_DEFAULT_SUBCATEGORY(surf_network, surf, "Logging specific to the SURF network module"); @@ -153,7 +155,7 @@ static double (*bandwidth_constraint_callback) (double, double, double) = &constant_bandwidth_constraint; -static link_CM02_t net_link_new(char *name, +static void* net_create_resource(char *name, double bw_initial, tmgr_trace_t bw_trace, double lat_initial, @@ -192,75 +194,26 @@ static link_CM02_t net_link_new(char *name, static void net_parse_link_init(void) { - char *name_link; - double bw_initial; - tmgr_trace_t bw_trace; - double lat_initial; - tmgr_trace_t lat_trace; - e_surf_resource_state_t state_initial_link = SURF_RESOURCE_ON; - e_surf_link_sharing_policy_t policy_initial_link = SURF_LINK_SHARED; - tmgr_trace_t state_trace; XBT_DEBUG("link_CM02"); - name_link = xbt_strdup(A_surfxml_link_id); - surf_parse_get_double(&bw_initial, A_surfxml_link_bandwidth); - bw_trace = tmgr_trace_new(A_surfxml_link_bandwidth_file); - surf_parse_get_double(&lat_initial, A_surfxml_link_latency); - lat_trace = tmgr_trace_new(A_surfxml_link_latency_file); - - xbt_assert((A_surfxml_link_state == A_surfxml_link_state_ON) - || (A_surfxml_link_state == - A_surfxml_link_state_OFF), "Invalid state"); - if (A_surfxml_link_state == A_surfxml_link_state_ON) - state_initial_link = SURF_RESOURCE_ON; - else if (A_surfxml_link_state == A_surfxml_link_state_OFF) - state_initial_link = SURF_RESOURCE_OFF; - - if (A_surfxml_link_sharing_policy == A_surfxml_link_sharing_policy_SHARED) - policy_initial_link = SURF_LINK_SHARED; - else - { - if (A_surfxml_link_sharing_policy == A_surfxml_link_sharing_policy_FATPIPE) - policy_initial_link = SURF_LINK_FATPIPE; - else if (A_surfxml_link_sharing_policy == A_surfxml_link_sharing_policy_FULLDUPLEX) - policy_initial_link = SURF_LINK_FULLDUPLEX; - } - state_trace = tmgr_trace_new(A_surfxml_link_state_file); - - if(policy_initial_link == SURF_LINK_FULLDUPLEX) + if(struct_lnk->V_policy_initial_link == SURF_LINK_FULLDUPLEX) { - net_link_new(bprintf("%s_UP",name_link), bw_initial, bw_trace, - lat_initial, lat_trace, state_initial_link, state_trace, - policy_initial_link, xbt_dict_new()); - net_link_new(bprintf("%s_DOWN",name_link), bw_initial, bw_trace, - lat_initial, lat_trace, state_initial_link, state_trace, - policy_initial_link, xbt_dict_new()); + net_create_resource(bprintf("%s_UP",struct_lnk->V_link_id), struct_lnk->V_link_bandwidth, struct_lnk->V_link_bandwidth_file, + struct_lnk->V_link_latency, struct_lnk->V_link_latency_file, struct_lnk->V_link_state, struct_lnk->V_link_state_file, + struct_lnk->V_policy_initial_link, xbt_dict_new()); + net_create_resource(bprintf("%s_DOWN",struct_lnk->V_link_id), struct_lnk->V_link_bandwidth, struct_lnk->V_link_bandwidth_file, + struct_lnk->V_link_latency, struct_lnk->V_link_latency_file, struct_lnk->V_link_state, struct_lnk->V_link_state_file, + struct_lnk->V_policy_initial_link, xbt_dict_new()); } else { - net_link_new(name_link, bw_initial, bw_trace, - lat_initial, lat_trace, state_initial_link, state_trace, - policy_initial_link, xbt_dict_new()); + net_create_resource(xbt_strdup(struct_lnk->V_link_id), struct_lnk->V_link_bandwidth, struct_lnk->V_link_bandwidth_file, + struct_lnk->V_link_latency, struct_lnk->V_link_latency_file, struct_lnk->V_link_state, struct_lnk->V_link_state_file, + struct_lnk->V_policy_initial_link, xbt_dict_new()); } } -static void net_create_resource(char *name, - double bw_initial, - tmgr_trace_t bw_trace, - double lat_initial, - tmgr_trace_t lat_trace, - e_surf_resource_state_t - state_initial, - tmgr_trace_t state_trace, - e_surf_link_sharing_policy_t policy, - xbt_dict_t properties) -{ - net_link_new(name, bw_initial, bw_trace, - lat_initial, lat_trace, state_initial, state_trace, - policy, xbt_dict_new()); -} - static void net_add_traces(void) { xbt_dict_cursor_t cursor = NULL; @@ -860,11 +813,11 @@ static void surf_network_model_init_internal(void) network_maxmin_system = lmm_system_new(); routing_model_create(sizeof(link_CM02_t), - net_link_new(xbt_strdup("__loopback__"), - 498000000, NULL, 0.000015, NULL, - SURF_RESOURCE_ON, NULL, - SURF_LINK_FATPIPE, NULL), - net_get_link_latency); + net_create_resource(xbt_strdup("__loopback__"), + 498000000, NULL, 0.000015, NULL, + SURF_RESOURCE_ON, NULL, + SURF_LINK_FATPIPE, NULL), + net_get_link_latency); }