rspec-ad.rnc 2.09 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
#
# EMULAB-COPYRIGHT
# Copyright (c) 2008 University of Utah and the Flux Group.
# All rights reserved.
#

#
# Prototype of an advertisement RSpec, to be used by ProtoGENI
#

default namespace = "http://www.protogeni.net/resources/rspec/0.1"

include "protogeni-rspec-common.rnc"

NodeContents &=
  # Component identifiers
  ComponentName &
  # Information about the physical location of the node.
  Location? &

  # Indicate whether or not this node is available - the idea is that a
  # full dump of the static physical topology will not include this, but
  # that we can later get updates that include only this attribute (and a
  # UUID) Just binary for now - probably will include more things, such
  # as a number of "free slots", later
26 27 28 29
  element available { xsd:boolean } &

  # Indicates whether the node is in sharing mode: exclusive is true if
  # the component manager will agree to promise not to share it.
30 31 32 33 34 35 36 37
  element exclusive { xsd:boolean } &

  # Marks this node as a stand-in for a large network rather than a
  # single machine. This means that other CMs can make external
  # references to this node without a corresponding external reference
  # in this advertisement. It also means that it makes sense for
  # multiple physical links to connect to the same interface.
  element cloud { empty }
38 39 40 41 42 43 44 45 46

LinkContents &=
  # Component identifiers
  ComponentName &
  # Characteristics (bandwidth, latency, loss) which affect traffic.
  LinkCharacteristics?

InterfaceDecl &=
  ComponentInterfaceDeclName &
47 48
  element monitoring { attribute user_traffic { text }? }? &
  attribute role { "control" }?
49 50 51 52

InterfaceRef &=
  ComponentInterfaceRefName

53 54 55 56 57 58 59 60
# Reference to components managed by other component managers.
# TODO: Merge ComponentInterfaceRefName into just component_id when
# length restrictions on URNs end.
ExternalReference = element external_ref {
  ComponentInterfaceRefName &
  attribute component_manager_uuid { text }
}

61
RSpecContents &=
62
  attribute type { "advertisement" } &
63
  ExternalReference* &
64 65 66 67 68 69
  BgpPrefix*

BgpPrefix = element bgp_prefix {
  attribute address { text } &
  attribute netmask { text }
}
70 71

start = RSpec