Skip to content
Snippets Groups Projects
Commit 2f40c856 authored by Bob Lantz's avatar Bob Lantz
Browse files

Added additional sanity checks for when OF/OVS isn't installed.

parent ab312967
No related branches found
No related tags found
No related merge requests found
...@@ -50,7 +50,7 @@ ...@@ -50,7 +50,7 @@
from mininet.log import info, error, debug from mininet.log import info, error, debug
from mininet.util import quietRun, makeIntfPair, moveIntf, isShellBuiltin from mininet.util import quietRun, makeIntfPair, moveIntf, isShellBuiltin
from mininet.moduledeps import moduleDeps, OVS_KMOD, OF_KMOD, TUN from mininet.moduledeps import moduleDeps, pathCheck, OVS_KMOD, OF_KMOD, TUN
SWITCH_PORT_BASE = 1 # For OF > 0.9, switch ports start at 1 rather than zero SWITCH_PORT_BASE = 1 # For OF > 0.9, switch ports start at 1 rather than zero
...@@ -455,11 +455,12 @@ def __init__( self, name, **kwargs ): ...@@ -455,11 +455,12 @@ def __init__( self, name, **kwargs ):
"""Init. """Init.
name: name for the switch""" name: name for the switch"""
Switch.__init__( self, name, **kwargs ) Switch.__init__( self, name, **kwargs )
pathCheck( 'ofdatapath', 'ofprotocol' )
@staticmethod @staticmethod
def setup(): def setup():
"Ensure any dependencies are loaded; if not, try to load them." "Ensure any dependencies are loaded; if not, try to load them."
moduleDeps( add = TUN ) moduleDeps( add=TUN )
def start( self, controllers ): def start( self, controllers ):
"""Start OpenFlow reference user datapath. """Start OpenFlow reference user datapath.
...@@ -511,6 +512,7 @@ def __init__( self, name, dp=None, **kwargs ): ...@@ -511,6 +512,7 @@ def __init__( self, name, dp=None, **kwargs ):
def setup(): def setup():
"Ensure any dependencies are loaded; if not, try to load them." "Ensure any dependencies are loaded; if not, try to load them."
moduleDeps( subtract = OVS_KMOD, add = OF_KMOD ) moduleDeps( subtract = OVS_KMOD, add = OF_KMOD )
pathCheck( 'ofprotocol' )
def start( self, controllers ): def start( self, controllers ):
"Start up reference kernel datapath." "Start up reference kernel datapath."
...@@ -523,7 +525,7 @@ def start( self, controllers ): ...@@ -523,7 +525,7 @@ def start( self, controllers ):
if self.defaultMAC: if self.defaultMAC:
self.cmd( 'ifconfig', self.intf, 'hw', 'ether', self.defaultMAC ) self.cmd( 'ifconfig', self.intf, 'hw', 'ether', self.defaultMAC )
ports = sorted( self.ports.values() ) ports = sorted( self.ports.values() )
if len( ports ) != ports[ -1 ] + 1: if len( ports ) != ports[ -1 ] + 1 - self.portBase:
raise Exception( 'only contiguous, zero-indexed port ranges' raise Exception( 'only contiguous, zero-indexed port ranges'
'supported: %s' % ports ) 'supported: %s' % ports )
intfs = [ self.intfs[ port ] for port in ports ] intfs = [ self.intfs[ port ] for port in ports ]
...@@ -564,6 +566,7 @@ def __init__( self, name, dp=None, **kwargs ): ...@@ -564,6 +566,7 @@ def __init__( self, name, dp=None, **kwargs ):
def setup(): def setup():
"Ensure any dependencies are loaded; if not, try to load them." "Ensure any dependencies are loaded; if not, try to load them."
moduleDeps( subtract = OF_KMOD, add = OVS_KMOD ) moduleDeps( subtract = OF_KMOD, add = OVS_KMOD )
pathCheck( 'ovs-dpctl', 'ovs-openflowd' )
def start( self, controllers ): def start( self, controllers ):
"Start up kernel datapath." "Start up kernel datapath."
...@@ -580,7 +583,7 @@ def start( self, controllers ): ...@@ -580,7 +583,7 @@ def start( self, controllers ):
mac_str = ' --datapath-id=0000' + \ mac_str = ' --datapath-id=0000' + \
''.join( self.defaultMAC.split( ':' ) ) + ' ' ''.join( self.defaultMAC.split( ':' ) ) + ' '
ports = sorted( self.ports.values() ) ports = sorted( self.ports.values() )
if len( ports ) != ports[ -1 ]: if len( ports ) != ports[ -1 ] + 1 - self.portBase:
raise Exception( 'only contiguous, one-indexed port ranges ' raise Exception( 'only contiguous, one-indexed port ranges '
'supported: %s' % self.intfs ) 'supported: %s' % self.intfs )
intfs = [ self.intfs[ port ] for port in ports ] intfs = [ self.intfs[ port ] for port in ports ]
...@@ -617,6 +620,7 @@ def __init__( self, name, inNamespace=False, controller='controller', ...@@ -617,6 +620,7 @@ def __init__( self, name, inNamespace=False, controller='controller',
def start( self ): def start( self ):
"""Start <controller> <args> on controller. """Start <controller> <args> on controller.
Log to /tmp/cN.log""" Log to /tmp/cN.log"""
pathCheck( self.controller )
cout = '/tmp/' + self.name + '.log' cout = '/tmp/' + self.name + '.log'
if self.cdir is not None: if self.cdir is not None:
self.cmd( 'cd ' + self.cdir ) self.cmd( 'cd ' + self.cdir )
......
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