| 1 |
# |
|---|
| 2 |
# EMULAB-COPYRIGHT |
|---|
| 3 |
# Copyright (c) 2008 University of Utah and the Flux Group. |
|---|
| 4 |
# All rights reserved. |
|---|
| 5 |
# |
|---|
| 6 |
|
|---|
| 7 |
# |
|---|
| 8 |
# Prototype of an advertisement RSpec, to be used by ProtoGENI |
|---|
| 9 |
# |
|---|
| 10 |
|
|---|
| 11 |
default namespace = "http://www.protogeni.net/resources/rspec/0.1" |
|---|
| 12 |
|
|---|
| 13 |
include "protogeni-rspec-common.rnc" |
|---|
| 14 |
|
|---|
| 15 |
NodeContents &= |
|---|
| 16 |
# Component identifiers |
|---|
| 17 |
ComponentName & |
|---|
| 18 |
# Information about the physical location of the node. |
|---|
| 19 |
Location? & |
|---|
| 20 |
|
|---|
| 21 |
# Indicate whether or not this node is available - the idea is that a |
|---|
| 22 |
# full dump of the static physical topology will not include this, but |
|---|
| 23 |
# that we can later get updates that include only this attribute (and a |
|---|
| 24 |
# UUID) Just binary for now - probably will include more things, such |
|---|
| 25 |
# as a number of "free slots", later |
|---|
| 26 |
element available { xsd:boolean } & |
|---|
| 27 |
|
|---|
| 28 |
# Indicates whether the node is in sharing mode: exclusive is true if |
|---|
| 29 |
# the component manager will agree to promise not to share it. |
|---|
| 30 |
element exclusive { xsd:boolean } & |
|---|
| 31 |
|
|---|
| 32 |
# Marks this node as a stand-in for a large network rather than a |
|---|
| 33 |
# single machine. This means that other CMs can make external |
|---|
| 34 |
# references to this node without a corresponding external reference |
|---|
| 35 |
# in this advertisement. It also means that it makes sense for |
|---|
| 36 |
# multiple physical links to connect to the same interface. |
|---|
| 37 |
element cloud { empty } |
|---|
| 38 |
|
|---|
| 39 |
LinkContents &= |
|---|
| 40 |
# Component identifiers |
|---|
| 41 |
ComponentName & |
|---|
| 42 |
# Characteristics (bandwidth, latency, loss) which affect traffic. |
|---|
| 43 |
LinkCharacteristics? |
|---|
| 44 |
|
|---|
| 45 |
InterfaceDecl &= |
|---|
| 46 |
ComponentInterfaceDeclName & |
|---|
| 47 |
element monitoring { attribute user_traffic { text }? }? |
|---|
| 48 |
|
|---|
| 49 |
InterfaceRef &= |
|---|
| 50 |
ComponentInterfaceRefName |
|---|
| 51 |
|
|---|
| 52 |
# Reference to components managed by other component managers. |
|---|
| 53 |
# TODO: Merge ComponentInterfaceRefName into just component_id when |
|---|
| 54 |
# length restrictions on URNs end. |
|---|
| 55 |
ExternalReference = element external_ref { |
|---|
| 56 |
ComponentInterfaceRefName & |
|---|
| 57 |
attribute component_manager_uuid { text } |
|---|
| 58 |
} |
|---|
| 59 |
|
|---|
| 60 |
RSpecContents &= |
|---|
| 61 |
attribute type { "advertisement" } & |
|---|
| 62 |
ExternalReference* & |
|---|
| 63 |
BgpPrefix* |
|---|
| 64 |
|
|---|
| 65 |
BgpPrefix = element bgp_prefix { |
|---|
| 66 |
attribute address { text } & |
|---|
| 67 |
attribute netmask { text } |
|---|
| 68 |
} |
|---|
| 69 |
|
|---|
| 70 |
start = RSpec |
|---|