aboutsummaryrefslogtreecommitdiff
path: root/libarcfire.py
diff options
context:
space:
mode:
Diffstat (limited to 'libarcfire.py')
-rwxr-xr-xlibarcfire.py154
1 files changed, 0 insertions, 154 deletions
diff --git a/libarcfire.py b/libarcfire.py
deleted file mode 100755
index e04b667..0000000
--- a/libarcfire.py
+++ /dev/null
@@ -1,154 +0,0 @@
-#
-# A library to manage ARCFIRE experiments
-#
-
-# Base class for DIFs
-#
-# @name [string] DIF name
-# @members [iterable] Nodes belonging to the DIF
-# @appmap [iterable] Application names mapped to this DIF
-#
-class DIF:
- def __init__(self, name, members):
- self.name = name
- self.members = dict()
- if members != None:
- for m in members:
- self.members[m] = m
- self.appmap = set()
-
- def __repr__(self):
- s = "DIF %s: members=%s" % (self.name, str(sorted(self.members)))
- if len(self.appmap) > 0:
- s += " appmap=%s" % self.appmap
- return s
-
- def node_add(self, node_name):
- self.members[node_name] = node_name
-
- def node_del(self, node_name):
- del self.members[node_name]
-
- def appmap_add(self, apname, apinst = None):
- s = apname
- if apinst:
- s += apinst
- self.appmap.add(s)
-
- def appmap_del(self, apname, apinst = None):
- s = apname
- if apinst:
- s += apinst
- self.appmap.discard(s)
-
-
-# Shim over Ethernet
-#
-# @link_speed [int] Speed of the Ethernet network, in Mbps
-#
-class ShimEthDIF(DIF):
- def __init__(self, name, link_speed = 0, members = None):
- DIF.__init__(self, name, members)
- self.link_speed = int(link_speed)
- if self.link_speed < 0:
- raise ValueError("link_speed must be a non-negative number")
-
-
-# A policy
-#
-# @component: RINA component to which the policy applies to
-# @name: Name of the policy
-# @parameters: A dictionary of (key, values) pairs representing policy-specific
-# parameters
-class Policy:
- def __init__(self, component, name, **kwargs):
- self.component = component
- self.name = name
- self.parameters = kwargs
-
- def __repr__(self):
- s = "%s:%s" % (self.component, self.name)
- if self.parameters:
- s += "%s" % self.parameters
- return s
-
-
-# Normal DIF
-class NormalDIF(DIF):
- def __init__(self, name, members = None):
- DIF.__init__(self, name, members)
- self.policies = dict()
-
- def policy_add(self, policy):
- self.policies[policy.component] = policy
-
- def policy_del(self, component):
- del self.policies[component]
-
- def __repr__(self):
- s = DIF.__repr__(self)
- if self.policies:
- s += " policies=["
- for p in self.policies:
- s += "%s," % self.policies[p]
- if self.policies:
- s += "]"
- return s
-
-
-# Base class for ARCFIRE experiments
-#
-# @name [string] Name of the experiment
-#
-class Experiment:
- def __init__(self, name):
- self.name = name
- self.difs = dict()
-
- def __repr__(self):
- s = "%s:" % self.name
- for d in self.difs:
- s += "\n %s" % self.difs[d]
-
- return s
-
- def dif_add(self, dif):
- self.difs[dif.name] = dif
-
- def dif_del(self, dif_name):
- del self.difs[dif_name]
-
- def run(self):
- print("[experiment %s] start" % self.name)
- print("[experiment %s] end" % self.name)
-
-
-# An experiment over the IRATI implementation
-class IRATIExperiment(Experiment):
- def __init__(self, name):
- Experiment.__init__(self, name)
-
- def run(self):
- print("[IRATI experiment %s] start" % self.name)
- print("[IRATI experiment %s] end" % self.name)
-
-
-# An experiment over the RLITE implementation
-class RLITEExperiment(Experiment):
- def __init__(self, name):
- Experiment.__init__(self, name)
-
- def run(self):
- print("[RLITE experiment %s] start" % self.name)
- print("[RLITE experiment %s] end" % self.name)
-
-
-# An experiment over the OUROBOROS implementation
-class OUROBOROSExperiment(Experiment):
- def __init__(self, name):
- Experiment.__init__(self, name)
-
- def run(self):
- print("[OUROBOROS experiment %s] start" % self.name)
- print("[OUROBOROS experiment %s] end" % self.name)
-