<div>Dear Murphy,</div><div><br></div><div><br></div>Thanks again for your kindly clarifying.<div><br></div><div>But sometimes I got error message when I delete flows from controller using the <span style="background-color:rgb(255,255,255);font-family:Arial,Helvetica,FreeSans,sans-serif;font-size:13.333333015441895px;line-height:17.33333396911621px">OFPFC_DELETE </span><span style="font-size:13.333333015441895px;background-color:rgb(255,255,255);font-family:Arial,Helvetica,FreeSans,sans-serif;line-height:17.33333396911621px">in </span><font face="Arial, Helvetica, FreeSans, sans-serif"><span style="line-height:17.33333396911621px">ofp_flow_mod object</span></font> like below:</div>
<div><br></div><div><div>Exception while handling Connection!PacketIn...</div><div><br></div><div>Traceback (most recent call last):</div><div> File "/pox/pox/lib/revent/revent.py", line 233, in raiseEventNoErrors</div>
<div> return self.raiseEvent(event, *args, **kw)</div><div> File "/pox/pox/lib/revent/revent.py", line 280, in raiseEvent</div><div> rv = event._invoke(handler, *args, **kw)</div><div> File "/pox/pox/lib/revent/revent.py", line 158, in _invoke</div>
<div> return handler(self, *args, **kw)</div><div> File "/pox/pox/forwarding/test_wayne2.py", line 97, in _handle_PacketIn</div><div> packet = event.parse()</div><div> File "/pox/pox/openflow/__init__.py", line 162, in parse</div>
<div> self._parsed = ethernet(self.data)</div><div> File "/pox/pox/lib/packet/ethernet.py", line 102, in __init__</div><div> self.parse(raw)</div><div> File "/pox/pox/lib/packet/ethernet.py", line 124, in parse</div>
<div> self.next = ethernet.type_parsers[self.type](raw[ethernet.MIN_LEN:], self)</div><div> File "/pox/pox/lib/packet/ipv4.py", line 96, in __init__</div><div> self.parse(raw)</div><div> File "/pox/pox/lib/packet/ipv4.py", line 153, in parse</div>
<div> self.next = udp(raw=raw[self.hl*4:length], prev=self)</div><div> File "/pox/pox/lib/packet/udp.py", line 70, in __init__</div><div> self.parse(raw)</div><div> File "/pox/pox/lib/packet/udp.py", line 100, in parse</div>
<div> self.next = dhcp(raw=raw[udp.MIN_LEN:],prev=self)</div><div> File "/pox/pox/lib/packet/dhcp.py", line 135, in __init__</div><div> self.parse(raw)</div><div> File "/pox/pox/lib/packet/dhcp.py", line 205, in parse</div>
<div> self.parseOptions()</div><div> File "/pox/pox/lib/packet/dhcp.py", line 215, in parseOptions</div><div> (opt_val[0],))</div><div>TypeError: %u format: a number is required, not str</div></div><div><br>
</div><div>Did this error caused by the interlaced time between packet come to controller and delete flows from controller?</div><div><br></div><div>Thanks again and sorry for bothering you to clarify my questions.</div><div>
<br><br><div class="gmail_quote">2013/5/18 Murphy McCauley <span dir="ltr"><<a href="mailto:murphy.mccauley@gmail.com" target="_blank">murphy.mccauley@gmail.com</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im">On May 18, 2013, at 4:16 AM, chenli wrote:<br>
> But I want to ask why during the connection between OpenFlow switch and POX controller, POX command line usually dump some information like below:<br>
><br>
> [packet ] (dhcp parse) warning DHCP packet data too short to parse header: data len 86<br>
><br>
> Is this invoke by the arp broadcast or the other problems?<br>
<br>
</div>I've added this to the POX manual FAQ under the heading "What are these log messages from the packet subsystem?":<br>
<a href="https://openflow.stanford.edu/display/ONL/POX+Wiki" target="_blank">https://openflow.stanford.edu/display/ONL/POX+Wiki</a><br>
<br>
Generally this is caused by a packet being sent to the controller due to a table miss. Switches usually default to not sending the entire packet -- they only send the first part (often the first 128 bytes). This is enough to see the MAC addresses, ethertype, VLAN, IP header, etc. But it's often NOT enough to, for example, hold an entire DHCP message.<br>
<br>
Thus, when a DHCP message gets sent to the controller, if POX tries to parse it, it often finds it can't and issues a message like this. Unless you're actually trying to examine the DHCP message, however, this isn't indicative of any problem, which is why the message comes out at INFO level and not WARN level (despite the fact that the message itself contains the word "warning", which is a holdover from long ago).<br>
<br>
I routinely switch the packet subsystem to warning log level (log.level --packet=WARN).<br>
<span class="HOEnZb"><font color="#888888"><br>
-- Murphy</font></span></blockquote></div><br></div>