aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* doc: Fix bad URL for jFed authoritySander Vrijders2018-07-031-1/+1
| | | | The URL of the jFed authority was mangled and thus not working.
* 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.
* storyboard: Allow destroying of a DIFSander Vrijders2018-06-013-0/+24
| | | | | This allows the destroying of a DIF while the experiment is running. This to ease the emulation of failures in the network.
* testbeds: Allow locally fetching filesSander Vrijders2018-05-291-2/+2
| | | | | | This simply allows to locally fetch a file, which is handy for debugging purposes, for instance obtaining flow stats from the Ouroboros prototype.
* testbeds: Add default image for docker testbedSander Vrijders2018-05-291-7/+18
| | | | | | This adds a default image for the docker testbed for Ouroboros so it is easier for an experimenter to start experimenting with the docker testbed, similarly to the QEMU testbed.
* testbeds: Fix invalid container namesSander Vrijders2018-05-291-3/+3
| | | | | | Docker was failing when the node name was only a single character, which is not allowed. This always adds the prefix 'node-' to node names to solve this problem.
* doc: Add note on generation of documentationSander Vrijders2018-05-281-2/+3
| | | | | This states clearly that Rumba must be installed before generating the documentation.
* rlite: change repo to gitlab/arcfire/rliteMarco Capitani2018-05-282-2/+2
|
* elements: Fix bad docstringSander Vrijders2018-05-241-1/+1
| | | | This fixes a bad docstring in the export_dif_graph function.
* doc: Change copyright to licenseSander Vrijders2018-05-243-1/+8
| | | | This changes the copyright to the CC-4 license.
* elements: Add exporting of DIF graphsSander Vrijders2018-05-151-36/+112
| | | | | | This adds the feature to allow to export a DIF graph to PDF. Enrollments are shown as black, management flows as blue and data transfer flows as red.
* elements: Add exporting connectivity graph to PDFSander Vrijders2018-05-142-4/+64
| | | | | This allows for exporting the connectivity graph to a PDF, which can be used in papers, deliverables, ...
* rumba: Reconnect SSH in case of SIGPIPESander Vrijders2018-05-142-30/+49
| | | | | This reconnects the SSH connection in case the other side unilaterally closed the connection. This often happens with the exogeni testbed.
* elements: Allow exporting to DMS YAMLSander Vrijders2018-05-092-0/+27
| | | | | This allows for exporting the experiment to a YAML format which is parsable by the DMS.
* Merge branch 'master' into testingSander Vrijders2018-05-092-53/+124
|\
| * storyboard: fix Event calling get_e_id alwaysMarco Capitani2018-05-092-53/+124
| | | | | | | | | | | | | | | | | | | | This fixes the behaviour of the Event class which would always call get_e_id and fail if the action is a pure function or not the method of a SBEntity. Now it will simply output a warning if the event is written (because it won't be readable as-is) On top of that, all DIFs are now scriptable, and some small fixes and cleanups.
* | Merge branch 'master' into testingSander Vrijders2018-05-086-17/+51
|\|
| * elements: Experiment: add missing dt_strategy argumentVincenzo Maffione2018-05-082-6/+14
| |
| * elements: Experiment: add missing enrollment_strategy argumentVincenzo Maffione2018-05-084-8/+21
| | | | | | | | | | | | This is necessary to enable scripts to use full-mesh or manual enrollment strategies. Fixes #54.
| * tools: update democonf2rumbaMarco Capitani2018-05-032-7/+20
| | | | | | | | fixes #53
* | testbeds: Add support for InstageniDimitri Staessens2018-05-081-1/+4
|/ | | | | | This adds support for some Instageni testbeds. Also fixes a bug where putting an unknown authority would lead to an error saying there was no authority specified.
* fix for ssh not taking root into accountMarco Capitani2018-05-031-10/+5
|
* storyboard: add as_root in server and clientMarco Capitani2018-04-272-9/+25
| | | | fixes #52
* Merge branch 'master' into testingSander Vrijders2018-04-251-5/+8
|\
| * experimentation: Fixed ordering of DT-flowsNick Aerts2018-04-241-5/+8
| | | | | | | | | | | | | | The ordering of the DT-flows was causing issues when using full-mesh mode due to creating a disconnected graph of DT-flows. Changed the implementation to first create the MST-based flows and then augmenting these flows with the full-mesh flows.
* | examples: Make scalingtime.py more genericSander Vrijders2018-04-254-15/+129
| | | | | | | | | | | | | | This makes scalingtime.py more generic by allowing the user to pass command-line arguments to select the prototype, testbed, ... Fixes #50
* | 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.
* topology: accept float as delay parameterMarco Capitani2018-04-241-2/+2
| | | | | Before this would strictly accept only ints. Now it accepts floats and then rounds them, avoiding nasty surprises
* storyboard: parse action arg as int before parsing as floatMarco Capitani2018-04-241-10/+16
| | | | This allows argument to also be ints on top of floats
* rumba: Update copyright on license headersSander Vrijders2018-04-2329-65/+108
| | | | | This updates the copyright on the license headers to that it is extended to the current year.
* topology: fix rate-limiting using class-based Qdiscs and HTBEduard2018-04-231-18/+25
|
* model: add parameter for not adding default cubesMarco Capitani2018-04-122-8/+17
|
* model & irati: add QOS cubesMarco Capitani2018-04-125-65/+190
| | | | | Fixes #45 Only implemented in IRATI, other prototypes warn and ignore.
* examples: fix several small issues (import log and sb.generate)Marco Capitani2018-04-053-0/+4
|
* testbeds: remove `Testbed.swap_in` call in _swap_inMarco Capitani2018-04-053-6/+0
| | | | Fixes #47
* 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