wiki:Internal/SystemPrototyping/Software
close Warning: Can't synchronize with repository "(default)" ("(default)" is not readable or not a Git repository.). Look in the Trac log for more information.

Version 7 (modified by nkiran, 13 years ago) ( diff )

--

ORBIT Evaluation

An early version of the prototype MobilityFirst (MF) network consisting of: (1.) Click-based routers, (2.) a distributed name resolution service, and (3.) client network API and stack (with sample applications written to this API), can be deployed on the ORBIT testbed and evaluated using OMF. The deployment can be done in one of the following ways:

  1. Baseline ORBIT image and MF release tarball, or
  2. MF disk image with pre-installed MF components

The following sections detail these two methods and provide sample omf scripts for simple evaluations of the MF prototype

MobilityFirst Disk Images for ORBIT

An MF disk image contains all of router, gnrs, and client api/stack (sources + precompiled binaries) and can be installed on ORBIT nodes using OMF tools. Once the image is loaded, experiment details such as node specialization (whether router, gnrs server, client), process control, interface configuration and topology can be managed directly through OMF execution scripts. Further, prototype components on these images have been instrumented to enable monitors to capture and report liveness and relevant stats to a central repository using ORBIT Measurement Library (OML) framework for offline (or even during the experiment) analysis.

All images listed below are stored at repository1.orbit-lab.rutgers.edu:/export/omf/omf-images-5.2, and can be loaded onto a set of orbit nodes from the console as:

> omf load <node-set> <image-name>

e.g., 

> omf load [[1,1], [1,2], [1,3]] mf-proto-1.0.ndz

Images Currently In Use

Image name: mf-proto-gnrs-trial3.ndz

The image holds the 'latest release' of MobilityFirst prototype code base in /usr/local/mobilityfirst. This includes the following top-level directories:

  • android - C implementations of client API and stack that compile for Linux and Android platforms. Also has sample sender and receiver applications using the API
  • click - Router elements implementating storage aware routing and hop-by-hop reliable link-level data transport. Also has elements that implement Click-based sender and receiver clients.
  • gnrsd - C++ implementation of a GNRS server, and an interactive GNRS client.

Apart from the MF code base, the dependencies for the router, gnrs, and client components have also been installed. A complete list of these dependencies can be found in the Readme accompanying the code base.

MF boot script: The image also contains a boot script that can update the local code base to the latest release from MobilityFirst SVN - this is currently disabled however, pending the creation of an anonymous/experiment access to SVN. The script also compiles and installs user-level Click (v2.0) after including the elements from the prototype's code base. Similary, the name resolution daemon is compiled and installed under /usr/local/mobilityfirst/bin and can be controlled via the pre-installed init.d script /etc/init.d/gnrs.

Sample OMF Scripts for ORBIT

Test 1: Sender-Router-Receiver

Below is the simple topology:

         S ---- MFR ---- R

S-Sender, MFR - MobilityFirst Router, R - Receiver

The topology in these experiments is enforced within the Click implementations by a GUID-based connectivity graph specified by a topology file passed to click. The following lines in the topology file define the above graph:

#syntax: <node-GUID> <neighbor-count> <neighbor-GUID1> [<neighbor-GUID2>] ...
1 1 2
2 2 1 3
3 1 2

Files: OMF script | topology file

Test 2: Multiple Senders and Receivers

Below is the topology:

                 S2
                 |
                 |
         S1 ---- MFR1 ----- MFR2 ---- MFR3 ---- R1
                                       |
                                       |
                                       R2

S-Sender, MFR - MobilityFirst Router, R - Receiver

Sender1 sends a file to Receiver1 and Sender2 sends to Receiver2.

Files: OMF script | topology file

Evaluation on GENI

GENI, an NSF-funded proposal for a global environment for network innovation, is a multi-group collaborative effort to realize an at-scale experimental network infrastructure that is rich (i.e., with wired and wireless resources, commercial and experimental platforms) and allows for deep programmability.

ProtoGENI is the prototype implementation and deployment of GENI. ProtoGENI is also the control framework for a number of GENI resources currently deployed on the national backbone and at several participating campuses. It is worth noting, however, that there are several GENI deployments that use other control frameworks and experimentation across ProtoGENI and these deployments is currently set up via personnel coordination/manual configuration.

The following links provide the basic information to learn about ProtoGENI and to get started with experimentation:

  • ProtoGENI Tutorial with basics on
    • Creating an account with one of the Clearing houses (e.g., Utah Emulab or BBN)
    • Setting up certificate (with managers) and key-based (with individual hosts) authentication and authorization
    • Steps and test scripts for finding and reserving resources on ProtoGENI
  • Quering and Reserving Resources can be done using either of following:
Note: See TracWiki for help on using the wiki.