aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* 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
|\|
| * testbeds: Add check for jFed return valueSander Vrijders2018-01-121-19/+31
| | | | | | | | | | | | | | | | This adds a check for the return value whenever jFed is called. It avoids Rumba trying to continue on an experiment that failed to swap in. Fixes #37
* | Merge branch 'master' into testingSander Vrijders2018-01-121-7/+3
|\|
| * ssh_support: Fix aptitude update bug in exogeniSander Vrijders2018-01-121-7/+3
| | | | | | | | | | | | | | This fixes a bug for when the default image is Ubuntu, which updates the packages upon swap-in, since the update deadline has been met. This commit waits for it to finish and then updates and installs the packages until it works.
* | model: Add check for number of members in ShimEthDIFSander Vrijders2018-01-121-6/+11
|/ | | | | | This adds a check to see that the number of members in the ShimEthDIF class is not exceeded by two, since it is currently not supported by Rumba.
* storyboard: re-add run_command methodMarco Capitani2018-01-117-56/+118
| | | | | | | | | Also: logging fix in ssh_support, Enabling changes: storyboard: refactor 'start' method, it was getting big some more minor storyboard refactoring for decoupling update examples to new syntax
* Merge branch 'master' into testingSander Vrijders2018-01-091-1/+1
|\
| * testbeds: Fix bad parsing in emulab pluginSander Vrijders2018-01-091-1/+1
| | | | | | | | | | Due to either a change in the SSH module or in the emulab interface, the list of interfaces was not parsed correctly, this fixes that.
* | storyboard: recover run_command methodMarco Capitani2018-01-081-42/+55
|/
* Merge branch 'master' into testingSander Vrijders2017-12-271-2/+2
|\
| * prototypes: Avoid warnings on autobind of non normal IPCPsSander Vrijders2017-12-271-2/+2
| | | | | | | | | | | | Autobind was happening for all IPCPs, regardless if they were normal IPCPs or not. This fixes it so that it is only called for normal IPCPs, which avoids warnings in the logs.
* | model: Add timings for every public Experiment callSander Vrijders2017-12-264-8/+32
|/ | | | | | | This measures the time for every public function of the Experiment class and logs them. Fixes #40