--
TomLehman - 07 Jul 2010
Example Experiment Topology Instantiation using the MAX GENI Aggregate Manager
This page provides an example of an experiment topology and the request message formats.
API Client
The example experiment topology discussed on this page is based on using the MAX Aggregate Manager API which is available here:
The README file in this software distribution provides information regarding deployment and use of this API.
An overview of the MAX Aggregate Manager Control Framework and API usage is also available
here.
Topology to be Instantiated
The messages required to instantiate the following topology will be reviewed on this page.
- MAX Example Experiment Slice Topology Instantiation
The partial physical topology for the MAX Substrate from which this example experiment topology is derived is shown at the bottom of this page.
MAX Aggregate Manager Web Service Calls
Instantiation of a slice will typically involve a set of calls similar to the ones described below.
- ListCapabilities (for entire substrate)
- GetResourceTopology (for entire substrate)
- CreateSliceNetwork (slice provisioning request)
- QuerySliceNetwork (slice status request)
- GetResourceTopology (for provisioned slice)
- DeleteSliceNetwork (delete slice, release resources)
A example of this commmand sequence and the associated output is available here:
Some additional information regarding the key commands is also provided below.
GetResourceTopology
The GetResourceTopology command can be utilized before slice creation to see the entire set of resources available. The output of this file is an XML topology graph which defines all the host and network resources available in the MAX GENI Substrate. An example output from this call is available at the link below. Opening this file with FireFox web browser will present a nice clickable view of the XML topology file. Other browsers may not provide a readable of a format.
CreateSliceNetwork
The CreateSliceNetwork request message allows the user to provide a slice request in the form of an RSpec. This is sent to the MAX Aggregate Manager for processing. Key items to note in this request are that the PlanetLab nodes are identified along with requests for dedicated slice networking. This request typically contains the VLAN ANY parameter which indicates that the MAX Aggregate Manager is free to pick any VLAN that is available to create the private slice to slice network. This request can also a request to instantiate resources on external, such as ProtoGENI. However this particular example does not include this. An example of a user slice request RSpec is available at the link below. Opening this file with FireFox web browser will present a nice clickable view of the XML topology file. Other browsers may not provide a readable of a format.
QuerySliceNetwork
The QuerySliceNetwork command is typically run after the CreateSliceNetwork to check on status of slice instantiation. Below is an output of this command showing the status and details of a three node slice topology.
[root@mot MAXGENI_AM_APIClient]# java -classpath AggregateWS-client-api.jar:lib/*
net.geni.aggregate.client.examples.QuerySliceNetworkClient
repo https://geni.dragon.maxgigapop.net:8443/axis2/services/AggregateGENI
Requested service URL: [https://geni.dragon.maxgigapop.net:8443/axis2/services/AggregateGENI]
Service URL is: https://geni.dragon.maxgigapop.net:8443/axis2/services/AggregateGENI
- No services directory was found under /home/tlehman/geni-max/MAXGENI_AM_APIClient/repo.
- Deploying module: rampart-SNAPSHOT - file:/home/tlehman/geni-max/MAXGENI_AM_APIClient/repo/modules/rampart-SNAPSHOT.mar
- Deploying module: metadataExchange - file:/home/tlehman/geni-max/MAXGENI_AM_APIClient/lib/mex-1.4.1.jar
- AggregateGENI API client setUp with repo='repo' url=https://geni.dragon.maxgigapop.net:8443/axis2/services/AggregateGENI
Rspec ID/Name: [] xi_rspec_slice1
- Verification successful for URI "#Timestamp-31508952"
============ QuerySliceNetworkResponse Response ===========
Slice Status => CREATED
= P2P VLANs =
GRI => dragon.maxgigapop.net-1393
Status => ACTIVE
Message =>
VLAN_ID => 15
Source => planetlab3.dragon.maxgigapop.net
Interface => eth1
Destination => planetlab2.dragon.maxgigapop.net
Interface => eth1
Bandwidth => 100.0
Description => xi_rspec_slice1 p2pvlan-planetlab3.dragon.maxgigapop.net-planetlab2.dragon.maxgigapop.net-any
GRI => dragon.maxgigapop.net-1394
Status => ACTIVE
Message =>
VLAN_ID => 3242
Source => planetlab3.dragon.maxgigapop.net
Interface => eth1
Destination => planetlab5.dragon.maxgigapop.net
Interface => eth1
Bandwidth => 100.0
Description => xi_rspec_slice1 p2pvlan-planetlab3.dragon.maxgigapop.net-planetlab5.dragon.maxgigapop.net-any
GRI => dragon.maxgigapop.net-1395
Status => ACTIVE
Message =>
VLAN_ID => 2225
Source => planetlab5.dragon.maxgigapop.net
Interface => eth1
Destination => planetlab2.dragon.maxgigapop.net
Interface => eth1
Bandwidth => 100.0
Description => xi_rspec_slice1 p2pvlan-planetlab5.dragon.maxgigapop.net-planetlab2.dragon.maxgigapop.net-any
GetResourceTopology
After submission of the CreateSliceNetwork call to the MAX Aggregate Manager, the GetResourceTopology call can be utilized to see the details of the instantiated topology. This view of the instantiated topology is very similar to the request format, with the main difference being that the as provisioned details like specific VLAN numbers will be included in this RSpec description. Opening this file with FireFox web browser will present a nice clickable view of the XML topology file. Other browsers may not provide a readable of a format.
MAX Substrate
- Partial view of MAX Substrate
Additional Experiment Topology Instantiation Examples and Performance Testing
- Demonstration of using MAX Aggregate Manager to instantiate an triangle topology on MAX
- Demonstration of using MAX Aggregate Manager to instantiate an experiment topology which includes ProtoGENI resources
-
Quicktime Movie: mov
- graphic of instantiated topology
- rspec used for request: request rspec with protogeni resources
- Performance Testing Summary: Below are typical results we observed during our GENI Experiment Topology Instantiation testing:
- 1. (0:00) send rspec to MAX Aggregate Manager (AM)
- 2. AM sends externalSliver rspec to ProtoGENI
- 3. (1:10) ProtoGENI replies with sliver creation success status and manifiest
- 4. AM sends slice creation request to MAX-MyPLC
- 5. (1:20) MAX-MyPLC replies with slice creation success
- 6. AM sends stitching p2pVLAN creation request to MAX-IDC
- 7. (1:23) AM configures stitching VLAN interface on a planetlab node
- 8. (1:27) AM finished planetlab VLAN interface
- 9. AM sends internal p2pVLAN creation request to MAX-IDC
- 10. (1:30) AM configures internal-slice VLAN interfaces on all planetlab nodes
- 11 (1:40) AM finished all planetlab VLAN interfaces
- 12. (2:40) both stitching and internal-slice p2pVLANs go active
- 13. (3:30) Vservers are created on all planetlab nodes
- Notes:
- ProtoGENI reply may take up to 3 minutes
- PlanetLab VSERVERs may take up to 4 minutes to be ready