X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/7a8cd62135619ad52e05ae1c929ef07e166e4260..c128702f75d1981c4a082ae6e4630f614074ab6e:/src/surf/surf_routing_vivaldi.c diff --git a/src/surf/surf_routing_vivaldi.c b/src/surf/surf_routing_vivaldi.c index 2079a80a2b..2a925fc050 100644 --- a/src/surf/surf_routing_vivaldi.c +++ b/src/surf/surf_routing_vivaldi.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2009, 2010, 2011. The SimGrid Team. +/* Copyright (c) 2009-2013. The SimGrid Team. * All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it @@ -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; }