Version 18 (modified by Hussamuddin Nasir, 5 years ago) (diff)


Understanding the AM API using Named Data Networking

Image Map

1. Design the Experiment

In today's experiment you will use resources at the aggregate listed on the worksheet. If you don't have a worksheet, use the closest Instageni rack to the first letter of your name (i.e. if your name starts with the letter C, pick a rack that starts with C). This will help to prevent that too many users choose the same rack and eventually the rack will run out of resources.

2. Establish the Environment

2.1 Set up ssh keys and configure Omni

If your account is from the GENI Portal follow the instructions here.

If your account is from the iMinds member authority ( follow the instructions here.

3. Obtain Resources

3.1 Create a slice

Create a slice using omni and the slice name of your choice. From now on that slice name will be referred to as SLICENAME.

$ omni createslice SLICENAME

3.2. Load a simple topology in jFed

For this exercise, we will edit an existing RSpec file. Start by loading this predefined topology into jFed.

  1. In the Portal, launch jFed for this slice.
  2. From the jFed Experimenter Toolkit menu (see figure), select the Open URL button.
Import an RSpec into jFed
Figure 3-1 Import an RSpec into jFed.
  1. Enter the URL for the RSpec:
    then click Ok.
  2. When jFed pops up a message asking you to pick a manager to use, select the manager listed on your worksheet from the list. After you pick an aggregate manager, a network topology should appear on the canvas.
    Because this RSpec file contains a generic description of resources and does not specify any particular aggregate manager, jFed will pop up a message asking you to specify an aggregate to use:
    Assign these nodes now ....
    Pick Aggregate Manager
    Figure 3-2 Pick an Aggregate Manager.

3.3. View RSpec to see Install and Execute commands

jFed allows you to install and execute commands automatically. In the RSpec you have just added there is a tarball with the necessary files and a script that will automatically run when the nodes boot-up.
For more information about scripts, refer to Write Install Script
To view/edit these commands, please follow the instructions below:

  1. Double click on a node, and then click on the "Boot scripts" tab.
  2. To add commands, click on the "+" button.

Figure 3-3 Automating your configuration.

3.4. Export the modified request RSpec

Now we will pull back some of the covers and inspect exactly what jFed has been doing for us when preparing the RSpecs for the experiments we design. Each node and link has a corresponding element in the RSpec, and the details of the component configuration (such as the install and execute services we requested above) are specified with attributes, or sometimes child elements, within those portions of the document.

  1. From the jFed Experimenter Toolkit window (see figure), select the RSpec Editor tab. This will bring up a window showing the current RSpec -- please take a moment to inspect it. The `<node>` and `<link>` elements contain the specification for the components we will request, and if you look closely, you will be able to see the install and execute service elements you added earlier.
  2. Use the Save to file button (in the upper left) to a local copy of your RSpec with the name ccn_precip.xml. We'll use this in the next step to demonstrate how other client tools also use RSpec files to communicate requests to aggregate managers.

Figure 3-4 View and save the final request RSpec

3.5. Instantiate the new experiment using Omni

For this step, we'll change the approach a bit and switch to a new client tool, the command line Omni client.

From a terminal, please enter the command:


where AM_NICKNAME is the nickname for your assigned aggregate manager and SLICENAME is the name of the slice you created earlier (both of these are given on your worksheet). RSPEC_FILE should be replaced with the filename of the RSpec you saved in step 4.

If all is well, Omni should give you a number of informational messages, such as:

INFO:omni:Loading config file /home/geni/.gcf/omni_config

It should quickly proceed to the point where it makes the request to the remote manager:

INFO:omni:Creating sliver(s) from rspec file /home/geni/Downloads/experiments.rspec for slice ...

This step can sometimes be time-consuming, so please be patient. If it succeeds, within a couple of minutes Omni should report:

INFO:omni: Completed createsliver:

and your resource reservation is complete!


Next: Execute