Merge branch 'master' of github.com:mininet/mininet

This commit is contained in:
Brian O'Connor
2013-07-30 18:12:15 -07:00
+7 -8
View File
@@ -13,7 +13,7 @@ setup for testing, and can even be emulated with the Mininet package.
from mininet.util import irange, natural, naturalSeq from mininet.util import irange, natural, naturalSeq
class Graph( object ): class MultiGraph( object ):
"Utility class to track nodes and edges - replaces networkx.Graph" "Utility class to track nodes and edges - replaces networkx.Graph"
def __init__( self ): def __init__( self ):
@@ -21,15 +21,14 @@ class Graph( object ):
def add_node( self, node ): def add_node( self, node ):
"Add node to graph" "Add node to graph"
if node not in self.data.keys(): self.data.setdefault( node, [] )
self.data[ node ] = []
def add_edge( self, src, dest ): def add_edge( self, src, dest ):
"Add edge to graph" "Add edge to graph"
src, dest = sorted( ( src, dest ) )
self.add_node( src ) self.add_node( src )
self.add_node( dest ) self.add_node( dest )
self.data[ src ].append( dest ) self.data[ src ].append( dest )
self.data[ dest ].append( src )
def nodes( self ): def nodes( self ):
"Return list of graph nodes" "Return list of graph nodes"
@@ -54,7 +53,7 @@ class Topo(object):
hinfo: default host options hinfo: default host options
sopts: default switch options sopts: default switch options
lopts: default link options""" lopts: default link options"""
self.g = Graph() self.g = MultiGraph()
self.node_info = {} self.node_info = {}
self.link_info = {} # (src, dst) tuples hash to EdgeInfo objects self.link_info = {} # (src, dst) tuples hash to EdgeInfo objects
self.hopts = {} if hopts is None else hopts self.hopts = {} if hopts is None else hopts
@@ -256,9 +255,9 @@ class LinearTopo(Topo):
switch = self.addSwitch('s%s' % i) switch = self.addSwitch('s%s' % i)
# Add hosts to switch # Add hosts to switch
for j in irange(1, n): for j in irange(1, n):
hostNum = (i-1)*n + j hostNum = (i-1)*n + j
host = self.addHost('h%s' % hostNum) host = self.addHost('h%s' % hostNum)
self.addLink(host, switch) self.addLink(host, switch)
# Connect switch to previous # Connect switch to previous
if lastSwitch: if lastSwitch:
self.addLink(switch, lastSwitch) self.addLink(switch, lastSwitch)