aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* visualizer: Fix overlapping register linesHEADmasterDimitri Staessens2022-11-201-21/+18
| | | | | | | | This fixes overlapping lines if an IPCP at rank N is registered at multiple lower layers. Also updates the example to a network that is feasible. Signed-off-by: Dimitri Staessens <dimitri@ouroboros.rocks>
* visualizer: Offset layers at same rankDimitri Staessens2022-11-202-5/+36
| | | | | | | | Layers at the same rank will now be slightly offset. Increased line width for adjacencies. Added igraph and plotly packages to extra requirements. Signed-off-by: Dimitri Staessens <dimitri@ouroboros.rocks>
* rumba: Add visualisation toolDimitri Staessens2022-11-193-47/+496
| | | | | | | The draw_experiment(exp) function will draw a 3D representation of the network. Depends on igraph and plotly packages. Signed-off-by: Dimitri Staessens <dimitri@ouroboros.rocks>
* prototypes: Remove patch for influxdb installDimitri Staessens2021-11-281-5/+0
| | | | | Influxdbclient pypi now includes the proxy patch, there is no more need to manually patch it.
* ssh_support: Update certificatesDimitri Staessens2021-11-281-0/+2
| | | | This will update certificates on the ubuntu hosts.
* prototypes: Fix experiment without influxDBDimitri Staessens2021-07-243-6/+12
| | | | | | This fixes creating an experiment without influxDB defined (check for None before iterating). Also fixes setting link rates to 1GbE, as this requires link negotiation to be enabled.
* experiment: Move link rate setting to prototypeDimitri Staessens2021-07-194-31/+37
| | | | | | | Apparently I didn't test my final change for this feature when I moved it from the storyboard to the experiment. It didn't work, I tried to put it in the testbed class, but that was a mess, so for now it's moved to the prototype.
* exp: Add metrics and prototype update commandsDimitri Staessens2021-07-184-84/+177
| | | | | | This adds a couple of commands to start/stop metrics exporter, set link rate on virtual wall, and updating the prototype from git, which is useful in interactive mode.
* prototypes: Set allow_fuser_mount in fuse.confDimitri Staessens2021-07-151-1/+2
|
* ssh_support: Fix wrong comparison operatorsDimitri Staessens2021-07-151-2/+2
|
* prototypes: More robust termination of OuroborosDimitri Staessens2021-07-151-3/+16
| | | | | In case of dumpsterfire, exp.terminate_prototype(force=True) will now wipe the prototype Ouroboros completely.
* prototypes: Add metrics install for ouroborosDimitri Staessens2021-07-131-3/+112
| | | | | This allows specifying an InfluxDB server for the experiment. The prototype will then install and configure the metrics exporter.
* storyboard: Allow run_command on multiple nodesDimitri Staessens2021-07-102-13/+18
| | | | | It can now take a list of node names. Also fixes sudo in ssh_support, which I accidentally broke in the previous commit.
* testbeds: Fix jfed support for recent CLIDimitri Staessens2021-07-093-25/+56
| | | | | | | | This updates jfed support for some recent changes in the CLI. Since the new CLI requires writing the jfed password to a text file, I added an option to set it in the experiment description too. It will still prompt if not set. There is also an option to enable/disable the bastion server, as there has been some changes to its login.
* testbeds: Fix jfed http proxy for wall deploymentsDimitri Staessens2020-12-151-1/+1
|
* prototypes: Update Rumba to Ouroboros 0.17Dimitri Staessens2020-06-011-5/+5
| | | | | Registration CLI was revised to group name management under "irm name".
* experiment: Add build_options and add_packagesDimitri Staessens2019-04-042-3/+15
| | | | | | | This adds parameters build_options and add_packages that allows passing additional packages to install and a string of flags that can be processed by the prototypes. In the case of the Ouroboros prototype, it passes CMake build options.
* prototypes: Update Rumba to Ouroboros 0.15Dimitri Staessens2019-03-211-2/+2
| | | | | | | The normal was renamed unicast in the commands. Also updates the git URL to the new website. Signed-off-by: Dimitri Staessens <dimitri@ouroboros.rocks>
* doc: Add documentation on running interactivelySander Vrijders2019-01-104-2/+55
| | | | | This adds a file that explains how to run Rumba interactively, as it may be bothersome to swap it out each time.
* Rumba version 0.9Sander Vrijders2019-01-081-1/+1
|
* prototypes: ouroboros: Retry connecting IPCPSander Vrijders2018-10-231-2/+14
| | | | | | A connect IPCP command might fail in Ouroboros if the routing has not converged yet. This will retry to connect the IPCP 3 times before giving up.
* examples: Add scripts used in IEEE Network paperSander Vrijders2018-08-312-0/+429
| | | | This adds the scripts used in the IEEE Network paper.
* storyboard: Rename async to asynSander Vrijders2018-08-091-5/+5
| | | | | In Python 3.7, async is a reserved keyword, which caused Rumba to fail since we used async as a function parameter.
* testbeds: Set default project to rumbaSander Vrijders2018-07-276-10/+11
| | | | | This will set the default project name to rumba for most testbeds, since a dedicated group for rumba experiments has been setup.
* elements: Remove distinction between mgmt and dt flowsSander Vrijders2018-07-272-55/+29
| | | | | | This will remove the distinction between mgmt and dt flows since Rumba allows setting up connections between IPCP at a very high level anyway.
* doc: Add reference to Rumba paperSander Vrijders2018-07-272-0/+12
| | | | | This will add a reference to the Rumba paper in the documentation and direct new jFed users to the 'rumba' project.
* Merge branch 'master' into testingSander Vrijders2018-07-251-0/+2
|\
| * ssh_support: Set keepalive on Transport objectSander Vrijders2018-07-251-0/+2
| | | | | | | | | | This will set a keepalive on the Transport object to prevent disconnects by firewalls.
* | Merge branch 'master' into testingSander Vrijders2018-07-232-3/+3
|\|
| * irati: fix bug #59Marco Capitani2018-07-131-1/+1
| |
| * storyboard: fix stringbuffer bugsMarco Capitani2018-07-131-2/+2
| |
* | Merge branch 'master' into testingSander Vrijders2018-07-031-1/+1
|\|
| * doc: Fix bad URL for jFed authoritySander Vrijders2018-07-031-1/+1
| | | | | | | | The URL of the jFed authority was mangled and thus not working.
* | tools: Add script to subtract two bandwidth csvSander Vrijders2018-06-293-7/+57
| | | | | | | | | | This adds a script to subtract two csv with bandwidth results from each other. It can then be passed to bw_graph.py.
* | testbeds: Abstract away use of http proxy serverSander Vrijders2018-06-287-75/+35
|/ | | | | | | | Certain testbeds use a proxy to access the outside world. Due to recent changes this was not working anymore. This takes a different approach to re-enable this. It simply adds the lines to /etc/profile after swap-in so that the proxy is added to every shell upon execution.
* prototypes: Fix syntax for starting irati ipcmDimitri Staessens2018-06-251-1/+2
| | | | | | The redirection syntax was not fully portable between shells. Fixes #58
* elements: Add terminate prototype and reboot nodesSander Vrijders2018-06-123-11/+43
| | | | | | | This adds functions to terminate the prototype gracefully or forcefully, and to reboot all nodes in the experiment. This is useful when running the experiment interactively, so swapping out and back in is not always required.
* prototypes: Register in IPCP instead of layerSander Vrijders2018-06-071-2/+5
| | | | | | This will register the name in a specific IPCP instead of the whole layer, since this gives unexpected behaviour with the local testbed otherwise.
* prototypes: Fix bad layer namesSander Vrijders2018-06-072-10/+11
| | | | | | This fixes the layer names, since 'DIF X' was being passed instead of just 'X'. It also adds a bash command to startup.sh so that it is always executed as a bash script.
* executors: Fix fetching file with dockerSander Vrijders2018-06-071-3/+3
| | | | | Fetching a file with docker was not working properly, since path was called instead of os.path.
* elements: Rename dt_connected to edges coveredSander Vrijders2018-06-061-15/+15
| | | | | | | This addresses the comments by Vincenzo on MR 160. Also adds an extra check to avoid duplicate DT or enrollment flows when using full mesh. Fixes #57
* prototypes: Switch register and bind operationSander Vrijders2018-06-062-6/+7
| | | | | This switches the register and bind operations in the ouroboros prototype, to avoid a race condition when starting a server very fast.
* sb + our: add server_decorator functionality and our decoratorMarco Capitani2018-06-063-51/+90
|
* storyboard: Bind and register server name for OuroborosSander Vrijders2018-06-052-0/+34
| | | | | In case the experiment is done with the Ouroboros prototype, the name needs to be bound and registered on the node.
* storyboard: fix callback without args in ClientProcess.stop()Marco Capitani2018-06-051-3/+3
|
* tools: Add script to generate bandwidth graphsSander Vrijders2018-06-052-4/+118
| | | | | | This adds a script to generate bandwidth graphs from an exported bandwidth csv. It will color the nodes and links depending on the load and also adjust the thickness of the edges.
* storyboard: Add function to export flows statsSander Vrijders2018-06-053-0/+89
| | | | | | | | | | This adds a function to export the bytes sent by flows in a certain DIF. It is implemented within the storyboard, which calls an abstract function in the Experiment class so that every prototype can implement it in its own specific way. This commit adds the implementation for Ouroboros. It exports it to a csv, with the first item the source IPCP, the second the destination IPCP and then the bytes sent on the flow.
* executors: Make local executor more robustSander Vrijders2018-06-051-1/+4
| | | | | | This improves the behavior of the local executor. It will now stop when a command fails and will return the output of an executed command.
* storyboard: add async command executionMarco Capitani2018-06-041-31/+106
| | | | | | | | | The standard command execution function blocks until the command is complete. Even if the command is run in background on the node, this implies that the storyboard has to wait for the SSH handshake to complete and the responses to come back. With the new method, the storyboard will go on with the execution without waiting (callbacks can be registered for reacting).
* testbeds: Fix bad interface name in docker testbedSander Vrijders2018-06-041-14/+49
| | | | | | | Linux has length limits for the name of an interface. This adds an additional check to ensure the name is never too long. It also adds more debug logs which are handy to see the progress of swap-in and out.