| 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 |
|---|