| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
This adds a file that explains how to run Rumba interactively, as it
may be bothersome to swap it out each time.
|
| |
|
|
|
|
|
|
| |
A connect IPCP command might fail in Ouroboros if the routing has not
converged yet. This will retry to connect the IPCP 3 times before
giving up.
|
|
|
|
| |
This adds the scripts used in the IEEE Network paper.
|
|
|
|
|
| |
In Python 3.7, async is a reserved keyword, which caused Rumba to fail
since we used async as a function parameter.
|
|
|
|
|
| |
This will set the default project name to rumba for most testbeds,
since a dedicated group for rumba experiments has been setup.
|
|
|
|
|
|
| |
This will remove the distinction between mgmt and dt flows since Rumba
allows setting up connections between IPCP at a very high level
anyway.
|
|
|
|
|
| |
This will add a reference to the Rumba paper in the documentation and
direct new jFed users to the 'rumba' project.
|
|\ |
|
| |
| |
| |
| |
| | |
This will set a keepalive on the Transport object to prevent
disconnects by firewalls.
|
|\| |
|
| | |
|
| | |
|
|\| |
|
| |
| |
| |
| | |
The URL of the jFed authority was mangled and thus not working.
|
| |
| |
| |
| |
| | |
This adds a script to subtract two csv with bandwidth results from
each other. It can then be passed to bw_graph.py.
|
|/
|
|
|
|
|
|
| |
Certain testbeds use a proxy to access the outside world. Due to
recent changes this was not working anymore. This takes a different
approach to re-enable this. It simply adds the lines to /etc/profile
after swap-in so that the proxy is added to every shell upon
execution.
|
|
|
|
|
|
| |
The redirection syntax was not fully portable between shells.
Fixes #58
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
This will register the name in a specific IPCP instead of the whole
layer, since this gives unexpected behaviour with the local testbed
otherwise.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
Fetching a file with docker was not working properly, since path was
called instead of os.path.
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
| |
This switches the register and bind operations in the ouroboros
prototype, to avoid a race condition when starting a server very fast.
|
| |
|
|
|
|
|
| |
In case the experiment is done with the Ouroboros prototype, the name
needs to be bound and registered on the node.
|
| |
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
| |
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).
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
This allows the destroying of a DIF while the experiment is
running. This to ease the emulation of failures in the network.
|
|
|
|
|
|
| |
This simply allows to locally fetch a file, which is handy for
debugging purposes, for instance obtaining flow stats from the
Ouroboros prototype.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
This states clearly that Rumba must be installed before generating the
documentation.
|
| |
|
|
|
|
| |
This fixes a bad docstring in the export_dif_graph function.
|
|
|
|
| |
This changes the copyright to the CC-4 license.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
This allows for exporting the connectivity graph to a PDF, which can
be used in papers, deliverables, ...
|
|
|
|
|
| |
This reconnects the SSH connection in case the other side unilaterally
closed the connection. This often happens with the exogeni testbed.
|
|
|
|
|
| |
This allows for exporting the experiment to a YAML format which is
parsable by the DMS.
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
|\| |
|
| | |
|
| |
| |
| |
| |
| |
| | |
This is necessary to enable scripts to use full-mesh or manual
enrollment strategies.
Fixes #54.
|
| |
| |
| |
| | |
fixes #53
|