Skip to content. | Skip to navigation

Personal tools


You are here: Home / Wiki / Rspec




The ProtoGENI RSpec is our mechanism for advertising, requesting, and describing the resources used by experimenters. We derived many of the basic principles from our previous format used in assign, the network mapper used in Emulab. The format has the advantage of having a fairly simple structure and allows us to draw upon 8 years of experience in dealing with resources inside of Emulab.

The RSpec has three distinct purposes and therefore we have divided RSpecs up into three different closely-related languages to address each of these purposes in particular.

  • Advertisements are used to describe the resources available on a Component Manager. They contain information used by clients to choose resources (components). Other kinds of information (MAC addresses, hostnames, etc.) which are not used to select resources should not be in the Advertisement.
  • Requests specify which resources a client is selecting from Component Managers. They contain a (perhaps incomplete) mapping between physical components and abstract nodes and links.
  • Manifests provide useful information about the slivers actually allocated by a Component Manager to a client. This involves information that may not be known until the sliver is actually created (i.e. dynamically assigned IP addresses, hostnames), or additional configuration options provided to a client.

Additional Information

  • Examples of valid RSpecs which you can modify to create your own
  • The new extensions facility for RSpecs.
  • Tips and tools for help in RSpecDebugging
  • A Reference to the design and semantic meaning of RSpecs.
  • Schema documents which you can use check an RSpec for conformance

Information about the now-deprecated RSpec version 0.1:

  • A tutorial describing basic concepts and how everything fits together
  • A reference which systematically describes what RSpecs mean