Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge with master
authorJonathan Rouzaud-Cornabas <jonathan.rouzaud-cornabas@ens-lyon.fr>
Wed, 16 Jan 2013 17:00:42 +0000 (18:00 +0100)
committerJonathan Rouzaud-Cornabas <jonathan.rouzaud-cornabas@ens-lyon.fr>
Wed, 16 Jan 2013 17:00:42 +0000 (18:00 +0100)
12 files changed:
1  2 
buildtools/Cmake/CompleteInFiles.cmake
buildtools/Cmake/DefinePackages.cmake
include/msg/msg.h
include/surf/simgrid_dtd.h
include/xbt/graphxml.h
src/instr/instr_config.c
src/instr/instr_paje_containers.c
src/instr/instr_private.h
src/msg/msg_private.h
src/surf/instr_routing.c
src/surf/simgrid_dtd.c
src/xbt/heap.c

@@@ -52,7 -52,7 +52,7 @@@ ELSEIF(CMAKE_SYSTEM_PROCESSOR MATCHES "
  ELSEIF(CMAKE_SYSTEM_PROCESSOR MATCHES "^sh")
    message(STATUS "System processor: sh")
  
- ELSE() #PROCESSOR NOT fIND
+ ELSE() #PROCESSOR NOT FOUND
    message(STATUS "PROCESSOR NOT FOUND: ${CMAKE_SYSTEM_PROCESSOR}")
  
  ENDIF()
@@@ -118,7 -118,6 +118,6 @@@ CHECK_INCLUDE_FILE("sys/time.h" HAVE_SY
  CHECK_INCLUDE_FILE("sys/param.h" HAVE_SYS_PARAM_H)
  CHECK_INCLUDE_FILE("sys/sysctl.h" HAVE_SYS_SYSCTL_H)
  CHECK_INCLUDE_FILE("time.h" HAVE_TIME_H)
- CHECK_INCLUDE_FILE("dlfcn.h" HAVE_DLFCN_H)
  CHECK_INCLUDE_FILE("inttypes.h" HAVE_INTTYPES_H)
  CHECK_INCLUDE_FILE("memory.h" HAVE_MEMORY_H)
  CHECK_INCLUDE_FILE("stdlib.h" HAVE_STDLIB_H)
@@@ -157,10 -156,10 +156,10 @@@ else(
  endif()
  
  # Our usage of mmap is Linux-specific (flag MAP_ANONYMOUS), but kFreeBSD uses a GNU libc
 -IF(NOT "${CMAKE_SYSTEM}" MATCHES "Linux" AND NOT "${CMAKE_SYSTEM}" MATCHES "kFreeBSD" AND NOT "${CMAKE_SYSTEM}" MATCHES "GNU")
 +IF(NOT "${CMAKE_SYSTEM}" MATCHES "Linux" AND NOT "${CMAKE_SYSTEM}" MATCHES "kFreeBSD" AND NOT "${CMAKE_SYSTEM}" MATCHES "GNU" AND NOT  "${CMAKE_SYSTEM}" MATCHES "Darwin")
    SET(HAVE_MMAP 0)
    message(STATUS "Warning: MMAP is thought as non functional on this architecture (${CMAKE_SYSTEM})")
 -ENDIF()
 +ENDIF(NOT "${CMAKE_SYSTEM}" MATCHES "Linux" AND NOT "${CMAKE_SYSTEM}" MATCHES "kFreeBSD" AND NOT "${CMAKE_SYSTEM}" MATCHES "GNU" AND NOT  "${CMAKE_SYSTEM}" MATCHES "Darwin")
  
  if(WIN32) #THOSE FILES ARE FUNCTIONS ARE NOT DETECTED BUT THEY SHOULD...
    set(HAVE_UCONTEXT_H 1)
@@@ -215,6 -214,40 +214,40 @@@ endif(
  CHECK_TYPE_SIZE(int SIZEOF_INT)
  CHECK_TYPE_SIZE(void* SIZEOF_VOIDP)
  
+ #--------------------------------------------------------------------------------------------------
+ ### Check for GNU dynamic linker
+ CHECK_INCLUDE_FILE("dlfcn.h" HAVE_DLFCN_H)
+ if (HAVE_DLFCN_H)
+     execute_process(COMMAND ${CMAKE_C_COMPILER} ${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/test_prog/prog_gnu_dynlinker.c -ldl -o test_gnu_ld
+       WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
+       OUTPUT_VARIABLE HAVE_GNU_LD_compil
+     )
+     if(HAVE_GNU_LD_compil)
+       set(HAVE_GNU_LD 0)
+       message(STATUS "Warning: test program toward GNU ld failed to compile:")
+       message(STATUS "${HAVE_GNU_LD_comp_output}")
+     else()
+       execute_process(COMMAND ./test_gnu_ld
+           WORKING_DIRECTORY ${CMAKE_BINARY_DIR} 
+           RESULT_VARIABLE HAVE_GNU_LD_run 
+           OUTPUT_VARIABLE var_exec
+       )
+       if(NOT HAVE_GNU_LD_run)
+         set(HAVE_GNU_LD 1)
+         message(STATUS "We are using GNU dynamic linker")
+       else()
+         set(HAVE_GNU_LD 0)
+         message(STATUS "Warning: error while checking for GNU ld:")
+         message(STATUS "Test output: '${var_exec}'")
+       message(STATUS "Exit status: ${HAVE_GNU_LD_run}")
+       endif()
+       file(REMOVE test_gnu_ld)
+     endif()
+ endif()
  #--------------------------------------------------------------------------------------------------
  ### Initialize of CONTEXT THREADS
  
@@@ -541,7 -574,7 +574,7 @@@ endif(
  
  #AC_PROG_MAKE_SET
  
- #AC_PRINTF_NULL
+ #AC_PRINTF_NULL FIXME: this is too ancient to survive!
  try_run(RUN_PRINTF_NULL_VAR COMPILE_PRINTF_NULL_VAR
    ${CMAKE_BINARY_DIR}
    ${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/test_prog/prog_printf_null.c
@@@ -757,6 -790,7 +790,7 @@@ configure_file(${CMAKE_HOME_DIRECTORY}/
  configure_file(${CMAKE_HOME_DIRECTORY}/src/smpi/smpicc.in ${CMAKE_BINARY_DIR}/bin/smpicc @ONLY)
  configure_file(${CMAKE_HOME_DIRECTORY}/src/smpi/smpif2c.in ${CMAKE_BINARY_DIR}/bin/smpif2c @ONLY)
  configure_file(${CMAKE_HOME_DIRECTORY}/src/smpi/smpiff.in ${CMAKE_BINARY_DIR}/bin/smpiff @ONLY)
+ configure_file(${CMAKE_HOME_DIRECTORY}/src/smpi/smpif90.in ${CMAKE_BINARY_DIR}/bin/smpif90 @ONLY)
  configure_file(${CMAKE_HOME_DIRECTORY}/src/smpi/smpirun.in ${CMAKE_BINARY_DIR}/bin/smpirun @ONLY)
  
  ### Script used when simgrid is compiling
@@@ -770,6 -804,7 +804,7 @@@ set(libdir "${CMAKE_BINARY_DIR}/lib"
  configure_file(${CMAKE_HOME_DIRECTORY}/src/smpi/smpicc.in ${CMAKE_BINARY_DIR}/smpi_script/bin/smpicc @ONLY)
  configure_file(${CMAKE_HOME_DIRECTORY}/src/smpi/smpif2c.in ${CMAKE_BINARY_DIR}/smpi_script/bin/smpif2c @ONLY)
  configure_file(${CMAKE_HOME_DIRECTORY}/src/smpi/smpiff.in ${CMAKE_BINARY_DIR}/smpi_script/bin/smpiff @ONLY)
+ configure_file(${CMAKE_HOME_DIRECTORY}/src/smpi/smpif90.in ${CMAKE_BINARY_DIR}/smpi_script/bin/smpif90 @ONLY)
  configure_file(${CMAKE_HOME_DIRECTORY}/src/smpi/smpirun.in ${CMAKE_BINARY_DIR}/smpi_script/bin/smpirun @ONLY)
  
  set(top_builddir ${CMAKE_HOME_DIRECTORY})
@@@ -778,10 -813,12 +813,12 @@@ if(NOT WIN32
    execute_process(COMMAND chmod a=rwx ${CMAKE_BINARY_DIR}/bin/smpicc)
    execute_process(COMMAND chmod a=rwx ${CMAKE_BINARY_DIR}/bin/smpif2c)
    execute_process(COMMAND chmod a=rwx ${CMAKE_BINARY_DIR}/bin/smpiff)
+   execute_process(COMMAND chmod a=rwx ${CMAKE_BINARY_DIR}/bin/smpif90)
    execute_process(COMMAND chmod a=rwx ${CMAKE_BINARY_DIR}/bin/smpirun)
    execute_process(COMMAND chmod a=rwx ${CMAKE_BINARY_DIR}/smpi_script/bin/smpicc)
    execute_process(COMMAND chmod a=rwx ${CMAKE_BINARY_DIR}/smpi_script/bin/smpif2c)
    execute_process(COMMAND chmod a=rwx ${CMAKE_BINARY_DIR}/smpi_script/bin/smpiff)
+   execute_process(COMMAND chmod a=rwx ${CMAKE_BINARY_DIR}/smpi_script/bin/smpif90)
    execute_process(COMMAND chmod a=rwx ${CMAKE_BINARY_DIR}/smpi_script/bin/smpirun)
  endif()
  
@@@ -801,6 -838,7 +838,7 @@@ set(generated_files_to_clea
    ${CMAKE_BINARY_DIR}/bin/smpicc
    ${CMAKE_BINARY_DIR}/bin/smpif2c
    ${CMAKE_BINARY_DIR}/bin/smpiff
+   ${CMAKE_BINARY_DIR}/bin/smpif90
    ${CMAKE_BINARY_DIR}/bin/smpirun
    ${CMAKE_BINARY_DIR}/bin/colorize
    ${CMAKE_BINARY_DIR}/bin/simgrid_update_xml
@@@ -817,7 -855,10 +855,10 @@@ else(
    configure_file(${CMAKE_HOME_DIRECTORY}/examples/msg/tracing/platform.xml ${CMAKE_BINARY_DIR}/examples/msg/tracing/platform.xml COPYONLY)
    configure_file(${CMAKE_HOME_DIRECTORY}/examples/smpi/replay/actions0.txt ${CMAKE_BINARY_DIR}/examples/smpi/replay/actions0.txt COPYONLY)
    configure_file(${CMAKE_HOME_DIRECTORY}/examples/smpi/replay/actions1.txt ${CMAKE_BINARY_DIR}/examples/smpi/replay/actions1.txt COPYONLY)
+   configure_file(${CMAKE_HOME_DIRECTORY}/examples/smpi/replay/actions_allReduce.txt ${CMAKE_BINARY_DIR}/examples/smpi/replay/actions_allReduce.txt COPYONLY)
+   configure_file(${CMAKE_HOME_DIRECTORY}/examples/smpi/replay/actions_barrier.txt ${CMAKE_BINARY_DIR}/examples/smpi/replay/actions_barrier.txt COPYONLY)
    configure_file(${CMAKE_HOME_DIRECTORY}/examples/smpi/replay/actions_bcast.txt ${CMAKE_BINARY_DIR}/examples/smpi/replay/actions_bcast.txt COPYONLY)
+   configure_file(${CMAKE_HOME_DIRECTORY}/examples/smpi/replay/actions_with_isend.txt ${CMAKE_BINARY_DIR}/examples/smpi/replay/actions_with_isend.txt COPYONLY)
    configure_file(${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/hostfile ${CMAKE_BINARY_DIR}/teshsuite/smpi/hostfile COPYONLY)
  
    set(generated_files_to_clean
      ${CMAKE_BINARY_DIR}/examples/msg/tracing/platform.xml
      ${CMAKE_BINARY_DIR}/examples/smpi/replay/actions0.txt
      ${CMAKE_BINARY_DIR}/examples/smpi/replay/actions1.txt
+     ${CMAKE_BINARY_DIR}/examples/smpi/replay/actions_allReduce.txt
+     ${CMAKE_BINARY_DIR}/examples/smpi/replay/actions_barrier.txt
      ${CMAKE_BINARY_DIR}/examples/smpi/replay/actions_bcast.txt
+     ${CMAKE_BINARY_DIR}/examples/smpi/replay/actions_with_isend.txt
      ${CMAKE_BINARY_DIR}/teshsuite/smpi/hostfile
      )
  endif()
@@@ -1,9 -1,12 +1,12 @@@
  ### define source packages
  
  set(EXTRA_DIST
+   src/include/smpi/smpi_interface.h
+   src/include/instr/instr_interface.h
    src/include/mc/datatypes.h
    src/include/mc/mc.h
    src/include/simgrid/platf_interface.h
+   src/include/simgrid/sg_config.h
    src/include/surf/datatypes.h
    src/include/surf/maxmin.h
    src/include/surf/random_mgr.h
    src/xbt/mmalloc/mmtrace.awk
    src/xbt/mmalloc/mrealloc.c
    src/xbt/setset_private.h
+   src/win32/config.h
+   src/xbt/win32_ucontext.c
+   include/xbt/win32_ucontext.h
    tools/tesh/run_context.h
    tools/tesh/tesh.h
    )
  
  set(SMPI_SRC
+   src/smpi/instr_smpi.c
    src/smpi/smpi_base.c
    src/smpi/smpi_bench.c
    src/smpi/smpi_c99.c
@@@ -181,6 -188,8 +188,8 @@@ set(SURF_SR
    src/surf/cpu_cas01.c
    src/surf/cpu_ti.c
    src/surf/fair_bottleneck.c
+   src/surf/instr_routing.c
+   src/surf/instr_surf.c
    src/surf/lagrange.c
    src/surf/maxmin.c
    src/surf/network.c
    src/surf/storage.c
    src/surf/surf.c
    src/surf/surf_action.c
-   src/surf/surf_config.c
    src/surf/surf_model.c
    src/surf/surf_routing.c
    src/surf/surf_routing_cluster.c
@@@ -226,9 -234,14 +234,14 @@@ set(SIMIX_SR
    src/simix/smx_user.c
    )
  
+ set(SIMGRID_SRC
+   src/simgrid/sg_config.c
+   )
  set(MSG_SRC
+   src/msg/instr_msg_process.c
+   src/msg/instr_msg_task.c
    src/msg/msg_actions.c
-   src/msg/msg_config.c
    src/msg/msg_deployment.c
    src/msg/msg_environment.c
    src/msg/msg_global.c
@@@ -310,9 -323,6 +323,9 @@@ set(LUA_SR
  set(TRACING_SRC
    src/instr/instr_config.c
    src/instr/instr_interface.c
 +  src/instr/instr_msg_process.c
 +  src/instr/instr_msg_vm.c
 +  src/instr/instr_msg_task.c
    src/instr/instr_paje_containers.c
    src/instr/instr_paje_trace.c
    src/instr/instr_paje_header.c
    src/instr/instr_paje_values.c
    src/instr/instr_private.h
    src/instr/instr_resource_utilization.c
-   src/instr/instr_routing.c
-   src/instr/instr_smpi.c
-   src/instr/instr_surf.c
    )
  
  set(JEDULE_SRC
@@@ -454,15 -461,39 +464,39 @@@ endif(
  set(simgrid_sources
    ${BINDINGS_SRC}
    ${GTNETS_USED}
-   ${JEDULE_SRC}
    ${MSG_SRC}
    ${SIMDAG_SRC}
+   ${SIMGRID_SRC}
    ${SIMIX_SRC}
    ${SURF_SRC}
    ${TRACING_SRC}
    ${XBT_SRC}
    )
  
+ if(${HAVE_JEDULE})
+   set(simgrid_sources
+     ${simgrid_sources}
+     ${JEDULE_SRC}
+     )
+ else()
+   set(EXTRA_DIST
+     ${EXTRA_DIST}
+     ${JEDULE_SRC}
+     )
+ endif()
+ if(${HAVE_TRACING})
+   set(simgrid_sources
+     ${simgrid_sources}
+     ${TRACING_SRC}
+     )
+ else()
+   set(EXTRA_DIST
+     ${EXTRA_DIST}
+     ${TRACING_SRC}
+     )
+ endif()
  if(HAVE_MC)
    set(simgrid_sources
      ${simgrid_sources}
@@@ -505,13 -536,41 +539,41 @@@ set(DOC_SOURCE
    doc/simix.fig
    doc/surf_nutshell.fig
    doc/Doxyfile.in
-   doc/FAQ.doc
-   doc/index.doc
-   doc/simgrid.css
-   doc/SimgridDoxygenLayout.xml
+   doc/Layout.xml
    doc/triva-graph_configuration.png
    doc/triva-graph_visualization.png
    doc/triva-time_interval.png
+   
+     doc/doxygen/footer.html
+   doc/doxygen/header.html
+   doc/doxygen/stylesheet.css
+   
+   doc/doxygen/index.doc
+   doc/doxygen/getting_started.doc  
+   doc/doxygen/introduction.doc
+   doc/doxygen/use.doc
+   doc/doxygen/bindings.doc
+   doc/doxygen/deployment.doc
+   doc/doxygen/install.doc
+   doc/doxygen/options.doc
+   doc/doxygen/platform.doc
+   doc/doxygen/pls.doc
+   doc/doxygen/tracing.doc
+   doc/doxygen/FAQ.doc
+   doc/doxygen/advanced.doc
+     doc/doxygen/inside_autotests.doc  
+     doc/doxygen/inside_cmake.doc
+     doc/doxygen/inside_extending.doc 
+     doc/doxygen/inside_release.doc
+     doc/doxygen/contributing.doc
+   doc/doxygen/modules.doc
+     doc/doxygen/module-msg.doc
+     doc/doxygen/module-sd.doc
+     doc/doxygen/module-simix.doc
+     doc/doxygen/module-surf.doc
+     doc/doxygen/module-trace.doc
+     doc/doxygen/module-xbt.doc
    )
  
  set(DOC_FIGS
    ${CMAKE_HOME_DIRECTORY}/doc/shared/fig/simgrid_modules2.fig
    )
    
- set(DOC_SHARED_TAG
-   doc/shared/doxygen/simgriddevguide.tag
-   doc/shared/doxygen/simgridrefguide.tag
-   doc/shared/doxygen/simgriduserguide.tag
-   )
-   
  set(DOC_TOOLS
    tools/doxygen/fig2dev_postprocessor.pl
    tools/doxygen/index_create.pl
    tools/doxygen/xbt_log_extract_hierarchy.pl
    )
  
- set(USER_GUIDE_SOURCES
-   doc/user_guide/doxygen/footer.html
-   doc/user_guide/doxygen/header.html
-   doc/user_guide/doxygen/UserGuideDoxyfile.in
-   doc/user_guide/doxygen/UserGuideDoxygenLayout.xml
-   doc/user_guide/doxygen/bindings.doc
-   doc/user_guide/doxygen/deployment.doc
-   doc/user_guide/doxygen/examples.doc
-   doc/user_guide/doxygen/index.doc
-   doc/user_guide/doxygen/install.doc
-   doc/user_guide/doxygen/options.doc
-   doc/user_guide/doxygen/platform.doc
-   doc/user_guide/doxygen/pls.doc
-   doc/user_guide/doxygen/tracing.doc
-   doc/user_guide/doxygen/use.doc
-   doc/user_guide/doxygen/stylesheet.css
-   )
-     
- set(REF_GUIDE_SOURCES
-   doc/ref_guide/doxygen/footer.html
-   doc/ref_guide/doxygen/header.html
-   doc/ref_guide/doxygen/main.doc
-   doc/ref_guide/doxygen/module-msg.doc
-   doc/ref_guide/doxygen/module-sd.doc
-   doc/ref_guide/doxygen/module-simix.doc
-   doc/ref_guide/doxygen/module-surf.doc
-   doc/ref_guide/doxygen/module-trace.doc
-   doc/ref_guide/doxygen/module-xbt.doc
-   doc/ref_guide/doxygen/modules.doc
-   doc/ref_guide/doxygen/RefGuideDoxyfile.in
-   doc/ref_guide/doxygen/RefGuideDoxygenLayout.xml
-   doc/ref_guide/doxygen/stylesheet.css
-   )
- set(DEV_GUIDE_SOURCES
-   doc/dev_guide/doxygen/footer.html
-   doc/dev_guide/doxygen/header.html
-   doc/dev_guide/doxygen/index.doc
-   doc/dev_guide/doxygen/cmake.doc
-   doc/dev_guide/doxygen/simgrid.doc
-   doc/dev_guide/doxygen/xps.doc
-   doc/dev_guide/doxygen/DevGuideDoxyfile.in
-   doc/dev_guide/doxygen/DevGuideDoxygenLayout.xml
-   doc/dev_guide/doxygen/stylesheet.css
-   )
+ # these files get copied automatically to the html documentation
  set(DOC_IMG
- ${CMAKE_HOME_DIRECTORY}/doc/webcruft/awstats_logo3.png
- ${CMAKE_HOME_DIRECTORY}/doc/webcruft/Paje_MSG_screenshot.jpg
- ${CMAKE_HOME_DIRECTORY}/doc/webcruft/Paje_MSG_screenshot_thn.jpg
- ${CMAKE_HOME_DIRECTORY}/doc/webcruft/poster_thumbnail.png
- ${CMAKE_HOME_DIRECTORY}/doc/webcruft/README
- ${CMAKE_HOME_DIRECTORY}/doc/webcruft/SGicon.gif
- ${CMAKE_HOME_DIRECTORY}/doc/webcruft/SGicon.icns
- ${CMAKE_HOME_DIRECTORY}/doc/webcruft/SGicon.ico
- ${CMAKE_HOME_DIRECTORY}/doc/webcruft/simgrid-101_001.png
- ${CMAKE_HOME_DIRECTORY}/doc/webcruft/simgrid-101_002.png
- ${CMAKE_HOME_DIRECTORY}/doc/webcruft/simgrid-101_003.png
- ${CMAKE_HOME_DIRECTORY}/doc/webcruft/simgrid-101_004.png
- ${CMAKE_HOME_DIRECTORY}/doc/webcruft/simgrid-101_005.png
- ${CMAKE_HOME_DIRECTORY}/doc/webcruft/simgrid-101_006.png
- ${CMAKE_HOME_DIRECTORY}/doc/webcruft/simgrid-101_007.png
- ${CMAKE_HOME_DIRECTORY}/doc/webcruft/simgrid-101_008.png
- ${CMAKE_HOME_DIRECTORY}/doc/webcruft/simgrid-101_009.png
- ${CMAKE_HOME_DIRECTORY}/doc/webcruft/simgrid-101_010.png
- ${CMAKE_HOME_DIRECTORY}/doc/webcruft/simgrid-101_011.png
- ${CMAKE_HOME_DIRECTORY}/doc/webcruft/simgrid-101_012.png
- ${CMAKE_HOME_DIRECTORY}/doc/webcruft/simgrid-101_013.png
- ${CMAKE_HOME_DIRECTORY}/doc/webcruft/simgrid-101_014.png
- ${CMAKE_HOME_DIRECTORY}/doc/webcruft/simgrid-101_015.png
- ${CMAKE_HOME_DIRECTORY}/doc/webcruft/simgrid-101_016.png
- ${CMAKE_HOME_DIRECTORY}/doc/webcruft/simgrid-101_017.png
- ${CMAKE_HOME_DIRECTORY}/doc/webcruft/simgrid-101_018.png
- ${CMAKE_HOME_DIRECTORY}/doc/webcruft/simgrid-101_019.png
- ${CMAKE_HOME_DIRECTORY}/doc/webcruft/simgrid-101_020.png
- ${CMAKE_HOME_DIRECTORY}/doc/webcruft/simgrid-101_021.png
- ${CMAKE_HOME_DIRECTORY}/doc/webcruft/simgrid-101_022.png
- ${CMAKE_HOME_DIRECTORY}/doc/webcruft/simgrid-101_023.png
- ${CMAKE_HOME_DIRECTORY}/doc/webcruft/simgrid-101_024.png
- ${CMAKE_HOME_DIRECTORY}/doc/webcruft/simgrid-101_025.png
- ${CMAKE_HOME_DIRECTORY}/doc/webcruft/simgrid-101_026.png
- ${CMAKE_HOME_DIRECTORY}/doc/webcruft/simgrid-101_027.png
- ${CMAKE_HOME_DIRECTORY}/doc/webcruft/simgrid-101_028.png
- ${CMAKE_HOME_DIRECTORY}/doc/webcruft/simgrid-101_029.png
- ${CMAKE_HOME_DIRECTORY}/doc/webcruft/simgrid-101_030.png
- ${CMAKE_HOME_DIRECTORY}/doc/webcruft/simgrid-101.pdf
- ${CMAKE_HOME_DIRECTORY}/doc/webcruft/simgrid_logo_2011.gif
- ${CMAKE_HOME_DIRECTORY}/doc/webcruft/simgrid_logo_2011.png
- ${CMAKE_HOME_DIRECTORY}/doc/webcruft/simgrid_logo_2011_small.png
- ${CMAKE_HOME_DIRECTORY}/doc/webcruft/simgrid_logo_win_2011.bmp
- ${CMAKE_HOME_DIRECTORY}/doc/webcruft/simgrid_logo_win.bmp
- ${CMAKE_HOME_DIRECTORY}/doc/webcruft/win_install_01.png
- ${CMAKE_HOME_DIRECTORY}/doc/webcruft/win_install_02.png
- ${CMAKE_HOME_DIRECTORY}/doc/webcruft/win_install_03.png
- ${CMAKE_HOME_DIRECTORY}/doc/webcruft/win_install_04.png
- ${CMAKE_HOME_DIRECTORY}/doc/webcruft/win_install_05.png
- ${CMAKE_HOME_DIRECTORY}/doc/webcruft/win_install_06.png
- )
+   ${CMAKE_HOME_DIRECTORY}/doc/simgrid.css
+   ${CMAKE_HOME_DIRECTORY}/doc/webcruft/Paje_MSG_screenshot.jpg
+   ${CMAKE_HOME_DIRECTORY}/doc/webcruft/Paje_MSG_screenshot_thn.jpg
+   ${CMAKE_HOME_DIRECTORY}/doc/webcruft/SGicon.gif
+   ${CMAKE_HOME_DIRECTORY}/doc/webcruft/SGicon.icns
+   ${CMAKE_HOME_DIRECTORY}/doc/webcruft/SGicon.ico
+   ${CMAKE_HOME_DIRECTORY}/doc/webcruft/awstats_logo3.png
+   ${CMAKE_HOME_DIRECTORY}/doc/webcruft/output.goal.pdf
+   ${CMAKE_HOME_DIRECTORY}/doc/webcruft/poster_thumbnail.png
+   ${CMAKE_HOME_DIRECTORY}/doc/webcruft/simgrid_logo_2011.gif
+   ${CMAKE_HOME_DIRECTORY}/doc/webcruft/simgrid_logo_2011.png
+   ${CMAKE_HOME_DIRECTORY}/doc/webcruft/simgrid_logo_2011_small.png
+   ${CMAKE_HOME_DIRECTORY}/doc/webcruft/simgrid_logo_win.bmp
+   ${CMAKE_HOME_DIRECTORY}/doc/webcruft/simgrid_logo_win_2011.bmp
+   ${CMAKE_HOME_DIRECTORY}/doc/webcruft/win_install_01.png
+   ${CMAKE_HOME_DIRECTORY}/doc/webcruft/win_install_02.png
+   ${CMAKE_HOME_DIRECTORY}/doc/webcruft/win_install_03.png
+   ${CMAKE_HOME_DIRECTORY}/doc/webcruft/win_install_04.png
+   ${CMAKE_HOME_DIRECTORY}/doc/webcruft/win_install_05.png
+   ${CMAKE_HOME_DIRECTORY}/doc/webcruft/win_install_06.png
+   )
  
  set(bin_files
    ${bin_files}
    src/smpi/smpicc.in
    src/smpi/smpif2c.in
    src/smpi/smpiff.in
+   src/smpi/smpif90.in
    src/smpi/smpirun.in
    )
  
@@@ -643,6 -621,7 +624,7 @@@ set(txt_file
    ${txt_files}
    AUTHORS
    COPYING
+   README
    ChangeLog
    INSTALL
    LICENSE-LGPL-2.1
@@@ -672,6 -651,7 +654,7 @@@ set(EXAMPLES_CMAKEFILES_TX
    examples/msg/priority/CMakeLists.txt
    examples/msg/properties/CMakeLists.txt
    examples/msg/sendrecv/CMakeLists.txt
+   examples/msg/chainsend/CMakeLists.txt
    examples/msg/start_kill_time/CMakeLists.txt
    examples/msg/suspend/CMakeLists.txt
    examples/msg/token_ring/CMakeLists.txt
@@@ -729,9 -709,6 +712,6 @@@ set(CMAKE_SOURCE_FILE
    buildtools/Cmake/Flags.cmake
    buildtools/Cmake/GenerateDoc.cmake
    buildtools/Cmake/GenerateDocWin.cmake
-   buildtools/Cmake/GenerateRefGuide.cmake
-   buildtools/Cmake/GenerateUserGuide.cmake
-   buildtools/Cmake/GenerateDevGuide.cmake
    buildtools/Cmake/MaintainerMode.cmake
    buildtools/Cmake/MakeExe.cmake
    buildtools/Cmake/MakeLib.cmake
    buildtools/Cmake/test_prog/prog_thread_storage.c
    buildtools/Cmake/test_prog/prog_va_copy.c
    buildtools/Cmake/test_prog/prog_vsnprintf.c
+   buildtools/Cmake/test_prog/prog_gnu_dynlinker.c
    )
  
  set(PLATFORMS_EXAMPLES
diff --combined include/msg/msg.h
@@@ -32,7 -32,7 +32,7 @@@ typedef enum 
  /** @} */
  
  /************************** Global ******************************************/
- XBT_PUBLIC(void) MSG_config(const char *name, ...);
+ XBT_PUBLIC(void) MSG_config(const char *key, const char *value);
  /** \ingroup msg_simulation
   *  \brief Initialize the MSG internal data.
   *  \hideinitializer
@@@ -324,6 -324,8 +324,6 @@@ XBT_PUBLIC(msg_error_t) MSG_set_channel
  XBT_PUBLIC(int) MSG_get_channel_number(void);
  #endif
  
 -#include "instr/instr.h"
 -
  /** @brief Opaque type describing a Virtual Machine.
   *  @ingroup msg_VMs
   *
   * Usual lack of guaranty of any kind applies here, and is even increased.
   *
   */
 -typedef struct msg_vm *msg_vm_t;
  /* This function should not be called directly, but rather from MSG_vm_start_from_template that does not exist yet*/
 -XBT_PUBLIC(msg_vm_t) MSG_vm_start(msg_host_t location, int coreAmount);
 +XBT_PUBLIC(msg_vm_t) MSG_vm_start(msg_host_t location, const char *name, int coreAmount);
  
  XBT_PUBLIC(int) MSG_vm_is_suspended(msg_vm_t);
  XBT_PUBLIC(int) MSG_vm_is_running(msg_vm_t);
@@@ -376,8 -379,6 +376,8 @@@ xbt_dynar_t<msg_vm_t> MSG_vm_get_list_f
  xbt_dynar_t<msg_vm_t> MSG_vm_get_list_from_hosts(msg_dynar_t<msg_host_t>)
  + des fonctions de filtrage sur les dynar
  */
 +#include "instr/instr.h"
 +
  
  
  /* ****************************************************************************************** */
@@@ -2,8 -2,8 +2,8 @@@
   *
   * This program was generated with the FleXML XML processor generator.
   * FleXML is Copyright (C) 1999-2005 Kristoffer Rose.  All rights reserved.
 - * FleXML is Copyright (C) 2003-2011 Martin Quinson.  All rights reserved.
 - * (Id: flexml.pl,v 1.69 2012/12/20 00:13:40 mquinson Exp).
 + * FleXML is Copyright (C) 2003-2006 Martin Quinson.  All rights reserved.
 + * (Id: flexml.pl,v 1.62 2007/10/11 10:00:14 mquinson Exp).
   * 
   * There are two, intertwined parts to this program, part A and part B.
   *
@@@ -12,7 -12,7 +12,7 @@@
   * 
   * Some parts, here collectively called "Part A", are found in the 
   * FleXML package.  They are Copyright (C) 1999-2005 Kristoffer Rose
 - * and Copyright (C) 2003-2011 Martin Quinson. All rights reserved.
 + * and Copyright (C) 2003-2006 Martin Quinson. All rights reserved.
   *
   * You can redistribute, use, perform, display and/or modify "Part A"
   * provided the following two conditions hold:
@@@ -56,12 -56,12 +56,12 @@@ XBT_PUBLIC(void ) STag_surfxml_trace(vo
  XBT_PUBLIC(void ) ETag_surfxml_trace(void);
  XBT_PUBLIC(void ) STag_surfxml_random(void);
  XBT_PUBLIC(void ) ETag_surfxml_random(void);
- XBT_PUBLIC(void ) STag_surfxml_trace_connect(void);
- XBT_PUBLIC(void ) ETag_surfxml_trace_connect(void);
+ XBT_PUBLIC(void ) STag_surfxml_trace___connect(void);
+ XBT_PUBLIC(void ) ETag_surfxml_trace___connect(void);
  XBT_PUBLIC(void ) STag_surfxml_AS(void);
  XBT_PUBLIC(void ) ETag_surfxml_AS(void);
- XBT_PUBLIC(void ) STag_surfxml_storage_type(void);
- XBT_PUBLIC(void ) ETag_surfxml_storage_type(void);
+ XBT_PUBLIC(void ) STag_surfxml_storage___type(void);
+ XBT_PUBLIC(void ) ETag_surfxml_storage___type(void);
  XBT_PUBLIC(void ) STag_surfxml_storage(void);
  XBT_PUBLIC(void ) ETag_surfxml_storage(void);
  XBT_PUBLIC(void ) STag_surfxml_mount(void);
@@@ -72,8 -72,8 +72,8 @@@ XBT_PUBLIC(void ) STag_surfxml_host(voi
  XBT_PUBLIC(void ) ETag_surfxml_host(void);
  XBT_PUBLIC(void ) STag_surfxml_gpu(void);
  XBT_PUBLIC(void ) ETag_surfxml_gpu(void);
- XBT_PUBLIC(void ) STag_surfxml_host_link(void);
- XBT_PUBLIC(void ) ETag_surfxml_host_link(void);
+ XBT_PUBLIC(void ) STag_surfxml_host___link(void);
+ XBT_PUBLIC(void ) ETag_surfxml_host___link(void);
  XBT_PUBLIC(void ) STag_surfxml_cluster(void);
  XBT_PUBLIC(void ) ETag_surfxml_cluster(void);
  XBT_PUBLIC(void ) STag_surfxml_cabinet(void);
@@@ -90,8 -90,8 +90,8 @@@ XBT_PUBLIC(void ) STag_surfxml_route(vo
  XBT_PUBLIC(void ) ETag_surfxml_route(void);
  XBT_PUBLIC(void ) STag_surfxml_ASroute(void);
  XBT_PUBLIC(void ) ETag_surfxml_ASroute(void);
- XBT_PUBLIC(void ) STag_surfxml_link_ctn(void);
- XBT_PUBLIC(void ) ETag_surfxml_link_ctn(void);
+ XBT_PUBLIC(void ) STag_surfxml_link___ctn(void);
+ XBT_PUBLIC(void ) ETag_surfxml_link___ctn(void);
  XBT_PUBLIC(void ) STag_surfxml_bypassRoute(void);
  XBT_PUBLIC(void ) ETag_surfxml_bypassRoute(void);
  XBT_PUBLIC(void ) STag_surfxml_bypassASroute(void);
@@@ -109,25 -109,25 +109,25 @@@ XBT_PUBLIC(void ) ETag_surfxml_prop(voi
  typedef int AT_surfxml_mount_name;
  #define AU_surfxml_mount_name NULL
  typedef enum { AU_surfxml_random_generator, A_surfxml_random_generator_DRAND48,A_surfxml_random_generator_RAND,A_surfxml_random_generator_RNGSTREAM,A_surfxml_random_generator_NONE } AT_surfxml_random_generator;
- typedef int AT_surfxml_ASroute_gw_dst;
- #define AU_surfxml_ASroute_gw_dst NULL
- typedef int AT_surfxml_trace_connect_element;
- #define AU_surfxml_trace_connect_element NULL
+ typedef int AT_surfxml_ASroute_gw___dst;
+ #define AU_surfxml_ASroute_gw___dst NULL
+ typedef int AT_surfxml_trace___connect_element;
+ #define AU_surfxml_trace___connect_element NULL
  typedef int AT_surfxml_prop_id;
  #define AU_surfxml_prop_id NULL
- typedef int AT_surfxml_host_link_up;
- #define AU_surfxml_host_link_up NULL
+ typedef int AT_surfxml_host___link_up;
+ #define AU_surfxml_host___link_up NULL
  typedef int AT_surfxml_host_id;
  #define AU_surfxml_host_id NULL
  typedef enum { AU_surfxml_ASroute_symmetrical, A_surfxml_ASroute_symmetrical_YES,A_surfxml_ASroute_symmetrical_NO } AT_surfxml_ASroute_symmetrical;
  typedef int AT_surfxml_peer_lat;
  #define AU_surfxml_peer_lat NULL
- typedef enum { AU_surfxml_process_on_failure, A_surfxml_process_on_failure_DIE,A_surfxml_process_on_failure_RESTART } AT_surfxml_process_on_failure;
- typedef int AT_surfxml_link_latency_file;
- #define AU_surfxml_link_latency_file NULL
- typedef int AT_surfxml_peer_availability_file;
- #define AU_surfxml_peer_availability_file NULL
- typedef enum { AU_surfxml_link_ctn_direction, A_surfxml_link_ctn_direction_UP,A_surfxml_link_ctn_direction_DOWN,A_surfxml_link_ctn_direction_NONE } AT_surfxml_link_ctn_direction;
+ typedef enum { AU_surfxml_process_on___failure, A_surfxml_process_on___failure_DIE,A_surfxml_process_on___failure_RESTART } AT_surfxml_process_on___failure;
+ typedef int AT_surfxml_link_latency___file;
+ #define AU_surfxml_link_latency___file NULL
+ typedef int AT_surfxml_peer_availability___file;
+ #define AU_surfxml_peer_availability___file NULL
+ typedef enum { AU_surfxml_link___ctn_direction, A_surfxml_link___ctn_direction_UP,A_surfxml_link___ctn_direction_DOWN,A_surfxml_link___ctn_direction_NONE } AT_surfxml_link___ctn_direction;
  typedef enum { AU_surfxml_host_state, A_surfxml_host_state_ON,A_surfxml_host_state_OFF } AT_surfxml_host_state;
  typedef int AT_surfxml_AS_id;
  #define AU_surfxml_AS_id NULL
@@@ -139,18 -139,18 +139,18 @@@ typedef int AT_surfxml_gpu_name
  #define AU_surfxml_gpu_name NULL
  typedef int AT_surfxml_router_id;
  #define AU_surfxml_router_id NULL
- typedef int AT_surfxml_storage_type_id;
- #define AU_surfxml_storage_type_id NULL
- typedef int AT_surfxml_process_start_time;
- #define AU_surfxml_process_start_time NULL
+ typedef int AT_surfxml_storage___type_id;
+ #define AU_surfxml_storage___type_id NULL
+ typedef int AT_surfxml_process_start___time;
+ #define AU_surfxml_process_start___time NULL
  typedef int AT_surfxml_cabinet_bw;
  #define AU_surfxml_cabinet_bw NULL
  typedef int AT_surfxml_cluster_suffix;
  #define AU_surfxml_cluster_suffix NULL
  typedef int AT_surfxml_bypassASroute_dst;
  #define AU_surfxml_bypassASroute_dst NULL
- typedef int AT_surfxml_host_link_id;
- #define AU_surfxml_host_link_id NULL
+ typedef int AT_surfxml_host___link_id;
+ #define AU_surfxml_host___link_id NULL
  typedef int AT_surfxml_ASroute_src;
  #define AU_surfxml_ASroute_src NULL
  typedef int AT_surfxml_cluster_prefix;
@@@ -159,58 -159,58 +159,58 @@@ typedef int AT_surfxml_cabinet_prefix
  #define AU_surfxml_cabinet_prefix NULL
  typedef int AT_surfxml_trace_file;
  #define AU_surfxml_trace_file NULL
- typedef enum { AU_surfxml_link_sharing_policy, A_surfxml_link_sharing_policy_SHARED,A_surfxml_link_sharing_policy_FATPIPE,A_surfxml_link_sharing_policy_FULLDUPLEX } AT_surfxml_link_sharing_policy;
+ typedef enum { AU_surfxml_link_sharing___policy, A_surfxml_link_sharing___policy_SHARED,A_surfxml_link_sharing___policy_FATPIPE,A_surfxml_link_sharing___policy_FULLDUPLEX } AT_surfxml_link_sharing___policy;
  typedef int AT_surfxml_storage_typeId;
  #define AU_surfxml_storage_typeId NULL
  typedef int AT_surfxml_random_min;
  #define AU_surfxml_random_min NULL
- typedef int AT_surfxml_link_ctn_id;
- #define AU_surfxml_link_ctn_id NULL
- typedef int AT_surfxml_peer_bw_out;
- #define AU_surfxml_peer_bw_out NULL
- typedef int AT_surfxml_cluster_availability_file;
- #define AU_surfxml_cluster_availability_file NULL
+ typedef int AT_surfxml_link___ctn_id;
+ #define AU_surfxml_link___ctn_id NULL
+ typedef int AT_surfxml_peer_bw___out;
+ #define AU_surfxml_peer_bw___out NULL
+ typedef int AT_surfxml_cluster_availability___file;
+ #define AU_surfxml_cluster_availability___file NULL
  typedef int AT_surfxml_storage_content;
  #define AU_surfxml_storage_content NULL
- typedef int AT_surfxml_process_kill_time;
- #define AU_surfxml_process_kill_time NULL
- typedef int AT_surfxml_cluster_bb_bw;
- #define AU_surfxml_cluster_bb_bw NULL
+ typedef int AT_surfxml_process_kill___time;
+ #define AU_surfxml_process_kill___time NULL
+ typedef int AT_surfxml_cluster_bb___bw;
+ #define AU_surfxml_cluster_bb___bw NULL
  typedef int AT_surfxml_argument_value;
  #define AU_surfxml_argument_value NULL
  typedef enum { AU_surfxml_link_state, A_surfxml_link_state_ON,A_surfxml_link_state_OFF } AT_surfxml_link_state;
- typedef int AT_surfxml_ASroute_gw_src;
- #define AU_surfxml_ASroute_gw_src NULL
+ typedef int AT_surfxml_ASroute_gw___src;
+ #define AU_surfxml_ASroute_gw___src NULL
  typedef enum { AU_surfxml_AS_routing, A_surfxml_AS_routing_Full,A_surfxml_AS_routing_Floyd,A_surfxml_AS_routing_Dijkstra,A_surfxml_AS_routing_DijkstraCache,A_surfxml_AS_routing_None,A_surfxml_AS_routing_RuleBased,A_surfxml_AS_routing_Vivaldi,A_surfxml_AS_routing_Cluster } AT_surfxml_AS_routing;
  typedef int AT_surfxml_link_bandwidth;
  #define AU_surfxml_link_bandwidth NULL
  typedef int AT_surfxml_cluster_id;
  #define AU_surfxml_cluster_id NULL
- typedef int AT_surfxml_peer_bw_in;
- #define AU_surfxml_peer_bw_in NULL
+ typedef int AT_surfxml_peer_bw___in;
+ #define AU_surfxml_peer_bw___in NULL
  typedef int AT_surfxml_random_mean;
  #define AU_surfxml_random_mean NULL
- typedef int AT_surfxml_storage_type_size;
- #define AU_surfxml_storage_type_size NULL
- typedef int AT_surfxml_cluster_bb_lat;
- #define AU_surfxml_cluster_bb_lat NULL
+ typedef int AT_surfxml_storage___type_size;
+ #define AU_surfxml_storage___type_size NULL
+ typedef int AT_surfxml_cluster_bb___lat;
+ #define AU_surfxml_cluster_bb___lat NULL
  typedef int AT_surfxml_link_latency;
  #define AU_surfxml_link_latency NULL
  typedef int AT_surfxml_backbone_bandwidth;
  #define AU_surfxml_backbone_bandwidth NULL
  typedef int AT_surfxml_backbone_id;
  #define AU_surfxml_backbone_id NULL
- typedef enum { AU_surfxml_trace_connect_kind, A_surfxml_trace_connect_kind_HOST_AVAIL,A_surfxml_trace_connect_kind_POWER,A_surfxml_trace_connect_kind_LINK_AVAIL,A_surfxml_trace_connect_kind_BANDWIDTH,A_surfxml_trace_connect_kind_LATENCY } AT_surfxml_trace_connect_kind;
+ typedef enum { AU_surfxml_trace___connect_kind, A_surfxml_trace___connect_kind_HOST___AVAIL,A_surfxml_trace___connect_kind_POWER,A_surfxml_trace___connect_kind_LINK___AVAIL,A_surfxml_trace___connect_kind_BANDWIDTH,A_surfxml_trace___connect_kind_LATENCY } AT_surfxml_trace___connect_kind;
  typedef int AT_surfxml_cabinet_lat;
  #define AU_surfxml_cabinet_lat NULL
  typedef int AT_surfxml_random_seed;
  #define AU_surfxml_random_seed NULL
- typedef int AT_surfxml_cluster_state_file;
- #define AU_surfxml_cluster_state_file NULL
- typedef int AT_surfxml_link_bandwidth_file;
- #define AU_surfxml_link_bandwidth_file NULL
- typedef int AT_surfxml_storage_type_content;
- #define AU_surfxml_storage_type_content NULL
+ typedef int AT_surfxml_cluster_state___file;
+ #define AU_surfxml_cluster_state___file NULL
+ typedef int AT_surfxml_link_bandwidth___file;
+ #define AU_surfxml_link_bandwidth___file NULL
+ typedef int AT_surfxml_storage___type_content;
+ #define AU_surfxml_storage___type_content NULL
  typedef enum { AU_surfxml_route_symmetrical, A_surfxml_route_symmetrical_YES,A_surfxml_route_symmetrical_NO } AT_surfxml_route_symmetrical;
  typedef int AT_surfxml_random_id;
  #define AU_surfxml_random_id NULL
@@@ -224,17 -224,17 +224,17 @@@ typedef int AT_surfxml_process_host
  #define AU_surfxml_process_host NULL
  typedef int AT_surfxml_cabinet_id;
  #define AU_surfxml_cabinet_id NULL
- typedef int AT_surfxml_host_availability_file;
- #define AU_surfxml_host_availability_file NULL
+ typedef int AT_surfxml_host_availability___file;
+ #define AU_surfxml_host_availability___file NULL
  typedef int AT_surfxml_cluster_lat;
  #define AU_surfxml_cluster_lat NULL
  typedef int AT_surfxml_router_coordinates;
  #define AU_surfxml_router_coordinates NULL
  typedef int AT_surfxml_trace_periodicity;
  #define AU_surfxml_trace_periodicity NULL
- typedef enum { AU_surfxml_cluster_bb_sharing_policy, A_surfxml_cluster_bb_sharing_policy_SHARED,A_surfxml_cluster_bb_sharing_policy_FATPIPE } AT_surfxml_cluster_bb_sharing_policy;
- typedef int AT_surfxml_peer_state_file;
- #define AU_surfxml_peer_state_file NULL
+ typedef enum { AU_surfxml_cluster_bb___sharing___policy, A_surfxml_cluster_bb___sharing___policy_SHARED,A_surfxml_cluster_bb___sharing___policy_FATPIPE } AT_surfxml_cluster_bb___sharing___policy;
+ typedef int AT_surfxml_peer_state___file;
+ #define AU_surfxml_peer_state___file NULL
  typedef int AT_surfxml_peer_coordinates;
  #define AU_surfxml_peer_coordinates NULL
  typedef int AT_surfxml_bypassASroute_src;
@@@ -245,14 -245,14 +245,14 @@@ typedef int AT_surfxml_mstorage_typeId
  #define AU_surfxml_mstorage_typeId NULL
  typedef int AT_surfxml_ASroute_dst;
  #define AU_surfxml_ASroute_dst NULL
- typedef int AT_surfxml_link_state_file;
- #define AU_surfxml_link_state_file NULL
+ typedef int AT_surfxml_link_state___file;
+ #define AU_surfxml_link_state___file NULL
  typedef int AT_surfxml_random_radical;
  #define AU_surfxml_random_radical NULL
- typedef int AT_surfxml_bypassASroute_gw_src;
- #define AU_surfxml_bypassASroute_gw_src NULL
- typedef int AT_surfxml_trace_connect_trace;
- #define AU_surfxml_trace_connect_trace NULL
+ typedef int AT_surfxml_bypassASroute_gw___src;
+ #define AU_surfxml_bypassASroute_gw___src NULL
+ typedef int AT_surfxml_trace___connect_trace;
+ #define AU_surfxml_trace___connect_trace NULL
  typedef int AT_surfxml_mount_id;
  #define AU_surfxml_mount_id NULL
  typedef int AT_surfxml_cluster_power;
@@@ -261,19 -261,19 +261,19 @@@ typedef int AT_surfxml_process_function
  #define AU_surfxml_process_function NULL
  typedef int AT_surfxml_peer_id;
  #define AU_surfxml_peer_id NULL
- typedef int AT_surfxml_cluster_router_id;
- #define AU_surfxml_cluster_router_id NULL
+ typedef int AT_surfxml_cluster_router___id;
+ #define AU_surfxml_cluster_router___id NULL
  typedef int AT_surfxml_cabinet_radical;
  #define AU_surfxml_cabinet_radical NULL
- typedef enum { AU_surfxml_cluster_sharing_policy, A_surfxml_cluster_sharing_policy_SHARED,A_surfxml_cluster_sharing_policy_FULLDUPLEX,A_surfxml_cluster_sharing_policy_FATPIPE } AT_surfxml_cluster_sharing_policy;
+ typedef enum { AU_surfxml_cluster_sharing___policy, A_surfxml_cluster_sharing___policy_SHARED,A_surfxml_cluster_sharing___policy_FULLDUPLEX,A_surfxml_cluster_sharing___policy_FATPIPE } AT_surfxml_cluster_sharing___policy;
  typedef int AT_surfxml_bypassRoute_dst;
  #define AU_surfxml_bypassRoute_dst NULL
  typedef int AT_surfxml_cabinet_power;
  #define AU_surfxml_cabinet_power NULL
  typedef int AT_surfxml_host_core;
  #define AU_surfxml_host_core NULL
- typedef int AT_surfxml_storage_type_model;
- #define AU_surfxml_storage_type_model NULL
+ typedef int AT_surfxml_storage___type_model;
+ #define AU_surfxml_storage___type_model NULL
  typedef int AT_surfxml_host_availability;
  #define AU_surfxml_host_availability NULL
  typedef int AT_surfxml_bypassRoute_src;
@@@ -294,18 -294,18 +294,18 @@@ typedef int AT_surfxml_cluster_radical
  #define AU_surfxml_cluster_radical NULL
  typedef int AT_surfxml_config_id;
  #define AU_surfxml_config_id NULL
- typedef int AT_surfxml_bypassASroute_gw_dst;
- #define AU_surfxml_bypassASroute_gw_dst NULL
- typedef int AT_surfxml_host_link_down;
- #define AU_surfxml_host_link_down NULL
+ typedef int AT_surfxml_bypassASroute_gw___dst;
+ #define AU_surfxml_bypassASroute_gw___dst NULL
+ typedef int AT_surfxml_host___link_down;
+ #define AU_surfxml_host___link_down NULL
  typedef int AT_surfxml_include_file;
  #define AU_surfxml_include_file NULL
- typedef int AT_surfxml_random_std_deviation;
- #define AU_surfxml_random_std_deviation NULL
+ typedef int AT_surfxml_random_std___deviation;
+ #define AU_surfxml_random_std___deviation NULL
  typedef int AT_surfxml_cluster_core;
  #define AU_surfxml_cluster_core NULL
- typedef int AT_surfxml_host_state_file;
- #define AU_surfxml_host_state_file NULL
+ typedef int AT_surfxml_host_state___file;
+ #define AU_surfxml_host_state___file NULL
  typedef int AT_surfxml_route_dst;
  #define AU_surfxml_route_dst NULL
  typedef int AT_surfxml_cluster_bw;
@@@ -319,222 -319,331 +319,222 @@@ XBT_PUBLIC_DATA(char *) surfxml_buffers
  #define surfxml_pcdata (surfxml_bufferstack + surfxml_pcdata_ix)
  XBT_PUBLIC_DATA(AT_surfxml_mount_name ) AX_surfxml_mount_name;
  #define A_surfxml_mount_name (surfxml_bufferstack + AX_surfxml_mount_name)
 -XBT_PUBLIC_DATA(short ) int surfxml_mount_name_isset;
  XBT_PUBLIC_DATA(AT_surfxml_random_generator ) AX_surfxml_random_generator;
  #define A_surfxml_random_generator AX_surfxml_random_generator
 -XBT_PUBLIC_DATA(short ) int surfxml_random_generator_isset;
 -XBT_PUBLIC_DATA(AT_surfxml_ASroute_gw___dst ) AX_surfxml_ASroute_gw___dst;
 -#define A_surfxml_ASroute_gw___dst (surfxml_bufferstack + AX_surfxml_ASroute_gw___dst)
 -XBT_PUBLIC_DATA(short ) int surfxml_ASroute_gw___dst_isset;
 -XBT_PUBLIC_DATA(AT_surfxml_trace___connect_element ) AX_surfxml_trace___connect_element;
 -#define A_surfxml_trace___connect_element (surfxml_bufferstack + AX_surfxml_trace___connect_element)
 -XBT_PUBLIC_DATA(short ) int surfxml_trace___connect_element_isset;
 +XBT_PUBLIC_DATA(AT_surfxml_ASroute_gw_dst ) AX_surfxml_ASroute_gw_dst;
 +#define A_surfxml_ASroute_gw_dst (surfxml_bufferstack + AX_surfxml_ASroute_gw_dst)
 +XBT_PUBLIC_DATA(AT_surfxml_trace_connect_element ) AX_surfxml_trace_connect_element;
 +#define A_surfxml_trace_connect_element (surfxml_bufferstack + AX_surfxml_trace_connect_element)
  XBT_PUBLIC_DATA(AT_surfxml_prop_id ) AX_surfxml_prop_id;
  #define A_surfxml_prop_id (surfxml_bufferstack + AX_surfxml_prop_id)
 -XBT_PUBLIC_DATA(short ) int surfxml_prop_id_isset;
 -XBT_PUBLIC_DATA(AT_surfxml_host___link_up ) AX_surfxml_host___link_up;
 -#define A_surfxml_host___link_up (surfxml_bufferstack + AX_surfxml_host___link_up)
 -XBT_PUBLIC_DATA(short ) int surfxml_host___link_up_isset;
 +XBT_PUBLIC_DATA(AT_surfxml_host_link_up ) AX_surfxml_host_link_up;
 +#define A_surfxml_host_link_up (surfxml_bufferstack + AX_surfxml_host_link_up)
  XBT_PUBLIC_DATA(AT_surfxml_host_id ) AX_surfxml_host_id;
  #define A_surfxml_host_id (surfxml_bufferstack + AX_surfxml_host_id)
 -XBT_PUBLIC_DATA(short ) int surfxml_host_id_isset;
  XBT_PUBLIC_DATA(AT_surfxml_ASroute_symmetrical ) AX_surfxml_ASroute_symmetrical;
  #define A_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical
 -XBT_PUBLIC_DATA(short ) int surfxml_ASroute_symmetrical_isset;
  XBT_PUBLIC_DATA(AT_surfxml_peer_lat ) AX_surfxml_peer_lat;
  #define A_surfxml_peer_lat (surfxml_bufferstack + AX_surfxml_peer_lat)
 -XBT_PUBLIC_DATA(short ) int surfxml_peer_lat_isset;
 -XBT_PUBLIC_DATA(AT_surfxml_process_on___failure ) AX_surfxml_process_on___failure;
 -#define A_surfxml_process_on___failure AX_surfxml_process_on___failure
 -XBT_PUBLIC_DATA(short ) int surfxml_process_on___failure_isset;
 -XBT_PUBLIC_DATA(AT_surfxml_link_latency___file ) AX_surfxml_link_latency___file;
 -#define A_surfxml_link_latency___file (surfxml_bufferstack + AX_surfxml_link_latency___file)
 -XBT_PUBLIC_DATA(short ) int surfxml_link_latency___file_isset;
 -XBT_PUBLIC_DATA(AT_surfxml_peer_availability___file ) AX_surfxml_peer_availability___file;
 -#define A_surfxml_peer_availability___file (surfxml_bufferstack + AX_surfxml_peer_availability___file)
 -XBT_PUBLIC_DATA(short ) int surfxml_peer_availability___file_isset;
 -XBT_PUBLIC_DATA(AT_surfxml_link___ctn_direction ) AX_surfxml_link___ctn_direction;
 -#define A_surfxml_link___ctn_direction AX_surfxml_link___ctn_direction
 -XBT_PUBLIC_DATA(short ) int surfxml_link___ctn_direction_isset;
 +XBT_PUBLIC_DATA(AT_surfxml_process_on_failure ) AX_surfxml_process_on_failure;
 +#define A_surfxml_process_on_failure AX_surfxml_process_on_failure
 +XBT_PUBLIC_DATA(AT_surfxml_link_latency_file ) AX_surfxml_link_latency_file;
 +#define A_surfxml_link_latency_file (surfxml_bufferstack + AX_surfxml_link_latency_file)
 +XBT_PUBLIC_DATA(AT_surfxml_peer_availability_file ) AX_surfxml_peer_availability_file;
 +#define A_surfxml_peer_availability_file (surfxml_bufferstack + AX_surfxml_peer_availability_file)
 +XBT_PUBLIC_DATA(AT_surfxml_link_ctn_direction ) AX_surfxml_link_ctn_direction;
 +#define A_surfxml_link_ctn_direction AX_surfxml_link_ctn_direction
  XBT_PUBLIC_DATA(AT_surfxml_host_state ) AX_surfxml_host_state;
  #define A_surfxml_host_state AX_surfxml_host_state
 -XBT_PUBLIC_DATA(short ) int surfxml_host_state_isset;
  XBT_PUBLIC_DATA(AT_surfxml_AS_id ) AX_surfxml_AS_id;
  #define A_surfxml_AS_id (surfxml_bufferstack + AX_surfxml_AS_id)
 -XBT_PUBLIC_DATA(short ) int surfxml_AS_id_isset;
  XBT_PUBLIC_DATA(AT_surfxml_host_power ) AX_surfxml_host_power;
  #define A_surfxml_host_power (surfxml_bufferstack + AX_surfxml_host_power)
 -XBT_PUBLIC_DATA(short ) int surfxml_host_power_isset;
  XBT_PUBLIC_DATA(AT_surfxml_cabinet_suffix ) AX_surfxml_cabinet_suffix;
  #define A_surfxml_cabinet_suffix (surfxml_bufferstack + AX_surfxml_cabinet_suffix)
 -XBT_PUBLIC_DATA(short ) int surfxml_cabinet_suffix_isset;
  XBT_PUBLIC_DATA(AT_surfxml_gpu_name ) AX_surfxml_gpu_name;
  #define A_surfxml_gpu_name (surfxml_bufferstack + AX_surfxml_gpu_name)
 -XBT_PUBLIC_DATA(short ) int surfxml_gpu_name_isset;
  XBT_PUBLIC_DATA(AT_surfxml_router_id ) AX_surfxml_router_id;
  #define A_surfxml_router_id (surfxml_bufferstack + AX_surfxml_router_id)
 -XBT_PUBLIC_DATA(short ) int surfxml_router_id_isset;
 -XBT_PUBLIC_DATA(AT_surfxml_storage___type_id ) AX_surfxml_storage___type_id;
 -#define A_surfxml_storage___type_id (surfxml_bufferstack + AX_surfxml_storage___type_id)
 -XBT_PUBLIC_DATA(short ) int surfxml_storage___type_id_isset;
 -XBT_PUBLIC_DATA(AT_surfxml_process_start___time ) AX_surfxml_process_start___time;
 -#define A_surfxml_process_start___time (surfxml_bufferstack + AX_surfxml_process_start___time)
 -XBT_PUBLIC_DATA(short ) int surfxml_process_start___time_isset;
 +XBT_PUBLIC_DATA(AT_surfxml_storage_type_id ) AX_surfxml_storage_type_id;
 +#define A_surfxml_storage_type_id (surfxml_bufferstack + AX_surfxml_storage_type_id)
 +XBT_PUBLIC_DATA(AT_surfxml_process_start_time ) AX_surfxml_process_start_time;
 +#define A_surfxml_process_start_time (surfxml_bufferstack + AX_surfxml_process_start_time)
  XBT_PUBLIC_DATA(AT_surfxml_cabinet_bw ) AX_surfxml_cabinet_bw;
  #define A_surfxml_cabinet_bw (surfxml_bufferstack + AX_surfxml_cabinet_bw)
 -XBT_PUBLIC_DATA(short ) int surfxml_cabinet_bw_isset;
  XBT_PUBLIC_DATA(AT_surfxml_cluster_suffix ) AX_surfxml_cluster_suffix;
  #define A_surfxml_cluster_suffix (surfxml_bufferstack + AX_surfxml_cluster_suffix)
 -XBT_PUBLIC_DATA(short ) int surfxml_cluster_suffix_isset;
  XBT_PUBLIC_DATA(AT_surfxml_bypassASroute_dst ) AX_surfxml_bypassASroute_dst;
  #define A_surfxml_bypassASroute_dst (surfxml_bufferstack + AX_surfxml_bypassASroute_dst)
 -XBT_PUBLIC_DATA(short ) int surfxml_bypassASroute_dst_isset;
 -XBT_PUBLIC_DATA(AT_surfxml_host___link_id ) AX_surfxml_host___link_id;
 -#define A_surfxml_host___link_id (surfxml_bufferstack + AX_surfxml_host___link_id)
 -XBT_PUBLIC_DATA(short ) int surfxml_host___link_id_isset;
 +XBT_PUBLIC_DATA(AT_surfxml_host_link_id ) AX_surfxml_host_link_id;
 +#define A_surfxml_host_link_id (surfxml_bufferstack + AX_surfxml_host_link_id)
  XBT_PUBLIC_DATA(AT_surfxml_ASroute_src ) AX_surfxml_ASroute_src;
  #define A_surfxml_ASroute_src (surfxml_bufferstack + AX_surfxml_ASroute_src)
 -XBT_PUBLIC_DATA(short ) int surfxml_ASroute_src_isset;
  XBT_PUBLIC_DATA(AT_surfxml_cluster_prefix ) AX_surfxml_cluster_prefix;
  #define A_surfxml_cluster_prefix (surfxml_bufferstack + AX_surfxml_cluster_prefix)
 -XBT_PUBLIC_DATA(short ) int surfxml_cluster_prefix_isset;
  XBT_PUBLIC_DATA(AT_surfxml_cabinet_prefix ) AX_surfxml_cabinet_prefix;
  #define A_surfxml_cabinet_prefix (surfxml_bufferstack + AX_surfxml_cabinet_prefix)
 -XBT_PUBLIC_DATA(short ) int surfxml_cabinet_prefix_isset;
  XBT_PUBLIC_DATA(AT_surfxml_trace_file ) AX_surfxml_trace_file;
  #define A_surfxml_trace_file (surfxml_bufferstack + AX_surfxml_trace_file)
 -XBT_PUBLIC_DATA(short ) int surfxml_trace_file_isset;
 -XBT_PUBLIC_DATA(AT_surfxml_link_sharing___policy ) AX_surfxml_link_sharing___policy;
 -#define A_surfxml_link_sharing___policy AX_surfxml_link_sharing___policy
 -XBT_PUBLIC_DATA(short ) int surfxml_link_sharing___policy_isset;
 +XBT_PUBLIC_DATA(AT_surfxml_link_sharing_policy ) AX_surfxml_link_sharing_policy;
 +#define A_surfxml_link_sharing_policy AX_surfxml_link_sharing_policy
  XBT_PUBLIC_DATA(AT_surfxml_storage_typeId ) AX_surfxml_storage_typeId;
  #define A_surfxml_storage_typeId (surfxml_bufferstack + AX_surfxml_storage_typeId)
 -XBT_PUBLIC_DATA(short ) int surfxml_storage_typeId_isset;
  XBT_PUBLIC_DATA(AT_surfxml_random_min ) AX_surfxml_random_min;
  #define A_surfxml_random_min (surfxml_bufferstack + AX_surfxml_random_min)
 -XBT_PUBLIC_DATA(short ) int surfxml_random_min_isset;
 -XBT_PUBLIC_DATA(AT_surfxml_link___ctn_id ) AX_surfxml_link___ctn_id;
 -#define A_surfxml_link___ctn_id (surfxml_bufferstack + AX_surfxml_link___ctn_id)
 -XBT_PUBLIC_DATA(short ) int surfxml_link___ctn_id_isset;
 -XBT_PUBLIC_DATA(AT_surfxml_peer_bw___out ) AX_surfxml_peer_bw___out;
 -#define A_surfxml_peer_bw___out (surfxml_bufferstack + AX_surfxml_peer_bw___out)
 -XBT_PUBLIC_DATA(short ) int surfxml_peer_bw___out_isset;
 -XBT_PUBLIC_DATA(AT_surfxml_cluster_availability___file ) AX_surfxml_cluster_availability___file;
 -#define A_surfxml_cluster_availability___file (surfxml_bufferstack + AX_surfxml_cluster_availability___file)
 -XBT_PUBLIC_DATA(short ) int surfxml_cluster_availability___file_isset;
 +XBT_PUBLIC_DATA(AT_surfxml_link_ctn_id ) AX_surfxml_link_ctn_id;
 +#define A_surfxml_link_ctn_id (surfxml_bufferstack + AX_surfxml_link_ctn_id)
 +XBT_PUBLIC_DATA(AT_surfxml_peer_bw_out ) AX_surfxml_peer_bw_out;
 +#define A_surfxml_peer_bw_out (surfxml_bufferstack + AX_surfxml_peer_bw_out)
 +XBT_PUBLIC_DATA(AT_surfxml_cluster_availability_file ) AX_surfxml_cluster_availability_file;
 +#define A_surfxml_cluster_availability_file (surfxml_bufferstack + AX_surfxml_cluster_availability_file)
  XBT_PUBLIC_DATA(AT_surfxml_storage_content ) AX_surfxml_storage_content;
  #define A_surfxml_storage_content (surfxml_bufferstack + AX_surfxml_storage_content)
 -XBT_PUBLIC_DATA(short ) int surfxml_storage_content_isset;
 -XBT_PUBLIC_DATA(AT_surfxml_process_kill___time ) AX_surfxml_process_kill___time;
 -#define A_surfxml_process_kill___time (surfxml_bufferstack + AX_surfxml_process_kill___time)
 -XBT_PUBLIC_DATA(short ) int surfxml_process_kill___time_isset;
 -XBT_PUBLIC_DATA(AT_surfxml_cluster_bb___bw ) AX_surfxml_cluster_bb___bw;
 -#define A_surfxml_cluster_bb___bw (surfxml_bufferstack + AX_surfxml_cluster_bb___bw)
 -XBT_PUBLIC_DATA(short ) int surfxml_cluster_bb___bw_isset;
 +XBT_PUBLIC_DATA(AT_surfxml_process_kill_time ) AX_surfxml_process_kill_time;
 +#define A_surfxml_process_kill_time (surfxml_bufferstack + AX_surfxml_process_kill_time)
 +XBT_PUBLIC_DATA(AT_surfxml_cluster_bb_bw ) AX_surfxml_cluster_bb_bw;
 +#define A_surfxml_cluster_bb_bw (surfxml_bufferstack + AX_surfxml_cluster_bb_bw)
  XBT_PUBLIC_DATA(AT_surfxml_argument_value ) AX_surfxml_argument_value;
  #define A_surfxml_argument_value (surfxml_bufferstack + AX_surfxml_argument_value)
 -XBT_PUBLIC_DATA(short ) int surfxml_argument_value_isset;
  XBT_PUBLIC_DATA(AT_surfxml_link_state ) AX_surfxml_link_state;
  #define A_surfxml_link_state AX_surfxml_link_state
 -XBT_PUBLIC_DATA(short ) int surfxml_link_state_isset;
 -XBT_PUBLIC_DATA(AT_surfxml_ASroute_gw___src ) AX_surfxml_ASroute_gw___src;
 -#define A_surfxml_ASroute_gw___src (surfxml_bufferstack + AX_surfxml_ASroute_gw___src)
 -XBT_PUBLIC_DATA(short ) int surfxml_ASroute_gw___src_isset;
 +XBT_PUBLIC_DATA(AT_surfxml_ASroute_gw_src ) AX_surfxml_ASroute_gw_src;
 +#define A_surfxml_ASroute_gw_src (surfxml_bufferstack + AX_surfxml_ASroute_gw_src)
  XBT_PUBLIC_DATA(AT_surfxml_AS_routing ) AX_surfxml_AS_routing;
  #define A_surfxml_AS_routing AX_surfxml_AS_routing
 -XBT_PUBLIC_DATA(short ) int surfxml_AS_routing_isset;
  XBT_PUBLIC_DATA(AT_surfxml_link_bandwidth ) AX_surfxml_link_bandwidth;
  #define A_surfxml_link_bandwidth (surfxml_bufferstack + AX_surfxml_link_bandwidth)
 -XBT_PUBLIC_DATA(short ) int surfxml_link_bandwidth_isset;
  XBT_PUBLIC_DATA(AT_surfxml_cluster_id ) AX_surfxml_cluster_id;
  #define A_surfxml_cluster_id (surfxml_bufferstack + AX_surfxml_cluster_id)
 -XBT_PUBLIC_DATA(short ) int surfxml_cluster_id_isset;
 -XBT_PUBLIC_DATA(AT_surfxml_peer_bw___in ) AX_surfxml_peer_bw___in;
 -#define A_surfxml_peer_bw___in (surfxml_bufferstack + AX_surfxml_peer_bw___in)
 -XBT_PUBLIC_DATA(short ) int surfxml_peer_bw___in_isset;
 +XBT_PUBLIC_DATA(AT_surfxml_peer_bw_in ) AX_surfxml_peer_bw_in;
 +#define A_surfxml_peer_bw_in (surfxml_bufferstack + AX_surfxml_peer_bw_in)
  XBT_PUBLIC_DATA(AT_surfxml_random_mean ) AX_surfxml_random_mean;
  #define A_surfxml_random_mean (surfxml_bufferstack + AX_surfxml_random_mean)
 -XBT_PUBLIC_DATA(short ) int surfxml_random_mean_isset;
 -XBT_PUBLIC_DATA(AT_surfxml_storage___type_size ) AX_surfxml_storage___type_size;
 -#define A_surfxml_storage___type_size (surfxml_bufferstack + AX_surfxml_storage___type_size)
 -XBT_PUBLIC_DATA(short ) int surfxml_storage___type_size_isset;
 -XBT_PUBLIC_DATA(AT_surfxml_cluster_bb___lat ) AX_surfxml_cluster_bb___lat;
 -#define A_surfxml_cluster_bb___lat (surfxml_bufferstack + AX_surfxml_cluster_bb___lat)
 -XBT_PUBLIC_DATA(short ) int surfxml_cluster_bb___lat_isset;
 +XBT_PUBLIC_DATA(AT_surfxml_storage_type_size ) AX_surfxml_storage_type_size;
 +#define A_surfxml_storage_type_size (surfxml_bufferstack + AX_surfxml_storage_type_size)
 +XBT_PUBLIC_DATA(AT_surfxml_cluster_bb_lat ) AX_surfxml_cluster_bb_lat;
 +#define A_surfxml_cluster_bb_lat (surfxml_bufferstack + AX_surfxml_cluster_bb_lat)
  XBT_PUBLIC_DATA(AT_surfxml_link_latency ) AX_surfxml_link_latency;
  #define A_surfxml_link_latency (surfxml_bufferstack + AX_surfxml_link_latency)
 -XBT_PUBLIC_DATA(short ) int surfxml_link_latency_isset;
  XBT_PUBLIC_DATA(AT_surfxml_backbone_bandwidth ) AX_surfxml_backbone_bandwidth;
  #define A_surfxml_backbone_bandwidth (surfxml_bufferstack + AX_surfxml_backbone_bandwidth)
 -XBT_PUBLIC_DATA(short ) int surfxml_backbone_bandwidth_isset;
  XBT_PUBLIC_DATA(AT_surfxml_backbone_id ) AX_surfxml_backbone_id;
  #define A_surfxml_backbone_id (surfxml_bufferstack + AX_surfxml_backbone_id)
 -XBT_PUBLIC_DATA(short ) int surfxml_backbone_id_isset;
 -XBT_PUBLIC_DATA(AT_surfxml_trace___connect_kind ) AX_surfxml_trace___connect_kind;
 -#define A_surfxml_trace___connect_kind AX_surfxml_trace___connect_kind
 -XBT_PUBLIC_DATA(short ) int surfxml_trace___connect_kind_isset;
 +XBT_PUBLIC_DATA(AT_surfxml_trace_connect_kind ) AX_surfxml_trace_connect_kind;
 +#define A_surfxml_trace_connect_kind AX_surfxml_trace_connect_kind
  XBT_PUBLIC_DATA(AT_surfxml_cabinet_lat ) AX_surfxml_cabinet_lat;
  #define A_surfxml_cabinet_lat (surfxml_bufferstack + AX_surfxml_cabinet_lat)
 -XBT_PUBLIC_DATA(short ) int surfxml_cabinet_lat_isset;
  XBT_PUBLIC_DATA(AT_surfxml_random_seed ) AX_surfxml_random_seed;
  #define A_surfxml_random_seed (surfxml_bufferstack + AX_surfxml_random_seed)
 -XBT_PUBLIC_DATA(short ) int surfxml_random_seed_isset;
 -XBT_PUBLIC_DATA(AT_surfxml_cluster_state___file ) AX_surfxml_cluster_state___file;
 -#define A_surfxml_cluster_state___file (surfxml_bufferstack + AX_surfxml_cluster_state___file)
 -XBT_PUBLIC_DATA(short ) int surfxml_cluster_state___file_isset;
 -XBT_PUBLIC_DATA(AT_surfxml_link_bandwidth___file ) AX_surfxml_link_bandwidth___file;
 -#define A_surfxml_link_bandwidth___file (surfxml_bufferstack + AX_surfxml_link_bandwidth___file)
 -XBT_PUBLIC_DATA(short ) int surfxml_link_bandwidth___file_isset;
 -XBT_PUBLIC_DATA(AT_surfxml_storage___type_content ) AX_surfxml_storage___type_content;
 -#define A_surfxml_storage___type_content (surfxml_bufferstack + AX_surfxml_storage___type_content)
 -XBT_PUBLIC_DATA(short ) int surfxml_storage___type_content_isset;
 +XBT_PUBLIC_DATA(AT_surfxml_cluster_state_file ) AX_surfxml_cluster_state_file;
 +#define A_surfxml_cluster_state_file (surfxml_bufferstack + AX_surfxml_cluster_state_file)
 +XBT_PUBLIC_DATA(AT_surfxml_link_bandwidth_file ) AX_surfxml_link_bandwidth_file;
 +#define A_surfxml_link_bandwidth_file (surfxml_bufferstack + AX_surfxml_link_bandwidth_file)
 +XBT_PUBLIC_DATA(AT_surfxml_storage_type_content ) AX_surfxml_storage_type_content;
 +#define A_surfxml_storage_type_content (surfxml_bufferstack + AX_surfxml_storage_type_content)
  XBT_PUBLIC_DATA(AT_surfxml_route_symmetrical ) AX_surfxml_route_symmetrical;
  #define A_surfxml_route_symmetrical AX_surfxml_route_symmetrical
 -XBT_PUBLIC_DATA(short ) int surfxml_route_symmetrical_isset;
  XBT_PUBLIC_DATA(AT_surfxml_random_id ) AX_surfxml_random_id;
  #define A_surfxml_random_id (surfxml_bufferstack + AX_surfxml_random_id)
 -XBT_PUBLIC_DATA(short ) int surfxml_random_id_isset;
  XBT_PUBLIC_DATA(AT_surfxml_mstorage_name ) AX_surfxml_mstorage_name;
  #define A_surfxml_mstorage_name (surfxml_bufferstack + AX_surfxml_mstorage_name)
 -XBT_PUBLIC_DATA(short ) int surfxml_mstorage_name_isset;
  XBT_PUBLIC_DATA(AT_surfxml_random_max ) AX_surfxml_random_max;
  #define A_surfxml_random_max (surfxml_bufferstack + AX_surfxml_random_max)
 -XBT_PUBLIC_DATA(short ) int surfxml_random_max_isset;
  XBT_PUBLIC_DATA(AT_surfxml_link_id ) AX_surfxml_link_id;
  #define A_surfxml_link_id (surfxml_bufferstack + AX_surfxml_link_id)
 -XBT_PUBLIC_DATA(short ) int surfxml_link_id_isset;
  XBT_PUBLIC_DATA(AT_surfxml_process_host ) AX_surfxml_process_host;
  #define A_surfxml_process_host (surfxml_bufferstack + AX_surfxml_process_host)
 -XBT_PUBLIC_DATA(short ) int surfxml_process_host_isset;
  XBT_PUBLIC_DATA(AT_surfxml_cabinet_id ) AX_surfxml_cabinet_id;
  #define A_surfxml_cabinet_id (surfxml_bufferstack + AX_surfxml_cabinet_id)
 -XBT_PUBLIC_DATA(short ) int surfxml_cabinet_id_isset;
 -XBT_PUBLIC_DATA(AT_surfxml_host_availability___file ) AX_surfxml_host_availability___file;
 -#define A_surfxml_host_availability___file (surfxml_bufferstack + AX_surfxml_host_availability___file)
 -XBT_PUBLIC_DATA(short ) int surfxml_host_availability___file_isset;
 +XBT_PUBLIC_DATA(AT_surfxml_host_availability_file ) AX_surfxml_host_availability_file;
 +#define A_surfxml_host_availability_file (surfxml_bufferstack + AX_surfxml_host_availability_file)
  XBT_PUBLIC_DATA(AT_surfxml_cluster_lat ) AX_surfxml_cluster_lat;
  #define A_surfxml_cluster_lat (surfxml_bufferstack + AX_surfxml_cluster_lat)
 -XBT_PUBLIC_DATA(short ) int surfxml_cluster_lat_isset;
  XBT_PUBLIC_DATA(AT_surfxml_router_coordinates ) AX_surfxml_router_coordinates;
  #define A_surfxml_router_coordinates (surfxml_bufferstack + AX_surfxml_router_coordinates)
 -XBT_PUBLIC_DATA(short ) int surfxml_router_coordinates_isset;
  XBT_PUBLIC_DATA(AT_surfxml_trace_periodicity ) AX_surfxml_trace_periodicity;
  #define A_surfxml_trace_periodicity (surfxml_bufferstack + AX_surfxml_trace_periodicity)
 -XBT_PUBLIC_DATA(short ) int surfxml_trace_periodicity_isset;
 -XBT_PUBLIC_DATA(AT_surfxml_cluster_bb___sharing___policy ) AX_surfxml_cluster_bb___sharing___policy;
 -#define A_surfxml_cluster_bb___sharing___policy AX_surfxml_cluster_bb___sharing___policy
 -XBT_PUBLIC_DATA(short ) int surfxml_cluster_bb___sharing___policy_isset;
 -XBT_PUBLIC_DATA(AT_surfxml_peer_state___file ) AX_surfxml_peer_state___file;
 -#define A_surfxml_peer_state___file (surfxml_bufferstack + AX_surfxml_peer_state___file)
 -XBT_PUBLIC_DATA(short ) int surfxml_peer_state___file_isset;
 +XBT_PUBLIC_DATA(AT_surfxml_cluster_bb_sharing_policy ) AX_surfxml_cluster_bb_sharing_policy;
 +#define A_surfxml_cluster_bb_sharing_policy AX_surfxml_cluster_bb_sharing_policy
 +XBT_PUBLIC_DATA(AT_surfxml_peer_state_file ) AX_surfxml_peer_state_file;
 +#define A_surfxml_peer_state_file (surfxml_bufferstack + AX_surfxml_peer_state_file)
  XBT_PUBLIC_DATA(AT_surfxml_peer_coordinates ) AX_surfxml_peer_coordinates;
  #define A_surfxml_peer_coordinates (surfxml_bufferstack + AX_surfxml_peer_coordinates)
 -XBT_PUBLIC_DATA(short ) int surfxml_peer_coordinates_isset;
  XBT_PUBLIC_DATA(AT_surfxml_bypassASroute_src ) AX_surfxml_bypassASroute_src;
  #define A_surfxml_bypassASroute_src (surfxml_bufferstack + AX_surfxml_bypassASroute_src)
 -XBT_PUBLIC_DATA(short ) int surfxml_bypassASroute_src_isset;
  XBT_PUBLIC_DATA(AT_surfxml_prop_value ) AX_surfxml_prop_value;
  #define A_surfxml_prop_value (surfxml_bufferstack + AX_surfxml_prop_value)
 -XBT_PUBLIC_DATA(short ) int surfxml_prop_value_isset;
  XBT_PUBLIC_DATA(AT_surfxml_mstorage_typeId ) AX_surfxml_mstorage_typeId;
  #define A_surfxml_mstorage_typeId (surfxml_bufferstack + AX_surfxml_mstorage_typeId)
 -XBT_PUBLIC_DATA(short ) int surfxml_mstorage_typeId_isset;
  XBT_PUBLIC_DATA(AT_surfxml_ASroute_dst ) AX_surfxml_ASroute_dst;
  #define A_surfxml_ASroute_dst (surfxml_bufferstack + AX_surfxml_ASroute_dst)
 -XBT_PUBLIC_DATA(short ) int surfxml_ASroute_dst_isset;
 -XBT_PUBLIC_DATA(AT_surfxml_link_state___file ) AX_surfxml_link_state___file;
 -#define A_surfxml_link_state___file (surfxml_bufferstack + AX_surfxml_link_state___file)
 -XBT_PUBLIC_DATA(short ) int surfxml_link_state___file_isset;
 +XBT_PUBLIC_DATA(AT_surfxml_link_state_file ) AX_surfxml_link_state_file;
 +#define A_surfxml_link_state_file (surfxml_bufferstack + AX_surfxml_link_state_file)
  XBT_PUBLIC_DATA(AT_surfxml_random_radical ) AX_surfxml_random_radical;
  #define A_surfxml_random_radical (surfxml_bufferstack + AX_surfxml_random_radical)
 -XBT_PUBLIC_DATA(short ) int surfxml_random_radical_isset;
 -XBT_PUBLIC_DATA(AT_surfxml_bypassASroute_gw___src ) AX_surfxml_bypassASroute_gw___src;
 -#define A_surfxml_bypassASroute_gw___src (surfxml_bufferstack + AX_surfxml_bypassASroute_gw___src)
 -XBT_PUBLIC_DATA(short ) int surfxml_bypassASroute_gw___src_isset;
 -XBT_PUBLIC_DATA(AT_surfxml_trace___connect_trace ) AX_surfxml_trace___connect_trace;
 -#define A_surfxml_trace___connect_trace (surfxml_bufferstack + AX_surfxml_trace___connect_trace)
 -XBT_PUBLIC_DATA(short ) int surfxml_trace___connect_trace_isset;
 +XBT_PUBLIC_DATA(AT_surfxml_bypassASroute_gw_src ) AX_surfxml_bypassASroute_gw_src;
 +#define A_surfxml_bypassASroute_gw_src (surfxml_bufferstack + AX_surfxml_bypassASroute_gw_src)
 +XBT_PUBLIC_DATA(AT_surfxml_trace_connect_trace ) AX_surfxml_trace_connect_trace;
 +#define A_surfxml_trace_connect_trace (surfxml_bufferstack + AX_surfxml_trace_connect_trace)
  XBT_PUBLIC_DATA(AT_surfxml_mount_id ) AX_surfxml_mount_id;
  #define A_surfxml_mount_id (surfxml_bufferstack + AX_surfxml_mount_id)
 -XBT_PUBLIC_DATA(short ) int surfxml_mount_id_isset;
  XBT_PUBLIC_DATA(AT_surfxml_cluster_power ) AX_surfxml_cluster_power;
  #define A_surfxml_cluster_power (surfxml_bufferstack + AX_surfxml_cluster_power)
 -XBT_PUBLIC_DATA(short ) int surfxml_cluster_power_isset;
  XBT_PUBLIC_DATA(AT_surfxml_process_function ) AX_surfxml_process_function;
  #define A_surfxml_process_function (surfxml_bufferstack + AX_surfxml_process_function)
 -XBT_PUBLIC_DATA(short ) int surfxml_process_function_isset;
  XBT_PUBLIC_DATA(AT_surfxml_peer_id ) AX_surfxml_peer_id;
  #define A_surfxml_peer_id (surfxml_bufferstack + AX_surfxml_peer_id)
 -XBT_PUBLIC_DATA(short ) int surfxml_peer_id_isset;
 -XBT_PUBLIC_DATA(AT_surfxml_cluster_router___id ) AX_surfxml_cluster_router___id;
 -#define A_surfxml_cluster_router___id (surfxml_bufferstack + AX_surfxml_cluster_router___id)
 -XBT_PUBLIC_DATA(short ) int surfxml_cluster_router___id_isset;
 +XBT_PUBLIC_DATA(AT_surfxml_cluster_router_id ) AX_surfxml_cluster_router_id;
 +#define A_surfxml_cluster_router_id (surfxml_bufferstack + AX_surfxml_cluster_router_id)
  XBT_PUBLIC_DATA(AT_surfxml_cabinet_radical ) AX_surfxml_cabinet_radical;
  #define A_surfxml_cabinet_radical (surfxml_bufferstack + AX_surfxml_cabinet_radical)
 -XBT_PUBLIC_DATA(short ) int surfxml_cabinet_radical_isset;
 -XBT_PUBLIC_DATA(AT_surfxml_cluster_sharing___policy ) AX_surfxml_cluster_sharing___policy;
 -#define A_surfxml_cluster_sharing___policy AX_surfxml_cluster_sharing___policy
 -XBT_PUBLIC_DATA(short ) int surfxml_cluster_sharing___policy_isset;
 +XBT_PUBLIC_DATA(AT_surfxml_cluster_sharing_policy ) AX_surfxml_cluster_sharing_policy;
 +#define A_surfxml_cluster_sharing_policy AX_surfxml_cluster_sharing_policy
  XBT_PUBLIC_DATA(AT_surfxml_bypassRoute_dst ) AX_surfxml_bypassRoute_dst;
  #define A_surfxml_bypassRoute_dst (surfxml_bufferstack + AX_surfxml_bypassRoute_dst)
 -XBT_PUBLIC_DATA(short ) int surfxml_bypassRoute_dst_isset;
  XBT_PUBLIC_DATA(AT_surfxml_cabinet_power ) AX_surfxml_cabinet_power;
  #define A_surfxml_cabinet_power (surfxml_bufferstack + AX_surfxml_cabinet_power)
 -XBT_PUBLIC_DATA(short ) int surfxml_cabinet_power_isset;
  XBT_PUBLIC_DATA(AT_surfxml_host_core ) AX_surfxml_host_core;
  #define A_surfxml_host_core (surfxml_bufferstack + AX_surfxml_host_core)
 -XBT_PUBLIC_DATA(short ) int surfxml_host_core_isset;
 -XBT_PUBLIC_DATA(AT_surfxml_storage___type_model ) AX_surfxml_storage___type_model;
 -#define A_surfxml_storage___type_model (surfxml_bufferstack + AX_surfxml_storage___type_model)
 -XBT_PUBLIC_DATA(short ) int surfxml_storage___type_model_isset;
 +XBT_PUBLIC_DATA(AT_surfxml_storage_type_model ) AX_surfxml_storage_type_model;
 +#define A_surfxml_storage_type_model (surfxml_bufferstack + AX_surfxml_storage_type_model)
  XBT_PUBLIC_DATA(AT_surfxml_host_availability ) AX_surfxml_host_availability;
  #define A_surfxml_host_availability (surfxml_bufferstack + AX_surfxml_host_availability)
 -XBT_PUBLIC_DATA(short ) int surfxml_host_availability_isset;
  XBT_PUBLIC_DATA(AT_surfxml_bypassRoute_src ) AX_surfxml_bypassRoute_src;
  #define A_surfxml_bypassRoute_src (surfxml_bufferstack + AX_surfxml_bypassRoute_src)
 -XBT_PUBLIC_DATA(short ) int surfxml_bypassRoute_src_isset;
  XBT_PUBLIC_DATA(AT_surfxml_backbone_latency ) AX_surfxml_backbone_latency;
  #define A_surfxml_backbone_latency (surfxml_bufferstack + AX_surfxml_backbone_latency)
 -XBT_PUBLIC_DATA(short ) int surfxml_backbone_latency_isset;
  XBT_PUBLIC_DATA(AT_surfxml_route_src ) AX_surfxml_route_src;
  #define A_surfxml_route_src (surfxml_bufferstack + AX_surfxml_route_src)
 -XBT_PUBLIC_DATA(short ) int surfxml_route_src_isset;
  XBT_PUBLIC_DATA(AT_surfxml_storage_id ) AX_surfxml_storage_id;
  #define A_surfxml_storage_id (surfxml_bufferstack + AX_surfxml_storage_id)
 -XBT_PUBLIC_DATA(short ) int surfxml_storage_id_isset;
  XBT_PUBLIC_DATA(AT_surfxml_host_coordinates ) AX_surfxml_host_coordinates;
  #define A_surfxml_host_coordinates (surfxml_bufferstack + AX_surfxml_host_coordinates)
 -XBT_PUBLIC_DATA(short ) int surfxml_host_coordinates_isset;
  XBT_PUBLIC_DATA(AT_surfxml_trace_id ) AX_surfxml_trace_id;
  #define A_surfxml_trace_id (surfxml_bufferstack + AX_surfxml_trace_id)
 -XBT_PUBLIC_DATA(short ) int surfxml_trace_id_isset;
  XBT_PUBLIC_DATA(AT_surfxml_peer_power ) AX_surfxml_peer_power;
  #define A_surfxml_peer_power (surfxml_bufferstack + AX_surfxml_peer_power)
 -XBT_PUBLIC_DATA(short ) int surfxml_peer_power_isset;
  XBT_PUBLIC_DATA(AT_surfxml_cluster_radical ) AX_surfxml_cluster_radical;
  #define A_surfxml_cluster_radical (surfxml_bufferstack + AX_surfxml_cluster_radical)
 -XBT_PUBLIC_DATA(short ) int surfxml_cluster_radical_isset;
  XBT_PUBLIC_DATA(AT_surfxml_config_id ) AX_surfxml_config_id;
  #define A_surfxml_config_id (surfxml_bufferstack + AX_surfxml_config_id)
 -XBT_PUBLIC_DATA(short ) int surfxml_config_id_isset;
 -XBT_PUBLIC_DATA(AT_surfxml_bypassASroute_gw___dst ) AX_surfxml_bypassASroute_gw___dst;
 -#define A_surfxml_bypassASroute_gw___dst (surfxml_bufferstack + AX_surfxml_bypassASroute_gw___dst)
 -XBT_PUBLIC_DATA(short ) int surfxml_bypassASroute_gw___dst_isset;
 -XBT_PUBLIC_DATA(AT_surfxml_host___link_down ) AX_surfxml_host___link_down;
 -#define A_surfxml_host___link_down (surfxml_bufferstack + AX_surfxml_host___link_down)
 -XBT_PUBLIC_DATA(short ) int surfxml_host___link_down_isset;
 +XBT_PUBLIC_DATA(AT_surfxml_bypassASroute_gw_dst ) AX_surfxml_bypassASroute_gw_dst;
 +#define A_surfxml_bypassASroute_gw_dst (surfxml_bufferstack + AX_surfxml_bypassASroute_gw_dst)
 +XBT_PUBLIC_DATA(AT_surfxml_host_link_down ) AX_surfxml_host_link_down;
 +#define A_surfxml_host_link_down (surfxml_bufferstack + AX_surfxml_host_link_down)
  XBT_PUBLIC_DATA(AT_surfxml_include_file ) AX_surfxml_include_file;
  #define A_surfxml_include_file (surfxml_bufferstack + AX_surfxml_include_file)
 -XBT_PUBLIC_DATA(short ) int surfxml_include_file_isset;
 -XBT_PUBLIC_DATA(AT_surfxml_random_std___deviation ) AX_surfxml_random_std___deviation;
 -#define A_surfxml_random_std___deviation (surfxml_bufferstack + AX_surfxml_random_std___deviation)
 -XBT_PUBLIC_DATA(short ) int surfxml_random_std___deviation_isset;
 +XBT_PUBLIC_DATA(AT_surfxml_random_std_deviation ) AX_surfxml_random_std_deviation;
 +#define A_surfxml_random_std_deviation (surfxml_bufferstack + AX_surfxml_random_std_deviation)
  XBT_PUBLIC_DATA(AT_surfxml_cluster_core ) AX_surfxml_cluster_core;
  #define A_surfxml_cluster_core (surfxml_bufferstack + AX_surfxml_cluster_core)
 -XBT_PUBLIC_DATA(short ) int surfxml_cluster_core_isset;
 -XBT_PUBLIC_DATA(AT_surfxml_host_state___file ) AX_surfxml_host_state___file;
 -#define A_surfxml_host_state___file (surfxml_bufferstack + AX_surfxml_host_state___file)
 -XBT_PUBLIC_DATA(short ) int surfxml_host_state___file_isset;
 +XBT_PUBLIC_DATA(AT_surfxml_host_state_file ) AX_surfxml_host_state_file;
 +#define A_surfxml_host_state_file (surfxml_bufferstack + AX_surfxml_host_state_file)
  XBT_PUBLIC_DATA(AT_surfxml_route_dst ) AX_surfxml_route_dst;
  #define A_surfxml_route_dst (surfxml_bufferstack + AX_surfxml_route_dst)
 -XBT_PUBLIC_DATA(short ) int surfxml_route_dst_isset;
  XBT_PUBLIC_DATA(AT_surfxml_cluster_bw ) AX_surfxml_cluster_bw;
  #define A_surfxml_cluster_bw (surfxml_bufferstack + AX_surfxml_cluster_bw)
 -XBT_PUBLIC_DATA(short ) int surfxml_cluster_bw_isset;
  XBT_PUBLIC_DATA(AT_surfxml_platform_version ) AX_surfxml_platform_version;
  #define A_surfxml_platform_version (surfxml_bufferstack + AX_surfxml_platform_version)
 -XBT_PUBLIC_DATA(short ) int surfxml_platform_version_isset;
  
  /* XML application utilities. */
  XBT_PUBLIC(int ) surfxml_element_context(int);
diff --combined include/xbt/graphxml.h
@@@ -2,8 -2,8 +2,8 @@@
   *
   * This program was generated with the FleXML XML processor generator.
   * FleXML is Copyright (C) 1999-2005 Kristoffer Rose.  All rights reserved.
 - * FleXML is Copyright (C) 2003-2011 Martin Quinson.  All rights reserved.
 - * (Id: flexml.pl,v 1.69 2012/12/20 00:13:40 mquinson Exp).
 + * FleXML is Copyright (C) 2003-2006 Martin Quinson.  All rights reserved.
 + * (Id: flexml.pl,v 1.62 2007/10/11 10:00:14 mquinson Exp).
   * 
   * There are two, intertwined parts to this program, part A and part B.
   *
@@@ -12,7 -12,7 +12,7 @@@
   * 
   * Some parts, here collectively called "Part A", are found in the 
   * FleXML package.  They are Copyright (C) 1999-2005 Kristoffer Rose
 - * and Copyright (C) 2003-2011 Martin Quinson. All rights reserved.
 + * and Copyright (C) 2003-2006 Martin Quinson. All rights reserved.
   *
   * You can redistribute, use, perform, display and/or modify "Part A"
   * provided the following two conditions hold:
@@@ -60,10 -60,10 +60,10 @@@ typedef int AT_graphxml_node_name
  #define AU_graphxml_node_name NULL
  typedef int AT_graphxml_edge_source;
  #define AU_graphxml_edge_source NULL
- typedef int AT_graphxml_node_position_y;
- #define AU_graphxml_node_position_y NULL
- typedef int AT_graphxml_node_position_x;
- #define AU_graphxml_node_position_x NULL
+ typedef int AT_graphxml_node_position___y;
+ #define AU_graphxml_node_position___y NULL
+ typedef int AT_graphxml_node_position___x;
+ #define AU_graphxml_node_position___x NULL
  typedef int AT_graphxml_edge_data;
  #define AU_graphxml_edge_data NULL
  typedef int AT_graphxml_edge_target;
@@@ -86,28 -86,40 +86,28 @@@ XBT_PUBLIC_DATA(char *) graphxml_buffer
  #define graphxml_pcdata (graphxml_bufferstack + graphxml_pcdata_ix)
  XBT_PUBLIC_DATA(AT_graphxml_node_name ) AX_graphxml_node_name;
  #define A_graphxml_node_name (graphxml_bufferstack + AX_graphxml_node_name)
 -XBT_PUBLIC_DATA(short ) int graphxml_node_name_isset;
  XBT_PUBLIC_DATA(AT_graphxml_edge_source ) AX_graphxml_edge_source;
  #define A_graphxml_edge_source (graphxml_bufferstack + AX_graphxml_edge_source)
 -XBT_PUBLIC_DATA(short ) int graphxml_edge_source_isset;
 -XBT_PUBLIC_DATA(AT_graphxml_node_position___y ) AX_graphxml_node_position___y;
 -#define A_graphxml_node_position___y (graphxml_bufferstack + AX_graphxml_node_position___y)
 -XBT_PUBLIC_DATA(short ) int graphxml_node_position___y_isset;
 -XBT_PUBLIC_DATA(AT_graphxml_node_position___x ) AX_graphxml_node_position___x;
 -#define A_graphxml_node_position___x (graphxml_bufferstack + AX_graphxml_node_position___x)
 -XBT_PUBLIC_DATA(short ) int graphxml_node_position___x_isset;
 +XBT_PUBLIC_DATA(AT_graphxml_node_position_y ) AX_graphxml_node_position_y;
 +#define A_graphxml_node_position_y (graphxml_bufferstack + AX_graphxml_node_position_y)
 +XBT_PUBLIC_DATA(AT_graphxml_node_position_x ) AX_graphxml_node_position_x;
 +#define A_graphxml_node_position_x (graphxml_bufferstack + AX_graphxml_node_position_x)
  XBT_PUBLIC_DATA(AT_graphxml_edge_data ) AX_graphxml_edge_data;
  #define A_graphxml_edge_data (graphxml_bufferstack + AX_graphxml_edge_data)
 -XBT_PUBLIC_DATA(short ) int graphxml_edge_data_isset;
  XBT_PUBLIC_DATA(AT_graphxml_edge_target ) AX_graphxml_edge_target;
  #define A_graphxml_edge_target (graphxml_bufferstack + AX_graphxml_edge_target)
 -XBT_PUBLIC_DATA(short ) int graphxml_edge_target_isset;
  XBT_PUBLIC_DATA(AT_graphxml_graph_isDirected ) AX_graphxml_graph_isDirected;
  #define A_graphxml_graph_isDirected AX_graphxml_graph_isDirected
 -XBT_PUBLIC_DATA(short ) int graphxml_graph_isDirected_isset;
  XBT_PUBLIC_DATA(AT_graphxml_node_label ) AX_graphxml_node_label;
  #define A_graphxml_node_label (graphxml_bufferstack + AX_graphxml_node_label)
 -XBT_PUBLIC_DATA(short ) int graphxml_node_label_isset;
  XBT_PUBLIC_DATA(AT_graphxml_node_data ) AX_graphxml_node_data;
  #define A_graphxml_node_data (graphxml_bufferstack + AX_graphxml_node_data)
 -XBT_PUBLIC_DATA(short ) int graphxml_node_data_isset;
  XBT_PUBLIC_DATA(AT_graphxml_edge_label ) AX_graphxml_edge_label;
  #define A_graphxml_edge_label (graphxml_bufferstack + AX_graphxml_edge_label)
 -XBT_PUBLIC_DATA(short ) int graphxml_edge_label_isset;
  XBT_PUBLIC_DATA(AT_graphxml_edge_length ) AX_graphxml_edge_length;
  #define A_graphxml_edge_length (graphxml_bufferstack + AX_graphxml_edge_length)
 -XBT_PUBLIC_DATA(short ) int graphxml_edge_length_isset;
  XBT_PUBLIC_DATA(AT_graphxml_edge_name ) AX_graphxml_edge_name;
  #define A_graphxml_edge_name (graphxml_bufferstack + AX_graphxml_edge_name)
 -XBT_PUBLIC_DATA(short ) int graphxml_edge_name_isset;
  
  /* XML application utilities. */
  XBT_PUBLIC(int ) graphxml_element_context(int);
diff --combined src/instr/instr_config.c
@@@ -4,8 -4,9 +4,9 @@@
  /* This program is free software; you can redistribute it and/or modify it
    * under the terms of the license (GNU LGPL) which comes with this package. */
  
  #include "instr/instr_private.h"
+ #include "simgrid/sg_config.h"
+ #include "surf/surf.h"
  
  #ifdef HAVE_TRACING
  
@@@ -21,7 -22,6 +22,7 @@@ XBT_LOG_NEW_DEFAULT_SUBCATEGORY (instr_
  #define OPT_TRACING_CATEGORIZED   "tracing/categorized"
  #define OPT_TRACING_UNCATEGORIZED "tracing/uncategorized"
  #define OPT_TRACING_MSG_PROCESS   "tracing/msg/process"
 +#define OPT_TRACING_MSG_VM        "tracing/msg/vm"
  #define OPT_TRACING_FILENAME      "tracing/filename"
  #define OPT_TRACING_BUFFER        "tracing/buffer"
  #define OPT_TRACING_ONELINK_ONLY  "tracing/onelink_only"
@@@ -41,7 -41,6 +42,7 @@@ static int trace_smpi_computing
  static int trace_categorized;
  static int trace_uncategorized;
  static int trace_msg_process_enabled;
 +static int trace_msg_vm_enabled;
  static int trace_buffer;
  static int trace_onelink_only;
  static int trace_disable_destroy;
@@@ -50,22 -49,31 +51,24 @@@ static int trace_basic
  static int trace_configured = 0;
  static int trace_active = 0;
  
  static void TRACE_getopts(void)
  {
 -  trace_enabled = xbt_cfg_get_int(_sg_cfg_set, OPT_TRACING);
 -  trace_platform = xbt_cfg_get_int(_sg_cfg_set, OPT_TRACING_PLATFORM);
 -  trace_platform_topology = xbt_cfg_get_int(_sg_cfg_set, OPT_TRACING_TOPOLOGY);
 -  trace_smpi_enabled = xbt_cfg_get_int(_sg_cfg_set, OPT_TRACING_SMPI);
 -  trace_smpi_grouped = xbt_cfg_get_int(_sg_cfg_set, OPT_TRACING_SMPI_GROUP);
 -  trace_smpi_computing = xbt_cfg_get_int(_sg_cfg_set, OPT_TRACING_SMPI_COMPUTING);
 -  trace_categorized = xbt_cfg_get_int(_sg_cfg_set, OPT_TRACING_CATEGORIZED);
 -  trace_uncategorized = xbt_cfg_get_int(_sg_cfg_set, OPT_TRACING_UNCATEGORIZED);
 -  trace_msg_process_enabled = xbt_cfg_get_int(_sg_cfg_set, OPT_TRACING_MSG_PROCESS);
 -  trace_buffer = xbt_cfg_get_int(_sg_cfg_set, OPT_TRACING_BUFFER);
 -  trace_onelink_only = xbt_cfg_get_int(_sg_cfg_set, OPT_TRACING_ONELINK_ONLY);
 -  trace_disable_destroy = xbt_cfg_get_int(_sg_cfg_set, OPT_TRACING_DISABLE_DESTROY);
 -  trace_basic = xbt_cfg_get_int(_sg_cfg_set, OPT_TRACING_BASIC);
 -}
 -
 -xbt_dynar_t TRACE_start_functions = NULL;
 -void TRACE_add_start_function(void (*func) ())
 -{
 -  if (TRACE_start_functions == NULL)
 -    TRACE_start_functions = xbt_dynar_new(sizeof(void (*)()), NULL);
 -  xbt_dynar_push(TRACE_start_functions, &func);
 +  trace_enabled = xbt_cfg_get_int(_surf_cfg_set, OPT_TRACING);
 +  trace_platform = xbt_cfg_get_int(_surf_cfg_set, OPT_TRACING_PLATFORM);
 +  trace_platform_topology = xbt_cfg_get_int(_surf_cfg_set, OPT_TRACING_TOPOLOGY);
 +  trace_smpi_enabled = xbt_cfg_get_int(_surf_cfg_set, OPT_TRACING_SMPI);
 +  trace_smpi_grouped = xbt_cfg_get_int(_surf_cfg_set, OPT_TRACING_SMPI_GROUP);
 +  trace_smpi_computing = xbt_cfg_get_int(_surf_cfg_set, OPT_TRACING_SMPI_COMPUTING);
 +  trace_categorized = xbt_cfg_get_int(_surf_cfg_set, OPT_TRACING_CATEGORIZED);
 +  trace_uncategorized = xbt_cfg_get_int(_surf_cfg_set, OPT_TRACING_UNCATEGORIZED);
 +  trace_msg_process_enabled = xbt_cfg_get_int(_surf_cfg_set, OPT_TRACING_MSG_PROCESS);
 +  trace_msg_vm_enabled = xbt_cfg_get_int(_surf_cfg_set, OPT_TRACING_MSG_VM);
 +  trace_buffer = xbt_cfg_get_int(_surf_cfg_set, OPT_TRACING_BUFFER);
 +  trace_onelink_only = xbt_cfg_get_int(_surf_cfg_set, OPT_TRACING_ONELINK_ONLY);
 +  trace_disable_destroy = xbt_cfg_get_int(_surf_cfg_set, OPT_TRACING_DISABLE_DESTROY);
 +  trace_basic = xbt_cfg_get_int(_surf_cfg_set, OPT_TRACING_BASIC);
  }
  
  int TRACE_start()
    // tracing system must be:
    //    - enabled (with --cfg=tracing:1)
    //    - already configured (TRACE_global_init already called)
-   if (!(TRACE_is_enabled() && TRACE_is_configured())){
-     return 0;
-   }
-   XBT_DEBUG("Tracing starts");
-   /* open the trace file */
-   TRACE_paje_start();
-   /* activate trace */
-   if (trace_active == 1){
-     THROWF (tracing_error, 0, "Tracing is already active");
+   if (TRACE_is_enabled() && TRACE_is_configured()) {
+     XBT_DEBUG("Tracing starts");
+     /* open the trace file */
+     TRACE_paje_start();
+     /* activate trace */
+     if (trace_active == 1) {
+       THROWF(tracing_error, 0, "Tracing is already active");
+     }
+     trace_active = 1;
+     XBT_DEBUG("Tracing is on");
+     /* other trace initialization */
+     created_categories = xbt_dict_new_homogeneous(xbt_free);
+     declared_marks = xbt_dict_new_homogeneous(xbt_free);
+     user_host_variables = xbt_dict_new_homogeneous(xbt_free);
+     user_link_variables = xbt_dict_new_homogeneous(xbt_free);
+     if (TRACE_start_functions != NULL) {
+       void (*func) ();
+       unsigned int iter = xbt_dynar_length(TRACE_start_functions);
+       xbt_dynar_foreach(TRACE_start_functions, iter, func) {
+         func();
+       }
+     }
    }
 -  xbt_dynar_free(&TRACE_start_functions);
 +  trace_active = 1;
 +  XBT_DEBUG ("Tracing is on");
 +
 +  /* other trace initialization */
 +  created_categories = xbt_dict_new_homogeneous(xbt_free);
 +  declared_marks = xbt_dict_new_homogeneous (xbt_free);
 +  user_host_variables = xbt_dict_new_homogeneous (xbt_free);
 +  user_vm_variables = xbt_dict_new_homogeneous (xbt_free);
 +  user_link_variables = xbt_dict_new_homogeneous (xbt_free);
 +  TRACE_surf_alloc();
 +  TRACE_smpi_alloc();
    return 0;
  }
  
+ xbt_dynar_t TRACE_end_functions = NULL;
+ void TRACE_add_end_function(void (*func) (void))
+ {
+   if (TRACE_end_functions == NULL)
+     TRACE_end_functions = xbt_dynar_new(sizeof(void (*)(void)), NULL);
+   xbt_dynar_push(TRACE_end_functions, &func);
+ }
  int TRACE_end()
  {
 -  int retval;
 -  if (!trace_active) {
 -    retval = 1;
 -  } else {
 -    retval = 0;
 -
 -    TRACE_generate_viva_uncat_conf();
 -    TRACE_generate_viva_cat_conf();
 -
 -    /* dump trace buffer */
 -    TRACE_last_timestamp_to_dump = surf_get_clock();
 -    TRACE_paje_dump_buffer(1);
 -
 -    /* destroy all data structures of tracing (and free) */
 -    PJ_container_free_all();
 -    PJ_type_free_all();
 -    PJ_container_release();
 -    PJ_type_release();
 -
 -    if (TRACE_end_functions != NULL) {
 -      void (*func) (void);
 -      unsigned int iter;
 -      xbt_dynar_foreach(TRACE_end_functions, iter, func) {
 -        func();
 -      }
 -    }
 -
 -    xbt_dict_free(&user_link_variables);
 -    xbt_dict_free(&user_host_variables);
 -    xbt_dict_free(&declared_marks);
 -    xbt_dict_free(&created_categories);
 -
 -    /* close the trace file */
 -    TRACE_paje_end();
 -
 -    /* de-activate trace */
 -    trace_active = 0;
 -    XBT_DEBUG("Tracing is off");
 -    XBT_DEBUG("Tracing system is shutdown");
 -  }
 -  xbt_dynar_free(&TRACE_end_functions);
 -  return retval;
 +  if (!trace_active)
 +    return 1;
 +
 +  TRACE_generate_viva_uncat_conf();
 +  TRACE_generate_viva_cat_conf();
 +
 +  /* dump trace buffer */
 +  TRACE_last_timestamp_to_dump = surf_get_clock();
 +  TRACE_paje_dump_buffer(1);
 +
 +  /* destroy all data structures of tracing (and free) */
 +  PJ_container_free_all();
 +  PJ_type_free_all();
 +  PJ_container_release();
 +  PJ_type_release();
 +  TRACE_smpi_release();
 +  TRACE_surf_release();
 +  xbt_dict_free(&user_link_variables);
 +  xbt_dict_free(&user_host_variables);
 +  xbt_dict_free(&user_vm_variables);
 +
 +  xbt_dict_free(&declared_marks);
 +  xbt_dict_free(&created_categories);
 +
 +  /* close the trace file */
 +  TRACE_paje_end();
 +
 +  /* de-activate trace */
 +  trace_active = 0;
 +  XBT_DEBUG ("Tracing is off");
 +  XBT_DEBUG("Tracing system is shutdown");
 +  return 0;
  }
  
  int TRACE_needs_platform (void)
  {
    return TRACE_msg_process_is_enabled() ||
 +         TRACE_msg_vm_is_enabled() ||
           TRACE_categorized() ||
           TRACE_uncategorized() ||
           TRACE_platform () ||
@@@ -200,12 -229,6 +225,12 @@@ int TRACE_msg_process_is_enabled(void
    return trace_msg_process_enabled && TRACE_is_enabled();
  }
  
 +int TRACE_msg_vm_is_enabled(void)
 +{
 +  return trace_msg_vm_enabled && TRACE_is_enabled();
 +}
 +
 +
  int TRACE_buffer (void)
  {
    return trace_buffer && TRACE_is_enabled();
@@@ -228,160 -251,153 +253,160 @@@ int TRACE_basic (void
  
  char *TRACE_get_comment (void)
  {
-   return xbt_cfg_get_string(_surf_cfg_set, OPT_TRACING_COMMENT);
+   return xbt_cfg_get_string(_sg_cfg_set, OPT_TRACING_COMMENT);
  }
  
  char *TRACE_get_comment_file (void)
  {
-   return xbt_cfg_get_string(_surf_cfg_set, OPT_TRACING_COMMENT_FILE);
+   return xbt_cfg_get_string(_sg_cfg_set, OPT_TRACING_COMMENT_FILE);
  }
  
  char *TRACE_get_filename(void)
  {
-   return xbt_cfg_get_string(_surf_cfg_set, OPT_TRACING_FILENAME);
+   return xbt_cfg_get_string(_sg_cfg_set, OPT_TRACING_FILENAME);
  }
  
  char *TRACE_get_viva_uncat_conf (void)
  {
-   return xbt_cfg_get_string(_surf_cfg_set, OPT_VIVA_UNCAT_CONF);
+   return xbt_cfg_get_string(_sg_cfg_set, OPT_VIVA_UNCAT_CONF);
  }
  
  char *TRACE_get_viva_cat_conf (void)
  {
-   return xbt_cfg_get_string(_surf_cfg_set, OPT_VIVA_CAT_CONF);
+   return xbt_cfg_get_string(_sg_cfg_set, OPT_VIVA_CAT_CONF);
  }
  
  void TRACE_global_init(int *argc, char **argv)
  {
    /* name of the tracefile */
    char *default_tracing_filename = xbt_strdup("simgrid.trace");
-   xbt_cfg_register(&_surf_cfg_set, OPT_TRACING_FILENAME,
+   xbt_cfg_register(&_sg_cfg_set, OPT_TRACING_FILENAME,
                     "Trace file created by the instrumented SimGrid.",
                     xbt_cfgelm_string, &default_tracing_filename, 1, 1,
                     NULL, NULL);
  
    /* tracing */
    int default_tracing = 0;
-   xbt_cfg_register(&_surf_cfg_set, OPT_TRACING,
+   xbt_cfg_register(&_sg_cfg_set, OPT_TRACING,
                     "Enable Tracing.",
                     xbt_cfgelm_int, &default_tracing, 0, 1,
                     NULL, NULL);
  
    /* register platform in the trace */
    int default_tracing_platform = 0;
-   xbt_cfg_register(&_surf_cfg_set, OPT_TRACING_PLATFORM,
+   xbt_cfg_register(&_sg_cfg_set, OPT_TRACING_PLATFORM,
                     "Register the platform in the trace as a hierarchy.",
                     xbt_cfgelm_int, &default_tracing_platform, 0, 1,
                     NULL, NULL);
  
    /* register platform in the trace */
    int default_tracing_platform_topology = 1;
-   xbt_cfg_register(&_surf_cfg_set, OPT_TRACING_TOPOLOGY,
+   xbt_cfg_register(&_sg_cfg_set, OPT_TRACING_TOPOLOGY,
                     "Register the platform topology in the trace as a graph.",
                     xbt_cfgelm_int, &default_tracing_platform_topology, 0, 1,
                     NULL, NULL);
  
    /* smpi */
    int default_tracing_smpi = 0;
-   xbt_cfg_register(&_surf_cfg_set, OPT_TRACING_SMPI,
+   xbt_cfg_register(&_sg_cfg_set, OPT_TRACING_SMPI,
                     "Tracing of the SMPI interface.",
                     xbt_cfgelm_int, &default_tracing_smpi, 0, 1,
                     NULL, NULL);
  
    /* smpi grouped */
    int default_tracing_smpi_grouped = 0;
-   xbt_cfg_register(&_surf_cfg_set, OPT_TRACING_SMPI_GROUP,
+   xbt_cfg_register(&_sg_cfg_set, OPT_TRACING_SMPI_GROUP,
                     "Group MPI processes by host.",
                     xbt_cfgelm_int, &default_tracing_smpi_grouped, 0, 1,
                     NULL, NULL);
  
    /* smpi computing */
    int default_tracing_smpi_computing = 0;
-   xbt_cfg_register(&_surf_cfg_set, OPT_TRACING_SMPI_COMPUTING,
+   xbt_cfg_register(&_sg_cfg_set, OPT_TRACING_SMPI_COMPUTING,
                     "Generate states for timing out of SMPI parts of the application",
                     xbt_cfgelm_int, &default_tracing_smpi_computing, 0, 1,
                     NULL, NULL);
  
    /* tracing categorized resource utilization traces */
    int default_tracing_categorized = 0;
-   xbt_cfg_register(&_surf_cfg_set, OPT_TRACING_CATEGORIZED,
+   xbt_cfg_register(&_sg_cfg_set, OPT_TRACING_CATEGORIZED,
                     "Tracing categorized resource utilization of hosts and links.",
                     xbt_cfgelm_int, &default_tracing_categorized, 0, 1,
                     NULL, NULL);
  
    /* tracing uncategorized resource utilization */
    int default_tracing_uncategorized = 0;
-   xbt_cfg_register(&_surf_cfg_set, OPT_TRACING_UNCATEGORIZED,
+   xbt_cfg_register(&_sg_cfg_set, OPT_TRACING_UNCATEGORIZED,
                     "Tracing uncategorized resource utilization of hosts and links.",
                     xbt_cfgelm_int, &default_tracing_uncategorized, 0, 1,
                     NULL, NULL);
  
    /* msg process */
    int default_tracing_msg_process = 0;
-   xbt_cfg_register(&_surf_cfg_set, OPT_TRACING_MSG_PROCESS,
+   xbt_cfg_register(&_sg_cfg_set, OPT_TRACING_MSG_PROCESS,
                     "Tracing of MSG process behavior.",
                     xbt_cfgelm_int, &default_tracing_msg_process, 0, 1,
                     NULL, NULL);
  
 +  /* msg process */
 +  int default_tracing_msg_vm = 0;
 +  xbt_cfg_register(&_surf_cfg_set, OPT_TRACING_MSG_VM,
 +                   "Tracing of MSG process behavior.",
 +                   xbt_cfgelm_int, &default_tracing_msg_vm, 0, 1,
 +                   NULL, NULL);
 +
    /* tracing buffer */
    int default_buffer = 1;
-   xbt_cfg_register(&_surf_cfg_set, OPT_TRACING_BUFFER,
+   xbt_cfg_register(&_sg_cfg_set, OPT_TRACING_BUFFER,
                     "Buffer trace events to put them in temporal order.",
                     xbt_cfgelm_int, &default_buffer, 0, 1,
                     NULL, NULL);
  
    /* tracing one link only */
    int default_onelink_only = 0;
-   xbt_cfg_register(&_surf_cfg_set, OPT_TRACING_ONELINK_ONLY,
+   xbt_cfg_register(&_sg_cfg_set, OPT_TRACING_ONELINK_ONLY,
                     "Use only routes with one link to trace platform.",
                     xbt_cfgelm_int, &default_onelink_only, 0, 1,
                     NULL, NULL);
  
    /* disable destroy */
    int default_disable_destroy = 0;
-   xbt_cfg_register(&_surf_cfg_set, OPT_TRACING_DISABLE_DESTROY,
+   xbt_cfg_register(&_sg_cfg_set, OPT_TRACING_DISABLE_DESTROY,
                     "Disable platform containers destruction.",
                     xbt_cfgelm_int, &default_disable_destroy, 0, 1,
                     NULL, NULL);
  
    /* basic -- Avoid extended events (impoverished trace file) */
    int default_basic = 0;
-   xbt_cfg_register(&_surf_cfg_set, OPT_TRACING_BASIC,
+   xbt_cfg_register(&_sg_cfg_set, OPT_TRACING_BASIC,
                     "Avoid extended events (impoverished trace file).",
                     xbt_cfgelm_int, &default_basic, 0, 1,
                     NULL, NULL);
  
    /* comment */
    char *default_tracing_comment = xbt_strdup ("");
-   xbt_cfg_register(&_surf_cfg_set, OPT_TRACING_COMMENT,
+   xbt_cfg_register(&_sg_cfg_set, OPT_TRACING_COMMENT,
                     "Comment to be added on the top of the trace file.",
                     xbt_cfgelm_string, &default_tracing_comment, 1, 1,
                     NULL, NULL);
  
    /* comment_file */
    char *default_tracing_comment_file = xbt_strdup ("");
-   xbt_cfg_register(&_surf_cfg_set, OPT_TRACING_COMMENT_FILE,
+   xbt_cfg_register(&_sg_cfg_set, OPT_TRACING_COMMENT_FILE,
                     "The contents of the file are added to the top of the trace file as comment.",
                     xbt_cfgelm_string, &default_tracing_comment_file, 1, 1,
                     NULL, NULL);
  
    /* Viva graph configuration for uncategorized tracing */
    char *default_viva_uncat_conf_file = xbt_strdup ("");
-   xbt_cfg_register(&_surf_cfg_set, OPT_VIVA_UNCAT_CONF,
+   xbt_cfg_register(&_sg_cfg_set, OPT_VIVA_UNCAT_CONF,
                     "Viva Graph configuration file for uncategorized resource utilization traces.",
                     xbt_cfgelm_string, &default_viva_uncat_conf_file, 1, 1,
                     NULL, NULL);
  
    /* Viva graph configuration for uncategorized tracing */
    char *default_viva_cat_conf_file = xbt_strdup ("");
-   xbt_cfg_register(&_surf_cfg_set, OPT_VIVA_CAT_CONF,
+   xbt_cfg_register(&_sg_cfg_set, OPT_VIVA_CAT_CONF,
                     "Viva Graph configuration file for categorized resource utilization traces.",
                     xbt_cfgelm_string, &default_viva_cat_conf_file, 1, 1,
                     NULL, NULL);
@@@ -5,6 -5,9 +5,9 @@@
    * under the terms of the license (GNU LGPL) which comes with this package. */
  
  #include "instr/instr_private.h"
+ #include "xbt/lib.h"
+ #include "surf/surf.h"
+ #include "surf/surf_routing.h"
  
  #ifdef HAVE_TRACING
  
@@@ -104,7 -107,6 +107,7 @@@ container_t PJ_container_new (const cha
        case INSTR_ROUTER:      snprintf (typename, INSTR_DEFAULT_STR_SIZE, "ROUTER");      break;
        case INSTR_SMPI:        snprintf (typename, INSTR_DEFAULT_STR_SIZE, "MPI");         break;
        case INSTR_MSG_PROCESS: snprintf (typename, INSTR_DEFAULT_STR_SIZE, "MSG_PROCESS"); break;
 +      case INSTR_MSG_VM: snprintf (typename, INSTR_DEFAULT_STR_SIZE, "MSG_VM"); break;
        case INSTR_MSG_TASK:    snprintf (typename, INSTR_DEFAULT_STR_SIZE, "MSG_TASK");    break;
        default: THROWF (tracing_error, 0, "new container kind is unknown."); break;
      }
@@@ -7,6 -7,8 +7,8 @@@
  #ifndef INSTR_PRIVATE_H_
  #define INSTR_PRIVATE_H_
  
+ #include "instr/instr.h"
+ #include "instr/instr_interface.h"
  #include "simgrid_config.h"
  
  #ifdef HAVE_TRACING
  
  #define INSTR_DEFAULT_STR_SIZE 500
  
- #include "instr/instr.h"
- #include "msg/msg.h"
- #include "simdag/private.h"
- #include "simix/smx_private.h"
- #include "xbt/graph_private.h"
+ #include "xbt/graph.h"
+ #include "xbt/dict.h"
+ #include "simgrid/platf.h"
  
  typedef enum {
    PAJE_DefineContainerType,
@@@ -78,7 -78,6 +78,7 @@@ typedef enum 
    INSTR_ROUTER,
    INSTR_AS,
    INSTR_SMPI,
 +  INSTR_MSG_VM,
    INSTR_MSG_PROCESS,
    INSTR_MSG_TASK
  } e_container_types;
@@@ -98,7 -97,6 +98,7 @@@ typedef struct s_container 
  extern xbt_dict_t created_categories;
  extern xbt_dict_t declared_marks;
  extern xbt_dict_t user_host_variables;
 +extern xbt_dict_t user_vm_variables;
  extern xbt_dict_t user_link_variables;
  extern double TRACE_last_timestamp_to_dump;
  
@@@ -128,75 -126,10 +128,56 @@@ void new_pajeStartLink (double timestam
  void new_pajeEndLink (double timestamp, container_t container, type_t type, container_t destContainer, const char *value, const char *key);
  void new_pajeNewEvent (double timestamp, container_t container, type_t type, val_t value);
  
 +/* declaration of instrumentation functions from msg_task_instr.c */
 +void TRACE_msg_set_task_category(msg_task_t task, const char *category);
 +void TRACE_msg_task_create(msg_task_t task);
 +void TRACE_msg_task_execute_start(msg_task_t task);
 +void TRACE_msg_task_execute_end(msg_task_t task);
 +void TRACE_msg_task_destroy(msg_task_t task);
 +void TRACE_msg_task_get_start(void);
 +void TRACE_msg_task_get_end(double start_time, msg_task_t task);
 +int TRACE_msg_task_put_start(msg_task_t task);    //returns TRUE if the task_put_end must be called
 +void TRACE_msg_task_put_end(void);
 +
 +/* declaration of instrumentation functions from msg_process_instr.c */
 +char *instr_process_id (msg_process_t proc, char *str, int len);
 +char *instr_process_id_2 (const char *process_name, int process_pid, char *str, int len);
 +void TRACE_msg_process_change_host(msg_process_t process, msg_host_t old_host,
 +                                   msg_host_t new_host);
 +void TRACE_msg_process_create (const char *process_name, int process_pid, msg_host_t host);
 +void TRACE_msg_process_destroy (const char *process_name, int process_pid, msg_host_t host);
 +void TRACE_msg_process_kill(msg_process_t process);
 +void TRACE_msg_process_suspend(msg_process_t process);
 +void TRACE_msg_process_resume(msg_process_t process);
 +void TRACE_msg_process_sleep_in(msg_process_t process);   //called from msg/gos.c
 +void TRACE_msg_process_sleep_out(msg_process_t process);
 +void TRACE_msg_process_end(msg_process_t process);
 +
 +/* declaration of instrumentation functions from instr_msg_vm.c */
 +char *instr_vm_id (msg_vm_t vm, char *str, int len);
 +char *instr_vm_id_2 (const char *vm_name, char *str, int len);
 +void TRACE_msg_vm_change_host(msg_vm_t vm, msg_host_t old_host,
 +                                   msg_host_t new_host);
 +void TRACE_msg_vm_create (const char *vm_name, msg_host_t host);
 +void TRACE_msg_vm_kill(msg_vm_t process);
 +void TRACE_msg_vm_suspend(msg_vm_t vm);
 +void TRACE_msg_vm_resume(msg_vm_t vm);
 +void TRACE_msg_vm_sleep_in(msg_vm_t vm); 
 +void TRACE_msg_vm_sleep_out(msg_vm_t vm);
 +void TRACE_msg_vm_end(msg_vm_t vm);
 +
 +/* from surf_instr.c */
 +void TRACE_surf_alloc(void);
 +void TRACE_surf_release(void);
 +void TRACE_surf_host_set_power(double date, const char *resource, double power);
 +void TRACE_surf_link_set_bandwidth(double date, const char *resource, double bandwidth);
 +void TRACE_surf_link_set_latency(double date, const char *resource, double latency);
 +void TRACE_surf_action(surf_action_t surf_action, const char *category);
 +
  //for tracing gtnets
  void TRACE_surf_gtnets_communicate(void *action, void *src, void *dst);
  
- /* from smpi_instr.c */
- void TRACE_internal_smpi_set_category (const char *category);
- const char *TRACE_internal_smpi_get_category (void);
- void TRACE_smpi_alloc(void);
- void TRACE_smpi_release(void);
- void TRACE_smpi_init(int rank);
- void TRACE_smpi_finalize(int rank);
- void TRACE_smpi_collective_in(int rank, int root, const char *operation);
- void TRACE_smpi_collective_out(int rank, int root, const char *operation);
- void TRACE_smpi_computing_init(int rank);
- void TRACE_smpi_computing_out(int rank);
- void TRACE_smpi_computing_in(int rank);
- void TRACE_smpi_ptp_in(int rank, int src, int dst, const char *operation);
- void TRACE_smpi_ptp_out(int rank, int src, int dst, const char *operation);
- void TRACE_smpi_send(int rank, int src, int dst);
- void TRACE_smpi_recv(int rank, int src, int dst);
  /* from instr_config.c */
- int TRACE_start (void);
- int TRACE_end (void);
  int TRACE_needs_platform (void);
  int TRACE_is_enabled(void);
  int TRACE_platform(void);
@@@ -217,8 -150,6 +198,6 @@@ char *TRACE_get_comment_file (void)
  char *TRACE_get_filename(void);
  char *TRACE_get_viva_uncat_conf (void);
  char *TRACE_get_viva_cat_conf (void);
- void TRACE_global_init(int *argc, char **argv);
- void TRACE_help(int detailed);
  void TRACE_generate_viva_uncat_conf (void);
  void TRACE_generate_viva_cat_conf (void);
  void instr_pause_tracing (void);
@@@ -236,7 -167,6 +215,6 @@@ void TRACE_surf_link_set_utilization(co
                                       double now,
                                       double delta);
  void TRACE_surf_resource_utilization_alloc(void);
- void TRACE_surf_resource_utilization_release(void);
  
  /* instr_paje.c */
  extern xbt_dict_t trivaNodeTypes;
@@@ -273,16 -203,6 +251,6 @@@ val_t PJ_value_get_or_new (const char *
  val_t PJ_value_get (const char *name, const type_t father);
  void PJ_value_free (val_t value);
  
- /* instr_routing.c */
- void instr_routing_define_callbacks (void);
- void instr_new_variable_type (const char *new_typename, const char *color);
- void instr_new_user_variable_type  (const char *father_type, const char *new_typename, const char *color);
- void instr_new_user_state_type (const char *father_type, const char *new_typename);
- void instr_new_value_for_user_state_type (const char *typename, const char *value, const char *color);
- int instr_platform_traced (void);
- xbt_graph_t instr_routing_platform_graph (void);
- void instr_routing_platform_graph_export_graphviz (xbt_graph_t g, const char *filename);
  #endif /* HAVE_TRACING */
  
  #ifdef HAVE_JEDULE
diff --combined src/msg/msg_private.h
@@@ -91,13 -91,12 +91,13 @@@ typedef struct msg_comm 
    msg_task_t *task_received;      /* where the task will be received (NULL for the sender) */
    msg_error_t status;           /* status of the communication once finished */
  } s_msg_comm_t;
 -
 +/*
  typedef enum {
    msg_vm_state_suspended, msg_vm_state_running, msg_vm_state_migrating
  } e_msg_vm_state_t;
  
  typedef struct msg_vm {
 +  const char *name;
    s_xbt_swag_hookup_t all_vms_hookup;
    s_xbt_swag_hookup_t host_vms_hookup;
    xbt_dynar_t processes;
    msg_host_t location;
    int coreAmount;
  } s_msg_vm_t;
 -
 +*/
  /************************** Global variables ********************************/
  typedef struct MSG_Global {
    xbt_fifo_t host;
@@@ -155,5 -154,31 +155,31 @@@ void _MSG_action_exit(void)
  
  void MSG_post_create_environment(void);
  
+ /********** Tracing **********/
+ /* declaration of instrumentation functions from msg_task_instr.c */
+ void TRACE_msg_set_task_category(msg_task_t task, const char *category);
+ void TRACE_msg_task_create(msg_task_t task);
+ void TRACE_msg_task_execute_start(msg_task_t task);
+ void TRACE_msg_task_execute_end(msg_task_t task);
+ void TRACE_msg_task_destroy(msg_task_t task);
+ void TRACE_msg_task_get_start(void);
+ void TRACE_msg_task_get_end(double start_time, msg_task_t task);
+ int TRACE_msg_task_put_start(msg_task_t task);    //returns TRUE if the task_put_end must be called
+ void TRACE_msg_task_put_end(void);
+ /* declaration of instrumentation functions from msg_process_instr.c */
+ char *instr_process_id (msg_process_t proc, char *str, int len);
+ char *instr_process_id_2 (const char *process_name, int process_pid, char *str, int len);
+ void TRACE_msg_process_change_host(msg_process_t process, msg_host_t old_host,
+                                    msg_host_t new_host);
+ void TRACE_msg_process_create (const char *process_name, int process_pid, msg_host_t host);
+ void TRACE_msg_process_destroy (const char *process_name, int process_pid, msg_host_t host);
+ void TRACE_msg_process_kill(msg_process_t process);
+ void TRACE_msg_process_suspend(msg_process_t process);
+ void TRACE_msg_process_resume(msg_process_t process);
+ void TRACE_msg_process_sleep_in(msg_process_t process);   //called from msg/gos.c
+ void TRACE_msg_process_sleep_out(msg_process_t process);
+ void TRACE_msg_process_end(msg_process_t process);
  SG_END_DECL()
  #endif
diff --combined src/surf/instr_routing.c
@@@ -165,15 -165,10 +165,15 @@@ static void recursiveGraphExtraction (A
    container_t child1, child2;
    const char *child1_name, *child2_name;
    xbt_dict_foreach(container->children, cursor1, child1_name, child1) {
 -    if (graph_extraction_filter_out (child1, NULL)) continue;
 +    //if child1 is not a link, a smpi node, a msg process, a msg vm or a msg task
 +    if (child1->kind == INSTR_LINK || child1->kind == INSTR_SMPI || child1->kind == INSTR_MSG_PROCESS || child1->kind == INSTR_MSG_VM || child1->kind == INSTR_MSG_TASK) continue;
 +
      xbt_dict_foreach(container->children, cursor2, child2_name, child2) {
 -      if (graph_extraction_filter_out (child2, child1)) continue;
 -      XBT_DEBUG ("get_route from %s to %s", child1_name, child2_name);
 +      //if child2 is not a link, a smpi node, a msg process, a msg vm or a msg task
 +      if (child2->kind == INSTR_LINK || child2->kind == INSTR_SMPI || child2->kind == INSTR_MSG_PROCESS || child2->kind == INSTR_MSG_VM || child2->kind == INSTR_MSG_TASK) continue;
 +
 +      //if child1 is not child2
 +      if (strcmp (child1_name, child2_name) == 0) continue;
  
        //get the route
        sg_platf_route_cbarg_t route = xbt_new0(s_sg_platf_route_cbarg_t,1);
@@@ -351,22 -346,6 +351,22 @@@ static void instr_routing_parse_start_h
        PJ_type_link_new ("MSG_PROCESS_TASK_LINK", PJ_type_get_root(), msg_process, msg_process);
      }
    }
 +
 +  if (TRACE_msg_vm_is_enabled()) {
 +    type_t msg_vm = PJ_type_get_or_null ("MSG_VM", new->type);
 +    if (msg_vm == NULL){
 +      msg_vm = PJ_type_container_new("MSG_VM", new->type);
 +      type_t state = PJ_type_state_new ("MSG_VM_STATE", msg_vm);
 +      PJ_value_new ("suspend", "1 0 1", state);
 +      PJ_value_new ("sleep", "1 1 0", state);
 +      PJ_value_new ("receive", "1 0 0", state);
 +      PJ_value_new ("send", "0 0 1", state);
 +      PJ_value_new ("task_execute", "0 1 1", state);
 +      PJ_type_link_new ("MSG_VM_LINK", PJ_type_get_root(), msg_vm, msg_vm);
 +      PJ_type_link_new ("MSG_VM_PROCESS_LINK", PJ_type_get_root(), msg_vm, msg_vm);
 +    }
 +  }
 +
  }
  
  static void instr_routing_parse_start_router (sg_platf_router_cbarg_t router)
@@@ -413,12 -392,7 +413,12 @@@ static void recursiveNewVariableType (c
      snprintf (tnstr, INSTR_DEFAULT_STR_SIZE, "p%s", new_typename);
      PJ_type_variable_new (tnstr, color, root);
    }
 -  if (!strcmp (root->name, "LINK")){
 +  if (!strcmp (root->name, "MSG_VM")){
 +    char tnstr[INSTR_DEFAULT_STR_SIZE];
 +    snprintf (tnstr, INSTR_DEFAULT_STR_SIZE, "p%s", new_typename);
 +    PJ_type_variable_new (tnstr, color, root);
 +  }
 + if (!strcmp (root->name, "LINK")){
      char tnstr[INSTR_DEFAULT_STR_SIZE];
      snprintf (tnstr, INSTR_DEFAULT_STR_SIZE, "b%s", new_typename);
      PJ_type_variable_new (tnstr, color, root);
@@@ -515,7 -489,7 +515,7 @@@ static xbt_edge_t new_xbt_graph_edge (x
    const char *sn = instr_node_name (s);
    const char *dn = instr_node_name (d);
    int len = strlen(sn)+strlen(dn)+1;
-   char *name = (char*)malloc(len * sizeof(char));
+   char *name = (char*)xbt_malloc(len * sizeof(char));
  
  
    snprintf (name, len, "%s%s", sn, dn);
@@@ -552,12 -526,12 +552,12 @@@ static void recursiveXBTGraphExtractio
    container_t child1, child2;
    const char *child1_name, *child2_name;
    xbt_dict_foreach(container->children, cursor1, child1_name, child1) {
 -    //if child1 is not a link, a smpi node, a msg process or a msg task
 -    if (child1->kind == INSTR_LINK || child1->kind == INSTR_SMPI || child1->kind == INSTR_MSG_PROCESS || child1->kind == INSTR_MSG_TASK) continue;
 +    //if child1 is not a link, a smpi node, a msg process, a msg vm or a msg task
 +    if (child1->kind == INSTR_LINK || child1->kind == INSTR_SMPI || child1->kind == INSTR_MSG_PROCESS || child1->kind == INSTR_MSG_VM || child1->kind == INSTR_MSG_TASK) continue;
  
      xbt_dict_foreach(container->children, cursor2, child2_name, child2) {
        //if child2 is not a link, a smpi node, a msg process or a msg task
 -      if (child2->kind == INSTR_LINK || child2->kind == INSTR_SMPI || child2->kind == INSTR_MSG_PROCESS || child2->kind == INSTR_MSG_TASK) continue;
 +      if (child2->kind == INSTR_LINK || child2->kind == INSTR_SMPI || child2->kind == INSTR_MSG_PROCESS || child2->kind == INSTR_MSG_VM || child2->kind == INSTR_MSG_TASK) continue;
  
        //if child1 is not child2
        if (strcmp (child1_name, child2_name) == 0) continue;
diff --combined src/surf/simgrid_dtd.c
@@@ -4356,8 -4356,8 +4356,8 @@@ char *surf_parse_text
   *
   * This program was generated with the FleXML XML processor generator.
   * FleXML is Copyright (C) 1999-2005 Kristoffer Rose.  All rights reserved.
 - * FleXML is Copyright (C) 2003-2011 Martin Quinson.  All rights reserved.
 - * (Id: flexml.pl,v 1.69 2012/12/20 00:13:40 mquinson Exp).
 + * FleXML is Copyright (C) 2003-2006 Martin Quinson.  All rights reserved.
 + * (Id: flexml.pl,v 1.62 2007/10/11 10:00:14 mquinson Exp).
   * 
   * There are two, intertwined parts to this program, part A and part B.
   *
   * 
   * Some parts, here collectively called "Part A", are found in the 
   * FleXML package.  They are Copyright (C) 1999-2005 Kristoffer Rose
 - * and Copyright (C) 2003-2011 Martin Quinson. All rights reserved.
 + * and Copyright (C) 2003-2006 Martin Quinson. All rights reserved.
   *
   * You can redistribute, use, perform, display and/or modify "Part A"
   * provided the following two conditions hold:
  const char rcs_surfxml_flexml_skeleton[] =
   "$" "Id: skel,v 1.40 2007/10/11 09:57:24 mquinson Exp $";
  const char rcs_surfxml_flexml[] =
 - "$" "Id: flexml.pl,v 1.69 2012/12/20 00:13:40 mquinson Exp $";
 + "$" "Id: flexml.pl,v 1.62 2007/10/11 10:00:14 mquinson Exp $";
  
  /* ANSI headers. */
  #include <stdlib.h> /* for realloc() -- needed here when using flex 2.5.4 */
@@@ -4439,222 -4439,331 +4439,224 @@@ extern char *surfxml_bufferstack
  #define surfxml_pcdata (surfxml_bufferstack + surfxml_pcdata_ix)
  AT_surfxml_mount_name AX_surfxml_mount_name;
  #define A_surfxml_mount_name (surfxml_bufferstack + AX_surfxml_mount_name)
 -short int surfxml_mount_name_isset;
  AT_surfxml_random_generator AX_surfxml_random_generator;
  #define A_surfxml_random_generator AX_surfxml_random_generator
 -short int surfxml_random_generator_isset;
 -AT_surfxml_ASroute_gw___dst AX_surfxml_ASroute_gw___dst;
 -#define A_surfxml_ASroute_gw___dst (surfxml_bufferstack + AX_surfxml_ASroute_gw___dst)
 -short int surfxml_ASroute_gw___dst_isset;
 -AT_surfxml_trace___connect_element AX_surfxml_trace___connect_element;
 -#define A_surfxml_trace___connect_element (surfxml_bufferstack + AX_surfxml_trace___connect_element)
 -short int surfxml_trace___connect_element_isset;
 +AT_surfxml_ASroute_gw_dst AX_surfxml_ASroute_gw_dst;
 +#define A_surfxml_ASroute_gw_dst (surfxml_bufferstack + AX_surfxml_ASroute_gw_dst)
 +AT_surfxml_trace_connect_element AX_surfxml_trace_connect_element;
 +#define A_surfxml_trace_connect_element (surfxml_bufferstack + AX_surfxml_trace_connect_element)
  AT_surfxml_prop_id AX_surfxml_prop_id;
  #define A_surfxml_prop_id (surfxml_bufferstack + AX_surfxml_prop_id)
 -short int surfxml_prop_id_isset;
 -AT_surfxml_host___link_up AX_surfxml_host___link_up;
 -#define A_surfxml_host___link_up (surfxml_bufferstack + AX_surfxml_host___link_up)
 -short int surfxml_host___link_up_isset;
 +AT_surfxml_host_link_up AX_surfxml_host_link_up;
 +#define A_surfxml_host_link_up (surfxml_bufferstack + AX_surfxml_host_link_up)
  AT_surfxml_host_id AX_surfxml_host_id;
  #define A_surfxml_host_id (surfxml_bufferstack + AX_surfxml_host_id)
 -short int surfxml_host_id_isset;
  AT_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical;
  #define A_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical
 -short int surfxml_ASroute_symmetrical_isset;
  AT_surfxml_peer_lat AX_surfxml_peer_lat;
  #define A_surfxml_peer_lat (surfxml_bufferstack + AX_surfxml_peer_lat)
 -short int surfxml_peer_lat_isset;
 -AT_surfxml_process_on___failure AX_surfxml_process_on___failure;
 -#define A_surfxml_process_on___failure AX_surfxml_process_on___failure
 -short int surfxml_process_on___failure_isset;
 -AT_surfxml_link_latency___file AX_surfxml_link_latency___file;
 -#define A_surfxml_link_latency___file (surfxml_bufferstack + AX_surfxml_link_latency___file)
 -short int surfxml_link_latency___file_isset;
 -AT_surfxml_peer_availability___file AX_surfxml_peer_availability___file;
 -#define A_surfxml_peer_availability___file (surfxml_bufferstack + AX_surfxml_peer_availability___file)
 -short int surfxml_peer_availability___file_isset;
 -AT_surfxml_link___ctn_direction AX_surfxml_link___ctn_direction;
 -#define A_surfxml_link___ctn_direction AX_surfxml_link___ctn_direction
 -short int surfxml_link___ctn_direction_isset;
 +AT_surfxml_process_on_failure AX_surfxml_process_on_failure;
 +#define A_surfxml_process_on_failure AX_surfxml_process_on_failure
 +AT_surfxml_link_latency_file AX_surfxml_link_latency_file;
 +#define A_surfxml_link_latency_file (surfxml_bufferstack + AX_surfxml_link_latency_file)
 +AT_surfxml_peer_availability_file AX_surfxml_peer_availability_file;
 +#define A_surfxml_peer_availability_file (surfxml_bufferstack + AX_surfxml_peer_availability_file)
 +AT_surfxml_link_ctn_direction AX_surfxml_link_ctn_direction;
 +#define A_surfxml_link_ctn_direction AX_surfxml_link_ctn_direction
  AT_surfxml_host_state AX_surfxml_host_state;
  #define A_surfxml_host_state AX_surfxml_host_state
 -short int surfxml_host_state_isset;
  AT_surfxml_AS_id AX_surfxml_AS_id;
  #define A_surfxml_AS_id (surfxml_bufferstack + AX_surfxml_AS_id)
 -short int surfxml_AS_id_isset;
  AT_surfxml_host_power AX_surfxml_host_power;
  #define A_surfxml_host_power (surfxml_bufferstack + AX_surfxml_host_power)
 -short int surfxml_host_power_isset;
  AT_surfxml_cabinet_suffix AX_surfxml_cabinet_suffix;
  #define A_surfxml_cabinet_suffix (surfxml_bufferstack + AX_surfxml_cabinet_suffix)
 -short int surfxml_cabinet_suffix_isset;
  AT_surfxml_gpu_name AX_surfxml_gpu_name;
  #define A_surfxml_gpu_name (surfxml_bufferstack + AX_surfxml_gpu_name)
 -short int surfxml_gpu_name_isset;
  AT_surfxml_router_id AX_surfxml_router_id;
  #define A_surfxml_router_id (surfxml_bufferstack + AX_surfxml_router_id)
 -short int surfxml_router_id_isset;
 -AT_surfxml_storage___type_id AX_surfxml_storage___type_id;
 -#define A_surfxml_storage___type_id (surfxml_bufferstack + AX_surfxml_storage___type_id)
 -short int surfxml_storage___type_id_isset;
 -AT_surfxml_process_start___time AX_surfxml_process_start___time;
 -#define A_surfxml_process_start___time (surfxml_bufferstack + AX_surfxml_process_start___time)
 -short int surfxml_process_start___time_isset;
 +AT_surfxml_storage_type_id AX_surfxml_storage_type_id;
 +#define A_surfxml_storage_type_id (surfxml_bufferstack + AX_surfxml_storage_type_id)
 +AT_surfxml_process_start_time AX_surfxml_process_start_time;
 +#define A_surfxml_process_start_time (surfxml_bufferstack + AX_surfxml_process_start_time)
  AT_surfxml_cabinet_bw AX_surfxml_cabinet_bw;
  #define A_surfxml_cabinet_bw (surfxml_bufferstack + AX_surfxml_cabinet_bw)
 -short int surfxml_cabinet_bw_isset;
  AT_surfxml_cluster_suffix AX_surfxml_cluster_suffix;
  #define A_surfxml_cluster_suffix (surfxml_bufferstack + AX_surfxml_cluster_suffix)
 -short int surfxml_cluster_suffix_isset;
  AT_surfxml_bypassASroute_dst AX_surfxml_bypassASroute_dst;
  #define A_surfxml_bypassASroute_dst (surfxml_bufferstack + AX_surfxml_bypassASroute_dst)
 -short int surfxml_bypassASroute_dst_isset;
 +AT_surfxml_host_link_id AX_surfxml_host_link_id;
 +#define A_surfxml_host_link_id (surfxml_bufferstack + AX_surfxml_host_link_id)
+ AT_surfxml_host___link_id AX_surfxml_host___link_id;
+ #define A_surfxml_host___link_id (surfxml_bufferstack + AX_surfxml_host___link_id)
 -short int surfxml_host___link_id_isset;
  AT_surfxml_ASroute_src AX_surfxml_ASroute_src;
  #define A_surfxml_ASroute_src (surfxml_bufferstack + AX_surfxml_ASroute_src)
 -short int surfxml_ASroute_src_isset;
  AT_surfxml_cluster_prefix AX_surfxml_cluster_prefix;
  #define A_surfxml_cluster_prefix (surfxml_bufferstack + AX_surfxml_cluster_prefix)
 -short int surfxml_cluster_prefix_isset;
  AT_surfxml_cabinet_prefix AX_surfxml_cabinet_prefix;
  #define A_surfxml_cabinet_prefix (surfxml_bufferstack + AX_surfxml_cabinet_prefix)
 -short int surfxml_cabinet_prefix_isset;
  AT_surfxml_trace_file AX_surfxml_trace_file;
  #define A_surfxml_trace_file (surfxml_bufferstack + AX_surfxml_trace_file)
 -short int surfxml_trace_file_isset;
 -AT_surfxml_link_sharing___policy AX_surfxml_link_sharing___policy;
 -#define A_surfxml_link_sharing___policy AX_surfxml_link_sharing___policy
 -short int surfxml_link_sharing___policy_isset;
 +AT_surfxml_link_sharing_policy AX_surfxml_link_sharing_policy;
 +#define A_surfxml_link_sharing_policy AX_surfxml_link_sharing_policy
  AT_surfxml_storage_typeId AX_surfxml_storage_typeId;
  #define A_surfxml_storage_typeId (surfxml_bufferstack + AX_surfxml_storage_typeId)
 -short int surfxml_storage_typeId_isset;
  AT_surfxml_random_min AX_surfxml_random_min;
  #define A_surfxml_random_min (surfxml_bufferstack + AX_surfxml_random_min)
 -short int surfxml_random_min_isset;
 -AT_surfxml_link___ctn_id AX_surfxml_link___ctn_id;
 -#define A_surfxml_link___ctn_id (surfxml_bufferstack + AX_surfxml_link___ctn_id)
 -short int surfxml_link___ctn_id_isset;
 -AT_surfxml_peer_bw___out AX_surfxml_peer_bw___out;
 -#define A_surfxml_peer_bw___out (surfxml_bufferstack + AX_surfxml_peer_bw___out)
 -short int surfxml_peer_bw___out_isset;
 -AT_surfxml_cluster_availability___file AX_surfxml_cluster_availability___file;
 -#define A_surfxml_cluster_availability___file (surfxml_bufferstack + AX_surfxml_cluster_availability___file)
 -short int surfxml_cluster_availability___file_isset;
 +AT_surfxml_link_ctn_id AX_surfxml_link_ctn_id;
 +#define A_surfxml_link_ctn_id (surfxml_bufferstack + AX_surfxml_link_ctn_id)
 +AT_surfxml_peer_bw_out AX_surfxml_peer_bw_out;
 +#define A_surfxml_peer_bw_out (surfxml_bufferstack + AX_surfxml_peer_bw_out)
 +AT_surfxml_cluster_availability_file AX_surfxml_cluster_availability_file;
 +#define A_surfxml_cluster_availability_file (surfxml_bufferstack + AX_surfxml_cluster_availability_file)
  AT_surfxml_storage_content AX_surfxml_storage_content;
  #define A_surfxml_storage_content (surfxml_bufferstack + AX_surfxml_storage_content)
 -short int surfxml_storage_content_isset;
 -AT_surfxml_process_kill___time AX_surfxml_process_kill___time;
 -#define A_surfxml_process_kill___time (surfxml_bufferstack + AX_surfxml_process_kill___time)
 -short int surfxml_process_kill___time_isset;
 -AT_surfxml_cluster_bb___bw AX_surfxml_cluster_bb___bw;
 -#define A_surfxml_cluster_bb___bw (surfxml_bufferstack + AX_surfxml_cluster_bb___bw)
 -short int surfxml_cluster_bb___bw_isset;
 +AT_surfxml_process_kill_time AX_surfxml_process_kill_time;
 +#define A_surfxml_process_kill_time (surfxml_bufferstack + AX_surfxml_process_kill_time)
 +AT_surfxml_cluster_bb_bw AX_surfxml_cluster_bb_bw;
 +#define A_surfxml_cluster_bb_bw (surfxml_bufferstack + AX_surfxml_cluster_bb_bw)
  AT_surfxml_argument_value AX_surfxml_argument_value;
  #define A_surfxml_argument_value (surfxml_bufferstack + AX_surfxml_argument_value)
 -short int surfxml_argument_value_isset;
  AT_surfxml_link_state AX_surfxml_link_state;
  #define A_surfxml_link_state AX_surfxml_link_state
 -short int surfxml_link_state_isset;
 -AT_surfxml_ASroute_gw___src AX_surfxml_ASroute_gw___src;
 -#define A_surfxml_ASroute_gw___src (surfxml_bufferstack + AX_surfxml_ASroute_gw___src)
 -short int surfxml_ASroute_gw___src_isset;
 +AT_surfxml_ASroute_gw_src AX_surfxml_ASroute_gw_src;
 +#define A_surfxml_ASroute_gw_src (surfxml_bufferstack + AX_surfxml_ASroute_gw_src)
  AT_surfxml_AS_routing AX_surfxml_AS_routing;
  #define A_surfxml_AS_routing AX_surfxml_AS_routing
 -short int surfxml_AS_routing_isset;
  AT_surfxml_link_bandwidth AX_surfxml_link_bandwidth;
  #define A_surfxml_link_bandwidth (surfxml_bufferstack + AX_surfxml_link_bandwidth)
 -short int surfxml_link_bandwidth_isset;
  AT_surfxml_cluster_id AX_surfxml_cluster_id;
  #define A_surfxml_cluster_id (surfxml_bufferstack + AX_surfxml_cluster_id)
 -short int surfxml_cluster_id_isset;
 -AT_surfxml_peer_bw___in AX_surfxml_peer_bw___in;
 -#define A_surfxml_peer_bw___in (surfxml_bufferstack + AX_surfxml_peer_bw___in)
 -short int surfxml_peer_bw___in_isset;
 +AT_surfxml_peer_bw_in AX_surfxml_peer_bw_in;
 +#define A_surfxml_peer_bw_in (surfxml_bufferstack + AX_surfxml_peer_bw_in)
  AT_surfxml_random_mean AX_surfxml_random_mean;
  #define A_surfxml_random_mean (surfxml_bufferstack + AX_surfxml_random_mean)
 -short int surfxml_random_mean_isset;
 -AT_surfxml_storage___type_size AX_surfxml_storage___type_size;
 -#define A_surfxml_storage___type_size (surfxml_bufferstack + AX_surfxml_storage___type_size)
 -short int surfxml_storage___type_size_isset;
 -AT_surfxml_cluster_bb___lat AX_surfxml_cluster_bb___lat;
 -#define A_surfxml_cluster_bb___lat (surfxml_bufferstack + AX_surfxml_cluster_bb___lat)
 -short int surfxml_cluster_bb___lat_isset;
 +AT_surfxml_storage_type_size AX_surfxml_storage_type_size;
 +#define A_surfxml_storage_type_size (surfxml_bufferstack + AX_surfxml_storage_type_size)
 +AT_surfxml_cluster_bb_lat AX_surfxml_cluster_bb_lat;
 +#define A_surfxml_cluster_bb_lat (surfxml_bufferstack + AX_surfxml_cluster_bb_lat)
  AT_surfxml_link_latency AX_surfxml_link_latency;
  #define A_surfxml_link_latency (surfxml_bufferstack + AX_surfxml_link_latency)
 -short int surfxml_link_latency_isset;
  AT_surfxml_backbone_bandwidth AX_surfxml_backbone_bandwidth;
  #define A_surfxml_backbone_bandwidth (surfxml_bufferstack + AX_surfxml_backbone_bandwidth)
 -short int surfxml_backbone_bandwidth_isset;
  AT_surfxml_backbone_id AX_surfxml_backbone_id;
  #define A_surfxml_backbone_id (surfxml_bufferstack + AX_surfxml_backbone_id)
 -short int surfxml_backbone_id_isset;
 -AT_surfxml_trace___connect_kind AX_surfxml_trace___connect_kind;
 -#define A_surfxml_trace___connect_kind AX_surfxml_trace___connect_kind
 -short int surfxml_trace___connect_kind_isset;
 +AT_surfxml_trace_connect_kind AX_surfxml_trace_connect_kind;
 +#define A_surfxml_trace_connect_kind AX_surfxml_trace_connect_kind
  AT_surfxml_cabinet_lat AX_surfxml_cabinet_lat;
  #define A_surfxml_cabinet_lat (surfxml_bufferstack + AX_surfxml_cabinet_lat)
 -short int surfxml_cabinet_lat_isset;
  AT_surfxml_random_seed AX_surfxml_random_seed;
  #define A_surfxml_random_seed (surfxml_bufferstack + AX_surfxml_random_seed)
 -short int surfxml_random_seed_isset;
 -AT_surfxml_cluster_state___file AX_surfxml_cluster_state___file;
 -#define A_surfxml_cluster_state___file (surfxml_bufferstack + AX_surfxml_cluster_state___file)
 -short int surfxml_cluster_state___file_isset;
 -AT_surfxml_link_bandwidth___file AX_surfxml_link_bandwidth___file;
 -#define A_surfxml_link_bandwidth___file (surfxml_bufferstack + AX_surfxml_link_bandwidth___file)
 -short int surfxml_link_bandwidth___file_isset;
 -AT_surfxml_storage___type_content AX_surfxml_storage___type_content;
 -#define A_surfxml_storage___type_content (surfxml_bufferstack + AX_surfxml_storage___type_content)
 -short int surfxml_storage___type_content_isset;
 +AT_surfxml_cluster_state_file AX_surfxml_cluster_state_file;
 +#define A_surfxml_cluster_state_file (surfxml_bufferstack + AX_surfxml_cluster_state_file)
 +AT_surfxml_link_bandwidth_file AX_surfxml_link_bandwidth_file;
 +#define A_surfxml_link_bandwidth_file (surfxml_bufferstack + AX_surfxml_link_bandwidth_file)
 +AT_surfxml_storage_type_content AX_surfxml_storage_type_content;
 +#define A_surfxml_storage_type_content (surfxml_bufferstack + AX_surfxml_storage_type_content)
  AT_surfxml_route_symmetrical AX_surfxml_route_symmetrical;
  #define A_surfxml_route_symmetrical AX_surfxml_route_symmetrical
 -short int surfxml_route_symmetrical_isset;
  AT_surfxml_random_id AX_surfxml_random_id;
  #define A_surfxml_random_id (surfxml_bufferstack + AX_surfxml_random_id)
 -short int surfxml_random_id_isset;
  AT_surfxml_mstorage_name AX_surfxml_mstorage_name;
  #define A_surfxml_mstorage_name (surfxml_bufferstack + AX_surfxml_mstorage_name)
 -short int surfxml_mstorage_name_isset;
  AT_surfxml_random_max AX_surfxml_random_max;
  #define A_surfxml_random_max (surfxml_bufferstack + AX_surfxml_random_max)
 -short int surfxml_random_max_isset;
  AT_surfxml_link_id AX_surfxml_link_id;
  #define A_surfxml_link_id (surfxml_bufferstack + AX_surfxml_link_id)
 -short int surfxml_link_id_isset;
  AT_surfxml_process_host AX_surfxml_process_host;
  #define A_surfxml_process_host (surfxml_bufferstack + AX_surfxml_process_host)
 -short int surfxml_process_host_isset;
  AT_surfxml_cabinet_id AX_surfxml_cabinet_id;
  #define A_surfxml_cabinet_id (surfxml_bufferstack + AX_surfxml_cabinet_id)
 -short int surfxml_cabinet_id_isset;
 -AT_surfxml_host_availability___file AX_surfxml_host_availability___file;
 -#define A_surfxml_host_availability___file (surfxml_bufferstack + AX_surfxml_host_availability___file)
 -short int surfxml_host_availability___file_isset;
 +AT_surfxml_host_availability_file AX_surfxml_host_availability_file;
 +#define A_surfxml_host_availability_file (surfxml_bufferstack + AX_surfxml_host_availability_file)
  AT_surfxml_cluster_lat AX_surfxml_cluster_lat;
  #define A_surfxml_cluster_lat (surfxml_bufferstack + AX_surfxml_cluster_lat)
 -short int surfxml_cluster_lat_isset;
  AT_surfxml_router_coordinates AX_surfxml_router_coordinates;
  #define A_surfxml_router_coordinates (surfxml_bufferstack + AX_surfxml_router_coordinates)
 -short int surfxml_router_coordinates_isset;
  AT_surfxml_trace_periodicity AX_surfxml_trace_periodicity;
  #define A_surfxml_trace_periodicity (surfxml_bufferstack + AX_surfxml_trace_periodicity)
 -short int surfxml_trace_periodicity_isset;
 -AT_surfxml_cluster_bb___sharing___policy AX_surfxml_cluster_bb___sharing___policy;
 -#define A_surfxml_cluster_bb___sharing___policy AX_surfxml_cluster_bb___sharing___policy
 -short int surfxml_cluster_bb___sharing___policy_isset;
 -AT_surfxml_peer_state___file AX_surfxml_peer_state___file;
 -#define A_surfxml_peer_state___file (surfxml_bufferstack + AX_surfxml_peer_state___file)
 -short int surfxml_peer_state___file_isset;
 +AT_surfxml_cluster_bb_sharing_policy AX_surfxml_cluster_bb_sharing_policy;
 +#define A_surfxml_cluster_bb_sharing_policy AX_surfxml_cluster_bb_sharing_policy
 +AT_surfxml_peer_state_file AX_surfxml_peer_state_file;
 +#define A_surfxml_peer_state_file (surfxml_bufferstack + AX_surfxml_peer_state_file)
  AT_surfxml_peer_coordinates AX_surfxml_peer_coordinates;
  #define A_surfxml_peer_coordinates (surfxml_bufferstack + AX_surfxml_peer_coordinates)
 -short int surfxml_peer_coordinates_isset;
  AT_surfxml_bypassASroute_src AX_surfxml_bypassASroute_src;
  #define A_surfxml_bypassASroute_src (surfxml_bufferstack + AX_surfxml_bypassASroute_src)
 -short int surfxml_bypassASroute_src_isset;
  AT_surfxml_prop_value AX_surfxml_prop_value;
  #define A_surfxml_prop_value (surfxml_bufferstack + AX_surfxml_prop_value)
 -short int surfxml_prop_value_isset;
  AT_surfxml_mstorage_typeId AX_surfxml_mstorage_typeId;
  #define A_surfxml_mstorage_typeId (surfxml_bufferstack + AX_surfxml_mstorage_typeId)
 -short int surfxml_mstorage_typeId_isset;
  AT_surfxml_ASroute_dst AX_surfxml_ASroute_dst;
  #define A_surfxml_ASroute_dst (surfxml_bufferstack + AX_surfxml_ASroute_dst)
 -short int surfxml_ASroute_dst_isset;
 -AT_surfxml_link_state___file AX_surfxml_link_state___file;
 -#define A_surfxml_link_state___file (surfxml_bufferstack + AX_surfxml_link_state___file)
 -short int surfxml_link_state___file_isset;
 +AT_surfxml_link_state_file AX_surfxml_link_state_file;
 +#define A_surfxml_link_state_file (surfxml_bufferstack + AX_surfxml_link_state_file)
  AT_surfxml_random_radical AX_surfxml_random_radical;
  #define A_surfxml_random_radical (surfxml_bufferstack + AX_surfxml_random_radical)
 -short int surfxml_random_radical_isset;
 -AT_surfxml_bypassASroute_gw___src AX_surfxml_bypassASroute_gw___src;
 -#define A_surfxml_bypassASroute_gw___src (surfxml_bufferstack + AX_surfxml_bypassASroute_gw___src)
 -short int surfxml_bypassASroute_gw___src_isset;
 -AT_surfxml_trace___connect_trace AX_surfxml_trace___connect_trace;
 -#define A_surfxml_trace___connect_trace (surfxml_bufferstack + AX_surfxml_trace___connect_trace)
 -short int surfxml_trace___connect_trace_isset;
 +AT_surfxml_bypassASroute_gw_src AX_surfxml_bypassASroute_gw_src;
 +#define A_surfxml_bypassASroute_gw_src (surfxml_bufferstack + AX_surfxml_bypassASroute_gw_src)
 +AT_surfxml_trace_connect_trace AX_surfxml_trace_connect_trace;
 +#define A_surfxml_trace_connect_trace (surfxml_bufferstack + AX_surfxml_trace_connect_trace)
  AT_surfxml_mount_id AX_surfxml_mount_id;
  #define A_surfxml_mount_id (surfxml_bufferstack + AX_surfxml_mount_id)
 -short int surfxml_mount_id_isset;
  AT_surfxml_cluster_power AX_surfxml_cluster_power;
  #define A_surfxml_cluster_power (surfxml_bufferstack + AX_surfxml_cluster_power)
 -short int surfxml_cluster_power_isset;
  AT_surfxml_process_function AX_surfxml_process_function;
  #define A_surfxml_process_function (surfxml_bufferstack + AX_surfxml_process_function)
 -short int surfxml_process_function_isset;
  AT_surfxml_peer_id AX_surfxml_peer_id;
  #define A_surfxml_peer_id (surfxml_bufferstack + AX_surfxml_peer_id)
 -short int surfxml_peer_id_isset;
 -AT_surfxml_cluster_router___id AX_surfxml_cluster_router___id;
 -#define A_surfxml_cluster_router___id (surfxml_bufferstack + AX_surfxml_cluster_router___id)
 -short int surfxml_cluster_router___id_isset;
 +AT_surfxml_cluster_router_id AX_surfxml_cluster_router_id;
 +#define A_surfxml_cluster_router_id (surfxml_bufferstack + AX_surfxml_cluster_router_id)
  AT_surfxml_cabinet_radical AX_surfxml_cabinet_radical;
  #define A_surfxml_cabinet_radical (surfxml_bufferstack + AX_surfxml_cabinet_radical)
 -short int surfxml_cabinet_radical_isset;
 -AT_surfxml_cluster_sharing___policy AX_surfxml_cluster_sharing___policy;
 -#define A_surfxml_cluster_sharing___policy AX_surfxml_cluster_sharing___policy
 -short int surfxml_cluster_sharing___policy_isset;
 +AT_surfxml_cluster_sharing_policy AX_surfxml_cluster_sharing_policy;
 +#define A_surfxml_cluster_sharing_policy AX_surfxml_cluster_sharing_policy
  AT_surfxml_bypassRoute_dst AX_surfxml_bypassRoute_dst;
  #define A_surfxml_bypassRoute_dst (surfxml_bufferstack + AX_surfxml_bypassRoute_dst)
 -short int surfxml_bypassRoute_dst_isset;
  AT_surfxml_cabinet_power AX_surfxml_cabinet_power;
  #define A_surfxml_cabinet_power (surfxml_bufferstack + AX_surfxml_cabinet_power)
 -short int surfxml_cabinet_power_isset;
  AT_surfxml_host_core AX_surfxml_host_core;
  #define A_surfxml_host_core (surfxml_bufferstack + AX_surfxml_host_core)
 -short int surfxml_host_core_isset;
 -AT_surfxml_storage___type_model AX_surfxml_storage___type_model;
 -#define A_surfxml_storage___type_model (surfxml_bufferstack + AX_surfxml_storage___type_model)
 -short int surfxml_storage___type_model_isset;
 +AT_surfxml_storage_type_model AX_surfxml_storage_type_model;
 +#define A_surfxml_storage_type_model (surfxml_bufferstack + AX_surfxml_storage_type_model)
  AT_surfxml_host_availability AX_surfxml_host_availability;
  #define A_surfxml_host_availability (surfxml_bufferstack + AX_surfxml_host_availability)
 -short int surfxml_host_availability_isset;
  AT_surfxml_bypassRoute_src AX_surfxml_bypassRoute_src;
  #define A_surfxml_bypassRoute_src (surfxml_bufferstack + AX_surfxml_bypassRoute_src)
 -short int surfxml_bypassRoute_src_isset;
  AT_surfxml_backbone_latency AX_surfxml_backbone_latency;
  #define A_surfxml_backbone_latency (surfxml_bufferstack + AX_surfxml_backbone_latency)
 -short int surfxml_backbone_latency_isset;
  AT_surfxml_route_src AX_surfxml_route_src;
  #define A_surfxml_route_src (surfxml_bufferstack + AX_surfxml_route_src)
 -short int surfxml_route_src_isset;
  AT_surfxml_storage_id AX_surfxml_storage_id;
  #define A_surfxml_storage_id (surfxml_bufferstack + AX_surfxml_storage_id)
 -short int surfxml_storage_id_isset;
  AT_surfxml_host_coordinates AX_surfxml_host_coordinates;
  #define A_surfxml_host_coordinates (surfxml_bufferstack + AX_surfxml_host_coordinates)
 -short int surfxml_host_coordinates_isset;
  AT_surfxml_trace_id AX_surfxml_trace_id;
  #define A_surfxml_trace_id (surfxml_bufferstack + AX_surfxml_trace_id)
 -short int surfxml_trace_id_isset;
  AT_surfxml_peer_power AX_surfxml_peer_power;
  #define A_surfxml_peer_power (surfxml_bufferstack + AX_surfxml_peer_power)
 -short int surfxml_peer_power_isset;
  AT_surfxml_cluster_radical AX_surfxml_cluster_radical;
  #define A_surfxml_cluster_radical (surfxml_bufferstack + AX_surfxml_cluster_radical)
 -short int surfxml_cluster_radical_isset;
  AT_surfxml_config_id AX_surfxml_config_id;
  #define A_surfxml_config_id (surfxml_bufferstack + AX_surfxml_config_id)
 -short int surfxml_config_id_isset;
 -AT_surfxml_bypassASroute_gw___dst AX_surfxml_bypassASroute_gw___dst;
 -#define A_surfxml_bypassASroute_gw___dst (surfxml_bufferstack + AX_surfxml_bypassASroute_gw___dst)
 -short int surfxml_bypassASroute_gw___dst_isset;
 -AT_surfxml_host___link_down AX_surfxml_host___link_down;
 -#define A_surfxml_host___link_down (surfxml_bufferstack + AX_surfxml_host___link_down)
 -short int surfxml_host___link_down_isset;
 +AT_surfxml_bypassASroute_gw_dst AX_surfxml_bypassASroute_gw_dst;
 +#define A_surfxml_bypassASroute_gw_dst (surfxml_bufferstack + AX_surfxml_bypassASroute_gw_dst)
 +AT_surfxml_host_link_down AX_surfxml_host_link_down;
 +#define A_surfxml_host_link_down (surfxml_bufferstack + AX_surfxml_host_link_down)
  AT_surfxml_include_file AX_surfxml_include_file;
  #define A_surfxml_include_file (surfxml_bufferstack + AX_surfxml_include_file)
 -short int surfxml_include_file_isset;
 -AT_surfxml_random_std___deviation AX_surfxml_random_std___deviation;
 -#define A_surfxml_random_std___deviation (surfxml_bufferstack + AX_surfxml_random_std___deviation)
 -short int surfxml_random_std___deviation_isset;
 +AT_surfxml_random_std_deviation AX_surfxml_random_std_deviation;
 +#define A_surfxml_random_std_deviation (surfxml_bufferstack + AX_surfxml_random_std_deviation)
  AT_surfxml_cluster_core AX_surfxml_cluster_core;
  #define A_surfxml_cluster_core (surfxml_bufferstack + AX_surfxml_cluster_core)
 -short int surfxml_cluster_core_isset;
 -AT_surfxml_host_state___file AX_surfxml_host_state___file;
 -#define A_surfxml_host_state___file (surfxml_bufferstack + AX_surfxml_host_state___file)
 -short int surfxml_host_state___file_isset;
 +AT_surfxml_host_state_file AX_surfxml_host_state_file;
 +#define A_surfxml_host_state_file (surfxml_bufferstack + AX_surfxml_host_state_file)
  AT_surfxml_route_dst AX_surfxml_route_dst;
  #define A_surfxml_route_dst (surfxml_bufferstack + AX_surfxml_route_dst)
 -short int surfxml_route_dst_isset;
  AT_surfxml_cluster_bw AX_surfxml_cluster_bw;
  #define A_surfxml_cluster_bw (surfxml_bufferstack + AX_surfxml_cluster_bw)
 -short int surfxml_cluster_bw_isset;
  AT_surfxml_platform_version AX_surfxml_platform_version;
  #define A_surfxml_platform_version (surfxml_bufferstack + AX_surfxml_platform_version)
 -short int surfxml_platform_version_isset;
  
  /* XML state. */
  #ifdef FLEX_DEBUG
@@@ -4738,13 -4847,24 +4740,13 @@@ static int ck_ilimit(
  #ifdef FLEXML_NEED_BUFFERLIT
  static void surfxml_bufferliteral(char c, int* pp, const char* text)
  {
 -   BUFFERSET(*pp);
 -   if (c) {
 -      const char *s = strchr(text, c), *e = strrchr(text, c);
 -      assert(s && e && s <= e);
 -      ++s;
 -      while (s < e) {
 -       if (isspace(*s)) {
 -          BUFFERPUTC(' ');
 -          do ++s; while (s < e && isspace(*s));
 -       } else
 -         BUFFERPUTC(*s++);
 -      }
 -   } else {
 -      const char *s = text;
 -      while (*s)
 -      BUFFERPUTC(*s++);
 -   }
 -   BUFFERDONE;
 +  const char *s = (c ? strchr(text,c) : text-1), *e = strrchr(text,c);
 +  assert(s <= e); BUFFERSET(*pp);
 +  while (++s<e) {
 +    if (isspace(*s) && c) { BUFFERPUTC(' '); while (isspace(*s)) ++s; }
 +    else BUFFERPUTC(*s);
 +  }
 +  BUFFERDONE;
  }
  #endif
  
@@@ -4823,8 -4943,8 +4825,8 @@@ const char* *surfxml_statenames=NULL
  #define IN_trace 27
  #define AL_surfxml_random 28
  #define E_surfxml_random 29
- #define AL_surfxml_trace_connect 30
- #define E_surfxml_trace_connect 31
+ #define AL_surfxml_trace___connect 30
+ #define E_surfxml_trace___connect 31
  #define AL_surfxml_AS 32
  #define S_surfxml_AS 33
  #define S_surfxml_AS_1 34
  #define S_surfxml_AS_15 48
  #define S_surfxml_AS_16 49
  #define E_surfxml_AS 50
- #define AL_surfxml_storage_type 51
- #define S_surfxml_storage_type 52
- #define S_surfxml_storage_type_1 53
- #define S_surfxml_storage_type_2 54
- #define E_surfxml_storage_type 55
+ #define AL_surfxml_storage___type 51
+ #define S_surfxml_storage___type 52
+ #define S_surfxml_storage___type_1 53
+ #define S_surfxml_storage___type_2 54
+ #define E_surfxml_storage___type 55
  #define AL_surfxml_storage 56
  #define S_surfxml_storage 57
  #define S_surfxml_storage_1 58
  #define E_surfxml_host 69
  #define AL_surfxml_gpu 70
  #define E_surfxml_gpu 71
- #define AL_surfxml_host_link 72
- #define E_surfxml_host_link 73
+ #define AL_surfxml_host___link 72
+ #define E_surfxml_host___link 73
  #define AL_surfxml_cluster 74
  #define E_surfxml_cluster 75
  #define AL_surfxml_cabinet 76
  #define S_surfxml_ASroute_1 96
  #define S_surfxml_ASroute_2 97
  #define E_surfxml_ASroute 98
- #define AL_surfxml_link_ctn 99
- #define E_surfxml_link_ctn 100
+ #define AL_surfxml_link___ctn 99
+ #define E_surfxml_link___ctn 100
  #define AL_surfxml_bypassRoute 101
  #define S_surfxml_bypassRoute 102
  #define S_surfxml_bypassRoute_1 103
@@@ -5174,8 -5294,8 +5176,8 @@@ YY_DEC
    surfxml_statenames[IN_trace] = "trace";
    surfxml_statenames[AL_surfxml_random] = NULL;
    surfxml_statenames[E_surfxml_random] = "random";
-   surfxml_statenames[AL_surfxml_trace_connect] = NULL;
-   surfxml_statenames[E_surfxml_trace_connect] = "trace_connect";
+   surfxml_statenames[AL_surfxml_trace___connect] = NULL;
+   surfxml_statenames[E_surfxml_trace___connect] = "trace_connect";
    surfxml_statenames[AL_surfxml_AS] = NULL;
    surfxml_statenames[S_surfxml_AS] = "AS";
    surfxml_statenames[S_surfxml_AS_1] = "AS";
    surfxml_statenames[S_surfxml_AS_15] = "AS";
    surfxml_statenames[S_surfxml_AS_16] = "AS";
    surfxml_statenames[E_surfxml_AS] = "AS";
-   surfxml_statenames[AL_surfxml_storage_type] = NULL;
-   surfxml_statenames[S_surfxml_storage_type] = "storage_type";
-   surfxml_statenames[S_surfxml_storage_type_1] = "storage_type";
-   surfxml_statenames[S_surfxml_storage_type_2] = "storage_type";
-   surfxml_statenames[E_surfxml_storage_type] = "storage_type";
+   surfxml_statenames[AL_surfxml_storage___type] = NULL;
+   surfxml_statenames[S_surfxml_storage___type] = "storage_type";
+   surfxml_statenames[S_surfxml_storage___type_1] = "storage_type";
+   surfxml_statenames[S_surfxml_storage___type_2] = "storage_type";
+   surfxml_statenames[E_surfxml_storage___type] = "storage_type";
    surfxml_statenames[AL_surfxml_storage] = NULL;
    surfxml_statenames[S_surfxml_storage] = "storage";
    surfxml_statenames[S_surfxml_storage_1] = "storage";
    surfxml_statenames[E_surfxml_host] = "host";
    surfxml_statenames[AL_surfxml_gpu] = NULL;
    surfxml_statenames[E_surfxml_gpu] = "gpu";
-   surfxml_statenames[AL_surfxml_host_link] = NULL;
-   surfxml_statenames[E_surfxml_host_link] = "host_link";
+   surfxml_statenames[AL_surfxml_host___link] = NULL;
+   surfxml_statenames[E_surfxml_host___link] = "host_link";
    surfxml_statenames[AL_surfxml_cluster] = NULL;
    surfxml_statenames[E_surfxml_cluster] = "cluster";
    surfxml_statenames[AL_surfxml_cabinet] = NULL;
    surfxml_statenames[S_surfxml_ASroute_1] = "ASroute";
    surfxml_statenames[S_surfxml_ASroute_2] = "ASroute";
    surfxml_statenames[E_surfxml_ASroute] = "ASroute";
-   surfxml_statenames[AL_surfxml_link_ctn] = NULL;
-   surfxml_statenames[E_surfxml_link_ctn] = "link_ctn";
+   surfxml_statenames[AL_surfxml_link___ctn] = NULL;
+   surfxml_statenames[E_surfxml_link___ctn] = "link_ctn";
    surfxml_statenames[AL_surfxml_bypassRoute] = NULL;
    surfxml_statenames[S_surfxml_bypassRoute] = "bypassRoute";
    surfxml_statenames[S_surfxml_bypassRoute_1] = "bypassRoute";
@@@ -5452,6 -5572,7 +5454,6 @@@ case 17
  YY_RULE_SETUP
  {
    AX_surfxml_platform_version = 1;
 -  surfxml_platform_version_isset = 0;
    ENTER(AL_surfxml_platform); pushbuffer(0);
    }
        YY_BREAK
  case 18:
  /* rule 18 can match eol */
  YY_RULE_SETUP
 -if (surfxml_platform_version_isset != 0) {FAIL("Multiple definition of attribute version in <surfxml_platform>");} surfxml_platform_version_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_platform_version);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_platform_version);
        YY_BREAK
  case 19:
  /* rule 19 can match eol */
  YY_RULE_SETUP
 -if (surfxml_platform_version_isset != 0) {FAIL("Multiple definition of attribute version in <surfxml_platform>");}  surfxml_platform_version_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_platform_version);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_platform_version);
        YY_BREAK
  case 20:
  YY_RULE_SETUP
@@@ -5534,6 -5655,7 +5536,6 @@@ case 28
  YY_RULE_SETUP
  {
    AX_surfxml_include_file = 0;
 -  surfxml_include_file_isset = 0;
    ENTER(AL_surfxml_include); pushbuffer(0);
    }
        YY_BREAK
  case 29:
  /* rule 29 can match eol */
  YY_RULE_SETUP
 -if (surfxml_include_file_isset != 0) {FAIL("Multiple definition of attribute file in <surfxml_include>");} surfxml_include_file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_include_file);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_include_file);
        YY_BREAK
  case 30:
  /* rule 30 can match eol */
  YY_RULE_SETUP
 -if (surfxml_include_file_isset != 0) {FAIL("Multiple definition of attribute file in <surfxml_include>");}  surfxml_include_file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_include_file);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_include_file);
        YY_BREAK
  case 31:
  YY_RULE_SETUP
@@@ -5620,8 -5742,11 +5622,8 @@@ case 39
  YY_RULE_SETUP
  {
    AX_surfxml_trace_id = 0;
 -  surfxml_trace_id_isset = 0;
    AX_surfxml_trace_file = 0;
 -  surfxml_trace_file_isset = 0;
    AX_surfxml_trace_periodicity = 0;
 -  surfxml_trace_periodicity_isset = 0;
    ENTER(AL_surfxml_trace); pushbuffer(0);
    }
        YY_BREAK
  case 40:
  /* rule 40 can match eol */
  YY_RULE_SETUP
 -if (surfxml_trace_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_trace>");} surfxml_trace_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_id);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_id);
        YY_BREAK
  case 41:
  /* rule 41 can match eol */
  YY_RULE_SETUP
 -if (surfxml_trace_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_trace>");}  surfxml_trace_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_id);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_id);
        YY_BREAK
  case 42:
  /* rule 42 can match eol */
  YY_RULE_SETUP
 -if (surfxml_trace_file_isset != 0) {FAIL("Multiple definition of attribute file in <surfxml_trace>");} surfxml_trace_file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_file);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_file);
        YY_BREAK
  case 43:
  /* rule 43 can match eol */
  YY_RULE_SETUP
 -if (surfxml_trace_file_isset != 0) {FAIL("Multiple definition of attribute file in <surfxml_trace>");}  surfxml_trace_file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_file);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_file);
        YY_BREAK
  case 44:
  /* rule 44 can match eol */
  YY_RULE_SETUP
 -if (surfxml_trace_periodicity_isset != 0) {FAIL("Multiple definition of attribute periodicity in <surfxml_trace>");} surfxml_trace_periodicity_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_periodicity);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_periodicity);
        YY_BREAK
  case 45:
  /* rule 45 can match eol */
  YY_RULE_SETUP
 -if (surfxml_trace_periodicity_isset != 0) {FAIL("Multiple definition of attribute periodicity in <surfxml_trace>");}  surfxml_trace_periodicity_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_periodicity);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_periodicity);
        YY_BREAK
  case 46:
  YY_RULE_SETUP
@@@ -5732,13 -5857,21 +5734,13 @@@ case 53
  YY_RULE_SETUP
  {
    AX_surfxml_random_id = 0;
 -  surfxml_random_id_isset = 0;
    AX_surfxml_random_min = 0;
 -  surfxml_random_min_isset = 0;
    AX_surfxml_random_max = 0;
 -  surfxml_random_max_isset = 0;
    AX_surfxml_random_mean = 0;
 -  surfxml_random_mean_isset = 0;
 -  AX_surfxml_random_std___deviation = 0;
 -  surfxml_random_std___deviation_isset = 0;
 +  AX_surfxml_random_std_deviation = 0;
    AX_surfxml_random_seed = 5;
 -  surfxml_random_seed_isset = 0;
    AX_surfxml_random_radical = 0;
 -  surfxml_random_radical_isset = 0;
    AX_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
 -  surfxml_random_generator_isset = 0;
    ENTER(AL_surfxml_random); pushbuffer(0);
    }
        YY_BREAK
  case 54:
  /* rule 54 can match eol */
  YY_RULE_SETUP
 -if (surfxml_random_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_random>");} surfxml_random_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_id);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_random_id);
        YY_BREAK
  case 55:
  /* rule 55 can match eol */
  YY_RULE_SETUP
 -if (surfxml_random_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_random>");}  surfxml_random_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_id);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_random_id);
        YY_BREAK
  case 56:
  /* rule 56 can match eol */
  YY_RULE_SETUP
 -if (surfxml_random_min_isset != 0) {FAIL("Multiple definition of attribute min in <surfxml_random>");} surfxml_random_min_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_min);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_random_min);
        YY_BREAK
  case 57:
  /* rule 57 can match eol */
  YY_RULE_SETUP
 -if (surfxml_random_min_isset != 0) {FAIL("Multiple definition of attribute min in <surfxml_random>");}  surfxml_random_min_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_min);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_random_min);
        YY_BREAK
  case 58:
  /* rule 58 can match eol */
  YY_RULE_SETUP
 -if (surfxml_random_max_isset != 0) {FAIL("Multiple definition of attribute max in <surfxml_random>");} surfxml_random_max_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_max);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_random_max);
        YY_BREAK
  case 59:
  /* rule 59 can match eol */
  YY_RULE_SETUP
 -if (surfxml_random_max_isset != 0) {FAIL("Multiple definition of attribute max in <surfxml_random>");}  surfxml_random_max_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_max);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_random_max);
        YY_BREAK
  case 60:
  /* rule 60 can match eol */
  YY_RULE_SETUP
 -if (surfxml_random_mean_isset != 0) {FAIL("Multiple definition of attribute mean in <surfxml_random>");} surfxml_random_mean_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_mean);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_random_mean);
        YY_BREAK
  case 61:
  /* rule 61 can match eol */
  YY_RULE_SETUP
 -if (surfxml_random_mean_isset != 0) {FAIL("Multiple definition of attribute mean in <surfxml_random>");}  surfxml_random_mean_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_mean);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_random_mean);
        YY_BREAK
  case 62:
  /* rule 62 can match eol */
  YY_RULE_SETUP
 -if (surfxml_random_std___deviation_isset != 0) {FAIL("Multiple definition of attribute std_deviation in <surfxml_random>");} surfxml_random_std___deviation_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_std___deviation);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_random_std_deviation);
        YY_BREAK
  case 63:
  /* rule 63 can match eol */
  YY_RULE_SETUP
 -if (surfxml_random_std___deviation_isset != 0) {FAIL("Multiple definition of attribute std_deviation in <surfxml_random>");}  surfxml_random_std___deviation_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_std___deviation);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_random_std_deviation);
        YY_BREAK
  case 64:
  /* rule 64 can match eol */
  YY_RULE_SETUP
 -if (surfxml_random_seed_isset != 0) {FAIL("Multiple definition of attribute seed in <surfxml_random>");} surfxml_random_seed_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_seed);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_random_seed);
        YY_BREAK
  case 65:
  /* rule 65 can match eol */
  YY_RULE_SETUP
 -if (surfxml_random_seed_isset != 0) {FAIL("Multiple definition of attribute seed in <surfxml_random>");}  surfxml_random_seed_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_seed);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_random_seed);
        YY_BREAK
  case 66:
  /* rule 66 can match eol */
  YY_RULE_SETUP
 -if (surfxml_random_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_random>");} surfxml_random_radical_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_radical);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_random_radical);
        YY_BREAK
  case 67:
  /* rule 67 can match eol */
  YY_RULE_SETUP
 -if (surfxml_random_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_random>");}  surfxml_random_radical_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_radical);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_random_radical);
        YY_BREAK
  case 68:
  /* rule 68 can match eol */
@@@ -5848,7 -5981,7 +5850,7 @@@ YY_RULE_SETU
    if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
    if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
    if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
-   if (!AX_surfxml_random_std_deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
+   if (!AX_surfxml_random_std___deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
    LEAVE; STag_surfxml_random();surfxml_pcdata_ix = 0; ENTER(E_surfxml_random);
   }
        YY_BREAK
@@@ -5859,7 -5992,7 +5861,7 @@@ YY_RULE_SETU
    if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
    if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
    if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
-   if (!AX_surfxml_random_std_deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
+   if (!AX_surfxml_random_std___deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
    LEAVE; STag_surfxml_random(); surfxml_pcdata_ix = 0; ETag_surfxml_random(); popbuffer(); /* attribute */
    switch (YY_START) {
     case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
@@@ -5912,10 -6045,13 +5914,10 @@@ case 84
  /* rule 84 can match eol */
  YY_RULE_SETUP
  {
 -  AX_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_HOST___AVAIL;
 -  surfxml_trace___connect_kind_isset = 0;
 -  AX_surfxml_trace___connect_trace = 0;
 -  surfxml_trace___connect_trace_isset = 0;
 -  AX_surfxml_trace___connect_element = 0;
 -  surfxml_trace___connect_element_isset = 0;
 -  ENTER(AL_surfxml_trace___connect); pushbuffer(0);
 +  AX_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_HOST_AVAIL;
 +  AX_surfxml_trace_connect_trace = 0;
 +  AX_surfxml_trace_connect_element = 0;
 +  ENTER(AL_surfxml_trace_connect); pushbuffer(0);
    }
        YY_BREAK
  
@@@ -5924,70 -6060,70 +5926,70 @@@ case 85
  case 86:
  /* rule 86 can match eol */
  YY_RULE_SETUP
- A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_HOST_AVAIL;
+ A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_HOST___AVAIL;
        YY_BREAK
  case 87:
  /* rule 87 can match eol */
  case 88:
  /* rule 88 can match eol */
  YY_RULE_SETUP
- A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_POWER;
+ A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_POWER;
        YY_BREAK
  case 89:
  /* rule 89 can match eol */
  case 90:
  /* rule 90 can match eol */
  YY_RULE_SETUP
- A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_LINK_AVAIL;
+ A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_LINK___AVAIL;
        YY_BREAK
  case 91:
  /* rule 91 can match eol */
  case 92:
  /* rule 92 can match eol */
  YY_RULE_SETUP
- A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_BANDWIDTH;
+ A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_BANDWIDTH;
        YY_BREAK
  case 93:
  /* rule 93 can match eol */
  case 94:
  /* rule 94 can match eol */
  YY_RULE_SETUP
- A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_LATENCY;
+ A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_LATENCY;
        YY_BREAK
  case 95:
  /* rule 95 can match eol */
  YY_RULE_SETUP
 -if (surfxml_trace___connect_trace_isset != 0) {FAIL("Multiple definition of attribute trace in <surfxml_trace___connect>");} surfxml_trace___connect_trace_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_trace___connect_trace);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_connect_trace);
        YY_BREAK
  case 96:
  /* rule 96 can match eol */
  YY_RULE_SETUP
 -if (surfxml_trace___connect_trace_isset != 0) {FAIL("Multiple definition of attribute trace in <surfxml_trace___connect>");}  surfxml_trace___connect_trace_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_trace___connect_trace);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_connect_trace);
        YY_BREAK
  case 97:
  /* rule 97 can match eol */
  YY_RULE_SETUP
 -if (surfxml_trace___connect_element_isset != 0) {FAIL("Multiple definition of attribute element in <surfxml_trace___connect>");} surfxml_trace___connect_element_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_trace___connect_element);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_connect_element);
        YY_BREAK
  case 98:
  /* rule 98 can match eol */
  YY_RULE_SETUP
 -if (surfxml_trace___connect_element_isset != 0) {FAIL("Multiple definition of attribute element in <surfxml_trace___connect>");}  surfxml_trace___connect_element_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_trace___connect_element);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_connect_element);
        YY_BREAK
  case 99:
  YY_RULE_SETUP
  {
-   if (!AX_surfxml_trace_connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
-   if (!AX_surfxml_trace_connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
-   LEAVE; STag_surfxml_trace_connect();surfxml_pcdata_ix = 0; ENTER(E_surfxml_trace_connect);
+   if (!AX_surfxml_trace___connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
+   if (!AX_surfxml_trace___connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
+   LEAVE; STag_surfxml_trace___connect();surfxml_pcdata_ix = 0; ENTER(E_surfxml_trace___connect);
   }
        YY_BREAK
  case 100:
  YY_RULE_SETUP
  {
-   if (!AX_surfxml_trace_connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
-   if (!AX_surfxml_trace_connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
-   LEAVE; STag_surfxml_trace_connect(); surfxml_pcdata_ix = 0; ETag_surfxml_trace_connect(); popbuffer(); /* attribute */
+   if (!AX_surfxml_trace___connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
+   if (!AX_surfxml_trace___connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
+   LEAVE; STag_surfxml_trace___connect(); surfxml_pcdata_ix = 0; ETag_surfxml_trace___connect(); popbuffer(); /* attribute */
    switch (YY_START) {
     case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS_7: SET(S_surfxml_AS_11); break;
     case S_surfxml_AS_12: case S_surfxml_AS_15: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
@@@ -6007,7 -6143,7 +6009,7 @@@ case 102
  YY_RULE_SETUP
  FAIL("Bad attribute `%s' in `trace_connect' element start tag.",surf_parse_text);
        YY_BREAK
- case YY_STATE_EOF(AL_surfxml_trace_connect):
+ case YY_STATE_EOF(AL_surfxml_trace___connect):
  FAIL("EOF in attribute list of `trace_connect' element.");
        YY_BREAK
  
@@@ -6016,7 -6152,7 +6018,7 @@@ case 103
  YY_RULE_SETUP
  {
    LEAVE;
-   ETag_surfxml_trace_connect();
+   ETag_surfxml_trace___connect();
    popbuffer(); /* attribute */
    switch (YY_START) {
     case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS_7: SET(S_surfxml_AS_11); break;
@@@ -6038,7 -6174,7 +6040,7 @@@ case 105
  YY_RULE_SETUP
  FAIL("Unexpected character `%c': `</trace_connect>' expected.",surf_parse_text[0]);
        YY_BREAK
- case YY_STATE_EOF(E_surfxml_trace_connect):
+ case YY_STATE_EOF(E_surfxml_trace___connect):
  if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace_connect>' expected.");
        YY_BREAK
  
@@@ -6052,7 -6188,9 +6054,7 @@@ case 107
  YY_RULE_SETUP
  {
    AX_surfxml_AS_id = 0;
 -  surfxml_AS_id_isset = 0;
    AX_surfxml_AS_routing = A_surfxml_AS_routing_None;
 -  surfxml_AS_routing_isset = 0;
    ENTER(AL_surfxml_AS); pushbuffer(0);
    }
        YY_BREAK
  case 108:
  /* rule 108 can match eol */
  YY_RULE_SETUP
 -if (surfxml_AS_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_AS>");} surfxml_AS_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_AS_id);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_AS_id);
        YY_BREAK
  case 109:
  /* rule 109 can match eol */
  YY_RULE_SETUP
 -if (surfxml_AS_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_AS>");}  surfxml_AS_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_AS_id);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_AS_id);
        YY_BREAK
  case 110:
  /* rule 110 can match eol */
@@@ -6201,70 -6339,74 +6203,70 @@@ case 134
  /* rule 134 can match eol */
  YY_RULE_SETUP
  {
 -  AX_surfxml_storage___type_id = 0;
 -  surfxml_storage___type_id_isset = 0;
 -  AX_surfxml_storage___type_model = 0;
 -  surfxml_storage___type_model_isset = 0;
 -  AX_surfxml_storage___type_size = 0;
 -  surfxml_storage___type_size_isset = 0;
 -  AX_surfxml_storage___type_content = 0;
 -  surfxml_storage___type_content_isset = 0;
 -  ENTER(AL_surfxml_storage___type); pushbuffer(0);
 +  AX_surfxml_storage_type_id = 0;
 +  AX_surfxml_storage_type_model = 0;
 +  AX_surfxml_storage_type_size = 0;
 +  AX_surfxml_storage_type_content = 0;
 +  ENTER(AL_surfxml_storage_type); pushbuffer(0);
    }
        YY_BREAK
  
  case 135:
  /* rule 135 can match eol */
  YY_RULE_SETUP
 -if (surfxml_storage___type_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_storage___type>");} surfxml_storage___type_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage___type_id);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_type_id);
        YY_BREAK
  case 136:
  /* rule 136 can match eol */
  YY_RULE_SETUP
 -if (surfxml_storage___type_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_storage___type>");}  surfxml_storage___type_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage___type_id);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_type_id);
        YY_BREAK
  case 137:
  /* rule 137 can match eol */
  YY_RULE_SETUP
 -if (surfxml_storage___type_model_isset != 0) {FAIL("Multiple definition of attribute model in <surfxml_storage___type>");} surfxml_storage___type_model_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage___type_model);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_type_model);
        YY_BREAK
  case 138:
  /* rule 138 can match eol */
  YY_RULE_SETUP
 -if (surfxml_storage___type_model_isset != 0) {FAIL("Multiple definition of attribute model in <surfxml_storage___type>");}  surfxml_storage___type_model_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage___type_model);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_type_model);
        YY_BREAK
  case 139:
  /* rule 139 can match eol */
  YY_RULE_SETUP
 -if (surfxml_storage___type_size_isset != 0) {FAIL("Multiple definition of attribute size in <surfxml_storage___type>");} surfxml_storage___type_size_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage___type_size);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_type_size);
        YY_BREAK
  case 140:
  /* rule 140 can match eol */
  YY_RULE_SETUP
 -if (surfxml_storage___type_size_isset != 0) {FAIL("Multiple definition of attribute size in <surfxml_storage___type>");}  surfxml_storage___type_size_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage___type_size);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_type_size);
        YY_BREAK
  case 141:
  /* rule 141 can match eol */
  YY_RULE_SETUP
 -if (surfxml_storage___type_content_isset != 0) {FAIL("Multiple definition of attribute content in <surfxml_storage___type>");} surfxml_storage___type_content_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage___type_content);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_type_content);
        YY_BREAK
  case 142:
  /* rule 142 can match eol */
  YY_RULE_SETUP
 -if (surfxml_storage___type_content_isset != 0) {FAIL("Multiple definition of attribute content in <surfxml_storage___type>");}  surfxml_storage___type_content_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage___type_content);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_type_content);
        YY_BREAK
  case 143:
  YY_RULE_SETUP
  {
-   if (!AX_surfxml_storage_type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
-   if (!AX_surfxml_storage_type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
-   if (!AX_surfxml_storage_type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
-   LEAVE; STag_surfxml_storage_type();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage_type);
+   if (!AX_surfxml_storage___type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
+   if (!AX_surfxml_storage___type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
+   if (!AX_surfxml_storage___type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
+   LEAVE; STag_surfxml_storage___type();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage___type);
   }
        YY_BREAK
  case 144:
  YY_RULE_SETUP
  {
-   if (!AX_surfxml_storage_type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
-   if (!AX_surfxml_storage_type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
-   if (!AX_surfxml_storage_type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
-   LEAVE; STag_surfxml_storage_type(); surfxml_pcdata_ix = 0; ETag_surfxml_storage_type(); popbuffer(); /* attribute */
+   if (!AX_surfxml_storage___type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
+   if (!AX_surfxml_storage___type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
+   if (!AX_surfxml_storage___type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
+   LEAVE; STag_surfxml_storage___type(); surfxml_pcdata_ix = 0; ETag_surfxml_storage___type(); popbuffer(); /* attribute */
    switch (YY_START) {
     case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
     case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
@@@ -6279,7 -6421,7 +6281,7 @@@ case 146
  YY_RULE_SETUP
  FAIL("Bad attribute `%s' in `storage_type' element start tag.",surf_parse_text);
        YY_BREAK
- case YY_STATE_EOF(AL_surfxml_storage_type):
+ case YY_STATE_EOF(AL_surfxml_storage___type):
  FAIL("EOF in attribute list of `storage_type' element.");
        YY_BREAK
  
@@@ -6288,7 -6430,7 +6290,7 @@@ case 147
  YY_RULE_SETUP
  {
    LEAVE;
-   ETag_surfxml_storage_type();
+   ETag_surfxml_storage___type();
    popbuffer(); /* attribute */
    switch (YY_START) {
     case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
@@@ -6305,9 -6447,9 +6307,9 @@@ case 149
  YY_RULE_SETUP
  FAIL("Unexpected character `%c': `</storage_type>' expected.",surf_parse_text[0]);
        YY_BREAK
- case YY_STATE_EOF(E_surfxml_storage_type):
- case YY_STATE_EOF(S_surfxml_storage_type_2):
- case YY_STATE_EOF(S_surfxml_storage_type):
+ case YY_STATE_EOF(E_surfxml_storage___type):
+ case YY_STATE_EOF(S_surfxml_storage___type):
+ case YY_STATE_EOF(S_surfxml_storage___type_2):
  if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage_type>' expected.");
        YY_BREAK
  
@@@ -6321,8 -6463,11 +6323,8 @@@ case 151
  YY_RULE_SETUP
  {
    AX_surfxml_storage_id = 0;
 -  surfxml_storage_id_isset = 0;
    AX_surfxml_storage_typeId = 0;
 -  surfxml_storage_typeId_isset = 0;
    AX_surfxml_storage_content = 0;
 -  surfxml_storage_content_isset = 0;
    ENTER(AL_surfxml_storage); pushbuffer(0);
    }
        YY_BREAK
  case 152:
  /* rule 152 can match eol */
  YY_RULE_SETUP
 -if (surfxml_storage_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_storage>");} surfxml_storage_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_id);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_id);
        YY_BREAK
  case 153:
  /* rule 153 can match eol */
  YY_RULE_SETUP
 -if (surfxml_storage_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_storage>");}  surfxml_storage_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_id);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_id);
        YY_BREAK
  case 154:
  /* rule 154 can match eol */
  YY_RULE_SETUP
 -if (surfxml_storage_typeId_isset != 0) {FAIL("Multiple definition of attribute typeId in <surfxml_storage>");} surfxml_storage_typeId_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_typeId);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_typeId);
        YY_BREAK
  case 155:
  /* rule 155 can match eol */
  YY_RULE_SETUP
 -if (surfxml_storage_typeId_isset != 0) {FAIL("Multiple definition of attribute typeId in <surfxml_storage>");}  surfxml_storage_typeId_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_typeId);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_typeId);
        YY_BREAK
  case 156:
  /* rule 156 can match eol */
  YY_RULE_SETUP
 -if (surfxml_storage_content_isset != 0) {FAIL("Multiple definition of attribute content in <surfxml_storage>");} surfxml_storage_content_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_content);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_content);
        YY_BREAK
  case 157:
  /* rule 157 can match eol */
  YY_RULE_SETUP
 -if (surfxml_storage_content_isset != 0) {FAIL("Multiple definition of attribute content in <surfxml_storage>");}  surfxml_storage_content_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_content);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_content);
        YY_BREAK
  case 158:
  YY_RULE_SETUP
@@@ -6427,7 -6572,9 +6429,7 @@@ case 166
  YY_RULE_SETUP
  {
    AX_surfxml_mount_id = 0;
 -  surfxml_mount_id_isset = 0;
    AX_surfxml_mount_name = 0;
 -  surfxml_mount_name_isset = 0;
    ENTER(AL_surfxml_mount); pushbuffer(0);
    }
        YY_BREAK
  case 167:
  /* rule 167 can match eol */
  YY_RULE_SETUP
 -if (surfxml_mount_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_mount>");} surfxml_mount_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_mount_id);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_mount_id);
        YY_BREAK
  case 168:
  /* rule 168 can match eol */
  YY_RULE_SETUP
 -if (surfxml_mount_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_mount>");}  surfxml_mount_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_mount_id);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_mount_id);
        YY_BREAK
  case 169:
  /* rule 169 can match eol */
  YY_RULE_SETUP
 -if (surfxml_mount_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_mount>");} surfxml_mount_name_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_mount_name);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_mount_name);
        YY_BREAK
  case 170:
  /* rule 170 can match eol */
  YY_RULE_SETUP
 -if (surfxml_mount_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_mount>");}  surfxml_mount_name_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_mount_name);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_mount_name);
        YY_BREAK
  case 171:
  YY_RULE_SETUP
@@@ -6518,7 -6665,9 +6520,7 @@@ case 179
  YY_RULE_SETUP
  {
    AX_surfxml_mstorage_typeId = 0;
 -  surfxml_mstorage_typeId_isset = 0;
    AX_surfxml_mstorage_name = 0;
 -  surfxml_mstorage_name_isset = 0;
    ENTER(AL_surfxml_mstorage); pushbuffer(0);
    }
        YY_BREAK
  case 180:
  /* rule 180 can match eol */
  YY_RULE_SETUP
 -if (surfxml_mstorage_typeId_isset != 0) {FAIL("Multiple definition of attribute typeId in <surfxml_mstorage>");} surfxml_mstorage_typeId_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_mstorage_typeId);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_mstorage_typeId);
        YY_BREAK
  case 181:
  /* rule 181 can match eol */
  YY_RULE_SETUP
 -if (surfxml_mstorage_typeId_isset != 0) {FAIL("Multiple definition of attribute typeId in <surfxml_mstorage>");}  surfxml_mstorage_typeId_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_mstorage_typeId);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_mstorage_typeId);
        YY_BREAK
  case 182:
  /* rule 182 can match eol */
  YY_RULE_SETUP
 -if (surfxml_mstorage_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_mstorage>");} surfxml_mstorage_name_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_mstorage_name);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_mstorage_name);
        YY_BREAK
  case 183:
  /* rule 183 can match eol */
  YY_RULE_SETUP
 -if (surfxml_mstorage_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_mstorage>");}  surfxml_mstorage_name_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_mstorage_name);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_mstorage_name);
        YY_BREAK
  case 184:
  YY_RULE_SETUP
@@@ -6609,13 -6758,21 +6611,13 @@@ case 192
  YY_RULE_SETUP
  {
    AX_surfxml_host_id = 0;
 -  surfxml_host_id_isset = 0;
    AX_surfxml_host_power = 0;
 -  surfxml_host_power_isset = 0;
    AX_surfxml_host_core = 16;
 -  surfxml_host_core_isset = 0;
    AX_surfxml_host_availability = 18;
 -  surfxml_host_availability_isset = 0;
 -  AX_surfxml_host_availability___file = 0;
 -  surfxml_host_availability___file_isset = 0;
 +  AX_surfxml_host_availability_file = 0;
    AX_surfxml_host_state = A_surfxml_host_state_ON;
 -  surfxml_host_state_isset = 0;
 -  AX_surfxml_host_state___file = 0;
 -  surfxml_host_state___file_isset = 0;
 +  AX_surfxml_host_state_file = 0;
    AX_surfxml_host_coordinates = 0;
 -  surfxml_host_coordinates_isset = 0;
    ENTER(AL_surfxml_host); pushbuffer(0);
    }
        YY_BREAK
  case 193:
  /* rule 193 can match eol */
  YY_RULE_SETUP
 -if (surfxml_host_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_host>");} surfxml_host_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_id);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_host_id);
        YY_BREAK
  case 194:
  /* rule 194 can match eol */
  YY_RULE_SETUP
 -if (surfxml_host_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_host>");}  surfxml_host_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_id);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_host_id);
        YY_BREAK
  case 195:
  /* rule 195 can match eol */
  YY_RULE_SETUP
 -if (surfxml_host_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_host>");} surfxml_host_power_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_power);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_host_power);
        YY_BREAK
  case 196:
  /* rule 196 can match eol */
  YY_RULE_SETUP
 -if (surfxml_host_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_host>");}  surfxml_host_power_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_power);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_host_power);
        YY_BREAK
  case 197:
  /* rule 197 can match eol */
  YY_RULE_SETUP
 -if (surfxml_host_core_isset != 0) {FAIL("Multiple definition of attribute core in <surfxml_host>");} surfxml_host_core_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_core);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_host_core);
        YY_BREAK
  case 198:
  /* rule 198 can match eol */
  YY_RULE_SETUP
 -if (surfxml_host_core_isset != 0) {FAIL("Multiple definition of attribute core in <surfxml_host>");}  surfxml_host_core_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_core);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_host_core);
        YY_BREAK
  case 199:
  /* rule 199 can match eol */
  YY_RULE_SETUP
 -if (surfxml_host_availability_isset != 0) {FAIL("Multiple definition of attribute availability in <surfxml_host>");} surfxml_host_availability_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_availability);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_host_availability);
        YY_BREAK
  case 200:
  /* rule 200 can match eol */
  YY_RULE_SETUP
 -if (surfxml_host_availability_isset != 0) {FAIL("Multiple definition of attribute availability in <surfxml_host>");}  surfxml_host_availability_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_availability);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_host_availability);
        YY_BREAK
  case 201:
  /* rule 201 can match eol */
  YY_RULE_SETUP
 -if (surfxml_host_availability___file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_host>");} surfxml_host_availability___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_availability___file);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_host_availability_file);
        YY_BREAK
  case 202:
  /* rule 202 can match eol */
  YY_RULE_SETUP
 -if (surfxml_host_availability___file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_host>");}  surfxml_host_availability___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_availability___file);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_host_availability_file);
        YY_BREAK
  case 203:
  /* rule 203 can match eol */
@@@ -6687,22 -6844,22 +6689,22 @@@ A_surfxml_host_state = A_surfxml_host_s
  case 207:
  /* rule 207 can match eol */
  YY_RULE_SETUP
 -if (surfxml_host_state___file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_host>");} surfxml_host_state___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_state___file);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_host_state_file);
        YY_BREAK
  case 208:
  /* rule 208 can match eol */
  YY_RULE_SETUP
 -if (surfxml_host_state___file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_host>");}  surfxml_host_state___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_state___file);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_host_state_file);
        YY_BREAK
  case 209:
  /* rule 209 can match eol */
  YY_RULE_SETUP
 -if (surfxml_host_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_host>");} surfxml_host_coordinates_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_coordinates);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_host_coordinates);
        YY_BREAK
  case 210:
  /* rule 210 can match eol */
  YY_RULE_SETUP
 -if (surfxml_host_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_host>");}  surfxml_host_coordinates_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_coordinates);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_host_coordinates);
        YY_BREAK
  case 211:
  YY_RULE_SETUP
@@@ -6772,6 -6929,7 +6774,6 @@@ case 219
  YY_RULE_SETUP
  {
    AX_surfxml_gpu_name = 0;
 -  surfxml_gpu_name_isset = 0;
    ENTER(AL_surfxml_gpu); pushbuffer(0);
    }
        YY_BREAK
  case 220:
  /* rule 220 can match eol */
  YY_RULE_SETUP
 -if (surfxml_gpu_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_gpu>");} surfxml_gpu_name_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_gpu_name);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_gpu_name);
        YY_BREAK
  case 221:
  /* rule 221 can match eol */
  YY_RULE_SETUP
 -if (surfxml_gpu_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_gpu>");}  surfxml_gpu_name_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_gpu_name);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_gpu_name);
        YY_BREAK
  case 222:
  YY_RULE_SETUP
@@@ -6849,59 -7007,62 +6851,59 @@@ case 230
  /* rule 230 can match eol */
  YY_RULE_SETUP
  {
 -  AX_surfxml_host___link_id = 0;
 -  surfxml_host___link_id_isset = 0;
 -  AX_surfxml_host___link_up = 0;
 -  surfxml_host___link_up_isset = 0;
 -  AX_surfxml_host___link_down = 0;
 -  surfxml_host___link_down_isset = 0;
 -  ENTER(AL_surfxml_host___link); pushbuffer(0);
 +  AX_surfxml_host_link_id = 0;
 +  AX_surfxml_host_link_up = 0;
 +  AX_surfxml_host_link_down = 0;
 +  ENTER(AL_surfxml_host_link); pushbuffer(0);
    }
        YY_BREAK
  
  case 231:
  /* rule 231 can match eol */
  YY_RULE_SETUP
 -if (surfxml_host___link_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_host___link>");} surfxml_host___link_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host___link_id);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_host_link_id);
        YY_BREAK
  case 232:
  /* rule 232 can match eol */
  YY_RULE_SETUP
 -if (surfxml_host___link_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_host___link>");}  surfxml_host___link_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host___link_id);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_host_link_id);
        YY_BREAK
  case 233:
  /* rule 233 can match eol */
  YY_RULE_SETUP
 -if (surfxml_host___link_up_isset != 0) {FAIL("Multiple definition of attribute up in <surfxml_host___link>");} surfxml_host___link_up_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host___link_up);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_host_link_up);
        YY_BREAK
  case 234:
  /* rule 234 can match eol */
  YY_RULE_SETUP
 -if (surfxml_host___link_up_isset != 0) {FAIL("Multiple definition of attribute up in <surfxml_host___link>");}  surfxml_host___link_up_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host___link_up);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_host_link_up);
        YY_BREAK
  case 235:
  /* rule 235 can match eol */
  YY_RULE_SETUP
 -if (surfxml_host___link_down_isset != 0) {FAIL("Multiple definition of attribute down in <surfxml_host___link>");} surfxml_host___link_down_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host___link_down);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_host_link_down);
        YY_BREAK
  case 236:
  /* rule 236 can match eol */
  YY_RULE_SETUP
 -if (surfxml_host___link_down_isset != 0) {FAIL("Multiple definition of attribute down in <surfxml_host___link>");}  surfxml_host___link_down_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host___link_down);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_host_link_down);
        YY_BREAK
  case 237:
  YY_RULE_SETUP
  {
-   if (!AX_surfxml_host_link_id) FAIL("Required attribute `id' not set for `host_link' element.");
-   if (!AX_surfxml_host_link_up) FAIL("Required attribute `up' not set for `host_link' element.");
-   if (!AX_surfxml_host_link_down) FAIL("Required attribute `down' not set for `host_link' element.");
-   LEAVE; STag_surfxml_host_link();surfxml_pcdata_ix = 0; ENTER(E_surfxml_host_link);
+   if (!AX_surfxml_host___link_id) FAIL("Required attribute `id' not set for `host_link' element.");
+   if (!AX_surfxml_host___link_up) FAIL("Required attribute `up' not set for `host_link' element.");
+   if (!AX_surfxml_host___link_down) FAIL("Required attribute `down' not set for `host_link' element.");
+   LEAVE; STag_surfxml_host___link();surfxml_pcdata_ix = 0; ENTER(E_surfxml_host___link);
   }
        YY_BREAK
  case 238:
  YY_RULE_SETUP
  {
-   if (!AX_surfxml_host_link_id) FAIL("Required attribute `id' not set for `host_link' element.");
-   if (!AX_surfxml_host_link_up) FAIL("Required attribute `up' not set for `host_link' element.");
-   if (!AX_surfxml_host_link_down) FAIL("Required attribute `down' not set for `host_link' element.");
-   LEAVE; STag_surfxml_host_link(); surfxml_pcdata_ix = 0; ETag_surfxml_host_link(); popbuffer(); /* attribute */
+   if (!AX_surfxml_host___link_id) FAIL("Required attribute `id' not set for `host_link' element.");
+   if (!AX_surfxml_host___link_up) FAIL("Required attribute `up' not set for `host_link' element.");
+   if (!AX_surfxml_host___link_down) FAIL("Required attribute `down' not set for `host_link' element.");
+   LEAVE; STag_surfxml_host___link(); surfxml_pcdata_ix = 0; ETag_surfxml_host___link(); popbuffer(); /* attribute */
    switch (YY_START) {
     case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
    }
@@@ -6915,7 -7076,7 +6917,7 @@@ case 240
  YY_RULE_SETUP
  FAIL("Bad attribute `%s' in `host_link' element start tag.",surf_parse_text);
        YY_BREAK
- case YY_STATE_EOF(AL_surfxml_host_link):
+ case YY_STATE_EOF(AL_surfxml_host___link):
  FAIL("EOF in attribute list of `host_link' element.");
        YY_BREAK
  
@@@ -6924,7 -7085,7 +6926,7 @@@ case 241
  YY_RULE_SETUP
  {
    LEAVE;
-   ETag_surfxml_host_link();
+   ETag_surfxml_host___link();
    popbuffer(); /* attribute */
    switch (YY_START) {
     case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
@@@ -6940,7 -7101,7 +6942,7 @@@ case 243
  YY_RULE_SETUP
  FAIL("Unexpected character `%c': `</host_link>' expected.",surf_parse_text[0]);
        YY_BREAK
- case YY_STATE_EOF(E_surfxml_host_link):
+ case YY_STATE_EOF(E_surfxml_host___link):
  if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</host_link>' expected.");
        YY_BREAK
  
@@@ -6954,20 -7115,35 +6956,20 @@@ case 245
  YY_RULE_SETUP
  {
    AX_surfxml_cluster_id = 0;
 -  surfxml_cluster_id_isset = 0;
    AX_surfxml_cluster_prefix = 0;
 -  surfxml_cluster_prefix_isset = 0;
    AX_surfxml_cluster_suffix = 0;
 -  surfxml_cluster_suffix_isset = 0;
    AX_surfxml_cluster_radical = 0;
 -  surfxml_cluster_radical_isset = 0;
    AX_surfxml_cluster_power = 0;
 -  surfxml_cluster_power_isset = 0;
    AX_surfxml_cluster_core = 22;
 -  surfxml_cluster_core_isset = 0;
    AX_surfxml_cluster_bw = 0;
 -  surfxml_cluster_bw_isset = 0;
    AX_surfxml_cluster_lat = 0;
 -  surfxml_cluster_lat_isset = 0;
 -  AX_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FULLDUPLEX;
 -  surfxml_cluster_sharing___policy_isset = 0;
 -  AX_surfxml_cluster_bb___bw = 0;
 -  surfxml_cluster_bb___bw_isset = 0;
 -  AX_surfxml_cluster_bb___lat = 0;
 -  surfxml_cluster_bb___lat_isset = 0;
 -  AX_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_SHARED;
 -  surfxml_cluster_bb___sharing___policy_isset = 0;
 -  AX_surfxml_cluster_availability___file = 0;
 -  surfxml_cluster_availability___file_isset = 0;
 -  AX_surfxml_cluster_state___file = 0;
 -  surfxml_cluster_state___file_isset = 0;
 -  AX_surfxml_cluster_router___id = 0;
 -  surfxml_cluster_router___id_isset = 0;
 +  AX_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_FULLDUPLEX;
 +  AX_surfxml_cluster_bb_bw = 0;
 +  AX_surfxml_cluster_bb_lat = 0;
 +  AX_surfxml_cluster_bb_sharing_policy = A_surfxml_cluster_bb_sharing_policy_SHARED;
 +  AX_surfxml_cluster_availability_file = 0;
 +  AX_surfxml_cluster_state_file = 0;
 +  AX_surfxml_cluster_router_id = 0;
    ENTER(AL_surfxml_cluster); pushbuffer(0);
    }
        YY_BREAK
  case 246:
  /* rule 246 can match eol */
  YY_RULE_SETUP
 -if (surfxml_cluster_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_cluster>");} surfxml_cluster_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_id);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_id);
        YY_BREAK
  case 247:
  /* rule 247 can match eol */
  YY_RULE_SETUP
 -if (surfxml_cluster_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_cluster>");}  surfxml_cluster_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_id);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_id);
        YY_BREAK
  case 248:
  /* rule 248 can match eol */
  YY_RULE_SETUP
 -if (surfxml_cluster_prefix_isset != 0) {FAIL("Multiple definition of attribute prefix in <surfxml_cluster>");} surfxml_cluster_prefix_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_prefix);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_prefix);
        YY_BREAK
  case 249:
  /* rule 249 can match eol */
  YY_RULE_SETUP
 -if (surfxml_cluster_prefix_isset != 0) {FAIL("Multiple definition of attribute prefix in <surfxml_cluster>");}  surfxml_cluster_prefix_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_prefix);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_prefix);
        YY_BREAK
  case 250:
  /* rule 250 can match eol */
  YY_RULE_SETUP
 -if (surfxml_cluster_suffix_isset != 0) {FAIL("Multiple definition of attribute suffix in <surfxml_cluster>");} surfxml_cluster_suffix_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_suffix);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_suffix);
        YY_BREAK
  case 251:
  /* rule 251 can match eol */
  YY_RULE_SETUP
 -if (surfxml_cluster_suffix_isset != 0) {FAIL("Multiple definition of attribute suffix in <surfxml_cluster>");}  surfxml_cluster_suffix_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_suffix);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_suffix);
        YY_BREAK
  case 252:
  /* rule 252 can match eol */
  YY_RULE_SETUP
 -if (surfxml_cluster_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_cluster>");} surfxml_cluster_radical_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_radical);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_radical);
        YY_BREAK
  case 253:
  /* rule 253 can match eol */
  YY_RULE_SETUP
 -if (surfxml_cluster_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_cluster>");}  surfxml_cluster_radical_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_radical);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_radical);
        YY_BREAK
  case 254:
  /* rule 254 can match eol */
  YY_RULE_SETUP
 -if (surfxml_cluster_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_cluster>");} surfxml_cluster_power_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_power);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_power);
        YY_BREAK
  case 255:
  /* rule 255 can match eol */
  YY_RULE_SETUP
 -if (surfxml_cluster_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_cluster>");}  surfxml_cluster_power_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_power);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_power);
        YY_BREAK
  case 256:
  /* rule 256 can match eol */
  YY_RULE_SETUP
 -if (surfxml_cluster_core_isset != 0) {FAIL("Multiple definition of attribute core in <surfxml_cluster>");} surfxml_cluster_core_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_core);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_core);
        YY_BREAK
  case 257:
  /* rule 257 can match eol */
  YY_RULE_SETUP
 -if (surfxml_cluster_core_isset != 0) {FAIL("Multiple definition of attribute core in <surfxml_cluster>");}  surfxml_cluster_core_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_core);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_core);
        YY_BREAK
  case 258:
  /* rule 258 can match eol */
  YY_RULE_SETUP
 -if (surfxml_cluster_bw_isset != 0) {FAIL("Multiple definition of attribute bw in <surfxml_cluster>");} surfxml_cluster_bw_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_bw);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_bw);
        YY_BREAK
  case 259:
  /* rule 259 can match eol */
  YY_RULE_SETUP
 -if (surfxml_cluster_bw_isset != 0) {FAIL("Multiple definition of attribute bw in <surfxml_cluster>");}  surfxml_cluster_bw_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_bw);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_bw);
        YY_BREAK
  case 260:
  /* rule 260 can match eol */
  YY_RULE_SETUP
 -if (surfxml_cluster_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_cluster>");} surfxml_cluster_lat_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_lat);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_lat);
        YY_BREAK
  case 261:
  /* rule 261 can match eol */
  YY_RULE_SETUP
 -if (surfxml_cluster_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_cluster>");}  surfxml_cluster_lat_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_lat);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_lat);
        YY_BREAK
  case 262:
  /* rule 262 can match eol */
  case 263:
  /* rule 263 can match eol */
  YY_RULE_SETUP
- A_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_SHARED;
+ A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_SHARED;
        YY_BREAK
  case 264:
  /* rule 264 can match eol */
  case 265:
  /* rule 265 can match eol */
  YY_RULE_SETUP
- A_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_FULLDUPLEX;
+ A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FULLDUPLEX;
        YY_BREAK
  case 266:
  /* rule 266 can match eol */
  case 267:
  /* rule 267 can match eol */
  YY_RULE_SETUP
- A_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_FATPIPE;
+ A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FATPIPE;
        YY_BREAK
  case 268:
  /* rule 268 can match eol */
  YY_RULE_SETUP
 -if (surfxml_cluster_bb___bw_isset != 0) {FAIL("Multiple definition of attribute bb_bw in <surfxml_cluster>");} surfxml_cluster_bb___bw_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_bb___bw);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_bb_bw);
        YY_BREAK
  case 269:
  /* rule 269 can match eol */
  YY_RULE_SETUP
 -if (surfxml_cluster_bb___bw_isset != 0) {FAIL("Multiple definition of attribute bb_bw in <surfxml_cluster>");}  surfxml_cluster_bb___bw_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_bb___bw);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_bb_bw);
        YY_BREAK
  case 270:
  /* rule 270 can match eol */
  YY_RULE_SETUP
 -if (surfxml_cluster_bb___lat_isset != 0) {FAIL("Multiple definition of attribute bb_lat in <surfxml_cluster>");} surfxml_cluster_bb___lat_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_bb___lat);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_bb_lat);
        YY_BREAK
  case 271:
  /* rule 271 can match eol */
  YY_RULE_SETUP
 -if (surfxml_cluster_bb___lat_isset != 0) {FAIL("Multiple definition of attribute bb_lat in <surfxml_cluster>");}  surfxml_cluster_bb___lat_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_bb___lat);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_bb_lat);
        YY_BREAK
  case 272:
  /* rule 272 can match eol */
  case 273:
  /* rule 273 can match eol */
  YY_RULE_SETUP
- A_surfxml_cluster_bb_sharing_policy = A_surfxml_cluster_bb_sharing_policy_SHARED;
+ A_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_SHARED;
        YY_BREAK
  case 274:
  /* rule 274 can match eol */
  case 275:
  /* rule 275 can match eol */
  YY_RULE_SETUP
- A_surfxml_cluster_bb_sharing_policy = A_surfxml_cluster_bb_sharing_policy_FATPIPE;
+ A_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_FATPIPE;
        YY_BREAK
  case 276:
  /* rule 276 can match eol */
  YY_RULE_SETUP
 -if (surfxml_cluster_availability___file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_cluster>");} surfxml_cluster_availability___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_availability___file);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_availability_file);
        YY_BREAK
  case 277:
  /* rule 277 can match eol */
  YY_RULE_SETUP
 -if (surfxml_cluster_availability___file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_cluster>");}  surfxml_cluster_availability___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_availability___file);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_availability_file);
        YY_BREAK
  case 278:
  /* rule 278 can match eol */
  YY_RULE_SETUP
 -if (surfxml_cluster_state___file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_cluster>");} surfxml_cluster_state___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_state___file);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_state_file);
        YY_BREAK
  case 279:
  /* rule 279 can match eol */
  YY_RULE_SETUP
 -if (surfxml_cluster_state___file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_cluster>");}  surfxml_cluster_state___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_state___file);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_state_file);
        YY_BREAK
  case 280:
  /* rule 280 can match eol */
  YY_RULE_SETUP
 -if (surfxml_cluster_router___id_isset != 0) {FAIL("Multiple definition of attribute router_id in <surfxml_cluster>");} surfxml_cluster_router___id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_router___id);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_router_id);
        YY_BREAK
  case 281:
  /* rule 281 can match eol */
  YY_RULE_SETUP
 -if (surfxml_cluster_router___id_isset != 0) {FAIL("Multiple definition of attribute router_id in <surfxml_cluster>");}  surfxml_cluster_router___id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_router___id);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_router_id);
        YY_BREAK
  case 282:
  YY_RULE_SETUP
@@@ -7217,12 -7393,19 +7219,12 @@@ case 290
  YY_RULE_SETUP
  {
    AX_surfxml_cabinet_id = 0;
 -  surfxml_cabinet_id_isset = 0;
    AX_surfxml_cabinet_prefix = 0;
 -  surfxml_cabinet_prefix_isset = 0;
    AX_surfxml_cabinet_suffix = 0;
 -  surfxml_cabinet_suffix_isset = 0;
    AX_surfxml_cabinet_radical = 0;
 -  surfxml_cabinet_radical_isset = 0;
    AX_surfxml_cabinet_power = 0;
 -  surfxml_cabinet_power_isset = 0;
    AX_surfxml_cabinet_bw = 0;
 -  surfxml_cabinet_bw_isset = 0;
    AX_surfxml_cabinet_lat = 0;
 -  surfxml_cabinet_lat_isset = 0;
    ENTER(AL_surfxml_cabinet); pushbuffer(0);
    }
        YY_BREAK
  case 291:
  /* rule 291 can match eol */
  YY_RULE_SETUP
 -if (surfxml_cabinet_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_cabinet>");} surfxml_cabinet_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_id);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_id);
        YY_BREAK
  case 292:
  /* rule 292 can match eol */
  YY_RULE_SETUP
 -if (surfxml_cabinet_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_cabinet>");}  surfxml_cabinet_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_id);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_id);
        YY_BREAK
  case 293:
  /* rule 293 can match eol */
  YY_RULE_SETUP
 -if (surfxml_cabinet_prefix_isset != 0) {FAIL("Multiple definition of attribute prefix in <surfxml_cabinet>");} surfxml_cabinet_prefix_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_prefix);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_prefix);
        YY_BREAK
  case 294:
  /* rule 294 can match eol */
  YY_RULE_SETUP
 -if (surfxml_cabinet_prefix_isset != 0) {FAIL("Multiple definition of attribute prefix in <surfxml_cabinet>");}  surfxml_cabinet_prefix_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_prefix);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_prefix);
        YY_BREAK
  case 295:
  /* rule 295 can match eol */
  YY_RULE_SETUP
 -if (surfxml_cabinet_suffix_isset != 0) {FAIL("Multiple definition of attribute suffix in <surfxml_cabinet>");} surfxml_cabinet_suffix_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_suffix);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_suffix);
        YY_BREAK
  case 296:
  /* rule 296 can match eol */
  YY_RULE_SETUP
 -if (surfxml_cabinet_suffix_isset != 0) {FAIL("Multiple definition of attribute suffix in <surfxml_cabinet>");}  surfxml_cabinet_suffix_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_suffix);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_suffix);
        YY_BREAK
  case 297:
  /* rule 297 can match eol */
  YY_RULE_SETUP
 -if (surfxml_cabinet_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_cabinet>");} surfxml_cabinet_radical_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_radical);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_radical);
        YY_BREAK
  case 298:
  /* rule 298 can match eol */
  YY_RULE_SETUP
 -if (surfxml_cabinet_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_cabinet>");}  surfxml_cabinet_radical_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_radical);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_radical);
        YY_BREAK
  case 299:
  /* rule 299 can match eol */
  YY_RULE_SETUP
 -if (surfxml_cabinet_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_cabinet>");} surfxml_cabinet_power_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_power);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_power);
        YY_BREAK
  case 300:
  /* rule 300 can match eol */
  YY_RULE_SETUP
 -if (surfxml_cabinet_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_cabinet>");}  surfxml_cabinet_power_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_power);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_power);
        YY_BREAK
  case 301:
  /* rule 301 can match eol */
  YY_RULE_SETUP
 -if (surfxml_cabinet_bw_isset != 0) {FAIL("Multiple definition of attribute bw in <surfxml_cabinet>");} surfxml_cabinet_bw_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_bw);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_bw);
        YY_BREAK
  case 302:
  /* rule 302 can match eol */
  YY_RULE_SETUP
 -if (surfxml_cabinet_bw_isset != 0) {FAIL("Multiple definition of attribute bw in <surfxml_cabinet>");}  surfxml_cabinet_bw_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_bw);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_bw);
        YY_BREAK
  case 303:
  /* rule 303 can match eol */
  YY_RULE_SETUP
 -if (surfxml_cabinet_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_cabinet>");} surfxml_cabinet_lat_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_lat);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_lat);
        YY_BREAK
  case 304:
  /* rule 304 can match eol */
  YY_RULE_SETUP
 -if (surfxml_cabinet_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_cabinet>");}  surfxml_cabinet_lat_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_lat);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_lat);
        YY_BREAK
  case 305:
  YY_RULE_SETUP
@@@ -7379,13 -7562,21 +7381,13 @@@ case 313
  YY_RULE_SETUP
  {
    AX_surfxml_peer_id = 0;
 -  surfxml_peer_id_isset = 0;
    AX_surfxml_peer_power = 0;
 -  surfxml_peer_power_isset = 0;
 -  AX_surfxml_peer_bw___in = 0;
 -  surfxml_peer_bw___in_isset = 0;
 -  AX_surfxml_peer_bw___out = 0;
 -  surfxml_peer_bw___out_isset = 0;
 +  AX_surfxml_peer_bw_in = 0;
 +  AX_surfxml_peer_bw_out = 0;
    AX_surfxml_peer_lat = 0;
 -  surfxml_peer_lat_isset = 0;
    AX_surfxml_peer_coordinates = 0;
 -  surfxml_peer_coordinates_isset = 0;
 -  AX_surfxml_peer_availability___file = 0;
 -  surfxml_peer_availability___file_isset = 0;
 -  AX_surfxml_peer_state___file = 0;
 -  surfxml_peer_state___file_isset = 0;
 +  AX_surfxml_peer_availability_file = 0;
 +  AX_surfxml_peer_state_file = 0;
    ENTER(AL_surfxml_peer); pushbuffer(0);
    }
        YY_BREAK
  case 314:
  /* rule 314 can match eol */
  YY_RULE_SETUP
 -if (surfxml_peer_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_peer>");} surfxml_peer_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_id);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_id);
        YY_BREAK
  case 315:
  /* rule 315 can match eol */
  YY_RULE_SETUP
 -if (surfxml_peer_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_peer>");}  surfxml_peer_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_id);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_id);
        YY_BREAK
  case 316:
  /* rule 316 can match eol */
  YY_RULE_SETUP
 -if (surfxml_peer_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_peer>");} surfxml_peer_power_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_power);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_power);
        YY_BREAK
  case 317:
  /* rule 317 can match eol */
  YY_RULE_SETUP
 -if (surfxml_peer_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_peer>");}  surfxml_peer_power_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_power);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_power);
        YY_BREAK
  case 318:
  /* rule 318 can match eol */
  YY_RULE_SETUP
 -if (surfxml_peer_bw___in_isset != 0) {FAIL("Multiple definition of attribute bw_in in <surfxml_peer>");} surfxml_peer_bw___in_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_bw___in);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_bw_in);
        YY_BREAK
  case 319:
  /* rule 319 can match eol */
  YY_RULE_SETUP
 -if (surfxml_peer_bw___in_isset != 0) {FAIL("Multiple definition of attribute bw_in in <surfxml_peer>");}  surfxml_peer_bw___in_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_bw___in);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_bw_in);
        YY_BREAK
  case 320:
  /* rule 320 can match eol */
  YY_RULE_SETUP
 -if (surfxml_peer_bw___out_isset != 0) {FAIL("Multiple definition of attribute bw_out in <surfxml_peer>");} surfxml_peer_bw___out_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_bw___out);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_bw_out);
        YY_BREAK
  case 321:
  /* rule 321 can match eol */
  YY_RULE_SETUP
 -if (surfxml_peer_bw___out_isset != 0) {FAIL("Multiple definition of attribute bw_out in <surfxml_peer>");}  surfxml_peer_bw___out_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_bw___out);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_bw_out);
        YY_BREAK
  case 322:
  /* rule 322 can match eol */
  YY_RULE_SETUP
 -if (surfxml_peer_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_peer>");} surfxml_peer_lat_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_lat);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_lat);
        YY_BREAK
  case 323:
  /* rule 323 can match eol */
  YY_RULE_SETUP
 -if (surfxml_peer_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_peer>");}  surfxml_peer_lat_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_lat);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_lat);
        YY_BREAK
  case 324:
  /* rule 324 can match eol */
  YY_RULE_SETUP
 -if (surfxml_peer_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_peer>");} surfxml_peer_coordinates_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_coordinates);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_coordinates);
        YY_BREAK
  case 325:
  /* rule 325 can match eol */
  YY_RULE_SETUP
 -if (surfxml_peer_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_peer>");}  surfxml_peer_coordinates_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_coordinates);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_coordinates);
        YY_BREAK
  case 326:
  /* rule 326 can match eol */
  YY_RULE_SETUP
 -if (surfxml_peer_availability___file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_peer>");} surfxml_peer_availability___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_availability___file);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_availability_file);
        YY_BREAK
  case 327:
  /* rule 327 can match eol */
  YY_RULE_SETUP
 -if (surfxml_peer_availability___file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_peer>");}  surfxml_peer_availability___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_availability___file);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_availability_file);
        YY_BREAK
  case 328:
  /* rule 328 can match eol */
  YY_RULE_SETUP
 -if (surfxml_peer_state___file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_peer>");} surfxml_peer_state___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_state___file);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_state_file);
        YY_BREAK
  case 329:
  /* rule 329 can match eol */
  YY_RULE_SETUP
 -if (surfxml_peer_state___file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_peer>");}  surfxml_peer_state___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_state___file);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_state_file);
        YY_BREAK
  case 330:
  YY_RULE_SETUP
  {
    if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
    if (!AX_surfxml_peer_power) FAIL("Required attribute `power' not set for `peer' element.");
-   if (!AX_surfxml_peer_bw_in) FAIL("Required attribute `bw_in' not set for `peer' element.");
-   if (!AX_surfxml_peer_bw_out) FAIL("Required attribute `bw_out' not set for `peer' element.");
+   if (!AX_surfxml_peer_bw___in) FAIL("Required attribute `bw_in' not set for `peer' element.");
+   if (!AX_surfxml_peer_bw___out) FAIL("Required attribute `bw_out' not set for `peer' element.");
    if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
    LEAVE; STag_surfxml_peer();surfxml_pcdata_ix = 0; ENTER(E_surfxml_peer);
   }
@@@ -7486,8 -7677,8 +7488,8 @@@ YY_RULE_SETU
  {
    if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
    if (!AX_surfxml_peer_power) FAIL("Required attribute `power' not set for `peer' element.");
-   if (!AX_surfxml_peer_bw_in) FAIL("Required attribute `bw_in' not set for `peer' element.");
-   if (!AX_surfxml_peer_bw_out) FAIL("Required attribute `bw_out' not set for `peer' element.");
+   if (!AX_surfxml_peer_bw___in) FAIL("Required attribute `bw_in' not set for `peer' element.");
+   if (!AX_surfxml_peer_bw___out) FAIL("Required attribute `bw_out' not set for `peer' element.");
    if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
    LEAVE; STag_surfxml_peer(); surfxml_pcdata_ix = 0; ETag_surfxml_peer(); popbuffer(); /* attribute */
    switch (YY_START) {
@@@ -7546,7 -7737,9 +7548,7 @@@ case 338
  YY_RULE_SETUP
  {
    AX_surfxml_router_id = 0;
 -  surfxml_router_id_isset = 0;
    AX_surfxml_router_coordinates = 0;
 -  surfxml_router_coordinates_isset = 0;
    ENTER(AL_surfxml_router); pushbuffer(0);
    }
        YY_BREAK
  case 339:
  /* rule 339 can match eol */
  YY_RULE_SETUP
 -if (surfxml_router_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_router>");} surfxml_router_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_router_id);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_router_id);
        YY_BREAK
  case 340:
  /* rule 340 can match eol */
  YY_RULE_SETUP
 -if (surfxml_router_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_router>");}  surfxml_router_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_router_id);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_router_id);
        YY_BREAK
  case 341:
  /* rule 341 can match eol */
  YY_RULE_SETUP
 -if (surfxml_router_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_router>");} surfxml_router_coordinates_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_router_coordinates);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_router_coordinates);
        YY_BREAK
  case 342:
  /* rule 342 can match eol */
  YY_RULE_SETUP
 -if (surfxml_router_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_router>");}  surfxml_router_coordinates_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_router_coordinates);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_router_coordinates);
        YY_BREAK
  case 343:
  YY_RULE_SETUP
@@@ -7635,8 -7828,11 +7637,8 @@@ case 351
  YY_RULE_SETUP
  {
    AX_surfxml_backbone_id = 0;
 -  surfxml_backbone_id_isset = 0;
    AX_surfxml_backbone_bandwidth = 0;
 -  surfxml_backbone_bandwidth_isset = 0;
    AX_surfxml_backbone_latency = 0;
 -  surfxml_backbone_latency_isset = 0;
    ENTER(AL_surfxml_backbone); pushbuffer(0);
    }
        YY_BREAK
  case 352:
  /* rule 352 can match eol */
  YY_RULE_SETUP
 -if (surfxml_backbone_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_backbone>");} surfxml_backbone_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_backbone_id);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_backbone_id);
        YY_BREAK
  case 353:
  /* rule 353 can match eol */
  YY_RULE_SETUP
 -if (surfxml_backbone_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_backbone>");}  surfxml_backbone_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_backbone_id);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_backbone_id);
        YY_BREAK
  case 354:
  /* rule 354 can match eol */
  YY_RULE_SETUP
 -if (surfxml_backbone_bandwidth_isset != 0) {FAIL("Multiple definition of attribute bandwidth in <surfxml_backbone>");} surfxml_backbone_bandwidth_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_backbone_bandwidth);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_backbone_bandwidth);
        YY_BREAK
  case 355:
  /* rule 355 can match eol */
  YY_RULE_SETUP
 -if (surfxml_backbone_bandwidth_isset != 0) {FAIL("Multiple definition of attribute bandwidth in <surfxml_backbone>");}  surfxml_backbone_bandwidth_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_backbone_bandwidth);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_backbone_bandwidth);
        YY_BREAK
  case 356:
  /* rule 356 can match eol */
  YY_RULE_SETUP
 -if (surfxml_backbone_latency_isset != 0) {FAIL("Multiple definition of attribute latency in <surfxml_backbone>");} surfxml_backbone_latency_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_backbone_latency);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_backbone_latency);
        YY_BREAK
  case 357:
  /* rule 357 can match eol */
  YY_RULE_SETUP
 -if (surfxml_backbone_latency_isset != 0) {FAIL("Multiple definition of attribute latency in <surfxml_backbone>");}  surfxml_backbone_latency_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_backbone_latency);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_backbone_latency);
        YY_BREAK
  case 358:
  YY_RULE_SETUP
@@@ -7741,13 -7937,21 +7743,13 @@@ case 366
  YY_RULE_SETUP
  {
    AX_surfxml_link_id = 0;
 -  surfxml_link_id_isset = 0;
    AX_surfxml_link_bandwidth = 0;
 -  surfxml_link_bandwidth_isset = 0;
 -  AX_surfxml_link_bandwidth___file = 0;
 -  surfxml_link_bandwidth___file_isset = 0;
 +  AX_surfxml_link_bandwidth_file = 0;
    AX_surfxml_link_latency = 24;
 -  surfxml_link_latency_isset = 0;
 -  AX_surfxml_link_latency___file = 0;
 -  surfxml_link_latency___file_isset = 0;
 +  AX_surfxml_link_latency_file = 0;
    AX_surfxml_link_state = A_surfxml_link_state_ON;
 -  surfxml_link_state_isset = 0;
 -  AX_surfxml_link_state___file = 0;
 -  surfxml_link_state___file_isset = 0;
 -  AX_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_SHARED;
 -  surfxml_link_sharing___policy_isset = 0;
 +  AX_surfxml_link_state_file = 0;
 +  AX_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_SHARED;
    ENTER(AL_surfxml_link); pushbuffer(0);
    }
        YY_BREAK
  case 367:
  /* rule 367 can match eol */
  YY_RULE_SETUP
 -if (surfxml_link_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_link>");} surfxml_link_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_id);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_link_id);
        YY_BREAK
  case 368:
  /* rule 368 can match eol */
  YY_RULE_SETUP
 -if (surfxml_link_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_link>");}  surfxml_link_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_id);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_link_id);
        YY_BREAK
  case 369:
  /* rule 369 can match eol */
  YY_RULE_SETUP
 -if (surfxml_link_bandwidth_isset != 0) {FAIL("Multiple definition of attribute bandwidth in <surfxml_link>");} surfxml_link_bandwidth_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_bandwidth);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_link_bandwidth);
        YY_BREAK
  case 370:
  /* rule 370 can match eol */
  YY_RULE_SETUP
 -if (surfxml_link_bandwidth_isset != 0) {FAIL("Multiple definition of attribute bandwidth in <surfxml_link>");}  surfxml_link_bandwidth_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_bandwidth);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_link_bandwidth);
        YY_BREAK
  case 371:
  /* rule 371 can match eol */
  YY_RULE_SETUP
 -if (surfxml_link_bandwidth___file_isset != 0) {FAIL("Multiple definition of attribute bandwidth_file in <surfxml_link>");} surfxml_link_bandwidth___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_bandwidth___file);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_link_bandwidth_file);
        YY_BREAK
  case 372:
  /* rule 372 can match eol */
  YY_RULE_SETUP
 -if (surfxml_link_bandwidth___file_isset != 0) {FAIL("Multiple definition of attribute bandwidth_file in <surfxml_link>");}  surfxml_link_bandwidth___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_bandwidth___file);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_link_bandwidth_file);
        YY_BREAK
  case 373:
  /* rule 373 can match eol */
  YY_RULE_SETUP
 -if (surfxml_link_latency_isset != 0) {FAIL("Multiple definition of attribute latency in <surfxml_link>");} surfxml_link_latency_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_latency);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_link_latency);
        YY_BREAK
  case 374:
  /* rule 374 can match eol */
  YY_RULE_SETUP
 -if (surfxml_link_latency_isset != 0) {FAIL("Multiple definition of attribute latency in <surfxml_link>");}  surfxml_link_latency_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_latency);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_link_latency);
        YY_BREAK
  case 375:
  /* rule 375 can match eol */
  YY_RULE_SETUP
 -if (surfxml_link_latency___file_isset != 0) {FAIL("Multiple definition of attribute latency_file in <surfxml_link>");} surfxml_link_latency___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_latency___file);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_link_latency_file);
        YY_BREAK
  case 376:
  /* rule 376 can match eol */
  YY_RULE_SETUP
 -if (surfxml_link_latency___file_isset != 0) {FAIL("Multiple definition of attribute latency_file in <surfxml_link>");}  surfxml_link_latency___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_latency___file);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_link_latency_file);
        YY_BREAK
  case 377:
  /* rule 377 can match eol */
@@@ -7819,33 -8023,33 +7821,33 @@@ A_surfxml_link_state = A_surfxml_link_s
  case 381:
  /* rule 381 can match eol */
  YY_RULE_SETUP
 -if (surfxml_link_state___file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_link>");} surfxml_link_state___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_state___file);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_link_state_file);
        YY_BREAK
  case 382:
  /* rule 382 can match eol */
  YY_RULE_SETUP
 -if (surfxml_link_state___file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_link>");}  surfxml_link_state___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_state___file);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_link_state_file);
        YY_BREAK
  case 383:
  /* rule 383 can match eol */
  case 384:
  /* rule 384 can match eol */
  YY_RULE_SETUP
- A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_SHARED;
+ A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_SHARED;
        YY_BREAK
  case 385:
  /* rule 385 can match eol */
  case 386:
  /* rule 386 can match eol */
  YY_RULE_SETUP
- A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_FATPIPE;
+ A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_FATPIPE;
        YY_BREAK
  case 387:
  /* rule 387 can match eol */
  case 388:
  /* rule 388 can match eol */
  YY_RULE_SETUP
- A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_FULLDUPLEX;
+ A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_FULLDUPLEX;
        YY_BREAK
  case 389:
  YY_RULE_SETUP
@@@ -7917,8 -8121,11 +7919,8 @@@ case 397
  YY_RULE_SETUP
  {
    AX_surfxml_route_src = 0;
 -  surfxml_route_src_isset = 0;
    AX_surfxml_route_dst = 0;
 -  surfxml_route_dst_isset = 0;
    AX_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
 -  surfxml_route_symmetrical_isset = 0;
    ENTER(AL_surfxml_route); pushbuffer(0);
    }
        YY_BREAK
  case 398:
  /* rule 398 can match eol */
  YY_RULE_SETUP
 -if (surfxml_route_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_route>");} surfxml_route_src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_route_src);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_route_src);
        YY_BREAK
  case 399:
  /* rule 399 can match eol */
  YY_RULE_SETUP
 -if (surfxml_route_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_route>");}  surfxml_route_src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_route_src);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_route_src);
        YY_BREAK
  case 400:
  /* rule 400 can match eol */
  YY_RULE_SETUP
 -if (surfxml_route_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_route>");} surfxml_route_dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_route_dst);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_route_dst);
        YY_BREAK
  case 401:
  /* rule 401 can match eol */
  YY_RULE_SETUP
 -if (surfxml_route_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_route>");}  surfxml_route_dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_route_dst);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_route_dst);
        YY_BREAK
  case 402:
  /* rule 402 can match eol */
@@@ -8025,10 -8232,15 +8027,10 @@@ case 414
  YY_RULE_SETUP
  {
    AX_surfxml_ASroute_src = 0;
 -  surfxml_ASroute_src_isset = 0;
    AX_surfxml_ASroute_dst = 0;
 -  surfxml_ASroute_dst_isset = 0;
 -  AX_surfxml_ASroute_gw___src = 0;
 -  surfxml_ASroute_gw___src_isset = 0;
 -  AX_surfxml_ASroute_gw___dst = 0;
 -  surfxml_ASroute_gw___dst_isset = 0;
 +  AX_surfxml_ASroute_gw_src = 0;
 +  AX_surfxml_ASroute_gw_dst = 0;
    AX_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
 -  surfxml_ASroute_symmetrical_isset = 0;
    ENTER(AL_surfxml_ASroute); pushbuffer(0);
    }
        YY_BREAK
  case 415:
  /* rule 415 can match eol */
  YY_RULE_SETUP
 -if (surfxml_ASroute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_ASroute>");} surfxml_ASroute_src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_ASroute_src);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_ASroute_src);
        YY_BREAK
  case 416:
  /* rule 416 can match eol */
  YY_RULE_SETUP
 -if (surfxml_ASroute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_ASroute>");}  surfxml_ASroute_src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_ASroute_src);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_ASroute_src);
        YY_BREAK
  case 417:
  /* rule 417 can match eol */
  YY_RULE_SETUP
 -if (surfxml_ASroute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_ASroute>");} surfxml_ASroute_dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_ASroute_dst);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_ASroute_dst);
        YY_BREAK
  case 418:
  /* rule 418 can match eol */
  YY_RULE_SETUP
 -if (surfxml_ASroute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_ASroute>");}  surfxml_ASroute_dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_ASroute_dst);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_ASroute_dst);
        YY_BREAK
  case 419:
  /* rule 419 can match eol */
  YY_RULE_SETUP
 -if (surfxml_ASroute_gw___src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_ASroute>");} surfxml_ASroute_gw___src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_ASroute_gw___src);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_ASroute_gw_src);
        YY_BREAK
  case 420:
  /* rule 420 can match eol */
  YY_RULE_SETUP
 -if (surfxml_ASroute_gw___src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_ASroute>");}  surfxml_ASroute_gw___src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_ASroute_gw___src);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_ASroute_gw_src);
        YY_BREAK
  case 421:
  /* rule 421 can match eol */
  YY_RULE_SETUP
 -if (surfxml_ASroute_gw___dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_ASroute>");} surfxml_ASroute_gw___dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_ASroute_gw___dst);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_ASroute_gw_dst);
        YY_BREAK
  case 422:
  /* rule 422 can match eol */
  YY_RULE_SETUP
 -if (surfxml_ASroute_gw___dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_ASroute>");}  surfxml_ASroute_gw___dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_ASroute_gw___dst);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_ASroute_gw_dst);
        YY_BREAK
  case 423:
  /* rule 423 can match eol */
@@@ -8092,8 -8304,8 +8094,8 @@@ YY_RULE_SETU
  {
    if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
    if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
-   if (!AX_surfxml_ASroute_gw_src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
-   if (!AX_surfxml_ASroute_gw_dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
+   if (!AX_surfxml_ASroute_gw___src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
+   if (!AX_surfxml_ASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
    LEAVE; STag_surfxml_ASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_ASroute);
   }
        YY_BREAK
@@@ -8102,8 -8314,8 +8104,8 @@@ YY_RULE_SETU
  {
    if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
    if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
-   if (!AX_surfxml_ASroute_gw_src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
-   if (!AX_surfxml_ASroute_gw_dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
+   if (!AX_surfxml_ASroute_gw___src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
+   if (!AX_surfxml_ASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
    LEAVE; STag_surfxml_ASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_ASroute(); popbuffer(); /* attribute */
    switch (YY_START) {
     case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
@@@ -8158,55 -8370,57 +8160,55 @@@ case 435
  /* rule 435 can match eol */
  YY_RULE_SETUP
  {
 -  AX_surfxml_link___ctn_id = 0;
 -  surfxml_link___ctn_id_isset = 0;
 -  AX_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_NONE;
 -  surfxml_link___ctn_direction_isset = 0;
 -  ENTER(AL_surfxml_link___ctn); pushbuffer(0);
 +  AX_surfxml_link_ctn_id = 0;
 +  AX_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_NONE;
 +  ENTER(AL_surfxml_link_ctn); pushbuffer(0);
    }
        YY_BREAK
  
  case 436:
  /* rule 436 can match eol */
  YY_RULE_SETUP
 -if (surfxml_link___ctn_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_link___ctn>");} surfxml_link___ctn_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link___ctn_id);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_link_ctn_id);
        YY_BREAK
  case 437:
  /* rule 437 can match eol */
  YY_RULE_SETUP
 -if (surfxml_link___ctn_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_link___ctn>");}  surfxml_link___ctn_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link___ctn_id);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_link_ctn_id);
        YY_BREAK
  case 438:
  /* rule 438 can match eol */
  case 439:
  /* rule 439 can match eol */
  YY_RULE_SETUP
- A_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_UP;
+ A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_UP;
        YY_BREAK
  case 440:
  /* rule 440 can match eol */
  case 441:
  /* rule 441 can match eol */
  YY_RULE_SETUP
- A_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_DOWN;
+ A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_DOWN;
        YY_BREAK
  case 442:
  /* rule 442 can match eol */
  case 443:
  /* rule 443 can match eol */
  YY_RULE_SETUP
- A_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_NONE;
+ A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_NONE;
        YY_BREAK
  case 444:
  YY_RULE_SETUP
  {
-   if (!AX_surfxml_link_ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
-   LEAVE; STag_surfxml_link_ctn();surfxml_pcdata_ix = 0; ENTER(E_surfxml_link_ctn);
+   if (!AX_surfxml_link___ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
+   LEAVE; STag_surfxml_link___ctn();surfxml_pcdata_ix = 0; ENTER(E_surfxml_link___ctn);
   }
        YY_BREAK
  case 445:
  YY_RULE_SETUP
  {
-   if (!AX_surfxml_link_ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
-   LEAVE; STag_surfxml_link_ctn(); surfxml_pcdata_ix = 0; ETag_surfxml_link_ctn(); popbuffer(); /* attribute */
+   if (!AX_surfxml_link___ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
+   LEAVE; STag_surfxml_link___ctn(); surfxml_pcdata_ix = 0; ETag_surfxml_link___ctn(); popbuffer(); /* attribute */
    switch (YY_START) {
     case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_2: case S_surfxml_bypassRoute_1: SET(S_surfxml_bypassRoute_2); break;
     case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
@@@ -8223,7 -8437,7 +8225,7 @@@ case 447
  YY_RULE_SETUP
  FAIL("Bad attribute `%s' in `link_ctn' element start tag.",surf_parse_text);
        YY_BREAK
- case YY_STATE_EOF(AL_surfxml_link_ctn):
+ case YY_STATE_EOF(AL_surfxml_link___ctn):
  FAIL("EOF in attribute list of `link_ctn' element.");
        YY_BREAK
  
@@@ -8232,7 -8446,7 +8234,7 @@@ case 448
  YY_RULE_SETUP
  {
    LEAVE;
-   ETag_surfxml_link_ctn();
+   ETag_surfxml_link___ctn();
    popbuffer(); /* attribute */
    switch (YY_START) {
     case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_2: case S_surfxml_bypassRoute_1: SET(S_surfxml_bypassRoute_2); break;
@@@ -8251,7 -8465,7 +8253,7 @@@ case 450
  YY_RULE_SETUP
  FAIL("Unexpected character `%c': `</link_ctn>' expected.",surf_parse_text[0]);
        YY_BREAK
- case YY_STATE_EOF(E_surfxml_link_ctn):
+ case YY_STATE_EOF(E_surfxml_link___ctn):
  if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link_ctn>' expected.");
        YY_BREAK
  
@@@ -8265,7 -8479,9 +8267,7 @@@ case 452
  YY_RULE_SETUP
  {
    AX_surfxml_bypassRoute_src = 0;
 -  surfxml_bypassRoute_src_isset = 0;
    AX_surfxml_bypassRoute_dst = 0;
 -  surfxml_bypassRoute_dst_isset = 0;
    ENTER(AL_surfxml_bypassRoute); pushbuffer(0);
    }
        YY_BREAK
  case 453:
  /* rule 453 can match eol */
  YY_RULE_SETUP
 -if (surfxml_bypassRoute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_bypassRoute>");} surfxml_bypassRoute_src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassRoute_src);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassRoute_src);
        YY_BREAK
  case 454:
  /* rule 454 can match eol */
  YY_RULE_SETUP
 -if (surfxml_bypassRoute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_bypassRoute>");}  surfxml_bypassRoute_src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassRoute_src);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassRoute_src);
        YY_BREAK
  case 455:
  /* rule 455 can match eol */
  YY_RULE_SETUP
 -if (surfxml_bypassRoute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_bypassRoute>");} surfxml_bypassRoute_dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassRoute_dst);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassRoute_dst);
        YY_BREAK
  case 456:
  /* rule 456 can match eol */
  YY_RULE_SETUP
 -if (surfxml_bypassRoute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_bypassRoute>");}  surfxml_bypassRoute_dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassRoute_dst);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassRoute_dst);
        YY_BREAK
  case 457:
  YY_RULE_SETUP
@@@ -8358,9 -8574,13 +8360,9 @@@ case 465
  YY_RULE_SETUP
  {
    AX_surfxml_bypassASroute_src = 0;
 -  surfxml_bypassASroute_src_isset = 0;
    AX_surfxml_bypassASroute_dst = 0;
 -  surfxml_bypassASroute_dst_isset = 0;
 -  AX_surfxml_bypassASroute_gw___src = 0;
 -  surfxml_bypassASroute_gw___src_isset = 0;
 -  AX_surfxml_bypassASroute_gw___dst = 0;
 -  surfxml_bypassASroute_gw___dst_isset = 0;
 +  AX_surfxml_bypassASroute_gw_src = 0;
 +  AX_surfxml_bypassASroute_gw_dst = 0;
    ENTER(AL_surfxml_bypassASroute); pushbuffer(0);
    }
        YY_BREAK
  case 466:
  /* rule 466 can match eol */
  YY_RULE_SETUP
 -if (surfxml_bypassASroute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_bypassASroute>");} surfxml_bypassASroute_src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassASroute_src);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassASroute_src);
        YY_BREAK
  case 467:
  /* rule 467 can match eol */
  YY_RULE_SETUP
 -if (surfxml_bypassASroute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_bypassASroute>");}  surfxml_bypassASroute_src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassASroute_src);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassASroute_src);
        YY_BREAK
  case 468:
  /* rule 468 can match eol */
  YY_RULE_SETUP
 -if (surfxml_bypassASroute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_bypassASroute>");} surfxml_bypassASroute_dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassASroute_dst);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassASroute_dst);
        YY_BREAK
  case 469:
  /* rule 469 can match eol */
  YY_RULE_SETUP
 -if (surfxml_bypassASroute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_bypassASroute>");}  surfxml_bypassASroute_dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassASroute_dst);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassASroute_dst);
        YY_BREAK
  case 470:
  /* rule 470 can match eol */
  YY_RULE_SETUP
 -if (surfxml_bypassASroute_gw___src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_bypassASroute>");} surfxml_bypassASroute_gw___src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassASroute_gw___src);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassASroute_gw_src);
        YY_BREAK
  case 471:
  /* rule 471 can match eol */
  YY_RULE_SETUP
 -if (surfxml_bypassASroute_gw___src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_bypassASroute>");}  surfxml_bypassASroute_gw___src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassASroute_gw___src);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassASroute_gw_src);
        YY_BREAK
  case 472:
  /* rule 472 can match eol */
  YY_RULE_SETUP
 -if (surfxml_bypassASroute_gw___dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_bypassASroute>");} surfxml_bypassASroute_gw___dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassASroute_gw___dst);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassASroute_gw_dst);
        YY_BREAK
  case 473:
  /* rule 473 can match eol */
  YY_RULE_SETUP
 -if (surfxml_bypassASroute_gw___dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_bypassASroute>");}  surfxml_bypassASroute_gw___dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassASroute_gw___dst);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassASroute_gw_dst);
        YY_BREAK
  case 474:
  YY_RULE_SETUP
  {
    if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
    if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
-   if (!AX_surfxml_bypassASroute_gw_src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
-   if (!AX_surfxml_bypassASroute_gw_dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
+   if (!AX_surfxml_bypassASroute_gw___src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
+   if (!AX_surfxml_bypassASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
    LEAVE; STag_surfxml_bypassASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassASroute);
   }
        YY_BREAK
@@@ -8420,8 -8640,8 +8422,8 @@@ YY_RULE_SETU
  {
    if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
    if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
-   if (!AX_surfxml_bypassASroute_gw_src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
-   if (!AX_surfxml_bypassASroute_gw_dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
+   if (!AX_surfxml_bypassASroute_gw___src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
+   if (!AX_surfxml_bypassASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
    LEAVE; STag_surfxml_bypassASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassASroute(); popbuffer(); /* attribute */
    switch (YY_START) {
     case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
@@@ -8477,10 -8697,15 +8479,10 @@@ case 482
  YY_RULE_SETUP
  {
    AX_surfxml_process_host = 0;
 -  surfxml_process_host_isset = 0;
    AX_surfxml_process_function = 0;
 -  surfxml_process_function_isset = 0;
 -  AX_surfxml_process_start___time = 28;
 -  surfxml_process_start___time_isset = 0;
 -  AX_surfxml_process_kill___time = 33;
 -  surfxml_process_kill___time_isset = 0;
 -  AX_surfxml_process_on___failure = A_surfxml_process_on___failure_DIE;
 -  surfxml_process_on___failure_isset = 0;
 +  AX_surfxml_process_start_time = 28;
 +  AX_surfxml_process_kill_time = 33;
 +  AX_surfxml_process_on_failure = A_surfxml_process_on_failure_DIE;
    ENTER(AL_surfxml_process); pushbuffer(0);
    }
        YY_BREAK
  case 483:
  /* rule 483 can match eol */
  YY_RULE_SETUP
 -if (surfxml_process_host_isset != 0) {FAIL("Multiple definition of attribute host in <surfxml_process>");} surfxml_process_host_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_process_host);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_process_host);
        YY_BREAK
  case 484:
  /* rule 484 can match eol */
  YY_RULE_SETUP
 -if (surfxml_process_host_isset != 0) {FAIL("Multiple definition of attribute host in <surfxml_process>");}  surfxml_process_host_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_process_host);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_process_host);
        YY_BREAK
  case 485:
  /* rule 485 can match eol */
  YY_RULE_SETUP
 -if (surfxml_process_function_isset != 0) {FAIL("Multiple definition of attribute function in <surfxml_process>");} surfxml_process_function_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_process_function);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_process_function);
        YY_BREAK
  case 486:
  /* rule 486 can match eol */
  YY_RULE_SETUP
 -if (surfxml_process_function_isset != 0) {FAIL("Multiple definition of attribute function in <surfxml_process>");}  surfxml_process_function_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_process_function);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_process_function);
        YY_BREAK
  case 487:
  /* rule 487 can match eol */
  YY_RULE_SETUP
 -if (surfxml_process_start___time_isset != 0) {FAIL("Multiple definition of attribute start_time in <surfxml_process>");} surfxml_process_start___time_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_process_start___time);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_process_start_time);
        YY_BREAK
  case 488:
  /* rule 488 can match eol */
  YY_RULE_SETUP
 -if (surfxml_process_start___time_isset != 0) {FAIL("Multiple definition of attribute start_time in <surfxml_process>");}  surfxml_process_start___time_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_process_start___time);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_process_start_time);
        YY_BREAK
  case 489:
  /* rule 489 can match eol */
  YY_RULE_SETUP
 -if (surfxml_process_kill___time_isset != 0) {FAIL("Multiple definition of attribute kill_time in <surfxml_process>");} surfxml_process_kill___time_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_process_kill___time);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_process_kill_time);
        YY_BREAK
  case 490:
  /* rule 490 can match eol */
  YY_RULE_SETUP
 -if (surfxml_process_kill___time_isset != 0) {FAIL("Multiple definition of attribute kill_time in <surfxml_process>");}  surfxml_process_kill___time_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_process_kill___time);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_process_kill_time);
        YY_BREAK
  case 491:
  /* rule 491 can match eol */
  case 492:
  /* rule 492 can match eol */
  YY_RULE_SETUP
- A_surfxml_process_on_failure = A_surfxml_process_on_failure_DIE;
+ A_surfxml_process_on___failure = A_surfxml_process_on___failure_DIE;
        YY_BREAK
  case 493:
  /* rule 493 can match eol */
  case 494:
  /* rule 494 can match eol */
  YY_RULE_SETUP
- A_surfxml_process_on_failure = A_surfxml_process_on_failure_RESTART;
+ A_surfxml_process_on___failure = A_surfxml_process_on___failure_RESTART;
        YY_BREAK
  case 495:
  YY_RULE_SETUP
@@@ -8607,6 -8832,7 +8609,6 @@@ case 503
  YY_RULE_SETUP
  {
    AX_surfxml_argument_value = 0;
 -  surfxml_argument_value_isset = 0;
    ENTER(AL_surfxml_argument); pushbuffer(0);
    }
        YY_BREAK
  case 504:
  /* rule 504 can match eol */
  YY_RULE_SETUP
 -if (surfxml_argument_value_isset != 0) {FAIL("Multiple definition of attribute value in <surfxml_argument>");} surfxml_argument_value_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_argument_value);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_argument_value);
        YY_BREAK
  case 505:
  /* rule 505 can match eol */
  YY_RULE_SETUP
 -if (surfxml_argument_value_isset != 0) {FAIL("Multiple definition of attribute value in <surfxml_argument>");}  surfxml_argument_value_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_argument_value);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_argument_value);
        YY_BREAK
  case 506:
  YY_RULE_SETUP
@@@ -8685,6 -8911,7 +8687,6 @@@ case 514
  YY_RULE_SETUP
  {
    AX_surfxml_config_id = 0;
 -  surfxml_config_id_isset = 0;
    ENTER(AL_surfxml_config); pushbuffer(0);
    }
        YY_BREAK
  case 515:
  /* rule 515 can match eol */
  YY_RULE_SETUP
 -if (surfxml_config_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_config>");} surfxml_config_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_config_id);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_config_id);
        YY_BREAK
  case 516:
  /* rule 516 can match eol */
  YY_RULE_SETUP
 -if (surfxml_config_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_config>");}  surfxml_config_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_config_id);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_config_id);
        YY_BREAK
  case 517:
  YY_RULE_SETUP
@@@ -8765,7 -8992,9 +8767,7 @@@ case 525
  YY_RULE_SETUP
  {
    AX_surfxml_prop_id = 0;
 -  surfxml_prop_id_isset = 0;
    AX_surfxml_prop_value = 0;
 -  surfxml_prop_value_isset = 0;
    ENTER(AL_surfxml_prop); pushbuffer(0);
    }
        YY_BREAK
  case 526:
  /* rule 526 can match eol */
  YY_RULE_SETUP
 -if (surfxml_prop_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_prop>");} surfxml_prop_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_prop_id);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_prop_id);
        YY_BREAK
  case 527:
  /* rule 527 can match eol */
  YY_RULE_SETUP
 -if (surfxml_prop_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_prop>");}  surfxml_prop_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_prop_id);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_prop_id);
        YY_BREAK
  case 528:
  /* rule 528 can match eol */
  YY_RULE_SETUP
 -if (surfxml_prop_value_isset != 0) {FAIL("Multiple definition of attribute value in <surfxml_prop>");} surfxml_prop_value_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_prop_value);
 +ENTER(VALUE1); BUFFERSET(AX_surfxml_prop_value);
        YY_BREAK
  case 529:
  /* rule 529 can match eol */
  YY_RULE_SETUP
 -if (surfxml_prop_value_isset != 0) {FAIL("Multiple definition of attribute value in <surfxml_prop>");}  surfxml_prop_value_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_prop_value);
 +ENTER(VALUE2); BUFFERSET(AX_surfxml_prop_value);
        YY_BREAK
  case 530:
  YY_RULE_SETUP
@@@ -8810,8 -9039,8 +8812,8 @@@ YY_RULE_SETU
     case S_surfxml_config_1: case S_surfxml_config: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
     case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
     case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
-    case S_surfxml_storage_type_2: case S_surfxml_storage_type: case S_surfxml_storage_type_1: SET(S_surfxml_storage_type_2); break;
     case S_surfxml_link_1: case S_surfxml_link_2: case S_surfxml_link: SET(S_surfxml_link_2); break;
+    case S_surfxml_storage___type_1: case S_surfxml_storage___type: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
    }
   }
        YY_BREAK
@@@ -8840,8 -9069,8 +8842,8 @@@ YY_RULE_SETU
     case S_surfxml_config_1: case S_surfxml_config: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
     case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
     case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
-    case S_surfxml_storage_type_2: case S_surfxml_storage_type: case S_surfxml_storage_type_1: SET(S_surfxml_storage_type_2); break;
     case S_surfxml_link_1: case S_surfxml_link_2: case S_surfxml_link: SET(S_surfxml_link_2); break;
+    case S_surfxml_storage___type_1: case S_surfxml_storage___type: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
    }
   }
        YY_BREAK
@@@ -8987,7 -9216,7 +8989,7 @@@ case YY_STATE_EOF(S_surfxml_AS_8)
  case YY_STATE_EOF(S_surfxml_AS_10):
  case YY_STATE_EOF(S_surfxml_AS_13):
  case YY_STATE_EOF(S_surfxml_AS_15):
- case YY_STATE_EOF(S_surfxml_storage_type_1):
+ case YY_STATE_EOF(S_surfxml_storage___type_1):
  case YY_STATE_EOF(S_surfxml_storage_1):
  case YY_STATE_EOF(S_surfxml_host_1):
  case YY_STATE_EOF(S_surfxml_link_1):
diff --combined src/xbt/heap.c
@@@ -11,7 -11,6 +11,7 @@@
  #include "heap_private.h"
  
  #include <stdio.h>
 +XBT_LOG_NEW_DEFAULT_SUBCATEGORY(xbt_heap, xbt, "Heap");
  
  static void xbt_heap_max_heapify(xbt_heap_t H);
  static void xbt_heap_increase_key(xbt_heap_t H, int i);
@@@ -96,7 -95,7 +96,7 @@@ void xbt_heap_push(xbt_heap_t H, void *
    if (count > size) {
      H->size = (size << 1) + 1;
      H->items =
-         (void *) realloc(H->items,
+         (void *) xbt_realloc(H->items,
                           (H->size) * sizeof(struct xbt_heap_item));
    }
  
    item->key = key;
    item->content = content;
    xbt_heap_increase_key(H, count - 1);
 +  XBT_DEBUG("Heap has now %d elements and max elem is %g",xbt_heap_size(H),xbt_heap_maxkey(H));
    return;
  }
  
@@@ -123,8 -121,6 +123,8 @@@ void *xbt_heap_pop(xbt_heap_t H
    int size = H->size;
    void *max;
  
 +  XBT_DEBUG("Heap has %d elements before extraction and max elem was %g",xbt_heap_size(H),xbt_heap_maxkey(H));
 +
    if (H->count == 0)
      return NULL;
  
    if (H->count < size >> 2 && size > 16) {
      size = (size >> 1) + 1;
      H->items =
-         (void *) realloc(items,
+         (void *) xbt_realloc(items,
                           size * sizeof(struct xbt_heap_item));
      H->size = size;
    }
   */
  void *xbt_heap_remove(xbt_heap_t H, int i)
  {
 +  XBT_DEBUG("Heap has %d elements: extracting element %d",xbt_heap_size(H),i);
 +
    if ((i < 0) || (i > H->count - 1))
      return NULL;
    /* put element i at head */