DocumentsDownloadsWikiCommunityBlogAbout

OpenFlow Wireless

From OpenFlow Wiki

(Redirected from OpenRoads)
Jump to: navigation, search

Contents


OpenRoads (or OpenFlow Wireless) is a platform for innovation and realistic deployment of services. Built on OpenFlow, OpenRoads can be thought of in the following ways.

  • OpenFlow provides a mechanism for software-defined networking. However, there is a barrier between possessing a mechanism to having a platform that one can readily innovate in. OpenRoads lower that barrier by providing a complete platform for others to deploy and innovate in.
  • Mobility services are heavily researched upon, but verification is hard. The wireless channels are difficult to simulate, and realistic user traffic/movement crucial to solid validation of ideas are hard to emulate. By allowing research in our production networks, OpenRoads allow both to be achieved in the network.
  • Handover between different wireless technologies is hard today. This is because their backhaul network is different, as they are built around a single wireless technology. By "flattening" these networks, we show that handover between heterogeneous wireless networks can be achieved in a simple way in OpenRoads.

OpenRoads Architecture

OpenRoads Architecture

OpenRoads' consists of various layers in its architecture, namely, a physical layer, network virtualization/slicing layer and controller layer. Many research work can be done solely in applications built upon the controller, though an understanidng of the underlying layers is important. This is illustrated in the figure on the right.

Detailed description of the platform are available in the publications. We will focus on providing instructions and links to the various components here.

Setup and Installation

Physical Equipments

The following equipments have been used in OpenRoads.

You might also want to peruse the deployment page.

Slicing the Network

OpenRoads also incorporates a network "virtualization" layer, which consists of the following.

  • FlowVisor which slices the flowspace using OpenFlow

Controller/API

The setup of OpenRoads controller/API is the same as NOX, since it is an extension of NOX itself. To checkout OpenRoads, run

git clone git://openflowswitch.org/openroads.git noxcore

If you are sadly behind a firewall, try gitweb. More instructions for Git can be found at the git page. Now you need to install some packages if you have not previously installed NOX (see noxrepo for detailed instructions)

apt-get install autoconf automake1.10 g++-4.2 gcc-4.2 libboost-dev libtool pkg-config \
               libboost-filesystem-dev libpcap-dev libssl-dev make python-dev \
               python-twisted swig libxerces-c2-dev libboost-serialization-dev \
               python-mako libboost-test-dev openssl python-simplejson python-openssl \
               libsqlite3-dev

and can compile in the usual way

cd noxcore
./boot.sh
./configure --with-python=`which python2.5`
cd src
make

To generate doxygen documentation for the code,

cd <nox path>/doc/doxygen
doxygen doc.cfg

The generated documentation is in directories html and latex.

To use the various utilities, export the following environment variables

export NOXPATH=<path of download>
export PYTHONPATH=$PYTHONPATH:$NOXPATH/noxcore/src/pylib
export PATH=$PATH:$NOXPATH/noxcore/src/utilities

This can put in .bashrc or .bash_profile in your home directory.

As part of the API, we provide support for the following, which are documented in separate pages.

More Tools

As we developed OpenRoads, we have also developed tools to help us work within NOX. Python scripts' documentation can usually be retrieved by running

<script-name>.py -h

The following is a list of these tools.

  1. nox-draw-dependencies.py draws the dependency graph of the NOX components. By providing a list of components called with the nox_core command, the graph will be color coded to indicate which components are really invoked in that call.
  2. nox-create_C_App.sh creates a new C/C++ component in NOX. This should be run in netapps, coreapps or uiapps directories. The component still has to be manually added to configure.ac.in and nox.xml appropriately.
  3. Instead of vms-start and vms-stop, OpenFlowVMS is basically developed into an independent package that simulates an OpenFlow network for testing and development.

Sample Applications

  1. n-casting
  2. Hoolock

People

OpenRoads is brought to you by

For further enquiries, requests and/or bug reports, please post them to openflow-discuss@lists.stanford.edu, starting the subject line with OpenFlow-Wireless:. If you would like to correct our mistakes, make this better, add a new feature, etc., don't be shy and please contact KK. We would add you as a collaborator.

Publications

  1. OpenRoads-Empowering Research in Mobile Networks Abstract-(Best Poster at SIGComm 2009)
  2. The Stanford OpenRoads Deployment presented at WiNTECH 2009.
Copyright 2008 by the OpenFlow Consortium. All rights reserved. Powered by MediaWiki and WordPress.