Skip to content

Production Deployment

eastzone edited this page Oct 18, 2012 · 4 revisions

We deployed an experimental ATPG system in 3 buildings in Stanford University that host the Computer Science and Electrical Engineering departments. The production network consists of over 30 Ethernet switches and a Cisco router connecting to the campus backbone. For test terminals, we utilized the 53 WiFi access points (running Linux) that were already installed throughout the buildings. This allowed us to achieve high coverage on switches and links. However, we could only run ATPG on essentially a Layer 2 Network.

All code and Oct 2 data are stored in utils/deployment.

Run the experiment

You may run the experiment using Linux-based machines as test terminals. The only OS requirement is that you have Python 2.6+.

Before running your own experiment, you need to setup a web server (Dropbox public folder will be sufficient) that hosts a list of peers the test agent should ping, one peer per line. You can modify the file content during the experiment, as the ping agent will periodically update the peers' list. Example:

192.168.0.1
www.google.com
www.youtube.com

Note that if you use hostname instead of IP, your ping agent will do DNS each time, which may not be optimal in many environments. Replace peer_url in ping_agent.py with your own URL. You can also change the experiment interval and peers file update period. Then you can run the ping test agent

./ping_agent.py

Collect Results

ping_agent will store the results in a text file, one file per day. You can "harvest" the text files periodically and upload it to a database for further analysis. You can refer to utils/deployment/upload.py as an example.

Plot the Graph

In the repository, we have uploaded the Oct 2, 2012 outage data for your information. You may reproduce the graph (and the link cover algorithm) by running

./plot.sh

You need to install gnuplot and evince to see the graph in PDF. Have a look at the bash script as it is quite straightforward.

Clone this wiki locally