Fix examples to work with new API (and vice-versa.)

This commit is contained in:
Bob Lantz
2012-03-09 16:06:23 -08:00
parent 8e3699eca6
commit a49c85a610
10 changed files with 78 additions and 51 deletions
+6
View File
@@ -45,6 +45,12 @@ def cleanup():
if dp != '':
sh( 'dpctl deldp ' + dp )
info( "*** Removing OVS datapaths" )
dps = sh("ovs-vsctl list-br").split( '\n' )
for dp in dps:
if dp:
sh( 'ovs-vsctl del-br ' + dp )
info( "*** Removing all links of the pattern foo-ethX\n" )
links = sh( "ip link show | egrep -o '(\w+-eth\w+)'" ).split( '\n' )
for link in links:
+4 -1
View File
@@ -95,6 +95,8 @@ class Intf( object ):
def isUp( self, set=False ):
"Return whether interface is up"
if set:
self.ifconfig( 'up' )
return "UP" in self.ifconfig()
# The reason why we configure things in this way is so
@@ -123,7 +125,7 @@ class Intf( object ):
return result
def config( self, mac=None, ip=None, ifconfig=None,
defaultRoute=None, **params):
defaultRoute=None, up=True, **params):
"""Configure Node according to (optional) parameters:
mac: MAC address
ip: IP address
@@ -136,6 +138,7 @@ class Intf( object ):
r = {}
self.setParam( r, 'setMAC', mac=mac )
self.setParam( r, 'setIP', ip=ip )
self.setParam( r, 'isUp', up=up )
self.setParam( r, 'ifconfig', ifconfig=ifconfig )
return r
+2 -2
View File
@@ -97,7 +97,7 @@ from mininet.log import info, error, debug, output
from mininet.node import Host, OVSKernelSwitch, Controller
from mininet.link import Link
from mininet.util import quietRun, fixLimits
from mininet.util import createLink, macColonHex, ipStr, ipParse
from mininet.util import macColonHex, ipStr, ipParse
from mininet.term import cleanUpScreens, makeTerms
class Mininet( object ):
@@ -584,7 +584,7 @@ class MininetWithControlNet( Mininet ):
snum = ipParse( ip )
for switch in self.switches:
info( ' ' + switch.name )
sintf, cintf = createLink( switch, controller )
sintf, cintf = self.link( switch, controller )
snum += 1
while snum & 0xff in [ 0, 255 ]:
snum += 1
+8 -5
View File
@@ -386,17 +386,20 @@ class Node( object ):
intf: interface name
ip: IP address as a string
prefixLen: prefix length, e.g. 8 for /8 or 16M addrs"""
# This should probably be rethought:
ipSub = '%s/%s' % ( ip, prefixLen )
return self.intf( intf ).setIP( ipSub )
# This should probably be rethought
if '/' not in ip:
ip = '%s/%s' % ( ip, prefixLen )
return self.intf( intf ).setIP( ip )
def IP( self, intf=None ):
"Return IP address of a node or specific interface."
return self.intf( intf ).IP()
i = self.intf( intf )
return self.intf( i ).IP() if i else None
def MAC( self, intf=None ):
"Return MAC address of a node or specific interface."
return self.intf( intf ).MAC()
i = self.intf( intf )
return self.intf( i ).MAC() if i else None
def intfIsUp( self, intf=None ):
"Check if an interface is up."
-9
View File
@@ -183,15 +183,6 @@ def moveIntf( intf, node, printError=False, retries=3, delaySecs=0.001 ):
printError: if true, print error"""
retry( retries, delaySecs, moveIntfNoRetry, intf, node, printError )
def createLink( node1, node2, port1=None, port2=None ):
"""Create a link between nodes, making an interface for each.
node1: Node object
node2: Node object
port1: node1 port number (optional)
port2: node2 port number (optional)
returns: intf1 name, intf2 name"""
return node1.linkTo( node2, port1, port2 )
# IP and Mac address formatting and parsing