RSpec: rspec-ad.rnc

File rspec-ad.rnc, 2.1 kB (added by duerig, 6 months ago)

ProtoGENI RSpec Advertisement Definition (v. 1.4)

Line 
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