Add more NOX options
This commit is contained in:
+3
-3
@@ -11,8 +11,7 @@ from ripcord.topo import FatTreeTopo
|
||||
|
||||
from mininet.logging_mod import lg, set_loglevel, LEVELS
|
||||
from mininet.net import Mininet, init
|
||||
from mininet.node import Switch, Host, Controller, ControllerParams
|
||||
from mininet.node import NOXController
|
||||
from mininet.node import Switch, Host, Controller, ControllerParams, NOX
|
||||
from mininet.topo import TreeTopo
|
||||
|
||||
# built in topologies, created only when run
|
||||
@@ -32,7 +31,8 @@ HOSTS = {'process' : Host}
|
||||
|
||||
CONTROLLER_DEF = 'ref'
|
||||
CONTROLLERS = {'ref' : Controller,
|
||||
'nox' : NOXController}
|
||||
'nox_dump' : lambda a, b: NOX(a, b, 'packetdump'),
|
||||
'nox_pysw' : lambda a, b: NOX(a, b, 'pyswitch')}
|
||||
|
||||
# optional tests to run
|
||||
TESTS = ['cli', 'build', 'ping_all', 'ping_pair', 'iperf', 'all']
|
||||
|
||||
+1
-1
@@ -160,7 +160,7 @@ class Mininet(object):
|
||||
|
||||
@param controller Controller class
|
||||
'''
|
||||
controller = self.controller('c0', kernel = self.kernel)
|
||||
controller = self.controller('c0', not self.kernel)
|
||||
self.controllers['c0'] = controller
|
||||
|
||||
# Control network support:
|
||||
|
||||
+8
-6
@@ -215,12 +215,12 @@ class Controller(Node):
|
||||
'''A Controller is a Node that is running (or has execed) an
|
||||
OpenFlow controller.'''
|
||||
|
||||
def __init__(self, name, kernel=True, controller='controller',
|
||||
cargs='-v ptcp:', cdir=None):
|
||||
def __init__(self, name, inNamespace = False, controller = 'controller',
|
||||
cargs = '-v ptcp:', cdir = None):
|
||||
self.controller = controller
|
||||
self.cargs = cargs
|
||||
self.cdir = cdir
|
||||
Node.__init__(self, name, inNamespace=(not kernel))
|
||||
Node.__init__(self, name, inNamespace = inNamespace)
|
||||
|
||||
def start(self):
|
||||
'''Start <controller> <args> on controller.
|
||||
@@ -338,14 +338,16 @@ class Switch(Node):
|
||||
return True, ''
|
||||
|
||||
|
||||
class NOXController(Controller):
|
||||
class NOX(Controller):
|
||||
'''Controller to run a NOX application.'''
|
||||
def __init__(self, name, nox_args = None, **kwargs):
|
||||
def __init__(self, name, inNamespace = False, nox_args = None, **kwargs):
|
||||
'''Init.
|
||||
|
||||
@param name name to give controller
|
||||
@param nox_args list of args to use with NOX
|
||||
@param nox_args list of args, or single arg, to pass to NOX
|
||||
'''
|
||||
if type(nox_args) != list:
|
||||
nox_args = [nox_args]
|
||||
if not nox_args:
|
||||
nox_args = ['packetdump']
|
||||
nox_core_dir = os.environ['NOX_CORE_DIR']
|
||||
|
||||
Reference in New Issue
Block a user