Skip to content. | Skip to navigation

Personal tools

Navigation

You are here: Home / Wiki / Attachment / Rspec / Rspec-Ad.Rnc

Rspec-Ad.Rnc

Plain Text icon — Plain Text, 2 KB (2110 bytes)

File contents

#
# 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
  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.
  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 }

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

InterfaceDecl &=
  ComponentInterfaceDeclName &
  element monitoring { attribute user_traffic { text }? }?

InterfaceRef &=
  ComponentInterfaceRefName

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

RSpecContents &=
  attribute type { "advertisement" } &
  ExternalReference* &
  BgpPrefix*

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

start = RSpec