+ SURFXML_START_TAG(AS);
+
+ DEBUG0(" ");
+ host_id = bprintf("peer_%s", peer_id);
+ router_id = bprintf("router_%s", peer_id);
+ link_id_up = bprintf("link_%s_up", peer_id);
+ link_id_down = bprintf("link_%s_down", peer_id);
+
+ link_router = bprintf("%s_link_router", peer_id);
+ link_backbone = bprintf("%s_backbone", peer_id);
+
+ DEBUG2("<host\tid=\"%s\"\tpower=\"%s\"/>", host_id, peer_power);
+ A_surfxml_host_state = A_surfxml_host_state_ON;
+ SURFXML_BUFFER_SET(host_id, host_id);
+ SURFXML_BUFFER_SET(host_power, peer_power);
+ SURFXML_BUFFER_SET(host_availability, "1.0");
+ SURFXML_BUFFER_SET(host_availability_file, peer_availability_file);
+ SURFXML_BUFFER_SET(host_state_file, peer_state_file);
+ SURFXML_START_TAG(host);
+ SURFXML_END_TAG(host);
+
+ DEBUG2("<router id=\"%s\"\tcoordinates=\"%s\"/>", router_id, peer_coord);
+ SURFXML_BUFFER_SET(router_id, router_id);
+ SURFXML_BUFFER_SET(router_coordinates, peer_coord);
+ SURFXML_START_TAG(router);
+ SURFXML_END_TAG(router);
+
+ DEBUG3("<link\tid=\"%s\"\tbw=\"%s\"\tlat=\"%s\"/>", link_id_up, peer_bw_in, peer_lat);
+ A_surfxml_link_state = A_surfxml_link_state_ON;
+ A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_SHARED;
+ if(peer_sharing_policy == A_surfxml_peer_sharing_policy_FULLDUPLEX)
+{A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_FULLDUPLEX;}
+ SURFXML_BUFFER_SET(link_id, link_id_up);
+ SURFXML_BUFFER_SET(link_bandwidth, peer_bw_in);
+ SURFXML_BUFFER_SET(link_latency, 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);
+
+ DEBUG3("<link\tid=\"%s\"\tbw=\"%s\"\tlat=\"%s\"/>", link_id_down, peer_bw_out, peer_lat);
+ A_surfxml_link_state = A_surfxml_link_state_ON;
+ A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_SHARED;
+ if(peer_sharing_policy == A_surfxml_cluster_sharing_policy_FULLDUPLEX)
+{A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_FULLDUPLEX;}
+ SURFXML_BUFFER_SET(link_id, link_id_down);
+ SURFXML_BUFFER_SET(link_bandwidth, peer_bw_out);
+ SURFXML_BUFFER_SET(link_latency, 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);
+
+ DEBUG0(" ");
+
+ // begin here
+ DEBUG2("<route\tsrc=\"%s\"\tdst=\"%s\"", peer_id, router_id);
+ DEBUG0("symmetrical=\"NO\">");
+ SURFXML_BUFFER_SET(route_src, peer_id);
+ SURFXML_BUFFER_SET(route_dst, router_id);
+ A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_NO;
+ SURFXML_START_TAG(route);
+
+ DEBUG1("<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;
+ if(peer_sharing_policy == A_surfxml_peer_sharing_policy_FULLDUPLEX)
+ {A_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_UP;}
+ SURFXML_START_TAG(link_ctn);
+ SURFXML_END_TAG(link_ctn);
+
+ DEBUG0("</route>");
+ SURFXML_END_TAG(route);
+
+ //Opposite Route
+ DEBUG2("<route\tsrc=\"%s\"\tdst=\"%s\"", router_id, peer_id);
+ DEBUG0("symmetrical=\"NO\">");
+ SURFXML_BUFFER_SET(route_src, router_id);
+ SURFXML_BUFFER_SET(route_dst, peer_id);
+ A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_NO;
+ SURFXML_START_TAG(route);
+
+ DEBUG1("<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;
+ if(peer_sharing_policy == A_surfxml_peer_sharing_policy_FULLDUPLEX)
+ {A_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_DOWN;}
+ SURFXML_START_TAG(link_ctn);
+ SURFXML_END_TAG(link_ctn);
+
+ DEBUG0("</route>");
+ SURFXML_END_TAG(route);