Skip to content
eastzone edited this page Sep 18, 2012 · 9 revisions

Authors

James Hongyi Zeng (hyzeng_at_stanford.edu) Peyman Kazemian (kazemian_at_stanford.edu)

What is ATPG?

ATPG stands for "Automatic Test Packet Generation". It is a framework to formally test the correctness of a network by generating a test suite against the network configuration

ATPG reads router configurations and generates a device-independent model. The model is used to generate a minimum set of test packets to (minimally) exercise every link in the network or (maximally) exercise every rule in the network. Test packets are sent periodically and detected failures trigger a separate mechanism to localize the fault. ATPG can detect both functional (e.g., incorrect firewall rule) and performance problems (e.g., congested queue). ATPG complements but goes beyond earlier work in static checking (which cannot detect liveness or performance faults) or fault localization (which only localize faults given liveness results).

What can I find from this repository?

This git repository hosts all the necessary code to run ATPG against Cisco or Juniper router configuration files. To demonstrate the usage of ATPG, we include two example networks - a Stanford backbone network captured on June 2011, and a Internet2 backbone captured on March 2012. You are welcome to try out your own network configurations.

Reproduce our results

Our results are reported in our CoNEXT 2012 paper (to appear). We try hard to enable others to reproduce our results. The evaluation part of our paper is divided into two portions

  • Offline evaluation An offline evaluation part calculates the number of test packets needed in various scenarios. The main results are reported in Table 5 and Figure 8 of our paper. Please follow the [Offline evaluation](Offline evaluation) page to reproduce our results.

  • Online evaluation (Mini-Stanford) For online evaluation part (Figure 9 and 10), we use Mininet to emulate the behavior of Stanford network. We develop a set of tools called Mini-Stanford. Visit the wiki page for detailed instructions.

Clone this wiki locally