RSpec: rspec-request.rnc

File rspec-request.rnc, 1.9 kB (added by duerig, 6 months ago)

ProtoGENI RSpec Request Definition (v. 1.7)

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 a request 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 # The ComponentName will only be available after an assignment
16 NodeContents &=
17   VirtualName &
18   ComponentName? &
19   attribute colocate { text }? &
20   # TODO: Remove and replace with something more exensible
21   attribute virtualization_subtype { text }? &
22   attribute exclusive { text }?
23
24 # The LinkMapping will only be available after an assignment
25 LinkContents &=
26 #  attribute link_type { text }? &
27   VirtualName &
28   LinkMapping? &
29   # Characteristics (bandwidth, latency, loss) which affect traffic.
30   LinkCharacteristics?
31
32 # The ComponentInterfaceDeclName will only be available after an assignment
33 InterfaceDecl &=
34   ComponentInterfaceDeclName? &
35   VirtualName
36
37 # The ComponentInterfaceRefName will only be available after an assignment
38 InterfaceRef &=
39   attribute tunnel_ip { text }? &
40   # A number in the range [0, 32] denoting subnet
41   attribute tunnel_netmask { text }? &
42   attribute virtual_node_id { text } &
43   attribute virtual_interface_id { text }
44
45 RSpecContents &=
46   attribute type { "request" }
47
48 # A request link is mapped to an arbitrary topology which represents
49 # the virtual LAN/link which embodies it. Note that nodes do not
50 # provide any additional information and can be derived from the
51 # interface mapping.
52 LinkMapping =
53   element component_hop { ComponentName, InterfaceMapping* }+
54
55 # Each interface represents a particular physical interface. If that
56 # interface is one of the link end points, it is also mapped to that
57 # virtual interface name.
58 InterfaceMapping = element interface_ref {
59   ComponentInterfaceRefName |
60   (attribute virtual_node_id { text } &
61    attribute virtual_interface_id { text })
62 #  VirtualName ?
63 }
64
65 start = RSpec