1 <?xml version="1.0" encoding="UTF-8"?>
\r
2 <grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
\r
6 Copyright (c) 2008 University of Utah and the Flux Group.
\r
12 Common definitions for advertisements, requests, and tickets
\r
15 <include href="top.rng"/>
\r
16 <define name="NodeSpec">
\r
17 <element name="node">
\r
18 <ref name="NodeContents"/>
\r
21 <define name="LinkSpec">
\r
22 <element name="link">
\r
23 <ref name="LinkContents"/>
\r
26 <define name="NodeContents">
\r
30 Each node has exactly one virtualization technology, which we simply
\r
33 <attribute name="virtualization_type">
\r
36 <value>trellis-vserver</value>
\r
37 <value>planetlab-vserver</value>
\r
38 <value>emulab-vnode</value>
\r
39 <value>bgpmux</value>
\r
45 Each node may be the subnode of (physically located within) another.
\r
46 In advertisements, this is the URN of the other component.
\r
47 In requests, this is the virtual_id of the other sliver.
\r
49 <element name="subnode_of">
\r
53 <!-- Node type list -->
\r
54 <ref name="NodeTypeList"/>
\r
57 List of interfaces on this node. Interfaces are declared here. So
\r
58 all information about a particular interface including types
\r
59 belongs in the declaration. Other references to interfaces
\r
60 should just uniquely identify them and refer back here.
\r
62 <element name="interface">
\r
63 <ref name="InterfaceDecl"/>
\r
68 <define name="LinkContents">
\r
72 Each link has exactly one virtualization technology, which we simply
\r
75 <attribute name="virtualization_type">
\r
78 <value>trellis-vserver</value>
\r
79 <value>planetlab-vserver</value>
\r
80 <value>emulab-vnode</value>
\r
86 <ref name="LinkType"/>
\r
89 <!-- The interfaces which this link spans. -->
\r
90 <element name="interface_ref">
\r
91 <ref name="InterfaceRef"/>
\r
96 <define name="NodeTypeList">
\r
98 <ref name="NodeTypeSpec"/>
\r
101 <define name="NodeTypeContents" combine="interleave">
\r
103 <ref name="TypeField"/>
\r
106 <define name="LinkType">
\r
107 <element name="link_type">
\r
110 <attribute name="name"/>
\r
113 <attribute name="type_name"/>
\r
116 <ref name="TypeField"/>
\r
121 <define name="TypeField">
\r
122 <element name="field">
\r
124 <attribute name="key"/>
\r
125 <attribute name="value"/>
\r
129 <define name="VirtualName">
\r
130 <attribute name="virtual_id"/>
\r
132 <define name="ComponentName">
\r
136 This is the uuid of the aggregate that this node or link belongs
\r
137 to. It is required in an advertisement.
\r
139 <attribute name="component_manager_uuid"/>
\r
142 <attribute name="component_manager_urn"/>
\r
145 <!-- User-readable name for the component -->
\r
146 <attribute name="component_name"/>
\r
149 <!-- The uuid of the physical component. -->
\r
150 <attribute name="component_uuid"/>
\r
153 <attribute name="component_urn"/>
\r
157 <define name="ComponentInterfaceDeclName">
\r
158 <attribute name="component_id"/>
\r
160 <define name="ComponentInterfaceRefName">
\r
163 <attribute name="component_node_uuid"/>
\r
166 <attribute name="component_node_urn"/>
\r
168 <attribute name="component_interface_id"/>
\r
171 <define name="InterfaceDecl">
\r
174 <define name="InterfaceRef">
\r
177 <define name="Location">
\r
178 <element name="location">
\r
180 <!-- The two-letter ISO 3166 code for the country the node is in. -->
\r
181 <attribute name="country"/>
\r
184 Longitude and Latitude coordinates of the node using the
\r
187 <attribute name="longitude"/>
\r
190 <attribute name="latitude"/>
\r
195 <define name="RSpec">
\r
196 <element name="rspec">
\r
197 <ref name="RSpecContents"/>
\r
200 <define name="RSpecContents">
\r
204 When this RSpec was generated - optional, can be used for determining
\r
207 <attribute name="generated">
\r
208 <data type="dateTime"/>
\r
213 Who/what generated the rspec. This is purely informative and
\r
214 should not be used for any policy consideration. The format is
\r
217 <attribute name="generated_by"/>
\r
221 How long this rspec is valid - in the case of a ticket, this indicates
\r
222 how long the holder may use the resources. For a resource request, it's
\r
223 how long we want the resources. For an advertisement, it might be a hint
\r
224 as to how long it's okay to cache this rspec.
\r
226 <attribute name="valid_until">
\r
227 <data type="dateTime"/>
\r
231 <!-- One or more nodes/links -->
\r
232 <ref name="NodeSpec"/>
\r
235 <ref name="LinkSpec"/>
\r