Added controller class arg to addController().

This commit is contained in:
Bob Lantz
2010-09-01 19:50:30 -07:00
parent 2a75022403
commit eaf5888ae0
+8 -5
View File
@@ -94,7 +94,7 @@ from time import sleep
from mininet.cli import CLI from mininet.cli import CLI
from mininet.log import info, error, debug, output from mininet.log import info, error, debug, output
from mininet.node import Host, UserSwitch, KernelSwitch, Controller from mininet.node import Host, UserSwitch, OVSKernelSwitch, Controller
from mininet.node import ControllerParams from mininet.node import ControllerParams
from mininet.util import quietRun, fixLimits from mininet.util import quietRun, fixLimits
from mininet.util import createLink, macColonHex, ipStr, ipParse from mininet.util import createLink, macColonHex, ipStr, ipParse
@@ -103,7 +103,7 @@ from mininet.term import cleanUpScreens, makeTerms
class Mininet( object ): class Mininet( object ):
"Network emulation with hosts spawned in network namespaces." "Network emulation with hosts spawned in network namespaces."
def __init__( self, topo=None, switch=KernelSwitch, host=Host, def __init__( self, topo=None, switch=OVSKernelSwitch, host=Host,
controller=Controller, controller=Controller,
cparams=ControllerParams( '10.0.0.0', 8 ), cparams=ControllerParams( '10.0.0.0', 8 ),
build=True, xterms=False, cleanup=False, build=True, xterms=False, cleanup=False,
@@ -181,13 +181,16 @@ class Mininet( object ):
self.nameToNode[ name ] = sw self.nameToNode[ name ] = sw
return sw return sw
def addController( self, name='c0', **kwargs ): def addController( self, name='c0', Controller=None, **kwargs ):
"""Add controller. """Add controller.
controller: Controller class""" Controller: Controller class"""
controller_new = self.controller( name, **kwargs ) if not Controller:
Controller = self.controller
controller_new = Controller( name, **kwargs )
if controller_new: # allow controller-less setups if controller_new: # allow controller-less setups
self.controllers.append( controller_new ) self.controllers.append( controller_new )
self.nameToNode[ name ] = controller_new self.nameToNode[ name ] = controller_new
return controller_new
# Control network support: # Control network support:
# #