diff options
author | Nick Aerts <aerts.nick@gmail.com> | 2018-03-23 23:36:34 +0100 |
---|---|---|
committer | Nick Aerts <nick.aerts@ugent.be> | 2018-03-27 18:16:45 +0200 |
commit | dfd400c2fb1383bcd6e3862d6199fffad4e78524 (patch) | |
tree | 22628b20331328e4d57657494d0321d07f89badb /rumba/testbeds | |
parent | eef25fb48735a5db9613bf00b47f6cf4703b815d (diff) | |
download | rumba-dfd400c2fb1383bcd6e3862d6199fffad4e78524.tar.gz rumba-dfd400c2fb1383bcd6e3862d6199fffad4e78524.zip |
linkquality: added link_quality to add delay, loss and rate limit to link
This adds the ability to assign delay and loss to links.
4 new object types are introduced:
- LinkQuality
- Delay
- Loss
- Rate
All attributes are read-only, one attribute link_quality is added to the
ShimEthDIF with a callback to the LinkQualityManager which will automatically
apply a new link_quality profile when this attribute is written.
Diffstat (limited to 'rumba/testbeds')
-rw-r--r-- | rumba/testbeds/dockertb.py | 5 | ||||
-rw-r--r-- | rumba/testbeds/emulab.py | 5 | ||||
-rw-r--r-- | rumba/testbeds/jfed.py | 4 | ||||
-rw-r--r-- | rumba/testbeds/local.py | 4 | ||||
-rw-r--r-- | rumba/testbeds/qemu.py | 17 |
5 files changed, 5 insertions, 30 deletions
diff --git a/rumba/testbeds/dockertb.py b/rumba/testbeds/dockertb.py index 3895a7e..d018f8c 100644 --- a/rumba/testbeds/dockertb.py +++ b/rumba/testbeds/dockertb.py @@ -33,7 +33,6 @@ import rumba.model as mod import rumba.log as log from rumba.executors.docker import DockerExecutor - logger = log.get_logger(__name__) class Testbed(mod.Testbed): @@ -56,11 +55,9 @@ class Testbed(mod.Testbed): self.docker_client = docker.from_env() self.executor = DockerExecutor(self) - def swap_in(self, experiment): + def _swap_in(self, experiment): docker_client = self.docker_client - mod.Testbed.swap_in(self, experiment) - # Pull image if self.pull_image: docker_client.images.pull(self.base_image_repo, diff --git a/rumba/testbeds/emulab.py b/rumba/testbeds/emulab.py index 06e0e5c..0d18892 100644 --- a/rumba/testbeds/emulab.py +++ b/rumba/testbeds/emulab.py @@ -271,16 +271,13 @@ class Testbed(mod.Testbed): if self.ip[ipcp] == item[1]: ipcp.ifname = item[0] - def swap_in(self, experiment): - mod.Testbed.swap_in(self, experiment) - + def _swap_in(self, experiment): self._create_experiment(experiment) wait = self.swap_exp_in() if wait: self.wait_until_nodes_up() self.complete_experiment_graph(experiment) - def swap_out(self, experiment): """ Swaps experiment out diff --git a/rumba/testbeds/jfed.py b/rumba/testbeds/jfed.py index db9dd14..a1ceded 100644 --- a/rumba/testbeds/jfed.py +++ b/rumba/testbeds/jfed.py @@ -206,9 +206,7 @@ class Testbed(mod.Testbed): logger.error("jFed returned with error " + str(e.returncode)) raise - def swap_in(self, experiment): - mod.Testbed.swap_in(self, experiment) - + def _swap_in(self, experiment): for node in experiment.nodes: node.ssh_config.set_http_proxy(self.http_proxy) self.create_rspec(experiment) diff --git a/rumba/testbeds/local.py b/rumba/testbeds/local.py index 77aed82..7c1aab1 100644 --- a/rumba/testbeds/local.py +++ b/rumba/testbeds/local.py @@ -40,9 +40,7 @@ class Testbed(mod.Testbed): self.executor = LocalExecutor(self) - def swap_in(self, experiment): - mod.Testbed.swap_in(self, experiment) - + def _swap_in(self, experiment): logger.info("Experiment swapped in") def swap_out(self, experiment): diff --git a/rumba/testbeds/qemu.py b/rumba/testbeds/qemu.py index df80b7e..5f76684 100644 --- a/rumba/testbeds/qemu.py +++ b/rumba/testbeds/qemu.py @@ -125,14 +125,12 @@ class Testbed(mod.Testbed): "ip link set dev %(ifname)s up" % {'ifname': ipcp.ifname}) - def swap_in(self, experiment): + def _swap_in(self, experiment): """ :type experiment mod.Experiment :param experiment: The experiment running """ - mod.Testbed.swap_in(self, experiment) - if os.geteuid() != 0: try: subprocess.check_call(["sudo", "-v"]) @@ -195,19 +193,6 @@ class Testbed(mod.Testbed): 'brctl addif %(br)s %(tap)s' % {'tap': tap_id, 'br': shim.name} ).split('\n') - if shim.link_speed > 0: - speed = '%dmbit' % shim.link_speed - - # Rate limit the traffic transmitted on the TAP interface - command_list += ( - 'tc qdisc add dev %(tap)s handle 1: root ' - 'htb default 11\n' - 'tc class add dev %(tap)s parent 1: classid ' - '1:1 htb rate 10gbit\n' - 'tc class add dev %(tap)s parent 1:1 classid ' - '1:11 htb rate %(speed)s' - % {'tap': tap_id, 'speed': speed} - ).split('\n') # While we're at it, build vm ports table and ipcp table vm['ports'].append({'tap_id': tap_id, |