- find_section(file, "ROUTE");
- while (1) {
- token = surf_parse();
-
- if (token == TOKEN_END_SECTION)
- break;
- if (token == TOKEN_NEWLINE)
- continue;
-
- if (token == TOKEN_WORD)
- parse_route(0);
- else {
- CRITICAL1("Parse error line %d\n", surf_line_pos);
- xbt_abort();
+ surf_parse_reset_parser();
+ STag_surfxml_route_fun=parse_route_set_endpoints;
+ ETag_surfxml_route_element_fun=parse_route_elem;
+ ETag_surfxml_route_fun=parse_route_set_route;
+ surf_parse_open(file);
+ xbt_assert1((!surf_parse()),"Parse error in %s",file);
+ surf_parse_close();
+
+ /* Adding loopback if needed */
+
+ for (i = 0; i < card_number; i++)
+ if(!ROUTE_SIZE(i,i)) {
+ if(!loopback)
+ loopback = network_link_new(xbt_strdup("__MSG_loopback__"),
+ 498.00, NULL, 0.000015, NULL,
+ SURF_NETWORK_LINK_ON, NULL,
+ SURF_NETWORK_LINK_FATPIPE);
+ ROUTE_SIZE(i,i)=1;
+ ROUTE(i,i) = xbt_new0(network_link_CM02_t, 1);
+ ROUTE(i,i)[0] = loopback;