X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/e3066010f058830fd24ca6e1aae70909aea749ca..3072be2de56fbf379bb67604b4aef9701cc76244:/src/surf/surf_routing.c diff --git a/src/surf/surf_routing.c b/src/surf/surf_routing.c index f3c23703d0..f7bd97df6e 100644 --- a/src/surf/surf_routing.c +++ b/src/surf/surf_routing.c @@ -37,8 +37,8 @@ static xbt_dict_t random_value = NULL; /* Global vars */ routing_global_t global_routing = NULL; -routing_component_t current_routing = NULL; -model_type_t current_routing_model = NULL; +AS_t current_routing = NULL; +routing_model_description_t current_routing_model = NULL; /* global parse functions */ xbt_dynar_t link_list = NULL; /* temporary store of current list link of a route */ @@ -228,7 +228,7 @@ static void routing_parse_link_ctn(void) */ static void routing_parse_E_route(void) { - name_route_extended_t route = xbt_new0(s_name_route_extended_t, 1); + route_extended_t route = xbt_new0(s_route_extended_t, 1); route->generic_route.link_list = link_list; xbt_assert(current_routing->parse_route, "no defined method \"set_route\" in \"%s\"", @@ -244,7 +244,7 @@ static void routing_parse_E_route(void) */ static void routing_parse_E_ASroute(void) { - name_route_extended_t e_route = xbt_new0(s_name_route_extended_t, 1); + route_extended_t e_route = xbt_new0(s_route_extended_t, 1); e_route->generic_route.link_list = link_list; e_route->src_gateway = xbt_strdup(gw_src); e_route->dst_gateway = xbt_strdup(gw_dst); @@ -294,8 +294,8 @@ static void routing_parse_E_bypassRoute(void) */ void routing_AS_begin(const char *AS_id, const char *wanted_routing_type) { - routing_component_t new_routing; - model_type_t model = NULL; + AS_t new_routing; + routing_model_description_t model = NULL; int cpt; /* search the routing model */ @@ -313,7 +313,7 @@ void routing_AS_begin(const char *AS_id, const char *wanted_routing_type) } /* make a new routing component */ - new_routing = (routing_component_t) (*(model->create)) (); + new_routing = (AS_t) (*(model->create)) (); new_routing->routing = model; new_routing->hierarchy = SURF_ROUTING_NULL; new_routing->name = xbt_strdup(AS_id); @@ -382,24 +382,6 @@ void routing_AS_end() /* Aux Business methods */ -/** - * \brief Get the AS name of the element - * - * \param name the host name - * - */ -static char *elements_As_name(const char *name) -{ - routing_component_t as_comp; - - /* (1) find the as where the host is located */ - as_comp = ((network_element_info_t) - xbt_lib_get_or_null(host_lib, name, - ROUTING_HOST_LEVEL))->rc_component; - return as_comp->name; -} - - /** * \brief Get the AS father and the first elements of the chain * @@ -410,21 +392,21 @@ static char *elements_As_name(const char *name) * father in the chain */ static void elements_father(const char *src, const char *dst, - routing_component_t * res_father, - routing_component_t * res_src, - routing_component_t * res_dst) + AS_t * res_father, + AS_t * res_src, + AS_t * res_dst) { xbt_assert(src && dst, "bad parameters for \"elements_father\" method"); #define ELEMENTS_FATHER_MAXDEPTH 16 /* increase if it is not enough */ - routing_component_t src_as, dst_as; - routing_component_t path_src[ELEMENTS_FATHER_MAXDEPTH]; - routing_component_t path_dst[ELEMENTS_FATHER_MAXDEPTH]; + AS_t src_as, dst_as; + AS_t path_src[ELEMENTS_FATHER_MAXDEPTH]; + AS_t path_dst[ELEMENTS_FATHER_MAXDEPTH]; int index_src = 0; int index_dst = 0; - routing_component_t current; - routing_component_t current_src; - routing_component_t current_dst; - routing_component_t father; + AS_t current; + AS_t current_src; + AS_t current_dst; + AS_t father; /* (1) find the as where the src and dst are located */ network_element_info_t src_data = xbt_lib_get_or_null(host_lib, src, @@ -492,9 +474,9 @@ static void _get_route_latency(const char *src, const char *dst, XBT_DEBUG("Solve route/latency \"%s\" to \"%s\"", src, dst); xbt_assert(src && dst, "bad parameters for \"_get_route_latency\" method"); - routing_component_t common_father; - routing_component_t src_father; - routing_component_t dst_father; + AS_t common_father; + AS_t src_father; + AS_t dst_father; elements_father(src, dst, &common_father, &src_father, &dst_father); if (src_father == dst_father) { /* SURF_ROUTING_BASE */ @@ -695,12 +677,12 @@ static double get_latency(const char *src, const char *dst) * This fuction is call by "finalize". It allow to finalize the * AS or routing components. It delete all the structures. */ -static void _finalize(routing_component_t rc) +static void _finalize(AS_t rc) { if (rc) { xbt_dict_cursor_t cursor = NULL; char *key; - routing_component_t elem; + AS_t elem; xbt_dict_foreach(rc->routing_sons, cursor, key, elem) { _finalize(elem); } @@ -730,7 +712,7 @@ static void finalize(void) xbt_free(global_routing); } -static xbt_dynar_t recursive_get_onelink_routes(routing_component_t rc) +static xbt_dynar_t recursive_get_onelink_routes(AS_t rc) { xbt_dynar_t ret = xbt_dynar_new(sizeof(onelink_t), xbt_free); @@ -746,7 +728,7 @@ static xbt_dynar_t recursive_get_onelink_routes(routing_component_t rc) //recursing char *key; xbt_dict_cursor_t cursor = NULL; - routing_component_t rc_child; + AS_t rc_child; xbt_dict_foreach(rc->routing_sons, cursor, key, rc_child) { xbt_dynar_t onelink_child = recursive_get_onelink_routes(rc_child); if (onelink_child) { @@ -1061,30 +1043,6 @@ static void routing_parse_cluster(void) XBT_DEBUG(" "); } -/* - * This function take a string and replace parameters from patterns dict. - * It returns the new value. - */ -static char *replace_random_parameter(char *string) -{ - char *test_string = NULL; - - if (xbt_dict_size(random_value) == 0) - return string; - - string = xbt_str_varsubst(string, patterns); // for patterns of cluster - test_string = bprintf("${%s}", string); - test_string = xbt_str_varsubst(test_string, random_value); //Add ${xxxxx} for random Generator - - if (strcmp(test_string, "")) { //if not empty, keep this value. - xbt_free(string); - string = test_string; - } //In other case take old value (without ${}) - else - free(test_string); - return string; -} - static void routing_parse_postparse(void) { xbt_dict_free(&random_value);