From 76dcbbcd987189af72964c0ac6c845f50634fb34 Mon Sep 17 00:00:00 2001
From: Michael Marsh <mmarsh@cs.umd.edu>
Date: Mon, 19 Feb 2018 12:34:02 -0500
Subject: [PATCH] configure link before starting netem

---
 start_testbed.py | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

diff --git a/start_testbed.py b/start_testbed.py
index 52eec78..d6a8a84 100755
--- a/start_testbed.py
+++ b/start_testbed.py
@@ -55,12 +55,6 @@ def connect_nodes(node1, node2):
         'peer', 'name', dev_2
         ])
 
-    # Configure the link for network emulation.
-    subprocess.call([
-        'sudo',
-        'tc', 'qdisc', 'add', 'dev', dev_1, 'root', 'handle', '1:0', 'netem'
-        ])
-
     # Add the link endpoints to the container namespaces.
     def add_to_ns(dev,ns):
         subprocess.call([
@@ -93,6 +87,15 @@ def connect_nodes(node1, node2):
     route_from_to(ctr1,ctr2,dev_1)
     route_from_to(ctr2,ctr1,dev_2)
 
+    # Configure the link for network emulation.
+    def enable_netem(ns, dev):
+        subprocess.call([
+            'sudo', 'ip', 'netns', 'exec', ns,
+            'tc', 'qdisc', 'add', 'dev', dev, 'root', 'handle', '1:0', 'netem'
+            ])
+    enable_netem(ctr1['name'],dev_1)
+    enable_netem(ctr2['name'],dev_2)
+
 
 def make_mesh():
     global nodelist
-- 
GitLab