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

Added ripcord.py, which attempts to make a FatTree using ripcord and

instantiate a mininet Network based on its topology.

Also minor cleanup of nox.py and GridNet class in mininet.py.
parent 2f534913
No related branches found
No related tags found
No related merge requests found
......@@ -2,7 +2,6 @@
"Instantiate a Tree network and use NOX as the controller."
import time
from mininet import init, Controller, TreeNet, Cli
class NoxController( Controller ):
......
#!/usr/bin/python
"A FatTree network, using Brandon Heller's ripcord system."
from ripcord.topo import StructuredNode, StructuredNodeSpec, FatTreeTopo, VL2T
opo
from mininet import Controller, Network, Host, pingTest
class NoxController( Controller ):
"A customized Controller that uses NOX."
def __init__( self, name, **kwargs ):
Controller.__init__( self, name,
controller='nox_core', cargs='-i ptcp pyswitch',
cdir='/usr/local/bin', **kwargs)
class FatTree( Network ):
"A customized Network that uses ripcord's FatTree."
def __init__( self, **kwargs ):
Network.__init__( self, depth, **kwargs )
def makeNetwork( self, controller ):
ft = FatTreeTopo( depth )
graph = ft.g
switches = []
hosts = []
hostnames = nameGen( 'h0' )
switchnames = nameGen( 's0' )
graphToMini = {}
miniToGraph = {}
# Create nodes
for graphNode in graph.nodes():
print "found node", graphNode
isLeaf = len( graph.neighbors( graphNode ) ) = 1
if isLeaf:
mininetNode = Node( hostnames.next() )
hosts += [ mininetNode ]
else:
mininetNode = self.Switch( switchnames.next() )
switches += [ mininetNode ]
miniToGraph[ mininetNode ] = graphNode
graphToMini[ graphNode ] = mininetNode
# Create Links
for switch in switches:
for neighbor in miniToGraph[ switches ]:
makeLink( switch, graphToMini[ neighbor ] )
if __name__ == '__main__':
init()
network = FatTree( depth=4, kernel=True, Controller=NoxController)
network.run( pingTest )
......@@ -578,9 +578,9 @@ class GridNet( Network ):
"""An N x M grid/mesh network of switches, with hosts at the edges.
This class also demonstrates creating a somewhat complicated
topology."""
def __init__( self, n, m, kernel=True, linear=False, **kwargs ):
def __init__( self, n, m, linear=False, **kwargs ):
self.n, self.m, self.linear = n, m, linear and m == 1
Network.__init__( self, kernel, **kwargs )
Network.__init__( self, **kwargs )
def makeNet( self, controller ):
snames, hnames, dpnames = defaultNames()
n, m = self.n, self.m
......
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