Views
Aggregation on a Converged Packet-Circuit Network
From OpenFlow Wiki
Contents |
Introduction
This demonstration shows aggregation on a converged packet-circuit switch network. The following setup is used for GEC8.
Equipment
- 3 Ciena Core Directors
- 1 Quanta Switch with OF-1.0 firmware (to be virtualized through flowvisor)
- 1 controller PC (running the controller and flowvisor)
- 6 traffic generator PCs (4 linux + 2 windows for video streaming).
Topology
Source Code
The source code used for this demo exists at the following repos :
- Openflow
git clone git://gitosis.stanford.edu/openflow.git cd openflow ./boot.sh ./configure make
- FlowVisor
git clone git://gitosis.stanford.edu/flowvisor.git cd flowvisor git checkout -b dev/virtualize-1.0 origin/dev/virtualize-1.0 ./boot.sh ./configure make
note: you will also need to setup the flowvisor but this depends on the actual setup and wiring.
- Nox controller (incuding packetgen)
git clone git://gitosis.stanford.edu/nox-aggregation.git cd nox-aggregation git checkout -b agg-circ origin/agg-circ ./boot.sh ./configure --with-python=`which python2.5` cd src make
note: if you have any problems installing nox, look at http://noxrepo.org for dependencies and/or send an e-mail to nox-dev mailing list.
- CircuitSW Gui
git clone git://gitosis.stanford.edu/envi-aggregation circuit-gui cd circuit-gui git checkout -b circuit-aggregation origin/circuit-aggregation cd gui make
- Aggregation Gui
git clone git://gitosis.stanford.edu/envi-aggregation.git aggregation-gui cd aggregation-gui git checkout -b aggregation-circuit origin/aggregation-circuit cd gui make
Configuration
Configuring the Virtual Packet Switches
Configuring the FlowVisor
Configuring the Virtual Packet Links
Demo Startup Steps
Start the OpenFlow Controller
From the nox/src directory
./nox_core -v -i ptcp:6635 pyaggregationdb circsw
The above command will spew out a lot of information on the console. To quieten things down try without the -v flag. Now you will get only WARN and ERR log messages. To get DBG messages from a specific module for eg. circsw, try the command
./nox_core --verbose=circsw:ANY:DBG -i ptcp:6635 pyaggregationdb circsw
Connect the CoreDirectors to the Controller
Directions are in the private wiki
http://yuba.stanford.edu/cleanslatewiki/index.php/Information_for_using_Ciena_Core_Director
Start the Flowvisor
From ofcontroller PC run :
./flowvisor ptcp:6633
Start the circsw GUI
java -jar bin/openflow_gui.jar ofcontroller.stanford.edu
Start the aggregation GUI
java -jar bin/openflow_gui.jar ofcontroller.stanford.edu
Start the traffic generator
From trafficgen3 PC do :
cd path_to_nox/src/nox/coreapps/aggregation/packetgen python packetgen.py 10
From trafficgen4 PC do :
cd path_to_nox/src/nox/coreapps/aggregation/packetgen python packetgen.py 12
From trafficgen5 PC do :
cd path_to_nox/src/nox/coreapps/aggregation/packetgen python packetgen.py 11
From trafficgen6 PC do :
cd path_to_nox/src/nox/coreapps/aggregation/packetgen python packetgen.py 13
Going through the actual demo
At that point you should be able to see the basic flows in the aggregation GUI. From there you can drive the rest of the demo. __space__ will proceed to the predefine steps.
- Clear existing bundles AND state
- Create Bundle for CUSTOMER I
- Create Bundle for CUSTOMER I+HTTP, CUSTOMER I+VOIP, CUSTOMER I+VIDEO
- Modify VOIP Bundle to follow direct path
- Modify VIDEO Bundle to follow direct path
- Clear all bundles
- Enable traffic from all traffic-gens
- Create CST(I-III)+VOIP,CST(I-III)+VIDEO,CST(I-III)+HTTP,CST(IV-V)+VOIP,CST(IV-V)+HTTP, CST(IV-V)+VIDEO
- Modify VOIP bundles for direct path
- Modify VIDEO bundles for direct path
- Manually start video stream (at video server)
- Manually start aux video stream (look at iperf section)
- Manually stop iperf client and video server
- Clear all bundles AND state
Video Streaming
In the VLC Media player (streaming server) on trafficgen7 :
- Go to Media->Advanced Open File. Add the file to be streamed using the Add button. Then select the stream option in the drop-down menu next to the Play button.
- The current screen just shows the video to be streamed. Click the Next button to get to the Destinations screen.
- Here ADD UDP from drop-down menu. Then enter address of streaming-video client eg. 192.168.2.2. Leave port as default 1234.
- The encapsulation for UDP should always be MPEG-2+MPGA(TS)
- Deactivate transcoding
- Then click Next to get to the Options screen.
- Here we need to select the Keep stream output open if the video is to be streamed continuously - UDP will be blasting out
- This setup needs to be done only once. To stop streaming press the pause button (not STOP). To restart press Play button again
In the VLC media player (streaming video client) on trafficgen8:
- Go to Media-> Open Network Stream.
- Select protocol UDP and in the address box enter udp://@
- hit play
- Enjoy video
IPERF server/client
We use iperf for auxiliary traffic to create congestion at the video bundle.
To start iperf server, go to trafficgen5:
iperf -u -p 1234 -s -i 1
To start iperf client, go to trafficgen4:
iperf -p 1234 -u -c 192.168.152.3 -b 40000000 -t 3600 -i 1
NOTE : Both video client and iperf server can be left running all time (since they don't send any heavy traffic). Video server AND iperf client should run ONLY at the step defined at the scenario. Otherwise, high load of udp traffic will kill the switch (and subsequently all the demo).
NOTES
Circuit switches are turned off each night to prevent overheating the lab and as a result driving their fans harder and rebooting.
The circuit links are
id1000:: 110010001:2(1-A-1-2) <==> 110020001:9(1-A-2-1) id1001:: 110010001:5(1-A-1-5) <==> 110030001:a(1-A-2-2) id1002:: 110020001:a(1-A-2-2) <==> 110030001:9(1-A-2-1)
There are 3 virtual links currently configured
MACHINE DETAILS
| Hostname | MAC Address | IP Address |
| trafficgen3 | 00:11:43:2f:f2:82 | 192.168.2.21 |
| trafficgen4 | 00:12:3f:2b:b7:3a | 192.168.2.30 |
| trafficgen5 | 00:11:43:2f:d6:00 | 192.168.2.20 |
| trafficgen6 | 00:11:43:2f:d7:13 | 192.168.2.33 |
| trafficgen7 | 00:12:3F:2B:B2:6A | 192.168.2.3 |
| trafficgen8 | 00:1C:C0:FB:23:DA | 192.168.2.2 |
