Commit d2db71e4 authored by Jonathon Duerig's avatar Jonathon Duerig

Changed naming of a few things as per Rob. Moved path interface data from...

Changed naming of a few things as per Rob. Moved path interface data from intermediate nodes to intermediate links.
parent 2f7c661a
...@@ -9,7 +9,6 @@ ...@@ -9,7 +9,6 @@
# #
include "../../assign/top.rnc" { include "../../assign/top.rnc" {
# Add some more stuff to nodes
NodeContents = NodeContents =
# Semantic change - the 'name' of a node is now # Semantic change - the 'name' of a node is now
# solely for human-readability. # solely for human-readability.
...@@ -18,10 +17,10 @@ include "../../assign/top.rnc" { ...@@ -18,10 +17,10 @@ include "../../assign/top.rnc" {
# In a request, the virtual_uuid is the primary key. # In a request, the virtual_uuid is the primary key.
# The primary key must be globally unique. # The primary key must be globally unique.
# The primary key is used when identifying link inputs, for example. # The primary key is used when identifying link inputs, for example.
attribute name { text }?, attribute virtual_name { text }?,
attribute virtual_uuid { text }?, attribute virtual_uuid { text }?,
# The mapping to components/slivers. Required for advertisements. # The mapping to components/slivers. Required for advertisements.
Mapping?, ComponentSpec?,
# Each node has exactly one virtualization technology, which we simply # Each node has exactly one virtualization technology, which we simply
# enumerate here # enumerate here
...@@ -36,15 +35,13 @@ include "../../assign/top.rnc" { ...@@ -36,15 +35,13 @@ include "../../assign/top.rnc" {
# as a number of "free slots", later # as a number of "free slots", later
element available { xsd:boolean }?, element available { xsd:boolean }?,
InterfaceDecl* InterfaceDecl*
# Optionally, include the URL for this component's CM
#CMURLSpec?
LinkContents = LinkContents =
# Semantic change - the 'name' of a link is now # Semantic change - the 'name' of a link is now
# solely for human-readability. # solely for human-readability.
attribute name { text }?, attribute virtual_name { text }?,
attribute virtual_uuid { text }?, attribute virtual_uuid { text }?,
(LinkMapping | PathMapping)?, (LinkComponentSpec | PathComponentSpec)?,
LinkEndPoints, LinkEndPoints,
## The characteristics (bandwidth, latency, loss) which affect traffic. ## The characteristics (bandwidth, latency, loss) which affect traffic.
LinkCharacteristics, LinkCharacteristics,
...@@ -52,7 +49,6 @@ include "../../assign/top.rnc" { ...@@ -52,7 +49,6 @@ include "../../assign/top.rnc" {
## that it can be overriden in the virtual topology schema, where you are ## that it can be overriden in the virtual topology schema, where you are
## only allowed to have one ## only allowed to have one
LinkSpec.LinkType LinkSpec.LinkType
# TODO: Might add a URL for the CM for a link in the future
InterfaceContents = InterfaceContents =
# In an advertisement, the component_uuid is mandatory. # In an advertisement, the component_uuid is mandatory.
...@@ -63,15 +59,16 @@ include "../../assign/top.rnc" { ...@@ -63,15 +59,16 @@ include "../../assign/top.rnc" {
element component_interface_name { text }? element component_interface_name { text }?
} }
# InterfaceDecl is for declaration of interfaces inside of a node.
InterfaceDecl = element interface { InterfaceDecl = element interface {
attribute name { text } attribute name { text }
} }
Mapping = ComponentSpec =
# This is the uuid of the aggregate that this node or link belongs # This is the uuid of the aggregate that this node or link belongs
# to. It is required in an advertisement. # to. It is required in an advertisement.
attribute aggregate_uuid { text }, attribute aggregate_uuid { text },
# User-readable name for the component
attribute component_name { text }?,
# The uuid of the physical component. # The uuid of the physical component.
attribute component_uuid { text }, attribute component_uuid { text },
# The sliver_uuid is an annotation added when a ticket is # The sliver_uuid is an annotation added when a ticket is
...@@ -79,27 +76,20 @@ Mapping = ...@@ -79,27 +76,20 @@ Mapping =
# virtual_uuid requests and the actual slivers instantiated. # virtual_uuid requests and the actual slivers instantiated.
attribute sliver_uuid { text }? attribute sliver_uuid { text }?
LinkMapping = element component_link { Mapping } LinkComponentSpec = element component_link { ComponentSpec }
PathMapping = element component_path { PathComponentSpec = element component_path {
(element link { Mapping }, (element link { ComponentSpec, LinkEndPoints},
element node element node
{ {
Mapping, ComponentSpec
element in_interface { InterfaceContents },
element out_interface { InterfaceContents }
} }
)*, )*,
element link { Mapping } element link { ComponentSpec, LinkEndPoints }
} }
## How to contact a component manager. In the future, could include information
## about the version of the interface it supports, or something like that...
#CMURLSpec = element component_manager_URL { xsd:anyURI }
RSpec = element rspec { RSpec = element rspec {
attribute type { "advertisement" | "request" }, attribute type { "advertisement" | "request" },
# TODO: Include something about who generated this rspec?
# When this RSpec was generated - optional, can be used for determining # When this RSpec was generated - optional, can be used for determining
# staleness # staleness
attribute generated { xsd:dateTime }, attribute generated { xsd:dateTime },
......
...@@ -13,16 +13,16 @@ ...@@ -13,16 +13,16 @@
Simple prototype of an RSpec, to be used by ProtoGENI Simple prototype of an RSpec, to be used by ProtoGENI
--> -->
<!-- Add some more stuff to nodes -->
<xs:complexType name="NodeContents"> <xs:complexType name="NodeContents">
<xs:sequence> <xs:sequence>
<xs:group ref="rspec:NodeSpec.NodeType"/> <xs:group ref="rspec:NodeSpec.NodeType"/>
<xs:element minOccurs="0" ref="rspec:available"/> <xs:element minOccurs="0" ref="rspec:available"/>
<xs:group minOccurs="0" maxOccurs="unbounded" ref="rspec:InterfaceDecl"/> <xs:group minOccurs="0" maxOccurs="unbounded" ref="rspec:InterfaceDecl"/>
</xs:sequence> </xs:sequence>
<xs:attribute name="name"/> <xs:attribute name="virtual_name"/>
<xs:attribute name="virtual_uuid"/> <xs:attribute name="virtual_uuid"/>
<xs:attribute name="aggregate_uuid"/> <xs:attribute name="aggregate_uuid"/>
<xs:attribute name="component_name"/>
<xs:attribute name="component_uuid"/> <xs:attribute name="component_uuid"/>
<xs:attribute name="sliver_uuid"/> <xs:attribute name="sliver_uuid"/>
<xs:attribute name="virtualization_type"> <xs:attribute name="virtualization_type">
...@@ -37,10 +37,6 @@ ...@@ -37,10 +37,6 @@
</xs:attribute> </xs:attribute>
</xs:complexType> </xs:complexType>
<xs:element name="available" type="xs:boolean"/> <xs:element name="available" type="xs:boolean"/>
<!--
Optionally, include the URL for this component's CM
CMURLSpec?
-->
<xs:complexType name="LinkContents"> <xs:complexType name="LinkContents">
<xs:sequence> <xs:sequence>
<xs:choice minOccurs="0"> <xs:choice minOccurs="0">
...@@ -53,12 +49,11 @@ ...@@ -53,12 +49,11 @@
<xs:documentation>The characteristics (bandwidth, latency, loss) which affect traffic.</xs:documentation> <xs:documentation>The characteristics (bandwidth, latency, loss) which affect traffic.</xs:documentation>
</xs:annotation> </xs:annotation>
</xs:group> </xs:group>
<xs:group ref="rspec:LinkSpec.LinkType"/> <xs:element ref="rspec:LinkSpec.LinkType"/>
</xs:sequence> </xs:sequence>
<xs:attribute name="name"/> <xs:attribute name="virtual_name"/>
<xs:attribute name="virtual_uuid"/> <xs:attribute name="virtual_uuid"/>
</xs:complexType> </xs:complexType>
<!-- TODO: Might add a URL for the CM for a link in the future -->
<xs:complexType name="InterfaceContents"> <xs:complexType name="InterfaceContents">
<xs:sequence> <xs:sequence>
<xs:element minOccurs="0" ref="rspec:virtual_uuid"/> <xs:element minOccurs="0" ref="rspec:virtual_uuid"/>
...@@ -71,7 +66,6 @@ ...@@ -71,7 +66,6 @@
<xs:element name="virtual_interface_name" type="xs:string"/> <xs:element name="virtual_interface_name" type="xs:string"/>
<xs:element name="component_uuid" type="xs:string"/> <xs:element name="component_uuid" type="xs:string"/>
<xs:element name="component_interface_name" type="xs:string"/> <xs:element name="component_interface_name" type="xs:string"/>
<!-- InterfaceDecl is for declaration of interfaces inside of a node. -->
<xs:group name="InterfaceDecl"> <xs:group name="InterfaceDecl">
<xs:sequence> <xs:sequence>
<xs:element name="interface"> <xs:element name="interface">
...@@ -81,14 +75,15 @@ ...@@ -81,14 +75,15 @@
</xs:element> </xs:element>
</xs:sequence> </xs:sequence>
</xs:group> </xs:group>
<xs:attributeGroup name="Mapping"> <xs:attributeGroup name="ComponentSpec">
<xs:attribute name="aggregate_uuid" use="required"/> <xs:attribute name="aggregate_uuid" use="required"/>
<xs:attribute name="component_name"/>
<xs:attribute name="component_uuid" use="required"/> <xs:attribute name="component_uuid" use="required"/>
<xs:attribute name="sliver_uuid"/> <xs:attribute name="sliver_uuid"/>
</xs:attributeGroup> </xs:attributeGroup>
<xs:element name="component_link"> <xs:element name="component_link">
<xs:complexType> <xs:complexType>
<xs:attributeGroup ref="rspec:Mapping"/> <xs:attributeGroup ref="rspec:ComponentSpec"/>
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
<xs:element name="component_path"> <xs:element name="component_path">
...@@ -97,30 +92,25 @@ ...@@ -97,30 +92,25 @@
<xs:sequence minOccurs="0" maxOccurs="unbounded"> <xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element name="link"> <xs:element name="link">
<xs:complexType> <xs:complexType>
<xs:attributeGroup ref="rspec:Mapping"/> <xs:group ref="rspec:LinkEndPoints"/>
<xs:attributeGroup ref="rspec:ComponentSpec"/>
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
<xs:element name="node"> <xs:element name="node">
<xs:complexType> <xs:complexType>
<xs:sequence> <xs:attributeGroup ref="rspec:ComponentSpec"/>
<xs:element ref="rspec:in_interface"/>
<xs:element ref="rspec:out_interface"/>
</xs:sequence>
<xs:attributeGroup ref="rspec:Mapping"/>
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
</xs:sequence> </xs:sequence>
<xs:element name="link"> <xs:element name="link">
<xs:complexType> <xs:complexType>
<xs:attributeGroup ref="rspec:Mapping"/> <xs:group ref="rspec:LinkEndPoints"/>
<xs:attributeGroup ref="rspec:ComponentSpec"/>
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
</xs:sequence> </xs:sequence>
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
<xs:element name="in_interface" type="rspec:InterfaceContents"/>
<xs:element name="out_interface" type="rspec:InterfaceContents"/>
<!-- CMURLSpec = element component_manager_URL { xsd:anyURI } -->
<xs:element name="rspec"> <xs:element name="rspec">
<xs:complexType> <xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:choice minOccurs="0" maxOccurs="unbounded">
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment