Version 30 (modified by, 10 years ago) (diff)


In order to allow interoperability among different Aggregate Managers(AMs), GENI requires a common language for describing resources, resource requests, and reservations. GENI now uses standardized Request Specification (RSpec) documents which are XML documents following agreed schemas to represent resources. The schemas support Aggregate or resource specific extensions. Ongoing work covers agreeing upon ontologies for other resource types.

RSpec Types

In GENI there are three different types of RSpec, each used to describe resources when communicating with an AM. The communication with an AM, is based on the common GENI AM API.

Advertisement RSpec

This is the document that is returned by an AM that describes the resources that the AM has.

Request RSpec

This is the document that a user sends to an AM to describe the resources that he wants to reserve.

Manifest RSpec

This is the document returned by an AM tha describes the resources that a user has at an AM.

RSpec Versions

Except from the three types of RSpecs, there are also different versions of RSpecs. The current version is the GENI v3.


The current GENI v3 RSpec schemas are based on the ProtoGENI v2 RSpecs. You can find some documentation and RSpec examples on the ProtoGENI website.

OpenFlow v3 Extension


Writing RSpecs

You will only probably ever need to write Request RSpecs. The best way to write RSpecs is either to use a tool like Flack, or to modify an existing example, or to modify an advertisement RSpec.

For OpenFlow v3 RSpecs there is wiki page that gives step-by-step instructions about how to write a valid RSpec.

Debugging RSpecs

If you write your own RSpecs, then you can use rspeclint to verify the validity of the document. is a script written in python that will check the validity of an xml document against its schema.

For comments and corrections on this page please mail us.

Attachments (1)

Download all attachments as: .zip