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

Reply via email to