wiki:Tutorials/m0SDN/aHowTo

Version 4 (modified by akoshibe, 15 years ago) ( diff )

OpenFlow How-To

Sandbox 9 uses the OpenFlow capable switch as part of its setup as a means to provide a testbed for experimentation with the OpenFlow protocol. This tutorial describes the different components of the OpenFlow network and provides the basics needed to set up an experiment.

OpenFlow Protocol

OpenFlow is a protocol that allows for the creation of overlay networks over pre-existing network infrastructure. This allows a researcher to run experiments on production networks without the fear of affecting any of the legacy installations or setups, while having control over how data is handled across the network.

"OpenFlow" specifically refers to the protocol that is used by a network device and its controller to pass information about flows, or instructions on how to handle data packets based on the packet header, to each other.

Detailed information can be found here: http://www.openflowswitch.org/

The Testbed

Sandbox 9 consists of three nodes connected to the SB9 Console through a OpenFlow enabled IP8800/S3640-48T2XW switch. No image "OFSetup.jpg" attached to Documentation/OpenFlow/OFHowTo

The switch

The switch is currently running firmware supporting OpenFlow v0.8.9. The switch is pre-configured so that ports 25-36 (the data VLAN) is an OpenFlow virtual switch that listens to the Console as the controller. The configurations can be altered by using the setvsi command in the switch's command-line interface. The details behind configuring the virtual switch(es) on the IP8800 can be found here.

The Controller

Installing the controller
The OpenFlow reference System (v0.8.9r2) and NOX-core (v0.5.0) have been successfully installed and tested on the Console. These can be downloaded from the following places:

The former is a simple implementation that comes with a few tests; latter is a full-blown network operating system/ development tool that comes with a Network API that can be used to write and develop your own controller in C++ or Python.

Starting the controller
Both commands start the controller and establish a connection with the OpenFlow switch. The -v is for verbose. -h for both will give you the help files for the controllers. In the reference system, the controller is found under …/openflow/controller/

./controller -v ptcp:6633 

and in NOX, it is found under …/noxcore/build/src/

./nox-core -v ptcp:6633 

Note: See TracWiki for help on using the wiki.