From e4ed30b5b2ad6d33d2afd656523e78627f1f9195 Mon Sep 17 00:00:00 2001 From: Dimitri Staessens Date: Wed, 1 Nov 2017 08:54:10 +0100 Subject: Update README explaining jFed testbed options --- README.md | 67 +++++++++++++++++++++++++++++++++++++++++---------------------- 1 file changed, 44 insertions(+), 23 deletions(-) diff --git a/README.md b/README.md index 750f528..5f42618 100644 --- a/README.md +++ b/README.md @@ -1,32 +1,31 @@ # Rumba: A framework to bootstrap a RINA network on a testbed -Rumba is part of ARCFIRE 2020, Work Package 3. It is a framework in -Python which allows a user to write a Python script to define a RINA -network. The physical graph needed for this RINA network is then -calculated and realised on one of the supported testbeds. Next, if the -user requests this, one of the supported RINA prototypes is -installed. The network is then bootstrapped on the available -nodes. Finally, the experiment can be swapped out of the testbed. For -an example of such a Python script, have a look at the examples/ -folder. +Rumba is a Python framework that allows users to write Python scripts +to define RINA networks and run scripted experiments. First, Rumba, +creates a physical network on one of the selected testbed. If needed, +Rumba can do an installation of the RINA prototype on the testbed +machines. The RINA network is then bootstrapped on the available +nodes. Finally, the experiment can be swapped out of the testbed. + +Example scripts can be found in the examples/ folder. ## Workflow, both external and internal: - 1. User defines the network graph, creating instances of model.Node - and model.DIF classes + 1. Define the network graph, creating instances of model.Node and + model.DIF classes. - 2. User creates an instance of a Testbed class. See below for - testbed specific configuration + 2. Create an instance of a Testbed class. See below for testbed + specific configuration. - 3. User creates an instance of prototype.Experiment class, passing - the testbed instance and a list of Node instances + 3. Create an instance of the 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 + used by the plugins. - 4. User calls methods on the prototype.Experiment instance: + 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. @@ -50,10 +49,11 @@ folder. Rumba can be found on the [PyPi](https://pypi.python.org/pypi/Rumba) and can thus be - installed through pip, by using `pip install rumba`. However, to - install the latest version, after cloning the repository, a user - can also issue `python setup.py install`. + installed through pip, by using `pip install rumba`. To install + the latest version, cloning the repository and install it from the + command line: + # python setup.py install ## Supported prototypes @@ -65,8 +65,8 @@ folder. and Open Source implementation of the Recursive InterNetwork Architecture (RINA) for GNU/Linux operating systems. - * Ouroboros is a user-space implementation of RINA with a focus on - portability. It is written in C89 and works on any POSIX.1-2008 + * Ouroboros is a user-space implementation with a focus on + portability. It is written in C89 and works on any POSIX.1-2001 enabled system. ## Supported testbeds @@ -127,7 +127,23 @@ folder. Here the experiment name is rochefort10, the user's name is ricksanchez, and the certificate can be found in /home/morty/cert.pem. An absolute path must be used for - cert_file. Optionally a custom image can be selected. + cert_file. + + To select a specific jFed testbed, set the authority parameter. The + emulab and exogeni testbeds are stable and can be selected, for + instance: + + authority = "wall2.ilabt.iminds.be", + + or + + authority = "exogeni.net", + + On the emulab testbeds, a specific machine image can be selected + (set image_custom to True if you created a custom image): + + image = "irati171031", + image_custom = True, Before running the rumba you must run an SSH agent in same terminal. This will also avoid you having to enter the passphrase for every @@ -154,3 +170,8 @@ folder. 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'. + +## Acknowledgements + + Rumba is developed as part of the ARCFIRE project, funded by the + European commission under the H2020 framework. \ No newline at end of file -- cgit v1.2.3