Skip to content
Snippets Groups Projects
Commit 72fd120d authored by Cody Burkard's avatar Cody Burkard
Browse files

added default controller class

parent 1aed2b8a
No related branches found
No related tags found
No related merge requests found
......@@ -25,7 +25,7 @@ from mininet.cli import CLI
from mininet.log import lg, LEVELS, info, debug, error
from mininet.net import Mininet, MininetWithControlNet, VERSION
from mininet.node import ( Host, CPULimitedHost, Controller, OVSController,
NOX, RemoteController, UserSwitch, OVSKernelSwitch,
NOX, RemoteController, DefaultController, UserSwitch, OVSKernelSwitch,
OVSLegacyKernelSwitch, IVSSwitch )
from mininet.link import Link, TCLink
from mininet.topo import SingleSwitchTopo, LinearTopo, SingleSwitchReversedTopo
......@@ -53,11 +53,12 @@ HOSTS = { 'proc': Host,
'rt': custom( CPULimitedHost, sched='rt' ),
'cfs': custom( CPULimitedHost, sched='cfs' ) }
CONTROLLERDEF = 'ovsc'
CONTROLLERDEF = 'default'
CONTROLLERS = { 'ref': Controller,
'ovsc': OVSController,
'nox': NOX,
'remote': RemoteController,
'default': DefaultController,
'none': lambda name: None }
LINKDEF = 'default'
......
......@@ -95,7 +95,7 @@
from mininet.cli import CLI
from mininet.log import info, error, debug, output
from mininet.node import Host, OVSKernelSwitch, Controller
from mininet.node import Host, OVSKernelSwitch, DefaultController, Controller
from mininet.link import Link, Intf
from mininet.util import quietRun, fixLimits, numCores, ensureRoot
from mininet.util import macColonHex, ipStr, ipParse, netParse, ipAdd
......@@ -213,16 +213,17 @@ def addController( self, name='c0', controller=None, **params ):
if not controller:
controller = self.controller
# Construct new controller if one is not given
if isinstance(name, Controller):
if isinstance( name, Controller ):
controller_new = name
# Pylint thinks controller is a str()
# pylint: disable=E1103
name = controller_new.name
# pylint: enable=E1103
else:
# bookmark
controller_new = controller( name, **params )
# Add new controller to net
if controller_new: # allow controller-less setups
if controller_new: # allow controller-less setups
self.controllers.append( controller_new )
self.nameToNode[ name ] = controller_new
return controller_new
......
......@@ -1278,6 +1278,15 @@ def __repr__( self ):
self.__class__.__name__, self.name,
self.IP(), self.port, self.pid )
class DefaultController( Controller ):
"find any controller that is available and run it"
def __init__( self, name, **kwargs ):
"search for any installed controller"
controllers = [ 'controller', 'ovs-controller', 'test-controller' ] # , 'pox', 'ryu' ] # test-controller is the important part
for c in controllers:
if quietRun( "which " + c ):
Controller.__init__( self, name, controller=c, **kwargs )
break
class OVSController( Controller ):
"Open vSwitch controller"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment