Changes between Initial Version and Version 1 of GENIEducation/SampleAssignments/OpenFlowAssignment/ExerciseLayout

05/17/13 14:50:54 (7 years ago)



  • GENIEducation/SampleAssignments/OpenFlowAssignment/ExerciseLayout

    v1 v1  
     4In this tutorial, we will show how do Flow Management using !OpenFlow on GENI.
     6== Overview ==
     7This Project leverages resources on the GENI aggregate in order to experiment with OpenFlow using the Omni GENI Client. [[BR]]
     8Please remember to release the resources you when you are done with them. [[BR]]
     9The following is the topology that you will be creating: [[BR]]
     10 - Firewall experiment: [[BR]]
     11[[Image(OpenFlowAssignment1.png, 30%, nolink)]]
     12 - Load Balancing experiment: [[BR]]
     13[[Image(OpenFlowAssignment1.png, 30%, nolink)]]
     15== Prerequisites ==
     16  * GENI Account:
     17    - Go to [ Request_GENI_Account] for an emulab account and to join a GENI project.
     18    - Or get a GENI Portal account via: [ Portal Main Site]
     19  * SSH
     20  * Unix command line - see the Tools section
     21  * A moderately deep understanding of the [ OpenFlow controller model] and API is required.
     22  * The OpenFlow specification, [ version 1.1.0] is a valuable reference for OpenFlow and the controller model.
     24== Tools ==
     25'''1. Trema''' [[BR]]
     26Each exercise in this assignment will require you to design and implement an OpenFlow controller.
     27Numerous libraries and controller frameworks are available for this task. The guidelines in this assignment assume that you are using the [ Trema] controller framework.
     28The Trema project web site,, contains documentation, a number of helpful examples, and some tutorial material for learning to use Trema.
     30'''2. Traffic Control (tc)'''[[BR]]
     31The tc command is available in the GNU Linux distributions on GENI nodes, found in the ''/sbin'' directory.
     32This command manipulates the Linux network forwarding tables, allowing for configuration of queuing disciplines,
     33which change the policies controlling which packets are forwarded in what order and which are dropped; and network
     34emulation, which allows the Linux kernel to emulate various network conditions such as delay or loss.
     35These two effects are provided by the qdisc and netem subcommands, respectively.
     36In these exercises, tc will be used to modify network conditions and enable different scheduling policies.
     37Example command lines will be provided.
     39'''3. [ Iperf]'''[[BR]]
     40Iperf is available on the GENI nodes, located at ''/usr/local/etc/emulab/emulab-iperf''.
     41Iperf is used to measure the bandwidth performance of Internet links. In these exercises,
     42it is used to study the behavior of TCP in the face of changing link characteristics.
     43Iperf runs as both a server and a client. The server is started with the -s command line option,
     44and listens for connections from the client. The client is started with the ''-c <server>'' command line option,
     45and connects to the server and sends data at either the fastest possible rate (given the underlying network)
     46or a user-specified rate. The -u option causes the sender or receiver to use UDP instead of TCP.
     47Various other options will be required for these exercises, and provided in the appropriate sections.
     48All Iperf measurement data should be recorded from the TCP receiver (server) side.
     50'''4. Telnet''' [[BR]]
     51The Unix telnet <host> <port> command allows you to easily connect to a specified TCP port on a remote host and manually input data.
     52You may find it useful for testing and evaluating your implementations.
     54== How to get Help ==
     55 * If you are using a specific aggregate or tool, you should consider registering in their [wiki:NikySandbox/GENIExperimenter/GENICommunity#Joinusermailinglists mailing list]. It is a great way to get connected with other GENI users and it is an excellent source of wisdom.
     56 * Send mail to the GENI help list: [].
     57 * If you want to chat real-time with other GENI users and ask questions, [wiki:HowTo/ConnectToGENIChatRoom join us] in a GENI chatroom.
     59== Resources ==
     60 * GENI resources include a variety of computational and network assets, all programmable by experimenters.  Resources are made available to experimenters by GENI ''aggregates''.  The [wiki:UnderstandingGENI UnderstandingGENI page] has more information in its [wiki:UnderstandingGENI#a2AnExperimentersViewofGENI "An Experimenter's View of GENI"] and [wiki:UnderstandingGENI#a3GENIResources "GENI Aggregates"] sections.
     62== Tutorial Instructions ==
     67<table id="Table_01" height="409" border="0" cellpadding="0" cellspacing="0">
     68        <tr>
     69                <td>
     70                        <a href=""><img src="" width="152" height="152" alt="Design/Setup"></a>
     71               </td>
     72               <td>
     74             <li><a href="">Part I: Design/Setup</a></li>
     75             <ul>
     76                 <li> Lists of steps for setting up the exercise </li>
     77             </ul></ul>
     78               </td>
     79        </tr>
     80        <tr>
     81                <td>
     82                        <a href=""><img src="" width="152" height="143" alt="Execute"></a>
     83                </td>
     84                <td>
     85             <ul>
     86<li><a href="">Part II: Execute</a></li>
     87             <ul>
     88                 <li> Lists of steps for executing the exercise</li>
     89             </ul></ul>
     90                </td>
     91        </tr>
     92        <tr>
     93                <td>
     94                        <a href=""><img src="" width="152" height="114" alt="Finish"></a>
     95                </td>
     97                <td>
     98             <ul>
     99             <li><a href="">Part III: Finish</a></li>
     100             <ul>
     101                 <li> Lists of steps for tearing down the exercise</li>
     102             </ul></ul>
     103                </td>
     105        </tr>