aboutsummaryrefslogtreecommitdiff
path: root/doc/workflow.rst
diff options
context:
space:
mode:
Diffstat (limited to 'doc/workflow.rst')
-rw-r--r--doc/workflow.rst44
1 files changed, 44 insertions, 0 deletions
diff --git a/doc/workflow.rst b/doc/workflow.rst
new file mode 100644
index 0000000..04f23b1
--- /dev/null
+++ b/doc/workflow.rst
@@ -0,0 +1,44 @@
+Workflow
+************************
+
+1. Define the network graph, creating instances of model.Node and
+ model.DIF classes.
+
+2. Create an instance of a Testbed class.
+
+3. Create an instance of the selected prototype.Experiment class,
+ passing the testbed instance and a list of Node instances.
+
+ 1. At the end of the base Experiment constructor, the
+ generate function is called to generate information about
+ per-node IPCPs, registrations and enrollment, ready to be
+ used by the plugins.
+
+4. Call methods on the prototype.Experiment instance:
+
+ 1. swap_in() swaps the experiment in on the testbed, and fills in
+ the missing information in the model.
+
+ 2. install_prototype() installs the chosen prototype on the
+ testbed. Currently an Ubuntu image is assumed.
+
+ 3. bootstrap_prototype() calls a prototype-specific setup function,
+ to create the required IPCPs, perform registrations,
+ enrollments, etc.
+
+ 4. swap_out() swaps the experiment out of the testbed.
+
+5. Run a Storyboard to emulate real network traffic.
+
+
+Accessing nodes after swap-in
+-----------------------------
+
+To access a node once the experiment swapped in, use the following
+command (in the same terminal where ssh-agent was run in case of jFed): ::
+
+ $ rumba-access $NODE_NAME
+
+Where $NODE_NAME is the name of the node to access. In case of the
+QEMU testbed, the password of the downloaded buildroot images is
+'root'.