X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/66f9d7f18e9a5f08bbcc381381283895ab6a0a89..d9e664e60bd7fab62db0f1d838efd1d7bfd4d367:/src/surf/surf_routing_vivaldi.c diff --git a/src/surf/surf_routing_vivaldi.c b/src/surf/surf_routing_vivaldi.c index 2079a80a2b..936a84736c 100644 --- a/src/surf/surf_routing_vivaldi.c +++ b/src/surf/surf_routing_vivaldi.c @@ -27,8 +27,14 @@ static void vivaldi_get_route_and_latency( char *dst = (char*)dst_p->name; if(src_p->rc_type == SURF_NETWORK_ELEMENT_AS) { - route->gw_src = xbt_lib_get_or_null(as_router_lib,ROUTER_PEER(src),ROUTING_ASR_LEVEL); - route->gw_dst = xbt_lib_get_or_null(as_router_lib,ROUTER_PEER(dst),ROUTING_ASR_LEVEL); + char *rp_src = ROUTER_PEER(src); + char *rp_dst = ROUTER_PEER(dst); + route->gw_src = xbt_lib_get_or_null(as_router_lib, rp_src, + ROUTING_ASR_LEVEL); + route->gw_dst = xbt_lib_get_or_null(as_router_lib, rp_dst, + ROUTING_ASR_LEVEL); + xbt_free(rp_src); + xbt_free(rp_dst); } double euclidean_dist; @@ -102,8 +108,10 @@ static int vivaldi_parse_PU(AS_t rc, sg_routing_edge_t elm) { /* Creation routing model functions */ AS_t model_vivaldi_create(void) { - AS_t new_component = model_rulebased_create(); + AS_t new_component = model_generic_create_sized(sizeof *new_component); + new_component->get_route_and_latency = vivaldi_get_route_and_latency; new_component->parse_PU = vivaldi_parse_PU; + new_component->get_graph = generic_get_graph; return new_component; }