noxrepo / pox

The POX network software platform
https://noxrepo.github.io/pox-doc/html/
Apache License 2.0
627 stars 473 forks source link

Pox error and packet loss when running openflow discovery and spanning tree on large fat tree topologies #139

Closed gmoleski closed 7 years ago

gmoleski commented 9 years ago

Hi whenever I am running pox with this command "pox.py forwarding.l2_multi openflow.discovery openflow.spanning_tree --no-flood --hold-down" and a fat tree topology with 50-80 hosts I can't make them communicate. Some can communicate but most not. I think this is mostly due to link timeout, however when I set a larger link timeout still the problem isn't entirely solved. Is there a way to get around this?

Some of the errors I also get are: ERROR:openflow.of_01:[00-00-00-00-00-20 457] OpenFlow Error: [00-00-00-00-00-20 457] Error: header: [00-00-00-00-00-20 457] Error: version: 1 [00-00-00-00-00-20 457] Error: type: 1 (OFPT_ERROR) [00-00-00-00-00-20 457] Error: length: 36 [00-00-00-00-00-20 457] Error: xid: 112392 [00-00-00-00-00-20 457] Error: type: OFPET_BAD_REQUEST (1) [00-00-00-00-00-20 457] Error: code: OFPBRC_BUFFER_UNKNOWN (8) [00-00-00-00-00-20 457] Error: datalen: 24 [00-00-00-00-00-20 457] Error: 0000: 01 0d 00 18 00 01 b7 08 00 00 03 4f 0000 08 |...........O....| [00-00-00-00-00-20 457] Error: 0010: 00 00 00 08 ff fb 00 00 |........ |

And also l2_multi throws the error "packet arrived without flow".

Thanks.

lordlabakdas commented 7 years ago

Yes, you are right. A lot of times, during the tests, my laptop freezes and only a hard restart gets it back to working state.

MurphyMc commented 7 years ago

Still needs some work and no doubt full of bugs, but give this a try:

https:// gist.github.com/MurphyMc/ 34074ca2336aa1f6d8d9bf716003c703

lordlabakdas commented 7 years ago

If I understood right, I used openflow.spanning_forest instead of openflow.spanning_tree. The command I used was ./pox.py forwarding.l2_learning openflow.discovery --eat-early-packets --link_timeout=50 openflow.spanning_forest ext.coronet log --format="[%(asctime)s %(name)s %(levelname)s] %(message)s" --datefmt="%H:%M:%S" log.level --DEBUG The log can be found here

MurphyMc commented 7 years ago

Try just: ./pox.py forwarding.l2_learning openflow.discovery openflow.spanning_forest log --format="[%(asctime)s %(name)s %(levelname)s] %(message)s" --datefmt="%H:%M:%S" log.level --DEBUG

In other words, no custom code. And make sure you're running the latest POX.

lordlabakdas commented 7 years ago

The pings were successful :)

MurphyMc commented 7 years ago

And the CPU usage? Does it get stuck at 100%?

lordlabakdas commented 7 years ago

The CPU usage was not high at all....probably averaging around 10%

MurphyMc commented 7 years ago

Great. Let me know if it continues to work for you. Maybe it's getting to be time to replace the spanning_tree component.

lordlabakdas commented 7 years ago

Awesome! Thanks a lot for all the help.

lordlabakdas commented 7 years ago

Sure will keep you updated with any issues I encounter

lordlabakdas commented 7 years ago

I am having issues with pings using spanning_forest on a simple tree topology with a single loop. Given below are the results I see: With single loop and using spanning_forest: pings do not work Without single loop and using spanning_forest: pings do not work without single loop and not using spanning_forest: pings work I have attached the Mininet test script along with logs for the cases where pings do not work here

MurphyMc commented 7 years ago

From a quick glance at the log, it looks like discovery isn't detecting any links, which would certainly cause problems.

What's your commandline? Can you remove components and see discovery start/stop working? e.g., in one of your cases where things don't work, can you try removing any custom forwarding component and try removing the spanning_forest component? We just want to see discovery mention links being detected.

I guess this could also be due to log config. I don't remember off the top of my head if order matters, but make sure you're setting the log level first thing, just in case, and launching other components after.

lordlabakdas commented 7 years ago

