Skip to content. | Skip to navigation

Personal tools

Navigation

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

Rspec-Request.Rnc

Plain Text icon — Plain Text, 1 KB (1935 bytes)

File contents

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