aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* 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.
* log: add log to file and flush logger functionalitiesMarco Capitani2018-02-273-8/+65
|
* irati: add prototype log parameterMarco Capitani2018-02-271-2/+3
|
* utils: added prototype log retrievalMarco Capitani2018-02-271-1/+6
|
* utils & storyboard: add syslog retrieval functionalityMarco Capitani2018-02-278-36/+167
| | | | | Implements #39. Also updated examples.
* model & more: add prototype/system log fieldsMarco Capitani2018-02-274-6/+38
| | | | | | | | 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.
* testbeds: Fix locale-gen errorDimitri Staessens2018-02-241-0/+5
| | | | | The locale-gen error persists, even with the new mac2ifname command. This reintroduces the fix.
* storyboard: re-added client applications loggingMarco Capitani2018-02-161-2/+3
|
* examples: Add Rumba paper demonstrationSander Vrijders2018-02-151-0/+133
| | | | This adds the demo as described in the Rumba paper.
* 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-134-13/+23
| | | | | | This adds two extra parameters to the Experiment class, so that users can specify their custom repositories and branches for testing new features.
* jfed: simplify mac2ifname to avoid LOCALE problemsMarco Capitani2018-02-121-13/+8
|
* Merge branch 'master' into testingSander Vrijders2018-02-123-25/+38
|\
| * 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.
| * examples: Fix Converged Operator exampleDimitri Staessens2018-02-121-20/+19
| | | | | | | | | | There were some bad registrations in the core. Some rearrangements in other registrations for consistency.
| * testbeds: Fix local message in jFed testbedDimitri Staessens2018-02-071-3/+8
| | | | | | | | | | Setting the locale sometimes prevented the warning being shown. This disables the warning alltogether.
* | Merge branch 'master' into testingSander Vrijders2018-01-201-24/+21
|\|
| * examples: Fix converged operator exampleDimitri Staessens2018-01-201-24/+21
| | | | | | | | The converged operator example contained some bugs and didn't work anymore with the new checks.
* | Merge branch 'master' into testingSander Vrijders2018-01-191-1/+6
|\|
| * testbeds: Set locale on jfed nodesDimitri Staessens2018-01-191-1/+6
| | | | | | | | | | | | Some exogeni nodes have a bad locale set, which results in a warning message to be prepended in the output of the first command run on the node. Running locale-gen fixes this message.
* | Merge branch 'master' into testingSander Vrijders2018-01-121-19/+31
|\|