Merge pull request #333 from mininet/devel/buildtopo

Clean up standard topologies to use build
This commit is contained in:
Brian O'Connor
2014-08-03 21:47:10 -07:00
2 changed files with 33 additions and 54 deletions
+11 -31
View File
@@ -201,19 +201,13 @@ class Topo(object):
"Items sorted in natural (i.e. alphabetical) order"
return sorted(items, key=natural)
class SingleSwitchTopo( Topo ):
'''Single switch connected to k hosts.'''
def __init__(self, k=2, **opts):
'''Init.
@param k number of hosts
@param enable_all enables all nodes and switches?
'''
super(SingleSwitchTopo, self).__init__(**opts)
"Single switch connected to k hosts."
def build( self, k=2, **opts ):
"k: number of hosts"
self.k = k
switch = self.addSwitch( 's1' )
for h in irange( 1, k ):
host = self.addHost( 'h%s' % h )
@@ -221,19 +215,12 @@ class SingleSwitchTopo(Topo):
class SingleSwitchReversedTopo( Topo ):
'''Single switch connected to k hosts, with reversed ports.
"""Single switch connected to k hosts, with reversed ports.
The lowest-numbered host is connected to the highest-numbered port.
Useful to verify that Mininet properly handles custom port numberings."""
Useful to verify that Mininet properly handles custom port numberings.
'''
def __init__(self, k=2, **opts):
'''Init.
@param k number of hosts
@param enable_all enables all nodes and switches?
'''
super(SingleSwitchReversedTopo, self).__init__(**opts)
def build( self, k=2 ):
"k: number of hosts"
self.k = k
switch = self.addSwitch( 's1' )
for h in irange( 1, k ):
@@ -244,15 +231,9 @@ class SingleSwitchReversedTopo(Topo):
class LinearTopo( Topo ):
"Linear topology of k switches, with n hosts per switch."
def __init__(self, k=2, n=1, **opts):
"""Init.
k: number of switches
n: number of hosts per switch
hconf: host configuration options
lconf: link configuration options"""
super(LinearTopo, self).__init__(**opts)
def build( self, k=2, n=1, **opts):
"""k: number of switches
n: number of hosts per switch"""
self.k = k
self.n = n
@@ -261,7 +242,6 @@ class LinearTopo(Topo):
else:
genHostName = lambda i, j: 'h%ss%d' % ( j, i )
lastSwitch = None
for i in irange( 1, k ):
# Add switch
+3 -4
View File
@@ -6,8 +6,7 @@ from mininet.net import Mininet
class TreeTopo( Topo ):
"Topology for a tree network with a given depth and fanout."
def __init__( self, depth=1, fanout=2 ):
super( TreeTopo, self ).__init__()
def build( self, depth=1, fanout=2 ):
# Numbering: h1..N, s1..M
self.hostNum = 1
self.switchNum = 1
@@ -42,8 +41,8 @@ class TorusTopo( Topo ):
with the default controller or any Ethernet bridge
without STP turned on! It can be used with STP, e.g.:
# mn --topo torus,3,3 --switch lxbr,stp=1 --test pingall"""
def __init__( self, x, y, *args, **kwargs ):
Topo.__init__( self, *args, **kwargs )
def build( self, x, y ):
if x < 3 or y < 3:
raise Exception( 'Please use 3x3 or greater for compatibility '
'with 2.1' )