Rumba

From Ouroboros
Jump to navigation Jump to search

Under contruction This page is under construction   (see https://ouroboros.rocks/docs/tools/rumba/)

Rumba is a Python framework for setting up Ouroboros and RINA networks in a test environment that was developed during the ARCFIRE project. Its main objectives are to configure networks and to evaluate the impact of the architecture on configuration management and devops in computer and telecommunications networks. The original Rumba project page is here.

Rumba can quickly set up test networks for Ouroboros that are made up of many IPCPs and Layers. We keep a version on this site up-to-date with the Ouroboros prototype.

Features

  • easily define network topologies
  • Support for different prototypes:
    • Ouroboros[1]
    • rlite
    • IRATI
  • create these networks using different possible environments:
    • local PC (Ouroboros only)
    • docker container
    • virtual machine (qemu)
    • jFed testbeds
  • script experiments
  • rudimentary support for drawing these networks (using pydot)

Install Rumba

We forked Rumba with the Ouroboros website, and you should get this forked version for use with Ouroboros. It should work with most python versions, but I recommend using a recent version (currently >= Python3.9).

git clone https://ouroboros.rocks/git/rumba
cd rumba
# Recommended: create/enter python virtual environment (e.g. the same created for InfluxDB & grafana)
# If not, then it will install system-wide (use sudo in that case)
pip install .
# OR, if you want all 3 extra features
pip install ".[NumpyAcceleration,graphs,visualizer]"

Use Rumba

The Rumba model is heavily based on RINA terminology (since it was originally developed within a RINA research project). We will probably align the terminology in Rumba with Ouroboros in the near future. I will break down a typical Rumba experiment definition and show how to use Rumba in Python interactive mode. You can download the complete example experiment definition here. The example uses the Ouroboros prototype, and we will run the setup on the local testbed since that is available on any machine and doesn’t require additional dependencies. We use the local testbed a lot for quick development testing and debugging. I will also show the experiment definition for the virtual wall server testbed at Ghent University as an example for researchers who have access to this testbed. If you have docker or qemu installed, feel free to experiment with these at your leisure.


Notes

  1. Only Ouroboros is maintained in our git clone, it may not work anymore with rlite and IRATI.