-<!--
+<!--
DTD of SimGrid platform and deployment files.
More info: http://simgrid.gforge.inria.fr/simgrid/latest/doc/platform.html
To upgrade your files, use the tool simgrid_update_xml
+* Things that will change in upcoming version 5 (TODO):
+ - The following tags will be removed:
+ - <include> spits an error since v3.18
+ - <random> does nothing since a very long time
+ - <as>, <asroute>, <bypassZoneRoute> and <process>, deprecated in DTD4.1
+ - FULLDUPLEX sharing will be removed, deprecated in DTD4.2 (v3.19)
+
+* New in DTD version 4.1 (in SimGrid 3.16): backward compatible change (v4 files are valid v4.1 files)
+ - <zone> can be used as a synonym for the now deprecated <as>
+ - <zoneRoute> can be used as a synonym for the now deprecated <asroute>
+ - <bypassZoneRoute> an be used as a synonym for the now deprecated <bypassAsRoute>
+ - <actor> can be used as a synonym for the now deprecated <process>
+ Other backward-compatible changes for which we did not bump the DTD version.
+ - SPLITDUPLEX is the new spelling of the deprecated FULLDUPLEX (SimGrid v3.19)
+ - In <host> and <peer> availability_file is now speed_file (SimGrid v3.22)
+
* New in DTD version 4 (in SimGrid 3.13):
- Rename (power->speed) the attributes describing the amount of flop
that a <host>, <peer>, <cluster> or <cabinet> can deliver per second.
- In <trace_connect>, attribute kind="POWER" is now kind="SPEED".
-
+
- In <host> and <link>, attributes availability and state are gone.
- It was redundent with state and availability traces, and with peak values.
+ It was redundent with state and availability profiles, and with peak values.
+
+ - In <cluster>, cannot set the availability nor state profiles.
+ This was too complex and unused.
+
+ - The DOCTYPE points to the right URL (this file).
- - The DOCTYPE points to the right URL (this file):
- http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd
-
- Kill <gpu>. Was not doing anything.
- A warning is emitted for unit-less values (they are still accepted).
+ The value 0 can remain unit-less, as its unit does not matter.
- speed. Default: 'f' or 'flops'. Also defined:
'Yf', 'Zf', 'Ef', 'Pf', 'Tf', 'Gf', 'Mf', 'kf'
'yottaflops', 'zettaflops', 'exaflops', 'petaflops', 'teraflops', 'gigaflops', 'megaflops', 'kiloflops'
- - bandwidth. Default: 'Bps' bytes per second (or 'bps' for bits but 1 Bps = 8 bps)
- Also defined in bytes: 'TiBps', 'GiBps', 'MiBps', 'KiBps', 'TBps', 'GBps', 'MBps', 'kBps', 'Bps'
- And the same in bits: 'Tibps', 'Gibps', 'Mibps', 'Kibps', 'Tbps', 'Gbps', 'Mbps', 'kbps', 'bps'
+ - bandwidth. Default: 'Bps' bytes per second
+ In bytes and powers of 2 (1 KiBps = 1024 Bps): 'EiBps', 'PiBps', 'TiBps', 'GiBps', 'MiBps', 'KiBps'
+ In bits and powers of 2 (1 Bps = 8 bps) : 'Eibps', 'Pibps', 'Tibps', 'Gibps', 'Mibps', 'Kibps'
+ In bytes and powers of 10 (1 KBps = 1000 Bps) : 'EBps', 'PBps', 'TBps', 'GBps', 'MBps', 'kBps', 'Bps'
+ In bits and powers of 10 : 'Ebps', 'Pbps', 'Tbps', 'Gbps', 'Mbps', 'kbps', 'bps'
+ (Exa and Peta notations were introduced in SimGrid v3.14)
- latency. Default: 's' second. Also defined:
'w' week, 'd' day, 'h' hour, 'm' minute, 'ms' millisecond, 'us' microsecond, 'ns' nanosecond, 'ps' picosecond
* New in DTD version 1 (in SimGrid 3.3):
- DTD is now versionned with the version attribute of platform
- - Unit change:
+ - Unit change:
- Link bandwidth: from Mb/s to b/s
- CPU speed: from MFlop/s to Flop/s
-->
-<!ELEMENT platform ((config|random)*,(include|cluster|cabinet|peer|AS|trace|trace_connect)*,(process)*)>
+<!ELEMENT platform ((config|random)*,(include|cluster|cabinet|peer|AS|zone|trace|trace_connect)*,(process|actor)*)>
<!ATTLIST platform version CDATA "0.0">
-<!ELEMENT include (include|cluster|cabinet|peer|AS|trace|trace_connect)*>
+<!-- tag include is deprecated. Not documented, and removed in v3.22 -->
+<!ELEMENT include (include|cluster|cabinet|peer|AS|zone|trace|trace_connect)*>
<!ATTLIST include file CDATA #REQUIRED>
<!ELEMENT trace (#PCDATA)>
<!ATTLIST trace_connect trace CDATA #REQUIRED>
<!ATTLIST trace_connect element CDATA #REQUIRED>
-<!ELEMENT AS ((prop*), ((AS|ASroute|include|storage_type|storage|link|backbone|cabinet|router|host|cluster|peer|host_link)*,(route|ASroute|trace|trace_connect|bypassRoute|bypassASroute)*))>
+<!-- A zone is either an internal node that contains other zones,
+ or a leaf containing hosts and other leaf-like elements -->
+<!ELEMENT AS ((prop*),
+ (((AS|zone|include|link|backbone|cabinet|cluster|peer|trace|trace_connect)*,
+ (zoneRoute|ASroute|trace|trace_connect|bypassASroute|bypassZoneRoute)*,
+ (trace|trace_connect)*)
+ |((include|storage_type|storage|host|cabinet|router|link|backbone|trace|trace_connect|host_link)*,
+ (route|trace|trace_connect|bypassRoute)*)))>
<!ATTLIST AS id CDATA #REQUIRED>
-<!ATTLIST AS routing (Full|Floyd|Dijkstra|DijkstraCache|None|Vivaldi|Cluster|ClusterTorus|ClusterFatTree) #REQUIRED>
+<!ATTLIST AS routing (Full|Floyd|Dijkstra|DijkstraCache|None|Vivaldi|Cluster|ClusterTorus|ClusterFatTree|ClusterDragonfly) #REQUIRED>
+
+<!-- A zone is either an internal node that contains other zones,
+ or a leaf containing hosts and other leaf-like elements -->
+<!ELEMENT zone ((prop*),
+ (((AS|zone|include|link|backbone|cluster|peer|trace|trace_connect)*,
+ (zoneRoute|ASroute|trace|trace_connect|bypassASroute|bypassZoneRoute)*,
+ (trace|trace_connect)*)
+ |((include|storage_type|storage|host|cabinet|router|link|backbone|trace|trace_connect|host_link)*,
+ (route|trace|trace_connect|bypassRoute)*)))>
+<!ATTLIST zone id CDATA #REQUIRED>
+<!ATTLIST zone routing (Full|Floyd|Dijkstra|DijkstraCache|None|Vivaldi|Cluster|ClusterTorus|ClusterFatTree|ClusterDragonfly) #REQUIRED>
<!ELEMENT storage_type ((model_prop|prop)*)>
<!ATTLIST storage_type id CDATA #REQUIRED>
-<!ATTLIST storage_type model CDATA #REQUIRED>
+<!ATTLIST storage_type model CDATA "N11">
<!ATTLIST storage_type size CDATA #REQUIRED>
<!ATTLIST storage_type content CDATA "">
-<!ATTLIST storage_type content_type CDATA "txt_unix">
<!ELEMENT mount EMPTY>
<!ATTLIST mount storageId CDATA #REQUIRED>
<!ATTLIST host id CDATA #REQUIRED>
<!ATTLIST host speed CDATA #REQUIRED>
<!ATTLIST host core CDATA "1">
-<!ATTLIST host availability_file CDATA "">
+<!ATTLIST host speed_file CDATA "">
+<!ATTLIST host availability_file CDATA ""> <!-- deprecated -->
<!ATTLIST host state_file CDATA "">
<!ATTLIST host coordinates CDATA "">
<!ATTLIST host pstate CDATA "0.0">
<!ATTLIST storage id CDATA #REQUIRED>
<!ATTLIST storage typeId CDATA #REQUIRED>
<!ATTLIST storage content CDATA "">
-<!ATTLIST storage content_type CDATA "txt_unix">
<!ATTLIST storage attach CDATA #REQUIRED>
<!ELEMENT host_link EMPTY>
<!ATTLIST cluster core CDATA "1">
<!ATTLIST cluster bw CDATA #REQUIRED>
<!ATTLIST cluster lat CDATA #REQUIRED>
-<!ATTLIST cluster sharing_policy (SHARED|FULLDUPLEX|FATPIPE) "FULLDUPLEX">
-<!ATTLIST cluster topology (FLAT|TORUS|FAT_TREE) "FLAT">
+<!ATTLIST cluster sharing_policy (SHARED|SPLITDUPLEX|FULLDUPLEX|FATPIPE) "SPLITDUPLEX">
+<!ATTLIST cluster topology (FLAT|TORUS|FAT_TREE|DRAGONFLY) "FLAT">
<!ATTLIST cluster topo_parameters CDATA "">
<!ATTLIST cluster bb_bw CDATA "">
<!ATTLIST cluster bb_lat CDATA "0s">
<!ATTLIST cluster bb_sharing_policy (SHARED|FATPIPE) "SHARED">
-<!ATTLIST cluster availability_file CDATA "">
-<!ATTLIST cluster state_file CDATA "">
<!ATTLIST cluster router_id CDATA "">
<!ATTLIST cluster limiter_link CDATA "">
<!ATTLIST cluster loopback_bw CDATA "">
<!ATTLIST peer speed CDATA #REQUIRED>
<!ATTLIST peer bw_in CDATA #REQUIRED>
<!ATTLIST peer bw_out CDATA #REQUIRED>
-<!ATTLIST peer lat CDATA #REQUIRED>
+<!ATTLIST peer lat CDATA "0">
<!ATTLIST peer coordinates CDATA "">
-<!ATTLIST peer availability_file CDATA "">
+<!ATTLIST peer speed_file CDATA "">
+<!ATTLIST peer availability_file CDATA ""> <!-- deprecated -->
<!ATTLIST peer state_file CDATA "">
<!ELEMENT router EMPTY>
<!ATTLIST link latency CDATA "0">
<!ATTLIST link latency_file CDATA "">
<!ATTLIST link state_file CDATA "">
-<!ATTLIST link sharing_policy (SHARED|FATPIPE|FULLDUPLEX) "SHARED">
+<!ATTLIST link sharing_policy (SHARED|SPLITDUPLEX|FULLDUPLEX|FATPIPE) "SHARED">
<!ELEMENT route (link_ctn*)>
<!ATTLIST route src CDATA #REQUIRED>
<!ATTLIST route dst CDATA #REQUIRED>
-<!ATTLIST route symmetrical (YES|NO) "YES">
+<!ATTLIST route symmetrical (YES|NO|yes|no) "YES">
<!ELEMENT ASroute (link_ctn*)>
<!ATTLIST ASroute src CDATA #REQUIRED>
<!ATTLIST ASroute dst CDATA #REQUIRED>
<!ATTLIST ASroute gw_src CDATA #REQUIRED>
<!ATTLIST ASroute gw_dst CDATA #REQUIRED>
-<!ATTLIST ASroute symmetrical (YES|NO) "YES">
+<!ATTLIST ASroute symmetrical (YES|NO|yes|no) "YES">
+
+<!ELEMENT zoneRoute (link_ctn*)>
+<!ATTLIST zoneRoute src CDATA #REQUIRED>
+<!ATTLIST zoneRoute dst CDATA #REQUIRED>
+<!ATTLIST zoneRoute gw_src CDATA #REQUIRED>
+<!ATTLIST zoneRoute gw_dst CDATA #REQUIRED>
+<!ATTLIST zoneRoute symmetrical (YES|NO|yes|no) "YES">
<!ELEMENT link_ctn EMPTY>
<!ATTLIST link_ctn id CDATA #REQUIRED>
<!ATTLIST bypassASroute gw_src CDATA #REQUIRED>
<!ATTLIST bypassASroute gw_dst CDATA #REQUIRED>
+<!ELEMENT bypassZoneRoute (link_ctn*)>
+<!ATTLIST bypassZoneRoute src CDATA #REQUIRED>
+<!ATTLIST bypassZoneRoute dst CDATA #REQUIRED>
+<!ATTLIST bypassZoneRoute gw_src CDATA #REQUIRED>
+<!ATTLIST bypassZoneRoute gw_dst CDATA #REQUIRED>
+
<!ELEMENT process ((argument|prop)*)>
<!ATTLIST process host CDATA #REQUIRED>
<!ATTLIST process function CDATA #REQUIRED>
<!ATTLIST process kill_time CDATA "-1.0">
<!ATTLIST process on_failure (DIE|RESTART) "DIE">
+<!ELEMENT actor ((argument|prop)*)>
+<!ATTLIST actor host CDATA #REQUIRED>
+<!ATTLIST actor function CDATA #REQUIRED>
+<!ATTLIST actor start_time CDATA "-1.0">
+<!ATTLIST actor kill_time CDATA "-1.0">
+<!ATTLIST actor on_failure (DIE|RESTART) "DIE">
+
<!ELEMENT argument EMPTY>
<!ATTLIST argument value CDATA #REQUIRED>