| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
This fixes overlapping lines if an IPCP at rank N is registered at
multiple lower layers. Also updates the example to a network that is
feasible.
Signed-off-by: Dimitri Staessens <dimitri@ouroboros.rocks>
|
|
|
|
|
|
|
|
| |
Layers at the same rank will now be slightly offset. Increased
line width for adjacencies.
Added igraph and plotly packages to extra requirements.
Signed-off-by: Dimitri Staessens <dimitri@ouroboros.rocks>
|
|
|
|
|
|
|
| |
The draw_experiment(exp) function will draw a 3D representation of the
network. Depends on igraph and plotly packages.
Signed-off-by: Dimitri Staessens <dimitri@ouroboros.rocks>
|
|
|
|
|
| |
Influxdbclient pypi now includes the proxy patch, there is no more
need to manually patch it.
|
|
|
|
| |
This will update certificates on the ubuntu hosts.
|
|
|
|
|
|
| |
This fixes creating an experiment without influxDB defined (check for
None before iterating). Also fixes setting link rates to 1GbE, as this
requires link negotiation to be enabled.
|
|
|
|
|
|
|
| |
Apparently I didn't test my final change for this feature when I moved
it from the storyboard to the experiment. It didn't work, I tried to
put it in the testbed class, but that was a mess, so for now it's
moved to the prototype.
|
|
|
|
|
|
| |
This adds a couple of commands to start/stop metrics exporter, set
link rate on virtual wall, and updating the prototype from git, which
is useful in interactive mode.
|
| |
|
| |
|
|
|
|
|
| |
In case of dumpsterfire, exp.terminate_prototype(force=True) will now
wipe the prototype Ouroboros completely.
|
|
|
|
|
| |
This allows specifying an InfluxDB server for the experiment. The
prototype will then install and configure the metrics exporter.
|
|
|
|
|
| |
It can now take a list of node names. Also fixes sudo in ssh_support,
which I accidentally broke in the previous commit.
|
|
|
|
|
|
|
|
| |
This updates jfed support for some recent changes in the CLI. Since
the new CLI requires writing the jfed password to a text file, I added
an option to set it in the experiment description too. It will still
prompt if not set. There is also an option to enable/disable the
bastion server, as there has been some changes to its login.
|
| |
|
|
|
|
|
| |
Registration CLI was revised to group name management under
"irm name".
|
|
|
|
|
|
|
| |
This adds parameters build_options and add_packages that allows
passing additional packages to install and a string of flags that can
be processed by the prototypes. In the case of the Ouroboros
prototype, it passes CMake build options.
|
|
|
|
|
|
|
| |
The normal was renamed unicast in the commands. Also updates the git
URL to the new website.
Signed-off-by: Dimitri Staessens <dimitri@ouroboros.rocks>
|
|
|
|
|
| |
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.
|