FIREWHEEL Experiments

A FIREWHEEL experiment is simply a collection of model components which, when combined, define everything about an experiment. The model components that make up an experiment define its network topology, which can include:

  • Its vertices, which will become computing, networking, or other device VMs

  • The edges that represent network connections amongst the vertices

  • Vertex and edge class types that can be assigned to individual vertices

  • The VM images associated with the various vertex class types

  • VM resource files that will alter the state of a VM once booted

  • Scheduling info for when and where those VM resources will modify the VM

FIREWHEEL’s model components depend on one another to provide reusable, modular building blocks for constructing a wide variety of LAN, WAN, or even Internet scale experiments.

Once all the model components are executed, the experiment graph (via NetworkX) is able to be compiled into a running experiment via simulation, emulation, or physical hardware. Currently, using emulation via minimega is the only supported experimentation method, in future versions of FIREWHEEL there may be other methods in which users can instantiate an experiment.

The remainder of this section outlines FIREWHEEL’s dependency management system.