My commandline for the above results was ./pox.py forwarding.l2_learning openflow.discovery openflow.spanning_forest log --format="[%(asctime)s %(name)s %(levelname)s] %(message)s" --datefmt="%H:%M:%S" log.level --DEBUG

I then removed openflow.spanning_forest and changed the log order(commandline=./pox.py log --format="[%(asctime)s %(name)s %(levelname)s] %(message)s" --datefmt="%H:%M:%S" log.level --DEBUG openflow.discovery forwarding.l2_learning) and pings were successful. This is for the case where there are no loops in the network. But when I put back spanning_forest(preserving the log order), pings were unsuccessful. There were no other custom components that I was using.

MurphyMc commented 7 years ago

Right, without spanning_forest, we'd expect it to work because no links are being disabled. But did you see link detected events from discovery?

lordlabakdas commented 7 years ago

I do not see any links events from discovery. The only events I see are the Installing flow events as given below in both the successful ping and the unsuccessful ping scenarios

$ grep "discovery" test.txt
[17:05:34 openflow.discovery DEBUG] Installing flow for 00-00-00-00-00-01
[17:05:34 openflow.discovery DEBUG] Installing flow for 00-00-00-00-00-03
[17:05:34 openflow.discovery DEBUG] Installing flow for 00-00-00-00-00-02
[17:05:34 openflow.discovery DEBUG] Installing flow for 00-00-00-00-00-04
[17:05:34 openflow.discovery DEBUG] Installing flow for 00-00-00-00-00-05
MurphyMc commented 7 years ago

The last thing to try for the moment is without l2_learning. Just ./pox.py log --format="[%(asctime)s %(name)s %(levelname)s] %(message)s" --datefmt="%H:%M:%S" log.level --DEBUG openflow.discovery.

I'm guessing you aren't going to see any link detected events, which is pretty surprising. It's not like it hasn't been used on simple tree/linear topologies like this many times. That needs to be investigated.

lordlabakdas commented 7 years ago

I see link detected events now and are pasted below. The entire log is posted here

[17:23:19 openflow.discovery DEBUG] Installing flow for 00-00-00-00-00-01
[17:23:19 openflow.discovery DEBUG] Installing flow for 00-00-00-00-00-03
[17:23:19 openflow.discovery DEBUG] Installing flow for 00-00-00-00-00-02
[17:23:20 openflow.discovery DEBUG] Installing flow for 00-00-00-00-00-04
[17:23:20 openflow.discovery DEBUG] Installing flow for 00-00-00-00-00-05
[17:23:20 openflow.discovery INFO] link detected: 00-00-00-00-00-01.1 -> 00-00-00-00-00-02.2
[17:23:21 openflow.discovery INFO] link detected: 00-00-00-00-00-01.2 -> 00-00-00-00-00-03.1
[17:23:21 openflow.discovery INFO] link detected: 00-00-00-00-00-03.1 -> 00-00-00-00-00-01.2
[17:23:22 openflow.discovery INFO] link detected: 00-00-00-00-00-03.2 -> 00-00-00-00-00-05.1
[17:23:22 openflow.discovery INFO] link detected: 00-00-00-00-00-02.1 -> 00-00-00-00-00-04.2
[17:23:23 openflow.discovery INFO] link detected: 00-00-00-00-00-02.2 -> 00-00-00-00-00-01.1
[17:23:24 openflow.discovery INFO] link detected: 00-00-00-00-00-04.2 -> 00-00-00-00-00-02.1
[17:23:24 openflow.discovery INFO] link detected: 00-00-00-00-00-05.1 -> 00-00-00-00-00-03.2
[17:23:19 openflow.discovery DEBUG] Installing flow for 00-00-00-00-00-01
[17:23:19 openflow.discovery DEBUG] Installing flow for 00-00-00-00-00-03
[17:23:19 openflow.discovery DEBUG] Installing flow for 00-00-00-00-00-02
[17:23:20 openflow.discovery DEBUG] Installing flow for 00-00-00-00-00-04
[17:23:20 openflow.discovery DEBUG] Installing flow for 00-00-00-00-00-05
[17:23:20 openflow.discovery INFO] link detected: 00-00-00-00-00-01.1 -> 00-00-00-00-00-02.2
[17:23:21 openflow.discovery INFO] link detected: 00-00-00-00-00-01.2 -> 00-00-00-00-00-03.1
[17:23:21 openflow.discovery INFO] link detected: 00-00-00-00-00-03.1 -> 00-00-00-00-00-01.2
[17:23:22 openflow.discovery INFO] link detected: 00-00-00-00-00-03.2 -> 00-00-00-00-00-05.1
[17:23:22 openflow.discovery INFO] link detected: 00-00-00-00-00-02.1 -> 00-00-00-00-00-04.2
[17:23:23 openflow.discovery INFO] link detected: 00-00-00-00-00-02.2 -> 00-00-00-00-00-01.1
[17:23:24 openflow.discovery INFO] link detected: 00-00-00-00-00-04.2 -> 00-00-00-00-00-02.1
[17:23:24 openflow.discovery INFO] link detected: 00-00-00-00-00-05.1 -> 00-00-00-00-00-03.2
MurphyMc commented 7 years ago

