aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* 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
* doc: Update docs with feedback from MiguelSander Vrijders2018-04-053-13/+27
| | | | | This updates the docs with some feedback from Miguel. It should help make the documentation easier to follow.
* examples: Import log in snake exampleDimitri Staessens2018-04-051-0/+1
| | | | The logger was used but not imported
* qemu: fix failure when there is no id_rsa.pubMarco Capitani2018-04-041-9/+23
| | | | | | | Added parameter for passing key path (in case it is not standard) and exception handling, printing only a warning. Fixes #48
* Rumba version 0.8Sander Vrijders2018-03-291-1/+1
| | | | Updates Rumba to version 0.8
* doc: Reorganize documentationSander Vrijders2018-03-297-15/+57
| | | | | This reorganizes the documentation somewhat to be more tutorial-styled.
* model: split model into two filesMarco Capitani2018-03-295-1342/+1468
| | | | | Changed `rumba.model` into a namespace, moved business logic inside the rumba.elements package
* doc: Change theme to Read the DocsSander Vrijders2018-03-294-2/+12
| | | | | This changes the theme and uses a custom css to make sure the body is spread for the entire width.
* doc: Update index.rst with mailing list and chatSander Vrijders2018-03-291-0/+7
| | | | This adds a link to the Rumba mailing list and IRC channel.
* doc: Restructure table of contentsSander Vrijders2018-03-295-32/+34
| | | | | This restructures the table of contents so that more of a hierarchy is present.
* storyboard: add/format docstringsMarco Capitani2018-03-297-202/+550
| | | | | | | | | Also: + small docstring fixes in model + docstring fixes in log + log refactoring + other small refactoring + some small documentation fixes
* model: Add docstrings to modelSander Vrijders2018-03-2810-95/+250
| | | | | | This adds docstrings to the model so that Sphinx can parse them. It also adds some changes to the rst files and conf.py so that inherited members are shown and special members are not.
* testbeds, prototypes, model: Add docstringsSander Vrijders2018-03-2813-58/+190
| | | | | This adds docstrings for methods of in the testbeds, prototypes and certain things in the model.
* rumba: Add Rumba documentation websiteSander Vrijders2018-03-2823-237/+389
| | | | | This adds a documentation website for Rumba which is triggered automatically after changes to master.
* model: make link quality changes scriptableMarco Capitani2018-03-283-8/+143
| | | | | | | | Added method accepting only ints and floats to allow scripting link quality changes (see example-script additions) Also added general purpose `sb.schedule_action` method
* qemu: put ~/.ssh/id_rsa.pub into VM's authorized_keysMarco Capitani2018-03-281-1/+11
| | | | fixes #17
* storyboard: fix in fetch_logsMarco Capitani2018-03-281-9/+1
| | | | | Logs were fetched only from server and client nodes. Now all nodes are searched for logs.
* model: fix case where no quality is providedMarco Capitani2018-03-271-2/+13
| | | | Also add overloading in LinkQuality constructor
* linkquality: added link_quality to add delay, loss and rate limit to linkNick Aerts2018-03-276-36/+211
| | | | | | | | | | | | | | This adds the ability to assign delay and loss to links. 4 new object types are introduced: - LinkQuality - Delay - Loss - Rate All attributes are read-only, one attribute link_quality is added to the ShimEthDIF with a callback to the LinkQualityManager which will automatically apply a new link_quality profile when this attribute is written.
* Merge branch 'master' into testingSander Vrijders2018-03-272-4/+10
|\
| * irati: fix for da.map calling str(dif) instead of dif.nameMarco Capitani2018-03-271-2/+2
| | | | | | | | fixes #42
| * storyboard: fix for putting logs into paths based on node nameMarco Capitani2018-03-271-2/+8
| | | | | | | | fixes #43
* | model/sb: fix small bugsMarco Capitani2018-03-272-4/+12
| | | | | | | | | | + manage spaces in server and client ap when building id + fix typo in node.fetch_file
* | storyboard: install startup.sh in all nodesMarco Capitani2018-03-271-13/+6
| | | | | | | | | | | | | | Before storyboard installed the startup only on the client nodes (i.e. nodes marked in a Client class). Now Clients could be run outside of their nodes, hence the patch. Also, incidentally, fixes an issue with server log-files.
* | storyboard: Add capturing of trafficSander Vrijders2018-03-274-4/+43
| | | | | | | | | | | | | | | | | | This adds the functionality to capture traffic on certain interfaces so that it can be inspected with tools like wireshark. A user needs to pass a start and end time and a node and DIF. Rumba will then determine the correct interface to capture on. Implements #41
* | model: make DIFs scriptableMarco Capitani2018-03-263-8/+21
| | | | | | | | | | | | | | DIFs instances can now be referenced inside .rsb files. Also changed Node.set_link_state function to accept a DIF as opposed to an IPCP, since IPCPs are not given a name nor mentioned is user scripts.
* | storyboard: add callback parameter to run_client(_of) methodMarco Capitani2018-03-262-8/+40
| |
* | storyboard: make Script class privateMarco Capitani2018-03-263-62/+151
|/ | | | | | | | | The Script class has been made private as the script field of the Storyboard class. All script-related functions are now accessible as methods of the storyboard class. In other news: Made the script path in script-example.py pwd resilient.
* examples: Simplify scalingtime.pySander Vrijders2018-03-201-3/+3
| | | | | | This simplifies scalingtime.py to have the end nodes in the public internet layer directly on top of the ethernet layer. There is no need for them to be a part of the metro layer.
* testbeds: Add docker testbedNick Aerts2018-03-2023-129/+612
| | | | | | | | | | | | 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.
* storyboard: Add link and node up and down eventsSander Vrijders2018-03-192-9/+62
| | | | | | | | | | This adds link and node up and down events to the storyboard, which can be called by a user on a specific time. The user needs to pass the time and the shim Ethernet for a link up or down event and a time and a node for the node up or down event. The interfaces in that layer or on that node will then be brought down. Implements #31
* 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.
* storyboard: add replayabilityMarco Capitani2018-03-168-101/+897
| | | | implements #27
* 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-145-21/+75
| | | | | | | | | | | | | | | | 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.