aboutsummaryrefslogtreecommitdiff
path: root/rumba/prototypes/ouroboros.py
Commit message (Collapse)AuthorAgeFilesLines
* 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.
* 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-081-2/+4
| | | | | | 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-231-2/+2
| | | | | This updates the copyright on the license headers to that it is extended to the current year.
* model & irati: add QOS cubesMarco Capitani2018-04-121-0/+5
| | | | | Fixes #45 Only implemented in IRATI, other prototypes warn and ignore.
* testbeds, prototypes, model: Add docstringsSander Vrijders2018-03-281-1/+11
| | | | | This adds docstrings for methods of in the testbeds, prototypes and certain things in the model.
* 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-141-20/+59
| | | | | | | | | | | | | | | | 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.
* 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-131-6/+10
| | | | | | 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
|\
| * 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-261-2/+2
|/ | | | | | | This measures the time for every public function of the Experiment class and logs them. Fixes #40
* prototypes: Adapt to ouroboros CLI updateDimitri Staessens2017-12-221-10/+10
| | | | | The ouroboros CLI was recently updated to use more user-friendly terminology.
* prototypes: Use autobind option for ouroborosDimitri Staessens2017-12-071-9/+7
| | | | | The ouroboros irm commands were updated to bind the ipcp instance to the dif and ipcp names automatically.
* rumba: Use saner names and add Dimitri as authorSander Vrijders2017-11-151-1/+2
| | | | | This uses a saner name for multiprocessing_utils and adds some licenses where they were missing and adds Dimitri as author.
* prototypes: Add parallel installation for OuroborosSander Vrijders2017-11-151-5/+21
| | | | This will install Ouroboros in parallel on the different nodes.
* prototypes: Update ouroboros installDimitri Staessens2017-11-151-3/+5
| | | | | The ouroboros install scripts were deprecated. This updates rumba to install ouroboros using the cmake and make install commands.
* prototypes: Use common aptitude install functionSander Vrijders2017-11-151-8/+7
| | | | | This lets the prototypes use a common function to install packages through aptitude.
* prototypes: ouroboros: Use zip functionSander Vrijders2017-11-131-5/+6
| | | | | This uses the zip function to run through the different lists in bootstrap_prototype, since it is a more elegant solution.
* prototypes: Fix ouroboros multi-layer enrollmentDimitri Staessens2017-11-131-43/+39
| | | | | | | Enrollments were performed together before connection setup was performed in lower rank DIFs, which caused IPCPs of N+1 DIFs to enroll over DIFs that had no data transfer connectivity. Enrollment and connection establishment are now performed per-DIF to solve this.
* testbeds: emulab: Continue if experiment is swapped inSander Vrijders2017-09-181-1/+2
| | | | | | This will let rumba continue if the experiment is already swapped in in emulab, since it is not an error. It also adds the posibility to swap the experiment out from Rumba.
* model: Perform split between different flowsSander Vrijders2017-09-121-1/+21
| | | | | This performs a split between enrollment, data transfer and management flows.
* rumba: Update license headersSander Vrijders2017-09-081-4/+9
| | | | | This makes the license headers uniform and adds the authors and a copyright.
* rumba: prototypes: Fix bad indentationSander Vrijders2017-06-151-1/+1
|
* prototypes: ouroboros: use isinstance() rather than type()Sander Vrijders2017-06-151-3/+3
| | | | This is convenient for compatibility between Python 2 and 3.
* model: Experiment: add prototype_name()Vincenzo Maffione2017-06-011-0/+3
|
* model: remove registration and bindingsVincenzo Maffione2017-06-011-25/+0
| | | | Fixes #7
* model, prototypes: enrollment lists contain IPCP objects rather than Node onesVincenzo Maffione2017-04-211-20/+19
| | | | | | | This fixes a conceptual bug, that was leading to unnecessary workarounds in the prototype plugins. All the plugins have been modified to use the correct format of enrollment lists.
* Merge branch 'master' into logging (split merged)Marco Capitani2017-04-211-4/+13
|\
| * model: Split experiment run()Sander Vrijders2017-04-211-4/+13
| | | | | | | | | | This splits experiment.run() into 4 different operations: swap_in, install_prototype, bootstrap_prototype and swap_out.
* | rumba: log: Added logging support, migrated from print to logging.Marco Capitani2017-04-211-13/+18
|/ | | | | + Added logging, migrated, default logging configuration is to stdout. + Minor PEP8 adjustments all-around
* ssh_support: Pass SSHConfig instead of only hostnameSander Vrijders2017-04-111-5/+5
| | | | | | Only the hostname was passed to the ssh_support component. This passes an object that can also hold the port number. It can be extended to take other things as well, such as a proxy.
* prototypes: ouroboros: Implement all commandsSander Vrijders2017-04-111-5/+91
| | | | | | This will implement all the commands necessary for bootstrapping a network that runs Ouroboros. APs are be bound to a name, IPCPs either bootstrapped or enrolled, and names registered in DIFs.
* rumba: simplify cooperation between prototype and testbed pluginsVincenzo Maffione2017-04-071-2/+1
|
* Fix pylint warnings and errorsSander Vrijders2017-03-281-3/+5
| | | | This fixes several warnings and errors as reported by pylint.
* model, prototypes: Change default list parameterSander Vrijders2017-03-061-1/+1
| | | | | | This fixes a bug where the same list was used in every instantiation of a class. Apparently you have to pass 'None' as parameter and check for that instead of passing the default constructor of the list.
* testbeds, prototypes: Omit dir name from class nameSander Vrijders2017-02-131-3/+3
| | | | | The directory name was always prepended to the class name, but since they are in distinct namespaces this could be easily removed.
* rumba: Rename package to rumbaSander Vrijders2017-02-091-0/+58
This renames the package to rumba, since rhumba was already taken on the PyPi.