Commit 213c303d authored by Jonathon Duerig's avatar Jonathon Duerig
Browse files

RSpecs accept an optional link_type attribute in additon to an element for now.

parent f5777a99
......@@ -97,10 +97,6 @@
</xs:simpleType>
</xs:element>
<xs:element name="packet_loss">
<xs:annotation>
<xs:documentation>Static packet loss probability of the link as a fraction
(ie. 0.01 == 1%)</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:float">
<xs:minInclusive value="0.0"/>
......
......@@ -24,10 +24,6 @@
</xs:annotation>
</xs:attribute>
<xs:attribute name="type_slots" use="required">
<xs:annotation>
<xs:documentation>How many virtual nodes of this type this physical node can
handle.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:union>
<xs:simpleType>
......@@ -44,14 +40,6 @@ handle.</xs:documentation>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="static">
<xs:annotation>
<xs:documentation>element unlimited { empty }?,
A flag that indicates that this physical node *always*
has this type - a node is only allowed to have one dynamic
(ie. not flagged as static) type at a time, but any number
of static types at a time
element static { empty }?</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="true"/>
......@@ -68,15 +56,6 @@ element static { empty }?</xs:documentation>
</xs:sequence>
</xs:complexType>
<xs:group name="LinkTypeSpec">
<xs:annotation>
<xs:documentation>Link types are currently just a siple string. They will almost certainly
have to get more complicated, for two reasons:
First, I want to allow virtual links to specify more than one type, so
that we can ask for links that are, say, 'ethernet or loopback'
Second, I want to have a lot more control over links that get mapped to
multi-hop paths
TODO: MAYBE this should be combined with NodeTypeSpec</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="link_type">
<xs:complexType>
......@@ -86,10 +65,6 @@ TODO: MAYBE this should be combined with NodeTypeSpec</xs:documentation>
</xs:sequence>
</xs:group>
<xs:group name="LinkEndPoints">
<xs:annotation>
<xs:documentation>A link has two endpoints. Right now, they are order
independent. But they might become order-dependant later.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element ref="rspec:source_interface"/>
<xs:element ref="rspec:destination_interface"/>
......@@ -106,11 +81,6 @@ independent. But they might become order-dependant later.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:group name="LinkCharacteristics">
<xs:annotation>
<xs:documentation>Link characterstics which affect traffic.
TODO: In the future, the bandwidth, latency, and packet loss will be
moved to features and/or properties</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element ref="rspec:bandwidth"/>
<xs:element ref="rspec:latency"/>
......@@ -119,24 +89,9 @@ moved to features and/or properties</xs:documentation>
</xs:group>
<xs:element name="fd">
<xs:complexType>
<xs:attribute name="fd_name" use="required">
<xs:annotation>
<xs:documentation>Name of this feature or desire
element fd_name { text },</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="fd_weight" use="required">
<xs:annotation>
<xs:documentation>Weight assocated with the feature or desire
element fd_weight { xsd:float },</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="fd_name" use="required"/>
<xs:attribute name="fd_weight" use="required"/>
<xs:attribute name="violatable">
<xs:annotation>
<xs:documentation>A flag indicating whether or not a failure to match the desire with a
a feature is a constraint violation
element violatable { empty }?,</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="true"/>
......@@ -161,11 +116,6 @@ element violatable { empty }?,</xs:documentation>
</xs:complexType>
</xs:element>
<xs:attributeGroup name="GlobalSpec">
<xs:annotation>
<xs:documentation>GlobalSpec = element global {
element operator { "OnceOnly" | "FirstFree" }
}</xs:documentation>
</xs:annotation>
<xs:attribute name="global_operator" use="required">
<xs:simpleType>
<xs:restriction base="xs:token">
......@@ -176,12 +126,6 @@ element violatable { empty }?,</xs:documentation>
</xs:attribute>
</xs:attributeGroup>
<xs:attributeGroup name="LocalSpec">
<xs:annotation>
<xs:documentation>LocalSpec = element local {
element operator { "+" }
attribute local_operator { "+" }
}</xs:documentation>
</xs:annotation>
<xs:attribute name="local_operator" use="required">
<xs:simpleType>
<xs:restriction base="xs:token">
......@@ -191,10 +135,6 @@ element violatable { empty }?,</xs:documentation>
</xs:attribute>
</xs:attributeGroup>
<xs:complexType name="InterfaceSpec">
<xs:annotation>
<xs:documentation>Interfaces
InterfaceSpec = element interface { InterfaceContents }</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="rspec:property"/>
</xs:sequence>
......@@ -254,12 +194,7 @@ InterfaceSpec = element interface { InterfaceContents }</xs:documentation>
<xs:documentation>Name of this property</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="property_value" type="xs:string">
<xs:annotation>
<xs:documentation>Value associated with this property
TODO: Add ranges and other types from rspec</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="property_value" type="xs:string"/>
<xs:element name="property_penalty">
<xs:annotation>
<xs:documentation>The penalty associated with this property</xs:documentation>
......
......@@ -71,6 +71,7 @@
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="link_type"/>
<xs:attributeGroup ref="rspec:VirtualName"/>
</xs:complexType>
<xs:element name="bandwidth">
......@@ -94,10 +95,6 @@
</xs:simpleType>
</xs:element>
<xs:element name="packet_loss">
<xs:annotation>
<xs:documentation>Static packet loss probability of the link as a fraction
(ie. 0.01 == 1%)</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:float">
<xs:minInclusive value="0.0"/>
......
......@@ -24,10 +24,6 @@
</xs:annotation>
</xs:attribute>
<xs:attribute name="type_slots" use="required">
<xs:annotation>
<xs:documentation>How many virtual nodes of this type this physical node can
handle.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:union>
<xs:simpleType>
......@@ -44,14 +40,6 @@ handle.</xs:documentation>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="static">
<xs:annotation>
<xs:documentation>element unlimited { empty }?,
A flag that indicates that this physical node *always*
has this type - a node is only allowed to have one dynamic
(ie. not flagged as static) type at a time, but any number
of static types at a time
element static { empty }?</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="true"/>
......@@ -68,15 +56,6 @@ element static { empty }?</xs:documentation>
</xs:sequence>
</xs:complexType>
<xs:group name="LinkTypeSpec">
<xs:annotation>
<xs:documentation>Link types are currently just a siple string. They will almost certainly
have to get more complicated, for two reasons:
First, I want to allow virtual links to specify more than one type, so
that we can ask for links that are, say, 'ethernet or loopback'
Second, I want to have a lot more control over links that get mapped to
multi-hop paths
TODO: MAYBE this should be combined with NodeTypeSpec</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="link_type">
<xs:complexType>
......@@ -86,10 +65,6 @@ TODO: MAYBE this should be combined with NodeTypeSpec</xs:documentation>
</xs:sequence>
</xs:group>
<xs:group name="LinkEndPoints">
<xs:annotation>
<xs:documentation>A link has two endpoints. Right now, they are order
independent. But they might become order-dependant later.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element ref="rspec:source_interface"/>
<xs:element ref="rspec:destination_interface"/>
......@@ -106,11 +81,6 @@ independent. But they might become order-dependant later.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:group name="LinkCharacteristics">
<xs:annotation>
<xs:documentation>Link characterstics which affect traffic.
TODO: In the future, the bandwidth, latency, and packet loss will be
moved to features and/or properties</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element ref="rspec:bandwidth"/>
<xs:element ref="rspec:latency"/>
......@@ -119,24 +89,9 @@ moved to features and/or properties</xs:documentation>
</xs:group>
<xs:element name="fd">
<xs:complexType>
<xs:attribute name="fd_name" use="required">
<xs:annotation>
<xs:documentation>Name of this feature or desire
element fd_name { text },</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="fd_weight" use="required">
<xs:annotation>
<xs:documentation>Weight assocated with the feature or desire
element fd_weight { xsd:float },</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="fd_name" use="required"/>
<xs:attribute name="fd_weight" use="required"/>
<xs:attribute name="violatable">
<xs:annotation>
<xs:documentation>A flag indicating whether or not a failure to match the desire with a
a feature is a constraint violation
element violatable { empty }?,</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="true"/>
......@@ -161,11 +116,6 @@ element violatable { empty }?,</xs:documentation>
</xs:complexType>
</xs:element>
<xs:attributeGroup name="GlobalSpec">
<xs:annotation>
<xs:documentation>GlobalSpec = element global {
element operator { "OnceOnly" | "FirstFree" }
}</xs:documentation>
</xs:annotation>
<xs:attribute name="global_operator" use="required">
<xs:simpleType>
<xs:restriction base="xs:token">
......@@ -176,12 +126,6 @@ element violatable { empty }?,</xs:documentation>
</xs:attribute>
</xs:attributeGroup>
<xs:attributeGroup name="LocalSpec">
<xs:annotation>
<xs:documentation>LocalSpec = element local {
element operator { "+" }
attribute local_operator { "+" }
}</xs:documentation>
</xs:annotation>
<xs:attribute name="local_operator" use="required">
<xs:simpleType>
<xs:restriction base="xs:token">
......@@ -191,10 +135,6 @@ element violatable { empty }?,</xs:documentation>
</xs:attribute>
</xs:attributeGroup>
<xs:complexType name="InterfaceSpec">
<xs:annotation>
<xs:documentation>Interfaces
InterfaceSpec = element interface { InterfaceContents }</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="rspec:property"/>
</xs:sequence>
......@@ -254,12 +194,7 @@ InterfaceSpec = element interface { InterfaceContents }</xs:documentation>
<xs:documentation>Name of this property</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="property_value" type="xs:string">
<xs:annotation>
<xs:documentation>Value associated with this property
TODO: Add ranges and other types from rspec</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="property_value" type="xs:string"/>
<xs:element name="property_penalty">
<xs:annotation>
<xs:documentation>The penalty associated with this property</xs:documentation>
......
......@@ -23,7 +23,7 @@ NodeContents &=
# The LinkMapping will only be available after an assignment
LinkContents &=
# attribute link_type { text }? &
attribute link_type { text }? &
VirtualName &
LinkMapping? &
# Characteristics (bandwidth, latency, loss) which affect traffic.
......
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