<!-- Small DTD for SURF based tools. -->
-<!ELEMENT platform ((config|random)*,(include|cluster|peer|AS|trace|trace_connect)*,(process)*)>
+<!ELEMENT platform ((config|random)*,(include|cluster|cabinet|peer|AS|trace|trace_connect)*,(process)*)>
<!ATTLIST platform version CDATA "0.0">
-<!ELEMENT include (include|cluster|peer|AS|trace|trace_connect)*>
+<!ELEMENT include (include|cluster|cabinet|peer|AS|trace|trace_connect)*>
<!ATTLIST include file CDATA #REQUIRED>
<!ELEMENT trace (#PCDATA)>
<!ATTLIST trace file CDATA "">
<!ATTLIST trace periodicity CDATA #REQUIRED>
-<!ELEMENT random (prop*)>
+<!ELEMENT random EMPTY>
<!ATTLIST random id CDATA #REQUIRED>
<!ATTLIST random min CDATA #REQUIRED>
<!ATTLIST random max CDATA #REQUIRED>
<!ATTLIST trace_connect trace CDATA #REQUIRED>
<!ATTLIST trace_connect element CDATA #REQUIRED>
-<!ELEMENT AS (((AS|include|storage_type|storage|link|cluster|peer|trace|trace_connect)*,(ASroute|trace|trace_connect|bypassASroute)*,(trace|trace_connect)*)|((include|storage_type|storage|host|router|link|trace|trace_connect)*,(route|trace|trace_connect|bypassRoute)*))>
-
+<!ELEMENT AS ((prop*),(((AS|include|storage_type|storage|link|backbone|cabinet|cluster|peer|trace|trace_connect)*,(ASroute|trace|trace_connect|bypassASroute)*,(trace|trace_connect)*)|((include|storage_type|storage|host|gpu|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|RuleBased|Vivaldi|Cluster) "None">
<!ATTLIST host state_file CDATA "">
<!ATTLIST host coordinates CDATA "">
+<!ELEMENT gpu EMPTY>
+<!ATTLIST gpu name CDATA #REQUIRED>
+
+<!ELEMENT host_link EMPTY>
+<!ATTLIST host_link id CDATA #REQUIRED>
+<!ATTLIST host_link up CDATA #REQUIRED>
+<!ATTLIST host_link down CDATA #REQUIRED>
+
<!ELEMENT cluster EMPTY>
<!ATTLIST cluster id CDATA #REQUIRED>
<!ATTLIST cluster prefix CDATA #REQUIRED>
<!ATTLIST cluster state_file CDATA "">
<!ATTLIST cluster router_id CDATA "">
+<!ELEMENT cabinet EMPTY>
+<!ATTLIST cabinet id CDATA #REQUIRED>
+<!ATTLIST cabinet prefix CDATA #REQUIRED>
+<!ATTLIST cabinet suffix CDATA #REQUIRED>
+<!ATTLIST cabinet radical CDATA #REQUIRED>
+<!ATTLIST cabinet power CDATA #REQUIRED>
+<!ATTLIST cabinet bw CDATA #REQUIRED>
+<!ATTLIST cabinet lat CDATA #REQUIRED>
+
<!ELEMENT peer EMPTY>
<!ATTLIST peer id CDATA #REQUIRED>
<!ATTLIST peer power CDATA #REQUIRED>
<!ATTLIST router id CDATA #REQUIRED>
<!ATTLIST router coordinates CDATA "">
+<!ELEMENT backbone EMPTY>
+<!ATTLIST backbone id CDATA #REQUIRED>
+<!ATTLIST backbone bandwidth CDATA #REQUIRED>
+<!ATTLIST backbone latency CDATA #REQUIRED>
+
<!ELEMENT link (prop*)>
<!ATTLIST link id CDATA #REQUIRED>
<!ATTLIST link bandwidth CDATA #REQUIRED>