= Vertical Handoff with OpenFlow = == Overview: == This tutorial is designed to give an insight into how OpenFlow can be used to conduct network experiments. As background, a vertical handoff is the (ideally seamless) migration of a network connection from one network interface to another of a different technology. An example might be your cell phone transitioning from a WiFi to a 4G connection while streaming a video. Vertical handoffs are traditionally handled by the network infrastructure, leaving providing little-to-no control of the handoff execution at the client. Clemson University and the University of Wisconsin have partnered to develop and test a client-initiated and controlled vertical handoff. This project is being done using GENI resources -- namely Clemson's GENI WiFi and WiMAX testbeds. Further development is also planned in GENI's Orbit testbed at Rutgers. This vertical handoff project is being developed on physical machines; however, for the purpose of this tutorial, our development environment has been ported to a virtual machine (VM) so all can participate without regard the the unique hardware capabilities of each participant. This tutorial will walk you through how to perform a Layer-2 (L2) handoff using OpenFlow within a virtual machine. As you will discover, because this solution is dependent only on Linux network interface handles, you can apply it to any interface on a physical host. The VM provided has two host-only interfaces and one interface tied to a physical adapter on the host machine. The host-only interfaces communicate with the VMware tap interface added by VMware to the host machine. In this tutorial, we will demonstrate how to run our handoff solution between these host-only interfaces. [[Image(VM-Diagram.jpg)]] == Prerequisites: == - Computer with 2G RAM or higher (recommended) - Windows (turnoff firewall); Mac/Linux (root at terminal) - VM image (link to Clemson Box account) - Familiarity with SSH, Linux terminal, Bash and Python scripting - Basic networking and OpenFlow background == Tools: == - On your host machine (please install before GREESC13 tutorial session): - VMware Player: http://www.vmware.com/download/player/download.html - PuTTY is recommended, a free implementation of Telnet and SSH for all platforms Windows/Mac users: http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html Linux users: sudo apt-get install putty - Within your VM image (we have already installed these items): - OpenVPN. This tool is used to create the internal tap interface, from which the traffic is originated: http://wiki.debian.org/OpenVPN - Floodlight OpenFlow Controller. The OpenFlow controller we use to switch the network traffic. Information: http://www.projectfloodlight.org/floodlight/ Installation: http://docs.projectfloodlight.org/display/floodlightcontroller/Installation+Guide - Open vSwitch (OVS). The open virtual switch that allows a network interface to be OpenFlow-enabled. Information: openvswitch.org Installation: http://git.openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=blob_plain;f=INSTALL;hb=HEAD == Where to get Help: == - Questions/Help: Ryan Izard, rizard@g.clemson.edu; Fan Yang, fany@clemson.edu - Floodlight Developers Group: https://groups.google.com/a/openflowhub.org/forum/?fromgroups=#!forum/floodlight-dev == Resources: == - Floodlight: http://www.projectfloodlight.org/floodlight/ - Handoff Code: https://github.com/rizard/openflow-vertical-handoff (work-in-progress...) == Tutorial Instructions == {{{ #!html
Design/Setup
  • Part I: Design/Setup
    • Step 1: Design Experiment
    • Step 2: Establish Management Environment
    • Step 3: Obtain Resources
Execute
  • Part II: Execute
    • Step 4: Configure and Initialize Services
    • Step 5: Execute Experiment
    • Step 6: Analyze and Visualize Experiment
Finish