Exemplo n.º 1
0
#!/usr/bin/python2

#
# Minimal example showing how to use MaxiNet with OpenFlow 1.3.
# Make sure your controller is able to handle OpenFlow 1.3.
#

from src.mininet.node import OVSSwitch

from src.maxinet.Frontend import maxinet_main
from src.maxinet.tools import FatTree

topo = FatTree(4, 10, 0.1)
cluster = maxinet_main.Cluster()

exp = maxinet_main.Experiment(cluster, topo, switch=OVSSwitch)
exp.setup()

#Enable OpenFlow 1.3 on all switches
for switch in exp.switches:
    exp.get_worker(
        switch).run_cmd('ovs-vsctl -- set Bridge %s ' % switch.name +
                        'protocols=OpenFlow10,OpenFlow12,OpenFlow13')

#Create some Flows
print exp.get_node("h1").cmd("ping -c 5 10.0.0.4")

#Dump Flows with OpenFlow 1.3 Command
print exp.get("s1").dpctl("-O OpenFlow13 dump-flows")

exp.stop()
Exemplo n.º 2
0
from src.mininet.topo import Topo
from src.mininet.node import OVSSwitch

from src.maxinet.Frontend import maxinet_main
from src.maxinet.tools import Tools

# create topology
topo = Topo()
topo.addHost("h1", ip=Tools.makeIP(1), mac=Tools.makeMAC(1))
topo.addHost("h2", ip=Tools.makeIP(2), mac=Tools.makeMAC(2))
topo.addSwitch("s1", dpid=Tools.makeDPID(1))
topo.addLink("h1", "s1")
topo.addLink("h2", "s1")

# start cluster
cluster = maxinet_main.Cluster(minWorkers=2, maxWorkers=2)

# start experiment with OVSSwitch on cluster
exp = maxinet_main.Experiment(cluster, topo, switch=OVSSwitch)
exp.setup()

print "waiting 5 seconds for routing algorithms on the controller to converge"
time.sleep(5)

print "pinging h2 from h1 to check network connectivity..."
print exp.get_node("h1").cmd("ping -c 5 10.0.0.2")  # show network connectivity

raw_input("[Continue]")  # wait for user to acknowledge network connectivity
print "adding switch on second worker..."
# Enforce placement of s2 on Worker 2. Otherwise random worker would be chosen
exp.addSwitch("s2", dpid=Tools.makeDPID(2), wid=1)