[[PageOutline]] == The Idea == Challenge: In some stadiums, sports fans can view personal video feeds through their mobile devices. However, it is difficult to guarantee the reception reliability of these devices because each user experiences different wireless channel conditions. Solution: Take advantage of the multiplicity of radios on modern devices and their physical proximity in a stadium to allow cooperative packet recovery over a secondary network. * Wireless devices are connected to the principal network (WiMAX) to receive broadcast data such as live video feeds * A wireless device may lose some of the data sent over the principal network * Physically co-located wireless devices form an assistant network over WiFi to recover the lost data cooperatively from their peers == Experiment Design == In this case, we are running a Python application that we've written ourselves, called ''coopshim'', that does the P2P cooperative recovery. We're also running the OML enabled version of VLC to stream a video over the WiMAX network (i.e., the video feed that we are hoping to recover). A number of already-OMLized applications are [http://mytestbed.net/projects/omlapp/wiki already available]. The coopshim and VLC applications were instrumented with the [http://pypi.python.org/pypi/oml4py/ Python] OML client module and the OML [http://mytestbed.net/projects/oml/wiki/Client_Programming C or C++] library, respectively. A [https://rubygems.org/gems/oml4r Ruby] gem is also available. OML application definition files for these two applications are at * [http://witestlab.poly.edu/downloads/gec15/vlc.rb VLC] * [http://witestlab.poly.edu/downloads/gec15/coopshim.rb CoopShim] == Experiment Deployment == Your instructor will show you how to: * Reset the base station to default settings * Fix the ODU noise floor on the base station * Restart the base station to apply your changes and load prepared disk images onto the nodes we will use in this experiment: * omf load -i ffund01-node-node1-10.outdoor.orbit-lab.org-2012-10-15-19-04-39.ndz -t node1-10.outdoor.orbit-lab.org * omf load -i ffund01-node-node1-7.outdoor.orbit-lab.org-2012-10-16-23-25-07.ndz -t node1-7.outdoor.orbit-lab.org Your instructor will show you how to create a disk image, using the image on node1-7, and then load this new image onto nodes 1-2, 1-3, and 1-6. == Experiment Execution == The OMF experiment script is located [http://witestlab.poly.edu/downloads/gec15/gec15coop.rb here]. Your instructor will show you the parts of this script and explain what it does. During the experiment, you can view a live visualization [http://outdoor.orbit-lab.org:4000/ here]. == Experiment Analysis == Your instructor will show you how to use the '''result''' service to run SQL queries against your measurements. Use this service to fill out the chart at [https://docs.google.com/spreadsheet/ccc?key=0AoPK6acX1JXFdFJ1ekx2VjRFMVJSaDZuRE1OdzZnTmc]