Merge branch 'master' of github.com:mininet/mininet
This commit is contained in:
@@ -118,3 +118,8 @@ This example attempts to create a 1024-host network, and then runs the
|
|||||||
CLI on it. It may run into scalability limits, depending on available
|
CLI on it. It may run into scalability limits, depending on available
|
||||||
memory and sysctl configuration (see INSTALL.)
|
memory and sysctl configuration (see INSTALL.)
|
||||||
|
|
||||||
|
dynamicnet.py:
|
||||||
|
|
||||||
|
This example builds a network based on command line arguments and uses
|
||||||
|
a remote controller. It is a good option to use with POX controller and
|
||||||
|
develop Software Defined Networks.
|
||||||
|
|||||||
Executable
+55
@@ -0,0 +1,55 @@
|
|||||||
|
#!/usr/bin/python
|
||||||
|
|
||||||
|
"""
|
||||||
|
This script builds a network using mininet for using with
|
||||||
|
a remote controller like POX.
|
||||||
|
|
||||||
|
The script receives from command line two arguments. The number
|
||||||
|
of Switches and the number of Hosts per Switch. Then, it will build
|
||||||
|
the network topology based on this arguments.
|
||||||
|
|
||||||
|
First of all, it build a topology and add the Switches to the network.
|
||||||
|
After that, add the same number of Hosts for each Switch added. Lastly
|
||||||
|
it make links between each switch.
|
||||||
|
|
||||||
|
@author: Gustavo Pantuza
|
||||||
|
@since: 18.07.2013
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
|
from optparse import OptionParser
|
||||||
|
|
||||||
|
from mininet.topo import LinearTopo
|
||||||
|
from mininet.log import setLogLevel
|
||||||
|
from mininet.net import Mininet
|
||||||
|
from mininet.cli import CLI
|
||||||
|
from mininet.node import RemoteController
|
||||||
|
|
||||||
|
def main():
|
||||||
|
# Defines the log level
|
||||||
|
setLogLevel('info')
|
||||||
|
|
||||||
|
# parses command line arguments
|
||||||
|
parser = OptionParser()
|
||||||
|
parser.add_option('-H', dest='hosts', default=5,
|
||||||
|
help='Number of hosts per switch')
|
||||||
|
parser.add_option('-S', dest='switches', default=2,
|
||||||
|
help='Number of switches')
|
||||||
|
(options, args) = parser.parse_args()
|
||||||
|
|
||||||
|
# Build network topology (see mininet/topo.py)
|
||||||
|
topo = LinearTopo(int(options.switches), int(options.hosts))
|
||||||
|
|
||||||
|
# Creates the Network using a remote controller
|
||||||
|
net = Mininet(topo,
|
||||||
|
controller=lambda a: RemoteController(a, ip='127.0.0.1'))
|
||||||
|
|
||||||
|
# Starts the network
|
||||||
|
net.start()
|
||||||
|
# Run the mininet client
|
||||||
|
CLI(net)
|
||||||
|
# Stop the network
|
||||||
|
net.stop()
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
||||||
+13
-6
@@ -236,23 +236,30 @@ class SingleSwitchReversedTopo(Topo):
|
|||||||
port1=0, port2=(k - h + 1))
|
port1=0, port2=(k - h + 1))
|
||||||
|
|
||||||
class LinearTopo(Topo):
|
class LinearTopo(Topo):
|
||||||
"Linear topology of k switches, with one host per switch."
|
"Linear topology of k switches, with n hosts per switch."
|
||||||
|
|
||||||
def __init__(self, k=2, **opts):
|
def __init__(self, k=2, n=1, **opts):
|
||||||
"""Init.
|
"""Init.
|
||||||
k: number of switches (and hosts)
|
k: number of switches
|
||||||
|
n: number of hosts per switch
|
||||||
hconf: host configuration options
|
hconf: host configuration options
|
||||||
lconf: link configuration options"""
|
lconf: link configuration options"""
|
||||||
|
|
||||||
super(LinearTopo, self).__init__(**opts)
|
super(LinearTopo, self).__init__(**opts)
|
||||||
|
|
||||||
self.k = k
|
self.k = k
|
||||||
|
self.n = n
|
||||||
|
|
||||||
lastSwitch = None
|
lastSwitch = None
|
||||||
for i in irange(1, k):
|
for i in irange(1, k):
|
||||||
host = self.addHost('h%s' % i)
|
# Add switch
|
||||||
switch = self.addSwitch('s%s' % i)
|
switch = self.addSwitch('s%s' % i)
|
||||||
self.addLink( host, switch)
|
# Add hosts to switch
|
||||||
|
for j in irange(1, n):
|
||||||
|
hostNum = (i-1)*n + j
|
||||||
|
host = self.addHost('h%s' % hostNum)
|
||||||
|
self.addLink(host, switch)
|
||||||
|
# Connect switch to previous
|
||||||
if lastSwitch:
|
if lastSwitch:
|
||||||
self.addLink( switch, lastSwitch)
|
self.addLink(switch, lastSwitch)
|
||||||
lastSwitch = switch
|
lastSwitch = switch
|
||||||
|
|||||||
Reference in New Issue
Block a user