Closed bocon13 closed 11 years ago
I can't replicate this bug on the most recent POX master as of today, or on the version I used with most RipL testing previously (8fab5f5c, from May 6 2012).
I also can't match the line numbers in your exception printout to either of these versions, which would help me verify a fix as well as trace the code path POX uses w/buffer id's.
Can you let me know the specific POX commit you're using (with git log -1), along with an example of steps that would trigger the bug for you?
Here were the steps:
~/pox/pox.py riplpox.riplpox --topo=ft,4 --routing=hashed --mode=reactive
sudo mn --custom ~/ripl/ripl/mn.py --topo ft,4 --controller=remote --mac
It turns out that the default branch on github for pox is: betta This was the branch that I was using; I switched to master and it works like a charm.
Here's where I'm at now for the record: commit 0a1bbb8128ed84c3bfb1d2b985dcc41ae4be7425 Author: Murphy McCauley murphy.mccauley@gmail.com Date: Sat Nov 24 01:52:07 2012 -0800
You should be able to reproduce by just checking out the lastest from betta branch if you want. But, I will close the issue for now. Thanks!
OK. I noted the version against which RipL was tested, 0a1bbb8, in the INSTALL file and put it at the top to make sure people notice. Thanks for the bug report.
Hi I'm facing exactly the same problem and the message shows when I pingpair on mininet : ERROR:core:Exception while handling OpenFlowNexus!PacketIn... Traceback (most recent call last): File "/home/shuping/pox/pox/lib/revent/revent.py", line 234, in raiseEventNoErrors return self.raiseEvent(event, *args, kw) File "/home/shuping/pox/pox/lib/revent/revent.py", line 281, in raiseEvent rv = event._invoke(handler, *args, *kw) File "/home/shuping/pox/pox/lib/revent/revent.py", line 159, in _invoke return handler(self, args, kw) File "/home/shuping/riplpox/riplpox/riplpox.py", line 350, in _handle_PacketIn self._handle_packet_reactive(event) File "/home/shuping/riplpox/riplpox/riplpox.py", line 252, in _handle_packet_reactive self._flood(event) File "/home/shuping/riplpox/riplpox/riplpox.py", line 212, in _flood for sw in self._raw_dpids(t.layer_nodes(t.LAYER_EDGE)): File "/home/shuping/ripl/ripl/dctopo.py", line 136, in layer_nodes nodes = [n for n in self.g.nodes() if is_layer(n)] File "/home/shuping/ripl/ripl/dctopo.py", line 134, in is_layer return self.layer(n) == layer File "/home/shuping/ripl/ripl/dctopo.py", line 115, in layer return self.node_info[name]['layer'] AttributeError: 'FatTreeTopo' object has no attribute 'node_info'
I don't know how to slove this problem,were you able to slove it? Thanks!
hello after adding the flow in pox controller i found error in core: exception while handling discovery link event. i am also attaching the screen shot in description.
In riplpox.py: def install(self, port, match, buf = -1, idle_timeout = 0, hard_timeout = 0): msg = of.ofp_flow_mod() msg.match = match msg.idle_timeout = idle_timeout msg.hard_timeout = hard_timeout msg.actions.append(of.ofp_action_output(port = port)) msg.buffer_id = buf self.connection.send(msg)
buffer_id is expected to be an unsigned long, and neither the proactive nor reactive functions set this value.
FIX: This will work if we change: buf = -1 to: buf = None
diff --git a/riplpox/riplpox.py b/riplpox/riplpox.py index 2fef84e..70daa6f 100644 --- a/riplpox/riplpox.py +++ b/riplpox/riplpox.py @@ -68,7 +68,7 @@ class Switch (EventMixin): msg.buffer_id = buffer_id self.connection.send(msg)
dump of error
ERROR:core:Exception while handling OpenFlowNexus!PacketIn... Traceback (most recent call last): File "/home/ubuntu/pox/pox/lib/revent/revent.py", line 234, in raiseEventNoErrors return self.raiseEvent(event, _args, _kw) File "/home/ubuntu/pox/pox/lib/revent/revent.py", line 281, in raiseEvent rv = event._invoke(handler, _args, _kw) File "/home/ubuntu/pox/pox/lib/revent/revent.py", line 159, in _invoke return handler(self, _args, *_kw) File "/home/ubuntu/riplpox/riplpox/riplpox.py", line 241, in _handle_PacketIn self._handle_packet_reactive(event) File "/home/ubuntu/riplpox/riplpox/riplpox.py", line 213, in _handle_packet_reactive self._install_reactive_path(event, out_dpid, out_port, packet) File "/home/ubuntu/riplpox/riplpox/riplpox.py", line 133, in _install_reactive_path self.switches[node_dpid].install(out_port, match, idle_timeout = 10) File "/home/ubuntu/riplpox/riplpox/riplpox.py", line 78, in install self.connection.send(msg) File "/home/ubuntu/pox/pox/openflow/of_01.py", line 687, in send data = data.pack() File "/home/ubuntu/pox/pox/openflow/libopenflow_01.py", line 2247, in pack self.flags) error: integer out of range for 'L' format code