- sg_host_t host1, host2;
- xbt_dict_foreach(host_list, cursor_src, src, host1){ // Routes from host
- value1 = sg_host_by_name(src)->pimpl_netcard;
- xbt_dict_foreach(host_list, cursor_dst, dst, host2){ //to host
- std::vector<Link*> *route = new std::vector<Link*>();
- value2 = sg_host_by_name(dst)->pimpl_netcard;
- routing_platf->getRouteAndLatency(value1, value2, route,nullptr);
- if (! route->empty()){
- printf(" <route src=\"%s\" dst=\"%s\">\n ", src, dst);
- for (auto link: *route)
- printf("<link_ctn id=\"%s\"/>",link->getName());
- printf("\n </route>\n");
- }
- delete route;
- }
- xbt_lib_foreach(as_router_lib, cursor_dst, dst, value2){ //to router
- value2 = (sg_netcard_t)xbt_lib_get_or_null(as_router_lib,dst,ROUTING_ASR_LEVEL);
- if(value2->isRouter()){
- printf(" <route src=\"%s\" dst=\"%s\">\n ", src, dst);
- std::vector<Link*> *route = new std::vector<Link*>();
- routing_platf->getRouteAndLatency((sg_netcard_t)value1,(sg_netcard_t)value2,route,nullptr);
- for (auto link : *route)
- printf("<link_ctn id=\"%s\"/>",link->getName());
- delete route;
- printf("\n </route>\n");
- }
- }
- }