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