-/*
- *
- */
-static void routing_model_dijkstraboth_create(size_t size_of_link,void *loopback, int cached) {
- /* initialize our structure */
- routing_dijkstra_t routing = xbt_new0(s_routing_dijkstra_t,1);
- routing->generic_routing.name = "Dijkstra";
- routing->generic_routing.host_count = 0;
- routing->generic_routing.get_route = routing_dijkstra_get_route;
- routing->generic_routing.get_onelink_routes = routing_dijkstraboth_get_onelink_routes;
- routing->generic_routing.is_router = routing_dijkstraboth_is_router;
- routing->generic_routing.finalize = routing_dijkstra_finalize;
- routing->size_of_link = size_of_link;
- routing->loopback = loopback;
- routing->cached = cached;
-
- /* Set it in position */
- used_routing = (routing_t) routing;
-
- /* Setup the parsing callbacks we need */
- routing->generic_routing.host_id = xbt_dict_new();
- surfxml_add_callback(STag_surfxml_host_cb_list, &routing_full_parse_Shost);
- surfxml_add_callback(ETag_surfxml_platform_cb_list, &routing_dijkstra_parse_end);
- surfxml_add_callback(STag_surfxml_route_cb_list,
- &routing_full_parse_Sroute_set_endpoints);
- surfxml_add_callback(ETag_surfxml_route_cb_list, &routing_full_parse_Eroute);
- surfxml_add_callback(STag_surfxml_cluster_cb_list, &routing_shortest_path_parse_Scluster);
+ SURFXML_BUFFER_SET(AS_id, struct_peer->V_peer_id);
+
+ SURFXML_BUFFER_SET(AS_routing, "Full");
+ XBT_DEBUG("<AS id=\"%s\"\trouting=\"Full\">", struct_peer->V_peer_id);
+
+ SURFXML_START_TAG(AS);
+
+ XBT_DEBUG(" ");
+ host_id = bprintf("peer_%s", struct_peer->V_peer_id);
+ router_id = bprintf("router_%s", struct_peer->V_peer_id);
+ link_id_up = bprintf("link_%s_up", struct_peer->V_peer_id);
+ link_id_down = bprintf("link_%s_down", struct_peer->V_peer_id);
+
+ link_router = bprintf("%s_link_router", struct_peer->V_peer_id);
+ link_backbone = bprintf("%s_backbone", struct_peer->V_peer_id);
+
+ XBT_DEBUG("<host\tid=\"%s\"\tpower=\"%s\"/>", host_id, struct_peer->V_peer_power);
+ A_surfxml_host_state = A_surfxml_host_state_ON;
+ SURFXML_BUFFER_SET(host_id, host_id);
+ SURFXML_BUFFER_SET(host_power, struct_peer->V_peer_power);
+ SURFXML_BUFFER_SET(host_availability, "1.0");
+ SURFXML_BUFFER_SET(host_availability_file, struct_peer->V_peer_availability_trace);
+ SURFXML_BUFFER_SET(host_state_file, struct_peer->V_peer_state_trace);
+ SURFXML_BUFFER_SET(host_coordinates, "");
+ SURFXML_BUFFER_SET(host_core, "1.0");
+ SURFXML_START_TAG(host);
+ SURFXML_END_TAG(host);
+
+ XBT_DEBUG("<router id=\"%s\"\tcoordinates=\"%s\"/>", router_id, struct_peer->V_peer_coord);
+ SURFXML_BUFFER_SET(router_id, router_id);
+ SURFXML_BUFFER_SET(router_coordinates, struct_peer->V_peer_coord);
+ SURFXML_START_TAG(router);
+ SURFXML_END_TAG(router);
+
+ XBT_DEBUG("<link\tid=\"%s\"\tbw=\"%s\"\tlat=\"%s\"/>", link_id_up, struct_peer->V_peer_bw_in, struct_peer->V_peer_lat);
+ A_surfxml_link_state = A_surfxml_link_state_ON;
+ A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_SHARED;
+ SURFXML_BUFFER_SET(link_id, link_id_up);
+ SURFXML_BUFFER_SET(link_bandwidth, struct_peer->V_peer_bw_in);
+ SURFXML_BUFFER_SET(link_latency, struct_peer->V_peer_lat);
+ SURFXML_BUFFER_SET(link_bandwidth_file, "");
+ SURFXML_BUFFER_SET(link_latency_file, "");
+ SURFXML_BUFFER_SET(link_state_file, "");
+ SURFXML_START_TAG(link);
+ SURFXML_END_TAG(link);
+
+ XBT_DEBUG("<link\tid=\"%s\"\tbw=\"%s\"\tlat=\"%s\"/>", link_id_down, struct_peer->V_peer_bw_out, struct_peer->V_peer_lat);
+ A_surfxml_link_state = A_surfxml_link_state_ON;
+ A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_SHARED;
+ SURFXML_BUFFER_SET(link_id, link_id_down);
+ SURFXML_BUFFER_SET(link_bandwidth, struct_peer->V_peer_bw_out);
+ SURFXML_BUFFER_SET(link_latency, struct_peer->V_peer_lat);
+ SURFXML_BUFFER_SET(link_bandwidth_file, "");
+ SURFXML_BUFFER_SET(link_latency_file, "");
+ SURFXML_BUFFER_SET(link_state_file, "");
+ SURFXML_START_TAG(link);
+ SURFXML_END_TAG(link);
+
+ XBT_DEBUG(" ");
+
+ // begin here
+ XBT_DEBUG("<route\tsrc=\"%s\"\tdst=\"%s\"", host_id, router_id);
+ XBT_DEBUG("symmetrical=\"NO\">");
+ SURFXML_BUFFER_SET(route_src, host_id);
+ SURFXML_BUFFER_SET(route_dst, router_id);
+ A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_NO;
+ SURFXML_START_TAG(route);
+
+ XBT_DEBUG("<link_ctn\tid=\"%s\"/>", link_id_up);
+ SURFXML_BUFFER_SET(link_ctn_id, link_id_up);
+ A_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_NONE;
+ SURFXML_START_TAG(link_ctn);
+ SURFXML_END_TAG(link_ctn);
+
+ XBT_DEBUG("</route>");
+ SURFXML_END_TAG(route);
+
+ //Opposite Route
+ XBT_DEBUG("<route\tsrc=\"%s\"\tdst=\"%s\"", router_id, host_id);
+ XBT_DEBUG("symmetrical=\"NO\">");
+ SURFXML_BUFFER_SET(route_src, router_id);
+ SURFXML_BUFFER_SET(route_dst, host_id);
+ A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_NO;
+ SURFXML_START_TAG(route);
+
+ XBT_DEBUG("<link_ctn\tid=\"%s\"/>", link_id_down);
+ SURFXML_BUFFER_SET(link_ctn_id, link_id_down);
+ A_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_NONE;
+ SURFXML_START_TAG(link_ctn);
+ SURFXML_END_TAG(link_ctn);
+
+ XBT_DEBUG("</route>");
+ SURFXML_END_TAG(route);
+
+ XBT_DEBUG("</AS>");
+ SURFXML_END_TAG(AS);
+ XBT_DEBUG(" ");
+
+ //xbt_dynar_free(&tab_elements_num);
+ free(host_id);
+ free(router_id);
+ free(link_router);
+ free(link_backbone);
+ free(link_id_up);
+ free(link_id_down);
+ surfxml_bufferstack_pop(1);