aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--rumba/elements/experimentation.py13
-rw-r--r--rumba/prototypes/ouroboros.py7
2 files changed, 14 insertions, 6 deletions
diff --git a/rumba/elements/experimentation.py b/rumba/elements/experimentation.py
index 990f285..9890975 100644
--- a/rumba/elements/experimentation.py
+++ b/rumba/elements/experimentation.py
@@ -116,7 +116,8 @@ class Experiment(object):
git_branch=None,
log_dir=None,
prototype_logs=None,
- enrollment_strategy='minimal'):
+ enrollment_strategy='minimal',
+ dt_strategy='full-mesh'):
"""
:param testbed: The testbed of the experiment.
:param nodes: The list of nodes in the experiment.
@@ -125,6 +126,7 @@ class Experiment(object):
:param log_dir: Where to log output of the experiment.
:param prototype_logs: Where the prototype logs its output.
:param enrollment_strategy: Can be 'full-mesh', 'minimal' or 'manual'.
+ :param dt_strategy: For data flows, 'full-mesh', 'minimal' or 'manual'.
"""
if nodes is None:
nodes = list()
@@ -136,8 +138,8 @@ class Experiment(object):
# the different DIFs
self.enrollment_strategy = enrollment_strategy # 'full-mesh', 'manual'
# the strategy employed for setting up the data transfer
- # networks in the DIFs after enrollment
- self.dt_strategy = 'full-mesh' # 'minimal', 'manual'
+ # network in the DIFs after enrollment
+ self.dt_strategy = dt_strategy
self.dif_ordering = []
self.enrollments = [] # a list of per-DIF lists of enrollments
self.dt_flows = [] # a list of per-DIF lists of data transfer flows
@@ -145,7 +147,10 @@ class Experiment(object):
if self.enrollment_strategy not in ['full-mesh', 'minimal', 'manual']:
raise Exception('Unknown enrollment strategy "%s"'
- % enrollment_strategy)
+ % self.enrollment_strategy)
+ if self.dt_strategy not in ['full-mesh', 'minimal', 'manual']:
+ raise Exception('Unknown dt strategy "%s"'
+ % self.dt_strategy)
# Determine log directory
if log_dir is None:
diff --git a/rumba/prototypes/ouroboros.py b/rumba/prototypes/ouroboros.py
index f415160..016183e 100644
--- a/rumba/prototypes/ouroboros.py
+++ b/rumba/prototypes/ouroboros.py
@@ -44,7 +44,8 @@ class Experiment(mod.Experiment):
"""
def __init__(self, testbed, nodes=None,
git_repo='git://ouroboros.ilabt.imec.be/ouroboros',
- git_branch='master', enrollment_strategy='minimal'):
+ git_branch='master', enrollment_strategy='minimal',
+ dt_strategy='full-mesh'):
"""
Initializes the experiment class.
@@ -53,9 +54,11 @@ class Experiment(mod.Experiment):
:param git_repo: The git repository to use for installation.
:param git_branch: The branch of the git repository to use.
:param enrollment_strategy: Can be 'full-mesh', 'minimal' or 'manual'.
+ :param dt_strategy: For data flows, 'full-mesh', 'minimal' or 'manual'.
"""
mod.Experiment.__init__(self, testbed, nodes, git_repo, git_branch,
- enrollment_strategy=enrollment_strategy)
+ enrollment_strategy=enrollment_strategy,
+ dt_strategy=dt_strategy)
self.r_ipcps = dict()
self.set_startup_command("irmd")