User Tools

Site Tools


usage:sfawrapper

Using the Community-Lab SFA Wrapper

Introduction

This documentation describes the usage of the Community-Lab SFA Wrapper. Other sections of the wiki describe the technical details and architecture of the SFA Wrapper. The SFA Wrapper provides an Aggregate Manager interface through which the user can reserve and manage the resources offered by the testbed using a generic SFA client tool. This section describes the general steps to follow when using any generic SFA client tool with the Community-Lab SFA Wrapper.

Summary of configuration details

The following table shows a summary of the configuration details and supported features described in this section and other sections about the SFA Wrapper (technical details and architecture).

Field Value Comments
AM URL https://84.88.85.16:12346 URL that the SFA client tools needs to interact with.
API version GENI AM API v3 API exposed by the SFA Wrapper. More details here
RSpecs GENI RSpec v3 Standard RSpec ( GENI v3 RSpec Schema)
CLab RSpec v1 RSpec extension for C-Lab to support specific features (CLab v1 RSpec Schema)
Federated authorities (supported accounts) iMinds Virtual Wall (Emulab) Get an account here
PlanetLab Europe PlanetLab EU
Fed4FIRE Portal Fed4FIRE
SFA Client tools with support for Community-Lab SFA Wrapper jFed It includes support for the C-Lab SFA Wrapper by defualt. No configuration needed. More info here

Get an account

First step to use the SFA Wrapper of Community-Lab is to get a user account on one of the federated authorities. These federated authorities will generate credentials for our user account that the SFA Wrapper will accept as valid since it trusts these authorities.

Get an account on one of these federated authorities:

After creating the user account, you will need to upload a public key. Then you will generate the certificates for your user account and download them. Most of the SFA client tools require the certificates (with the public key) in .pem format. Therefore it is recommended to download the certificate in this format if possible.

Choose and configure a SFA client tool

For using the SFA interface of Community-Lab you need a tool acting as a SFA-client. This tool will allow you to interact with Community-Lab AM by calling the operations of the SFA AM API. There are many client tools that can be used. Here you have a short list of some client tools:

  • jFed, (recommended) java application with a GUI that acts as a SFA-client tool to interact with federated SFA-compliant testbeds. jFed provides large default set of testbeds to be used. Among these testbeds there is Community-Lab. You can use jFed as a web application or download the jar files to run it locally.
  • SFI, command-line tool included in the SFA package ( SFA package)
  • NEPI, Python-based library that can be used from command line. ( NEPI)
  • Fed4FIRE Portal, dashboard of the Fed4FIRE project ( F4F Portal)

There is a complete tutorial of how to use the jFed client tool with Community-Lab testbed. Please, see Tutorial SFA wrapper Community-Lab + jFed.

Configuration of the SFA client tool

If you choose to use jFed no configuration is needed. jFed supports by default the Community-Lab testbed. There are different tools provided by the jFed suite. An interesting and recommended tool is jFed-Experimenter tool (available as web application at jFed), that provides a graphical environment to design your experiment topology.

The Community-Lab testbed nodes are avaialble in jFed Experimenter tool as Wireless Nodes. Once a Wireless Node is added to your experiment you can double-click on it and select the testbed that provides this node. One of the options is clab that stands for Community-Lab.

If you choose another tool, you may need to configure it to work with the Community-Lab SFA Wrapper. Normally, the parameters needed for the configuration include URL and version of the AM, URN and certificates. To configure your SFA client tool use the following information for the C-Lab SFA Wrapper:

Field Value Comments
AM URL https://84.88.85.16:12346 URL that the SFA client tools needs to interact with.
AM URN urn:publicid:IDN+clab+authority+am URN of the AM.
API version GENI AM API v3 API exposed by the SFA Wrapper. More details here
Certificate clab.gid Certificate of the AM

Interaction with the wrapper

Once the client tool is properly configured you can interact with the C-Lab SFA Wrapper and make use of the testbed and its resources. The SFA API provides a set of operations that allow the users to reserve, use and manage the resources offered by the testbed. The set of operations includes:

The typical use case for the testbed is to register a new slice and create a set of slivers associated to this slice. Then the user can access the slivers through ssh and deploy the desired experiments. Once the experimentation is finished, the resources (slivers) can be released.

Some of the SFA client tools that provide a graphical user interface encapsulate and automate this procedure, making easier the process of reserving resources and creating slivers. One example is the jFed-Experimenter tool, that provides a graphical interface to select specific nodes of the testbed and instantiate slivers on them, as well as easy ssh access to the created slivers.

However not all the SFA client tools provide a graphical interface to automate the procedure. In this case, you may need to follow step by step the procedure to register a new slice, create slivers for this slice and access them via ssh. The whole process is detailed in the next section.

Register a new slice and create new slivers

This section explains the complete process to create a new slice with a set of slivers using a SFA client tool configured to work with the Community-Lab SFA Wrapper. It is assumed that the user has an account on a federated authority and it has downloaded correctly the corresponding certificate.

  1. Get the User Credential in a federated authority. Using the certificate downloaded form the federated authority get the user credential. This can be done through a SFA client tool such as jFed or SFI.
  2. Register a new slice in the federated authority. Using the user credentials retrieved in the previous step, Register a new slice in the federated authority. This can be done with any SFA client tool. Once the slice is correctly registered in the federated authority, get its slice credential.
  3. Allocate a new sliver in the Community-Lab AM using the Slice Credential issued by the federated authority. Using the slice credential retrieved in the previous step, invoke the operation Allocate on the AM of Community-Lab. This can be done through any SFA client tool. In the Allocate operation the user will need to specify the correct Request RSpec describing the slivers being allocated.
  4. Provision the allocated slivers. Using again the slice credential from step 2, invoke the operation Provision on the AM of Community-Lab. Select the allocated slivers or the whole slice in the Provision operation. The user will also need to specify a public key that will be uploaded to the created slivers, so that the user will have SSH access to the slivers once they are ready.
  5. PerformOperationalAction Start the slivers. Using again the slice credential from step 2, invoke the operation PerformOperationalAction on the AM of Community-Lab. Select the operation geni_start and the slivers (or the whole slice). This operation will start the booting process of the slivers.
  6. Wait for the slivers to be ready. Using the slice credential from step 2, invoke the operation Status on the AM of Community-Lab. Select the slivers (or the whole slice). The operation Status will show information about the operational state of the slivers. When this state is geni_ready the slivers are ready to use.
  7. Access the slivers through SSH with your private key. As a last step, the user can ssh the created slivers using the private key that corresponds to the public key that was specified in step 4. Invoke the operation Describe on the AM of Community-Lab to see the details of the slivers, including the SSH Login information (user and IP address of the sliver).

usage/sfawrapper.txt · Last modified: 2014/10/21 16:41 by esunly