Creating and activating an experiment is a two-step process: resource allocation and configuration through CMUlab and "swap-in"the experiment. We describe these two steps on this page, focussing on setting up and being prepared to execute existing experiments such as these examples.
As mentioned earlier, we use the Emulab software from the University of Utah to manage the laptops in emulator. The Emulab software, called CMUlab in CMU, allocates the laptops to user experiments and also offers a number of additional features, e.g. NFS for storing experimental results and the ability to install your own kernels. Cmulab uses NS scripts to define experiment so you will need to create an NS script to allocate the resource for your experiment, such as number of laptops needed, desired properties of the laptops (e.g. support for multipath, software radios, etc.), the laptop names, which OS image should be loaded for each laptop, etc.. Please refer to the CMULab documentation for how to create an NS file:
Here is an example NS script which defines a two-node network on the emulator:
The blocks of commands starting with "set emucin"/"set emucout" and ending with "$ns at" schedule commands that do some initial configuration of the laptops and help prepare the FPGA for use, as well as undo those changes when the experiment is finished. It is important to include these in your ns files - otherwise the wireless emulation may not perform as expected.
If you try to use USRP, the suggested image is "gnuradio1". This is based on Fodera Core 2.6 with revision 9503 of the GNU Radio SVN trunk. The location of the gnuradio code on the disk image is in /usr/local/src/gr_trunk.
Also, you are allowed to create your own OS image as well. Check the CMUlab documentation here.
To define and activate an experiment, you will need to execute the following steps:
Select-project: emulator Your NS file: upload an NS file Linktest Option: skip Linktest check "Do Not Swap in" if you do not want to swap in your experiment immediately
"Experimentation"->"Node status"
"Emulator"->"Experimentation"->"Swap in"
As most complicated experiments need to remotely start applications on laptops from emucontrol-1, and/or redirect the output to emucontrol-1(centralized IO), a remote RMI server can be started on each laptop. This requires modification to this file "/usr/tmp/<userID>.swapin", and starting a node daemon for each laptop. Details will be explained in Instructions on Running Experiments on the Emulator.
"Emulator"->"Experimentation"->"Swap out"Check email to confirm the experiment is swapped out.