Changes between Version 49 and Version 50 of GENIEducation/SampleAssignments/OpenFlowLoadBalancerTutorial/ExerciseLayout/Execute
- Timestamp:
- 07/15/13 15:13:45 (11 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
GENIEducation/SampleAssignments/OpenFlowLoadBalancerTutorial/ExerciseLayout/Execute
v49 v50 79 79 /opt/trema-trema-f995284/trema run /root/load-balancer.rb 80 80 }}} 81 - Onnode "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: 82 82 {{{ 83 83 ovs-vsctl set-controller br0 tcp:127.0.0.1 ptcp:6634:127.0.0.1 84 84 }}} 85 85 - 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" 86 92 87 93 Questions: … … 91 97 92 98 == 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 br097 }}}98 - On node "Switch", press "Ctrl" and "c" key to kill your Load Balancer process on node "Switch"99 99 - Add code in your !LabWiki script to automate starting and stoping your OpenFlow Controller: 100 100 - Go back to your !LabWiki page, un-comment the script from line 184 to line 189 to start your OpenFlow Controller automatically on !LabWiki … … 104 104 == 1.8 Modify the OpenFlow Controller to balance throughput among all the TCP flows == 105 105 - 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. 108 108 - 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]. 109 109 - 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") … … 130 130 131 131 = 2. Hints / Explanation = 132 == 3.2About 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] == 133 133 - Trema web site: http://trema.github.io/trema/ 134 134 - Treme ruby API document: http://rubydoc.info/github/trema/trema/master/frames