Changes between Version 49 and Version 50 of GENIEducation/SampleAssignments/OpenFlowLoadBalancerTutorial/ExerciseLayout/Execute


Ignore:
Timestamp:
07/15/13 15:13:45 (11 years ago)
Author:
shuang@bbn.com
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • GENIEducation/SampleAssignments/OpenFlowLoadBalancerTutorial/ExerciseLayout/Execute

    v49 v50  
    7979 /opt/trema-trema-f995284/trema run /root/load-balancer.rb
    8080 }}}
    81  - On node "Switch", use the following command to connect the OpenFlow Switch to the controller:
     81 - Start a new command line window, log onto node "Switch", use the following command to connect the OpenFlow Switch to the controller:
    8282 {{{
    8383 ovs-vsctl set-controller br0 tcp:127.0.0.1 ptcp:6634:127.0.0.1
    8484 }}}
    8585 - Go back to your !LabWiki web page, drag and drop the `file icon` and repeat the experiment, as described in section 2.3, using a different experiment name (the slice name should stay the same).
     86 - When your experiment is done, you need to stop the Load Balancer:
     87  - On node "Switch", use the following command to disconnect the OpenFlow Switch from the controller:
     88  {{{
     89  ovs-vsctl del-controller br0
     90  }}}
     91  - On node "Switch", press "Ctrl" and "c" key to kill your Load Balancer process on node "Switch"
    8692
    8793 Questions:
     
    9197
    9298== 1.7 Automate your experiment using !LabWiki ==
    93  - Stop the Load Balancer:
    94   - On node "Switch", use the following command to disconnect the OpenFlow Switch from the controller:
    95   {{{
    96   ovs-vsctl del-controller br0
    97   }}}
    98   - On node "Switch", press "Ctrl" and "c" key to kill your Load Balancer process on node "Switch"
    9999 - Add code in your !LabWiki script to automate starting and stoping your OpenFlow Controller:
    100100  - Go back to your !LabWiki page, un-comment the script from line 184 to line 189 to start your OpenFlow Controller automatically on !LabWiki
     
    104104==  1.8 Modify the OpenFlow Controller to balance throughput among all the TCP flows ==
    105105 - You need to calculate the average per-flow throughput observed from both left and right path in function "stats_reply" in your load-balancer.rb
    106  - In function "packet_in", change the path decision based on the calculated average per-flow throughput: forward the flow onto the path with more average per-flow throughput. (Why? TCP tries its best to consume the whole bandwidth so more throughput means network is not congested)
    107  - If you do not know where to start, check the hints in Section 2.
     106 - In function "decide_path", change the path decision based on the calculated average per-flow throughput: forward the flow onto the path with more average per-flow throughput. (Why? TCP tries its best to consume the whole bandwidth so more throughput means network is not congested)
     107 - If you do not know where to start, check the hints in Section 2.1.
    108108  - If you really do not know where to start after reading the hints, download the answer directly from [http://www.gpolab.bbn.com/experiment-support/OpenFlowExampleExperiment/ExoGENI/load-balancer-solution.rb load-balancer-solution.rb].
    109109  - Save the above solution in your home directory then re-do the experiment on !LabWiki. '''Note:''' you need to change your !LabWiki script at line 185 to use the correct Load Balancing controller (e.g., if your controller is "load-balancer-solution.rb", you should run "/opt/trema-trema-f995284/trema run /root/load-balancer-solution.rb > /tmp/lb.tmp")
     
    130130
    131131= 2. Hints / Explanation =
    132 == 3.2 About the OpenFlow controller [http://www.gpolab.bbn.com/experiment-support/OpenFlowExampleExperiment/ExoGENI/load-balancer.rb load-balancer.rb] ==
     132== 2.1 About the OpenFlow controller [http://www.gpolab.bbn.com/experiment-support/OpenFlowExampleExperiment/ExoGENI/load-balancer.rb load-balancer.rb] ==
    133133  - Trema web site: http://trema.github.io/trema/
    134134  - Treme ruby API document: http://rubydoc.info/github/trema/trema/master/frames