aboutsummaryrefslogtreecommitdiff
path: root/rumba/prototypes
Commit message (Collapse)AuthorAgeFilesLines
* rumba: Add visualisation toolDimitri Staessens2022-11-191-1/+1
| | | | | | | 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.
* prototypes: Fix experiment without influxDBDimitri Staessens2021-07-241-5/+11
| | | | | | 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-191-4/+25
| | | | | | | 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-181-73/+79
| | | | | | 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
|
* 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.
* testbeds: Fix jfed support for recent CLIDimitri Staessens2021-07-091-2/+1
| | | | | | | | 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.
* 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-041-3/+9
| | | | | | | 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>
* 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.
* elements: Remove distinction between mgmt and dt flowsSander Vrijders2018-07-271-12/+9
| | | | | | This will remove the distinction between mgmt and dt flows since Rumba allows setting up connections between IPCP at a very high level anyway.
* Merge branch 'master' into testingSander Vrijders2018-07-231-1/+1
|\
| * irati: fix bug #59Marco Capitani2018-07-131-1/+1
| |
* | tools: Add script to subtract two bandwidth csvSander Vrijders2018-06-291-1/+1
| | | | | | | | | | 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-281-4/+0
|/ | | | | | | | 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-121-7/+23
| | | | | | | 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-071-7/+7
| | | | | | 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.
* prototypes: Switch register and bind operationSander Vrijders2018-06-061-4/+6
| | | | | 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-061-34/+57
|
* storyboard: Bind and register server name for OuroborosSander Vrijders2018-06-051-0/+28
| | | | | In case the experiment is done with the Ouroboros prototype, the name needs to be bound and registered on the node.
* storyboard: Add function to export flows statsSander Vrijders2018-06-051-0/+67
| | | | | | | | | | 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.
* storyboard: Allow destroying of a DIFSander Vrijders2018-06-011-0/+4
| | | | | This allows the destroying of a DIF while the experiment is running. This to ease the emulation of failures in the network.
* rlite: change repo to gitlab/arcfire/rliteMarco Capitani2018-05-281-1/+1
|
* rumba: Reconnect SSH in case of SIGPIPESander Vrijders2018-05-141-1/+1
| | | | | This reconnects the SSH connection in case the other side unilaterally closed the connection. This often happens with the exogeni testbed.
* elements: Experiment: add missing dt_strategy argumentVincenzo Maffione2018-05-081-2/+5
|
* elements: Experiment: add missing enrollment_strategy argumentVincenzo Maffione2018-05-083-6/+13
| | | | | | This is necessary to enable scripts to use full-mesh or manual enrollment strategies. Fixes #54.
* prototypes: Change registration to IPCPSander Vrijders2018-04-251-4/+12
| | | | | | Names were being registered layer-wide, which can give problems in the local testbed. This changes it to register with the IPCPs in the node instead.
* rumba: Update copyright on license headersSander Vrijders2018-04-236-12/+12
| | | | | This updates the copyright on the license headers to that it is extended to the current year.
* model: add parameter for not adding default cubesMarco Capitani2018-04-121-7/+9
|
* model & irati: add QOS cubesMarco Capitani2018-04-124-65/+151
| | | | | Fixes #45 Only implemented in IRATI, other prototypes warn and ignore.
* irati: add app_mappings argument to experimentMarco Capitani2018-04-051-6/+18
| | | | | | | | previously it was impossible to change the `da.map` configuration. Now it can be specified via the app_mappings argument in the constructor and the self.app_mappings of `irati.Experiment` Fixes #49
* testbeds, prototypes, model: Add docstringsSander Vrijders2018-03-283-13/+35
| | | | | This adds docstrings for methods of in the testbeds, prototypes and certain things in the model.
* irati: fix for da.map calling str(dif) instead of dif.nameMarco Capitani2018-03-271-2/+2
| | | | fixes #42
* testbeds: Add docker testbedNick Aerts2018-03-201-32/+17
| | | | | | | | | | | | This adds support for a testbed based on Docker containers running on the local host. Bridging the containers can be done using built-in Linux bridging or using OpenVSwitch bridges. A new resource 'executor' has been added to abstract away command execution on nodes on the testbed. Executors have been created for local command execution, docker exec based command execution and SSH-based command execution. This has also been changed in the prototypes to execute using the correct executor.
* prototypes: Replace if_name with dev for ouroborosDimitri Staessens2018-03-171-1/+1
| | | | | To align with the ip command, we now use "dev" instead of "if_name" to specify the interface for an eth-llc or eth-dix IPCP to use.
* prototypes: Improve ouroboros support for fake testbedSander Vrijders2018-03-151-2/+4
| | | | | | | This ameliorates the code by incorporating Marco's comments. It is now possible to run the Ouroboros plugin with the fake testbed plugin as non root. sudo is executed in case it was not done the last 15 minutes. The cleanup is also done properly.
* prototypes: Add local Ouroboros supportSander Vrijders2018-03-143-20/+65
| | | | | | | | | | | | | | | | This adds local Ouroboros support in case of a fake testbed (i.e. no resources allocated). A next PR will abstract away the mode of communication with the testbed, since the Docker plugin will also need it. This also adds another function to the model, terminate_prototype, which should clean up the prototype gracefully, or can be skipped depending on the testbed. Currently the ouroboros plugin with the fake testbed needs to be run as root. If there is a way to run the command as root in the background and then clean it up properly, I would be happy to know how.
* irati: add prototype log parameterMarco Capitani2018-02-271-2/+3
|
* utils & storyboard: add syslog retrieval functionalityMarco Capitani2018-02-271-1/+5
| | | | | Implements #39. Also updated examples.
* model & more: add prototype/system log fieldsMarco Capitani2018-02-272-3/+4
| | | | | | | | This commit adds the fields necessary to specify the paths and folders related to system logs and prototype logs and fetching them. Defaults are introduced and specific paths for rlite & qemu
* prototypes: Show flow statistics for ouroborosDimitri Staessens2018-02-241-2/+3
| | | | | This enables exporting the flow statistics of the data transfer component to the FUSE filesystem.
* prototypes: Add policy support for OuroborosSander Vrijders2018-02-131-0/+5
| | | | This adds policy support for the Ouroboros plugin.
* prototypes: Add option to choose git repo and branchSander Vrijders2018-02-133-12/+20
| | | | | | This adds two extra parameters to the Experiment class, so that users can specify their custom repositories and branches for testing new features.
* prototypes: Fix registration in Ouroboros pluginSander Vrijders2018-02-121-2/+11
| | | | | | Registration was being done before the bootstrapped IPCP was actually reachable over the N-1 layer. This only does the registration once the layer below is fully connected.
* Merge branch 'master' into testingSander Vrijders2017-12-271-2/+2
|\