= OpenFlow-Based Vertical Handoff over WiFi and WiMAX in the Orbit Testbed = == Overview: == This tutorial is designed to give insight into how OpenFlow can be used to conduct network experiments over WiMAX. 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, providing little-to-no control of the handoff execution at the client. Clemson University is developing a client-initiated and controlled vertical handoff. This project is being conducted using GENI resources -- namely Clemson's GENI WiFi and WiMAX testbeds. Development has also been done on the Orbit testbed at Rutgers, which is where this tutorial and GENI experiment will be conducted. This tutorial will be conducted on the grid testbed at Orbit and will walk you through how to conduct an OpenFlow-based vertical handoff over WiFi and WiMAX. Three Ubuntu Linux images have been prepared for you and are available for this tutorial – (1) a client, which will initiate the handoff, (2) a server, which will serve as a correspondent node for the client, and (3) a WiFi access point (AP), which will provide a WiFi network over which the client and the server can communicate. The grid testbed at Orbit has complete WiMAX coverage via a single WiMAX base station (BS). This BS will provide the WiMAX network over which the client and the server communicate. == Prerequisites: == - An Orbit account. Visit www.orbit-lab.org for details on obtaining an account. For the tutorial at GEC18, a tutorial account will be provided for you. - A reservation on an Orbit testbed. Sandbox #4 (sb4) can be use for up to eight nodes. The grid testbed can support up to 400 nodes. - SSH access to the Orbit testbed. For this, you will need to SSH with the public key associated with your Orbit account. - Familiarity with networking, SSH, Linux terminal, OpenFlow, the Floodlight OpenFlow controller, Java, Bash scripting, and Python scripting - Familiarity with the Orbit testbed and omf commands (e.g. stat, tell, load, and save) == Tools: == - The Client and Server images on Orbit (we have already installed these items): - - OpenVPN. This tool is used to create the internal tap interface, over which all client applications send and receive packets: http://wiki.debian.org/OpenVPN - Floodlight OpenFlow Controller. The Java-based OpenFlow controller used to switch between the WiFi and WiMAX interfaces of the client. - Information: http://www.projectfloodlight.org/floodlight/ - Installation: http://docs.projectfloodlight.org/display/floodlightcontroller/Installation+Guide - OpenVswitch (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 - Within the AP image on Orbit (we have already installed these items): - hostapd. The software package used to create a WiFi access point from an off-the-shelf WiFi card. Information: www.hostapd.org??? Installation: ??? == Where to get Help: == - Questions/help about this tutorial, vertical handoffs, Floodlight: Ryan Izard, rizard@g.clemson.edu - Questions/helps about the Orbit testbed: ??? - Questions/help about Floodlight projects (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 (ongoing project... check back often) == 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