From 345bf7cc295d02c5c3e19f3a31305eaa521b7aeb Mon Sep 17 00:00:00 2001
From: Brandon Heller <brandonh@stanford.edu>
Date: Fri, 18 Dec 2009 15:39:14 -0800
Subject: [PATCH] Reduce interface move delay and make configurable

Much faster now; from 1 s delay to 100 us.
---
 mininet/mininet.py | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/mininet/mininet.py b/mininet/mininet.py
index b0d8baa7..a8755838 100755
--- a/mininet/mininet.py
+++ b/mininet/mininet.py
@@ -333,6 +333,8 @@ def monitor( self ):
 # live in the root namespace and thus do not have to be
 # explicitly moved.
 
+MOVEINTF_DELAY = 0.0001
+
 def makeIntfPair( intf1, intf2 ):
    "Make a veth pair of intf1 and intf2."
    # Delete any old interfaces with the same names
@@ -353,11 +355,11 @@ def moveIntf( intf, node ):
       return False
    return True
 
-def retry( n, fn, *args):
+def retry( n, retry_delay, fn, *args):
    "Try something N times before giving up."
    tries = 0
    while not apply( fn, args ) and tries < n:
-      sleep( 1 )
+      sleep( retry_delay )
       print "*** retrying..."; flush()
       tries += 1
    if tries >= n: 
@@ -369,8 +371,8 @@ def createLink( node1, node2 ):
    intf1 = node1.newIntf()
    intf2 = node2.newIntf()
    makeIntfPair( intf1, intf2 )
-   if node1.inNamespace: retry( 3, moveIntf, intf1, node1 )
-   if node2.inNamespace: retry( 3, moveIntf, intf2, node2 )
+   if node1.inNamespace: retry( 3, MOVEINTF_DELAY, moveIntf, intf1, node1 )
+   if node2.inNamespace: retry( 3, MOVEINTF_DELAY, moveIntf, intf2, node2 )
    node1.connection[ intf1 ] = ( node2, intf2 )
    node2.connection[ intf2 ] = ( node1, intf1 )
    return intf1, intf2
-- 
GitLab