- if (TRACE_onelink_only()){
- if (xbt_dynar_length (route) > 1) continue;
- }
- container_t previous = child1;
- int i;
- for (i = 0; i < xbt_dynar_length(route); i++){
- link_CM02_t *link = ((link_CM02_t*)xbt_dynar_get_ptr (route, i));
- char *link_name = (*link)->lmm_resource.generic_resource.name;
- container_t current = getContainerByName(link_name);
- linkContainers(container, previous, current, filter);
- previous = current;
- }
- linkContainers(container, previous, child2, filter);
-
- }else if (child1->kind == INSTR_AS &&
- child2->kind == INSTR_AS &&
- strcmp(child1_name, child2_name) != 0){
-
- route_t route = xbt_new0(s_route_t,1);
- route->link_list = xbt_dynar_new(global_routing->size_of_link,NULL);
- rc->get_route_and_latency (rc, child1_name, child2_name, route,NULL);
- unsigned int cpt;
- void *link;
- container_t previous = getContainerByName(route->src_gateway);
- xbt_dynar_foreach (route->link_list, cpt, link) {
- char *link_name = ((link_CM02_t)link)->lmm_resource.generic_resource.name;
- container_t current = getContainerByName(link_name);
- linkContainers (container, previous, current, filter);
- previous = current;
- }
- container_t last = getContainerByName(route->dst_gateway);
- linkContainers (container, previous, last, filter);
- generic_free_route(route);
+ xbt_dynar_foreach (route->link_list, cpt, link) {
+ //FIXME (TODO): Should have a cleaner way to get the link name
+ char *link_name = ((link_CM02_t)link)->lmm_resource.generic_resource.name;
+ current = PJ_container_get(link_name);
+ linkContainers(previous, current, filter);
+ previous = current;
+ }
+ if (route->gw_dst){
+ current = PJ_container_get(route->gw_dst->name);
+ }else{
+ current = child2;