[pox-dev] Problems with spanning tree when running multiple controllers
Maciej Korczyński
maciej.korczynski at gmail.com
Tue Dec 3 14:05:01 PST 2013
Hi everyone,
I've built a mininet network composed of 20 switches in a full mesh
(or tree) with multiple hosts attached to each of switches. When I use
only one pox controller then all hosts can communicate each other
without any problems. However, I need two controllers. I successfully
created the scenario with two controllers (c0 and c1). Every switch
with a probability equal to 0.5 is assigned to either c0 or c1 (please
see my partial code below).
Here is my problem: when I run two pox controllers, some hosts can't
communicate each other. I also put some logs from controllers at the
end. It's clearly a problem with openflow.discovery
openflow.spanning_tree (I tried to run my scenario with a loop free
tree topology and without above mentioned openflow components and it
worked fine), but I need them to provide connectivity in topologies
with loops (e.g. full mesh).
Thank you very much for your help,
Maciej
/.................................................................................................................................................................................
./pox.py forwarding.l2_learning openflow.of_01 --port=6633
openflow.discovery openflow.spanning_tree --no-flood --hold-down
./pox.py forwarding.l2_learning openflow.of_01 --port=6644
openflow.discovery openflow.spanning_tree --no-flood --hold-down
/.................................................................................................................................................................................
if __name__ == '__main__':
lg.setLogLevel( 'info' )
info( "*** Initializing Mininet and kernel modules\n" )
OVSKernelSwitch.setup()
info( "*** Creating network\n" )
#********************* TOPOLOGY **********************
#maximal number of connected hosts
b = 20
a = 20
topology = Treepro(a,b) # Mesh7pro(a,b,1)
#********************* CONTROLLERS **********************
# our controller
c0 = RemoteController( 'c0', ip='127.0.0.1', port=6633)
# dump controller (simple switching)
c1 = RemoteController( 'c1', ip='127.0.0.1', port=6644)
prob = 0.5
cmap = {}
for i in range(0,a):
if (random.random() < prob):
cmap['s%s' % (i+1)] = c1
else:
cmap['s%s' % (i+1)] = c0
class MultiSwitch( OVSKernelSwitch ):
def start( self, controllers ):
return OVSKernelSwitch.start( self, [ cmap[ self.name ] ] )
#********************* BUILD NETWORK **********************
# network = Mininet( topo=topology, controller=lambda name:
RemoteController( name, defaultIP='127.0.0.1' ), listenPort=6632 ,
switch=OVSKernelSwitch)
network = Mininet( topo=topology, switch=MultiSwitch, build=False )
network.controllers = [ c0, c1 ]
network.build()
info( "*** Starting network\n" )
network.start()
#********** NETWORK MAINTENANCE AND ATTACK ****************
sleep(20) # spaning tree
info( "*** Running ping test\n" )
pingNet(network)
info( "*** Sleeping, soon finishing\n")
sleep(5)
info( "*** Stopping network\n" )
network.stop()
/.................................................................................................................................................................................
INFO:packet:(dhcp parse) warning DHCP packet data too short to parse
header: data len 86
INFO:openflow.discovery:Received LLDP packet from unknown switch
INFO:openflow.discovery:Received LLDP packet from unknown switch
INFO:openflow.discovery:Received LLDP packet from unknown switch
INFO:openflow.discovery:Received LLDP packet from unknown switch
INFO:packet:(dhcp parse) warning DHCP packet data too short to parse
header: data len 86
INFO:packet:(dhcp parse) warning DHCP packet data too short to parse
header: data len 86
INFO:packet:(dhcp parse) warning DHCP packet data too short to parse
header: data len 86
INFO:packet:(dhcp parse) warning DHCP packet data too short to parse
header: data len 86
INFO:packet:(dhcp parse) warning DHCP packet data too short to parse
header: data len 86
INFO:packet:(dhcp parse) warning DHCP packet data too short to parse
header: data len 86
INFO:packet:(dhcp parse) warning DHCP packet data too short to parse
header: data len 86
INFO:packet:(dhcp parse) warning DHCP packet data too short to parse
header: data len 86
INFO:packet:(dhcp parse) warning DHCP packet data too short to parse
header: data len 86
INFO:packet:(dhcp parse) warning DHCP packet data too short to parse
header: data len 86
INFO:packet:(dhcp parse) warning DHCP packet data too short to parse
header: data len 86
INFO:packet:(dhcp parse) warning DHCP packet data too short to parse
header: data len 86
INFO:openflow.discovery:Received LLDP packet from unknown switch
INFO:packet:(dhcp parse) warning DHCP packet data too short to parse
header: data len 86
INFO:packet:(dhcp parse) warning DHCP packet data too short to parse
header: data len 86
INFO:packet:(dhcp parse) warning DHCP packet data too short to parse
header: data len 86
INFO:packet:(dhcp parse) warning DHCP packet data too short to parse
header: data len 86
INFO:packet:(dhcp parse) warning DHCP packet data too short to parse
header: data len 86
INFO:packet:(dhcp parse) warning DHCP packet data too short to parse
header: data len 86
INFO:packet:(dhcp parse) warning DHCP packet data too short to parse
header: data len 86
INFO:packet:(dhcp parse) warning DHCP packet data too short to parse
header: data len 86
INFO:packet:(dhcp parse) warning DHCP packet data too short to parse
header: data len 86
INFO:packet:(dhcp parse) warning DHCP packet data too short to parse
header: data len 86
INFO:packet:(dhcp parse) warning DHCP packet data too short to parse
header: data len 86
INFO:packet:(dhcp parse) warning DHCP packet data too short to parse
header: data len 86
INFO:packet:(dhcp parse) warning DHCP packet data too short to parse
header: data len 86
INFO:packet:(dhcp parse) warning DHCP packet data too short to parse
header: data len 86
INFO:openflow.discovery:Received LLDP packet from unknown switch
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.noxrepo.org/pipermail/pox-dev-noxrepo.org/attachments/20131203/85929564/attachment.htm>
More information about the pox-dev
mailing list