From 2fffa0bb6fab4c6508dc9ad70d58fdb96f34fa76 Mon Sep 17 00:00:00 2001 From: Brandon Heller <brandonh@stanford.edu> Date: Mon, 9 Aug 2010 23:14:10 -0700 Subject: [PATCH] Change port base from 0 to 1 OpenFlow versions > v0.9 require this. Only tested w/FatTree topo - it's almost a guarantee that this breaks every other topology. --- mininet/node.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/mininet/node.py b/mininet/node.py index ba62514a..759ee857 100644 --- a/mininet/node.py +++ b/mininet/node.py @@ -52,6 +52,9 @@ from mininet.util import quietRun, makeIntfPair, moveIntf, isShellBuiltin from mininet.moduledeps import moduleDeps, OVS_KMOD, OF_KMOD, TUN +PORT_BASE = 1 # Port numbering to start from. OF > v0.9 is 1-indexed. + + class Node( object ): """A virtual network node is simply a shell in a network namespace. We communicate with it using pipes.""" @@ -258,7 +261,7 @@ def newPort( self ): "Return the next port number to allocate." if len( self.ports ) > 0: return max( self.ports.values() ) + 1 - return 0 + return PORT_BASE def addIntf( self, intf, port=None ): """Add an interface. @@ -544,8 +547,9 @@ def start( self, controllers ): mac_str = ' --datapath-id=0000' + \ ''.join( self.defaultMAC.split( ':' ) ) + ' ' ports = sorted( self.ports.values() ) - if len( ports ) != ports[ -1 ] + 1: - raise Exception( 'only contiguous, zero-indexed port ranges' + print ports + if len( ports ) != ports[ -1 ]: + raise Exception( 'only contiguous, one-indexed port ranges ' 'supported: %s' % self.intfs ) intfs = [ self.intfs[ port ] for port in ports ] self.cmd( 'ovs-dpctl', 'add-if', self.dp, ' '.join( intfs ) ) -- GitLab