Can you confirm that it's a matter of whether l2_learning is included or not? It could also be like... whether l2_learning is loaded before or after discovery, or when you start the controller up relative to when you start up the switches. I'm rusty enough at this stuff that I can't be sure what matters and what doesn't. :)

If it seems to be l2_learning that's causing the problem, you should be able to start up with everything except it and spanning_forest will at least build good trees even though forwarding won't work (the current messages all say 0 of 0 links, which is bad... we'd like to see x of y links where x and y are both greater than 0!).

lordlabakdas commented 7 years ago

It seems like I see links detected events only when openflow.discovery is the only component. Once any other component is added, the link detected events disappear. The order of the components does not seem to matter. The spanning_forest component always shows 0 of 0 links in whatever combination of components it is in, with l2_learning and without. The only time there were successful pings (that is without a loop in the topology) is when forwarding.l2_learning openflow.discovery were used.

The logs for the various cases are given below:

#The no loop case which had successful pings
$ ./pox.py log --format="[%(asctime)s %(name)s %(levelname)s] %(message)s" --datefmt="%H:%M:%S" log.level --DEBUG forwarding.l2_learning openflow.discovery > test.txt 2>&1
[17:55:46 openflow.discovery DEBUG] Installing flow for 00-00-00-00-00-01
[17:55:46 openflow.discovery DEBUG] Installing flow for 00-00-00-00-00-02
[17:55:46 openflow.discovery DEBUG] Installing flow for 00-00-00-00-00-03
[17:55:46 openflow.discovery DEBUG] Installing flow for 00-00-00-00-00-04
[17:55:46 openflow.discovery DEBUG] Installing flow for 00-00-00-00-00-05

# Unsuccessful pings
$ ./pox.py log --format="[%(asctime)s %(name)s %(levelname)s] %(message)s" --datefmt="%H:%M:%S" log.level --DEBUG openflow.discovery > test.txt 2>&1
[17:58:21 openflow.discovery DEBUG] Installing flow for 00-00-00-00-00-01
[17:58:21 openflow.discovery DEBUG] Installing flow for 00-00-00-00-00-02
[17:58:21 openflow.discovery DEBUG] Installing flow for 00-00-00-00-00-04
[17:58:21 openflow.discovery DEBUG] Installing flow for 00-00-00-00-00-03
[17:58:21 openflow.discovery DEBUG] Installing flow for 00-00-00-00-00-05
[17:58:21 openflow.discovery INFO] link detected: 00-00-00-00-00-01.1 -> 00-00-00-00-00-02.2
[17:58:22 openflow.discovery INFO] link detected: 00-00-00-00-00-01.2 -> 00-00-00-00-00-03.1
[17:58:22 openflow.discovery INFO] link detected: 00-00-00-00-00-02.1 -> 00-00-00-00-00-04.2
[17:58:23 openflow.discovery INFO] link detected: 00-00-00-00-00-02.2 -> 00-00-00-00-00-01.1
[17:58:24 openflow.discovery INFO] link detected: 00-00-00-00-00-04.2 -> 00-00-00-00-00-02.1
[17:58:24 openflow.discovery INFO] link detected: 00-00-00-00-00-03.1 -> 00-00-00-00-00-01.2
[17:58:25 openflow.discovery INFO] link detected: 00-00-00-00-00-03.2 -> 00-00-00-00-00-05.1
[17:58:25 openflow.discovery INFO] link detected: 00-00-00-00-00-05.1 -> 00-00-00-00-00-03.2

#Unsuccessful pings
$ ./pox.py log --format="[%(asctime)s %(name)s %(levelname)s] %(message)s" --datefmt="%H:%M:%S" log.level --DEBUG openflow.discovery openflow.spanning_forest > test.txt 2>&1
[17:59:16 openflow.discovery DEBUG] Installing flow for 00-00-00-00-00-02
[17:59:16 openflow.discovery DEBUG] Installing flow for 00-00-00-00-00-01
[17:59:16 openflow.discovery DEBUG] Installing flow for 00-00-00-00-00-03
[17:59:16 openflow.discovery DEBUG] Installing flow for 00-00-00-00-00-04
[17:59:16 openflow.discovery DEBUG] Installing flow for 00-00-00-00-00-05
[18:16:43 openflow.spanning_forest DEBUG] Computed spanning forest: 0 of 0 links
[18:16:43 openflow.spanning_forest.00-00-00-00-00-02 INFO] Configured 2 ports
[18:16:43 openflow.spanning_forest DEBUG] Computed spanning forest: 0 of 0 links
[18:16:43 openflow.spanning_forest.00-00-00-00-00-01 INFO] Configured 2 ports
[18:16:43 openflow.spanning_forest DEBUG] Computed spanning forest: 0 of 0 links
[18:16:43 openflow.spanning_forest.00-00-00-00-00-03 INFO] Configured 2 ports
[18:16:43 openflow.spanning_forest DEBUG] Computed spanning forest: 0 of 0 links
[18:16:43 openflow.spanning_forest.00-00-00-00-00-04 INFO] Configured 2 ports
[18:16:43 openflow.spanning_forest DEBUG] Computed spanning forest: 0 of 0 links
[18:16:43 openflow.spanning_forest.00-00-00-00-00-05 INFO] Configured 2 ports
[18:16:49 openflow.spanning_forest DEBUG] Computed spanning forest: 0 of 0 links
[18:16:49 openflow.spanning_forest.00-00-00-00-00-01 INFO] Configured 0 ports
[18:16:49 openflow.spanning_forest.00-00-00-00-00-02 INFO] Configured 0 ports
[18:16:49 openflow.spanning_forest.00-00-00-00-00-03 INFO] Configured 0 ports
[18:16:49 openflow.spanning_forest.00-00-00-00-00-04 INFO] Configured 0 ports
[18:16:49 openflow.spanning_forest DEBUG] Computed spanning forest: 0 of 0 links
[18:16:50 openflow.spanning_forest DEBUG] Computed spanning forest: 0 of 0 links
[18:16:50 openflow.spanning_forest DEBUG] Computed spanning forest: 0 of 0 links
[18:16:50 openflow.spanning_forest DEBUG] Computed spanning forest: 0 of 0 links

# unsuccessful pings
$ ./pox.py log --format="[%(asctime)s %(name)s %(levelname)s] %(message)s" --datefmt="%H:%M:%S" log.level --DEBUG openflow.discovery openflow.spanning_forest forwarding.l2_learning > test.txt 2>&1
[18:10:10 openflow.discovery DEBUG] Installing flow for 00-00-00-00-00-02
[18:10:10 openflow.discovery DEBUG] Installing flow for 00-00-00-00-00-01
[18:10:10 openflow.discovery DEBUG] Installing flow for 00-00-00-00-00-03
[18:10:10 openflow.discovery DEBUG] Installing flow for 00-00-00-00-00-04
[18:10:10 openflow.discovery DEBUG] Installing flow for 00-00-00-00-00-05
[18:15:27 openflow.spanning_forest DEBUG] Computed spanning forest: 0 of 0 links
[18:15:27 openflow.spanning_forest.00-00-00-00-00-02 INFO] Configured 2 ports
[18:15:27 openflow.spanning_forest DEBUG] Computed spanning forest: 0 of 0 links
[18:15:27 openflow.spanning_forest.00-00-00-00-00-01 INFO] Configured 2 ports
[18:15:27 openflow.spanning_forest DEBUG] Computed spanning forest: 0 of 0 links
[18:15:27 openflow.spanning_forest.00-00-00-00-00-03 INFO] Configured 2 ports
[18:15:27 openflow.spanning_forest DEBUG] Computed spanning forest: 0 of 0 links
[18:15:27 openflow.spanning_forest.00-00-00-00-00-05 INFO] Configured 2 ports
[18:15:27 openflow.spanning_forest DEBUG] Computed spanning forest: 0 of 0 links
[18:15:27 openflow.spanning_forest.00-00-00-00-00-04 INFO] Configured 2 ports
[18:15:33 openflow.spanning_forest DEBUG] Computed spanning forest: 0 of 0 links
[18:15:33 openflow.spanning_forest.00-00-00-00-00-01 INFO] Configured 0 ports
[18:15:33 openflow.spanning_forest.00-00-00-00-00-02 INFO] Configured 0 ports
[18:15:33 openflow.spanning_forest.00-00-00-00-00-03 INFO] Configured 0 ports
[18:15:33 openflow.spanning_forest.00-00-00-00-00-04 INFO] Configured 0 ports
[18:15:33 openflow.spanning_forest DEBUG] Computed spanning forest: 0 of 0 links
[18:15:33 openflow.spanning_forest DEBUG] Computed spanning forest: 0 of 0 links
[18:15:33 openflow.spanning_forest DEBUG] Computed spanning forest: 0 of 0 links
[18:15:33 openflow.spanning_forest DEBUG] Computed spanning forest: 0 of 0 links
MurphyMc commented 7 years ago

That seems pretty strange. Unfortunately, I don't have time to investigate until after the 10th...

humikahout commented 7 years ago

I am running pox with mininet Some of the errors I get ERROR:openflow.of_01:[00-00-00-00-00-20 457] OpenFlow Error: [00-00-00-00-00-20 457] Error: header: [00-00-00-00-00-20 457] Error: version: 1 [00-00-00-00-00-20 457] Error: type: 1 (OFPT_ERROR) [00-00-00-00-00-20 457] Error: length: 36 [00-00-00-00-00-20 457] Error: xid: 112392 [00-00-00-00-00-20 457] Error: type: OFPET_BAD_REQUEST (1) [00-00-00-00-00-20 457] Error: code: OFPBRC_BUFFER_UNKNOWN (8) [00-00-00-00-00-20 457] Error: datalen: 24 [00-00-00-00-00-20 457] Error: 0000: 01 0d 00 18 00 01 b7 08 00 00 03 4f 0000 08 |...........O....| [00-00-00-00-00-20 457] Error: 0010: 00 00 00 08 ff fb 00 00 |........ | And network topology code that i run with mininet from mininet.cli import CLI from mininet.net import Mininet from mininet.node import Controller, RemoteController, OVSController from mininet.link import TCLink from mininet.util import dumpNodeConnections from mininet.log import lg if name == 'main': lg.setLogLevel('info') net = Mininet( controller=RemoteController, link=TCLink) #listenPort is necessary for adding flow entry net.addController( 'c0', controller=RemoteController, ip='192.168.10.7', port=6633 ) #HOST constructor H1 = net.addHost('h1',mac='aa:aa:aa:aa:aa:01') #VIDEO STREAMING SERVER H2 = net.addHost('h2',mac='aa:aa:aa:aa:aa:02') #MEDICAL SERVER H3 = net.addHost('h3',mac='aa:aa:aa:aa:aa:03') #MULTIMEDIA CLIENT H4 = net.addHost('h4',mac='aa:aa:aa:aa:aa:04') #MEDICAL CLIENT #SWITCH constructor; S1 = net.addSwitch('s1', listenPort=6634) S2 = net.addSwitch('s2', listenPort=6635) S3 = net.addSwitch('s3', listenPort=6636) S4 = net.addSwitch('s4', listenPort=6637) S5 = net.addSwitch('s5', listenPort=6638) S6 = net.addSwitch('s6', listenPort=6639) #LINK constructor net.addLink(H3, S1, delay='1ms', loss=0, bw=10) net.addLink(H4, S4, delay='1ms', loss=0, bw=10) net.addLink(S1, S2, delay='1ms', loss=0, bw=10) net.addLink(S1, S5, delay='1ms', loss=0, bw=10) net.addLink(S1, S4, delay='1ms', loss=0, bw=10) net.addLink(S4, S2, delay='1ms', loss=0, bw=10) net.addLink(S4, S5, delay='1ms', loss=0, bw=10) net.addLink(S2, S3, delay='1ms', loss=0, bw=10) net.addLink(S2, S6, delay='1ms', loss=0, bw=10) net.addLink(S2, S5, delay='1ms', loss=0, bw=10) net.addLink(S5, S3, delay='1ms', loss=0, bw=10) net.addLink(S5, S6, delay='1ms', loss=0, bw=10) net.addLink(S3, H1, delay='1ms', loss=0, bw=10) net.addLink(S3, S6, delay='1ms', loss=0, bw=10) net.addLink(S6, H2, delay='1ms', loss=0, bw=10) # Start network net.start() CLI( net ) print " Dumping host connections" dumpNodeConnections(net.hosts) print " Testing network connectivity" net.pingALL() print " host are running " print " type 'exit' or control-D to shut down network " net.stop()

MurphyMc commented 7 years ago

@humikahout, the above message is awfully hard to read.

Are you sure this is related to this issue? Does your topology have a loop?

What POX components are you running?

EmanSalameh commented 7 years ago

I have the same error, but I didn't run fattree topology. I run my topology with two pox controllers ERROR:openflow.of_01:[00-00-00-00-00-01 4] OpenFlow Error: [00-00-00-00-00-01 4] Error: header: [00-00-00-00-00-01 4] Error: version: 1 [00-00-00-00-00-01 4] Error: type: 1 (OFPT_ERROR) [00-00-00-00-00-01 4] Error: length: 76 [00-00-00-00-00-01 4] Error: xid: 1034 [00-00-00-00-00-01 4] Error: type: OFPET_BAD_REQUEST (1) [00-00-00-00-00-01 4] Error: code: OFPBRC_BUFFER_UNKNOWN (8) [00-00-00-00-00-01 4] Error: datalen: 64 [00-00-00-00-00-01 4] Error: 0000: 01 0e 00 50 00 00 04 0a

I want to know what is the reason of this error? my topology is: `def myNetwork():

net = Mininet( topo=None, build=False, link=TCLink, controller=RemoteController)

linkopts = dict(bw=100, delay='1us', loss=0)
info( '*** Adding controller ***\n' )
controller1=net.addController(name='controller1', controller=RemoteController, protocol='tcp', port=6633)
controller2=net.addController( name='controller2', controller=RemoteController, protocol='tcp', port=6644)

info( '*** Add switches ***\n')

switch1 = net.addSwitch('switch1', cls=OVSKernelSwitch)
switch2 = net.addSwitch('switch2', cls=OVSKernelSwitch)
net.addLink(switch1, switch2, **linkopts)

#switch1.cmd ('ovs-vsctl set Bridge switch1 protocols=OpenFlow10')
#switch2.cmd ('ovs-vsctl set Bridge switch2 protocols=OpenFlow10')

server1 = net.addHost('server1', cls=Node, ip='10.0.0.1', mac='00:00:00:00:00:01')
net.addLink(switch1, server1, **linkopts)

server2 = net.addHost('server2', cls=Node, ip='10.0.0.2', mac= '00:00:00:00:00:02')
net.addLink(switch2, server2, **linkopts)
service = net.addHost('service', cls=Node, ip='10.0.0.3', mac= '00:00:00:00:00:03')
net.addLink(switch1, service, **linkopts)

info( '*** Add hosts\n')
for h in range(0,31):#
         client = net.addHost('client%s' % (h + 1),cls=Node, ip='10.0.0.%s'%(h+4), mac= '00:00:00:00:00:0%s'%(h+4))
         net.addLink(client, switch1, **linkopts)

for h in range(31,64):#(2,4)
         client = net.addHost('client%s' % (h + 1), cls=Node, ip='10.0.0.%s'%(h+4), mac= '00:00:00:00:00:0%s'%(h+4))
         net.addLink(client, switch2, **linkopts)

info( '*** Starting network ***\n')
net.build()
net. staticArp()
controller1.start()
switch1.start([controller1])
controller2.start()
switch2.start([controller2])

info( '\n*** Starting web servers ***\n')
server1 = net.get('server1')
server1.cmd('iperf -s -p 80 &')
server2 = net.get('server2')
server2.cmd('iperf -s -p 80 &')

time.sleep(20)    
#Start the simulation
info( '*** Starting the simulation ***\n')
start_time = time.time()
finish_time = time.time() - start_time

cli = 1
cli2 = 32
while (finish_time <=20): # run for 300 seconds (simulation time)

   init_time = time.time()
   sec_time = time.time() -init_time
   while (sec_time <= 1):
      for flow in range(0,3):   #Generate 6 flows/s on switch1
         #rnd = random.randint(1, 31)
         host =  net.get('client%s' % (cli))
         host.cmd('iperf  -c 10.0.0.3 -p 80 -n 51K -N  &')
         cli+=1
         if cli >= 32: 
            cli = 1

      for flow in range(0,2):   #Generate 4 flows/s on switch2
         #rnd = random.randint(32, 64)
         host =  net.get('client%s' % (cli2))
         host.cmd('iperf  -c 10.0.0.3  -p 80  -n 51K -N  &')
         cli2+=1
         if cli2 >= 64:
            cli2 = 32

      # End of 1 second
      sec_time = time.time() - init_time
      print "sec_time = " , sec_time
   time.sleep(2)
   #End of simulation
   finish_time = time.time() - start_time
info( '*** End of simulation ***\n')

CLI(net)
net.stop()

if name == 'main': setLogLevel( 'info' ) myNetwork()`

MurphyMc commented 7 years ago

I doubt this is the same issue. You should open a new one. And please describe what you're doing and why and what POX components you're running and what your topology looks like. It looks like it's just two switches and some hosts, but I am not going read your Mininet code carefully.

Also, have you tried eliminating variables first? What happens if you only run a single controller?

humikahout commented 7 years ago

Can u send me ur email address i will email u my custom built topology and bellmanford algorithm and also the screen shots of output than u easilly understand

MurphyMc commented 7 years ago

This issue has been idle for a while and has several different things going on. And I'm hopeful that the new spanning_forest in fangtooth is going to resolve at least some of them. So I'm going to close it.

If you find this issue and think you have something that relates, I'd say open a new issue and reference this one in it.

ghost commented 5 years ago

Some of the errors I also get are: DEBUG:iplb.d4-ca-6d-b6-c7-ac|1:Directing traffic to 192.168.10.4 ERROR:openflow.of_01:[d4-ca-6d-b6-c7-ac|1 1] OpenFlow Error: [00-00-00-00-00-20 457] Error: header: [00-00-00-00-00-20 457] Error: version: 1 [00-00-00-00-00-20 457] Error: type: 1 (OFPT_ERROR) [00-00-00-00-00-20 457] Error: length: 116 [00-00-00-00-00-20 457] Error: xid: 13 [00-00-00-00-00-20 457] Error: type: OFPET_BAD_REQUEST (3) [00-00-00-00-00-20 457] Error: code: OFPBRC_BUFFER_UNKNOWN (0) [00-00-00-00-00-20 457] Error: datalen: 104 [00-00-00-00-00-20 457] Error: 0000: 01 0d 00 18 00 01 b7 08 00 00 03 4f 0000 08 |...........O....| [00-00-00-00-00-20 457] Error: 0010: 00 00 00 08 ff fb 00 00 |........ |

why???

MurphyMc commented 5 years ago

It's impossible to say with the information given, and this issue has unrelated things going on.

Please open a new issue and fully describe what you're doing (e.g., which version of POX, which components, what your topology is like, what type of switches, etc.) and what problem you're having.

ghost commented 5 years ago

Some of the errors I also get are: DEBUG:iplb.d4-ca-6d-b6-c7-ac|1:Directing traffic to 192.168.10.4 ERROR:openflow.of_01:[d4-ca-6d-b6-c7-ac|1 1] OpenFlow Error: [00-00-00-00-00-20 457] Error: header: [00-00-00-00-00-20 457] Error: version: 1 [00-00-00-00-00-20 457] Error: type: 1 (OFPT_ERROR) [00-00-00-00-00-20 457] Error: length: 116 [00-00-00-00-00-20 457] Error: xid: 13 [00-00-00-00-00-20 457] Error: type: OFPET_BAD_REQUEST (3) [00-00-00-00-00-20 457] Error: code: OFPBRC_BUFFER_UNKNOWN (0) [00-00-00-00-00-20 457] Error: datalen: 104 [00-00-00-00-00-20 457] Error: 0000: 01 0d 00 18 00 01 b7 08 00 00 03 4f 0000 08 |...........O....| [00-00-00-00-00-20 457] Error: 0010: 00 00 00 08 ff fb 00 00 |........ |

i used POX version eel and using Mikrotik RB951-2n.