# # EMULAB-COPYRIGHT # Copyright (c) 2008 University of Utah and the Flux Group. # All rights reserved. # # # Prototype of a request RSpec, to be used by ProtoGENI # default namespace = "http://www.protogeni.net/resources/rspec/0.1" include "protogeni-rspec-common.rnc" # The ComponentName will only be available after an assignment NodeContents &= VirtualName & ComponentName? & attribute colocate { text }? & # TODO: Remove and replace with something more exensible attribute virtualization_subtype { text }? & attribute exclusive { text }? # The LinkMapping will only be available after an assignment LinkContents &= # attribute link_type { text }? & VirtualName & LinkMapping? & # Characteristics (bandwidth, latency, loss) which affect traffic. LinkCharacteristics? # The ComponentInterfaceDeclName will only be available after an assignment InterfaceDecl &= ComponentInterfaceDeclName? & VirtualName # The ComponentInterfaceRefName will only be available after an assignment InterfaceRef &= attribute tunnel_ip { text }? & # A number in the range [0, 32] denoting subnet attribute tunnel_netmask { text }? & attribute virtual_node_id { text } & attribute virtual_interface_id { text } RSpecContents &= attribute type { "request" } # A request link is mapped to an arbitrary topology which represents # the virtual LAN/link which embodies it. Note that nodes do not # provide any additional information and can be derived from the # interface mapping. LinkMapping = element component_hop { ComponentName, InterfaceMapping* }+ # Each interface represents a particular physical interface. If that # interface is one of the link end points, it is also mapped to that # virtual interface name. InterfaceMapping = element interface_ref { ComponentInterfaceRefName | (attribute virtual_node_id { text } & attribute virtual_interface_id { text }) # VirtualName ? } start = RSpec