Wireless lab design document
From Cmcl
Global/emucontrol-1
emucontrol-1 is the node that manages FPGA programming. It is an emulab shared node, and is conceptually similar to ops. It has a public interface on the ECE network.
- On boot, emucontrol-1: /usr/local/emulator/adminBin/emuServer starts the (global) rmiserver (this needs to be automated). It also starts a webserver for GUI management (some RMI-like functionality might go through the webserver?)
- Everyone has accounts on emucontrol-1, same NFS homedir as the nodes and ops.
Experimental Process
- emulatorDaemon - uses xmlrpc to pull experiment description from boss, updates ~/emulab.txt with the current experiment's specifics. Creates a username.swapin in /usr/local/emulator/run/
- startDaemon (optional) - run once for every node in experiment, runs rmiregistry on the individual nodes as the user, used for the advanced scripting of experiments. Many experiments don't use this.
- emuRun - runs continually, programs the particular channels on the emulator with the user's ~/emulab.txt
- (experiment happens)
- emuRun - user closes it, changes cease to be pushed to FPGA.
- stopDaemon (optional) - closes rmigregistry on individual nodes. Not strictly necessary, as the nodes will shortly be swapped out.
- Emulab swapout
- emulatorDaemon - Run again to get most current data for ~/emulab.txt, prevent accidental bad modifications to FPGA state. Removes /usr/local/emulator/run/username.swapin
Environment variables
There are plenty of them, some are per-testbed and some are per-node and figured out in the user's dotfiles.
