diff --git a/examples/nox.py b/examples/nox.py index 84a349609673ca0312eccf8640c761715879b69a..0280f4c3d5a8ccabedc768a8e7406a22fe77e540 100755 --- a/examples/nox.py +++ b/examples/nox.py @@ -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 ): diff --git a/examples/ripcord.py b/examples/ripcord.py new file mode 100755 index 0000000000000000000000000000000000000000..1c9c15d05e3e27c981a6b5e4059feee6f1be8f8c --- /dev/null +++ b/examples/ripcord.py @@ -0,0 +1,50 @@ +#!/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 ) diff --git a/mininet.py b/mininet.py index 31d6c20009f1051dbe42a89c77c800f7d3bef782..2ecc011335dc6216680641965396c94831a54738 100755 --- a/mininet.py +++ b/mininet.py @@ -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