Hi Yusuke, Thanks so much for the analysis. I will have Juniper dev to fix this from switch side. On RYU side, even on receipt of malformed packets ( with any trigger), the controller shouldn’t core right? When controller cores, switch also reset the tcp connection and subsequent flow flush. Do you have plans to fix it?
-Ashok On 11/12/14, 8:13 PM, "Yusuke Iwase" <[email protected]> wrote: >Hi, > >On 2014年11月13日 10:49, Ashok Jude wrote: >> HI Yusuke >> >> <<And, which FlowStats message do you mean? >> <<It seems 3 FlowStats messages are included in your attached file. >> <<Is it the 1st one or the 2nd one? >> >> All are the same. I tried requested multiple flow stats messages to OF >> switch ( which is Juniper MX) and every time controller reseted. >> If you suspect if switch sending any malformed packets - would you mind >> pointing that in pcap. Regardless, RYU shouldn’t reset right? > >I think oxm_length is wrong in the OXM field. > e.g.) OFPXMT_OFB_IPV6_DST, OFPXMT_OFB_IPV6_SRC > >If oxm_hasmask is 1, oxm_length should be doubled. > >For example, oxm_length should be 32byte (not 16byte), >if OFPXMT_OFB_IPV6_DST contains oxm_hasmask. > >Please check the attached file which is the test result of Open vSwitch. > > >> >> Thanks for the help. >> >> >> >> On 11/12/14, 5:39 PM, "Yusuke Iwase" <[email protected]> wrote: >> >>> Hi, >>> >>> I found the same bug report in the Ryu-devel Mail Archive. >>> Could you check this messages below? >>> >>> --- Mail Archive >>> --------------------------------------------------------------------- >>> >>> On Mar 16, 2014, at 5:38 AM, FUJITA Tomonori >>> <[email protected]> >>> wrote: >>> >>>> On Fri, 14 Mar 2014 13:44:08 -0700 >>>> [email protected] wrote: >>>> >>>>> >>>>> Hi, >>>>> >>>>> I am experiencing an runtime exception with Ryu, when i entered this >>>>> REST >>>>> request: >>>>> >>>>> curl http://0.0.0.0:8080/stats/flow/272744406898180 >>>>> >>>>> The log is as below: >>>>> >>>>> (16470) accepted ('127.0.0.1', 46669) >>>>> Error in the datapath 0000f80f417cd604 from ('10.1.10.199', 56049) >>>>> hub: uncaught exception: Traceback (most recent call last): >>>>> File "/usr/local/lib/python2.7/dist-packages/ryu/lib/hub.py", line >>>>> 48, in >>>>> _launch >>>>> func(*args, **kwargs) >>>>> File >>>>> >>>>>"/usr/local/lib/python2.7/dist-packages/ryu/controller/controller.py", >>>>> line 295, in datapath_connection_factory >>>>> datapath.serve() >>>>> File >>>>> >>>>>"/usr/local/lib/python2.7/dist-packages/ryu/controller/controller.py", >>>>> line 215, in serve >>>>> self._recv_loop() >>>>> File >>>>> >>>>>"/usr/local/lib/python2.7/dist-packages/ryu/controller/controller.py", >>>>> line 93, in deactivate >>>>> method(self) >>>>> File >>>>> >>>>>"/usr/local/lib/python2.7/dist-packages/ryu/controller/controller.py", >>>>> line 147, in _recv_loop >>>>> version, msg_type, msg_len, xid, buf) >>>>> File >>>>> >>>>> >>>>>"/usr/local/lib/python2.7/dist-packages/ryu/ofproto/ofproto_parser.py" >>>>>, >>>>> line >>>>> 62, in msg >>>>> version, msg_type, msg_len, xid, utils.bytearray_to_hex(buf)) >>>>> File "/usr/local/lib/python2.7/dist-packages/ryu/utils.py", line >>>>>103, >>>>> in >>>>> bytearray_to_hex >>>>> return ' '.join(hex(ord(byte)) for byte in data) >>>>> File "/usr/local/lib/python2.7/dist-packages/ryu/utils.py", line >>>>>103, >>>>> in >>>>> <genexpr> >>>>> return ' '.join(hex(ord(byte)) for byte in data) >>>>> TypeError: ord() expected string of length 1, but int found >>>>> >>>>> >>>>> Any idea what is wrong or any advice how to fix it will be very >>>>> appreciated. >>>> >>>> Looks like that the switch sent a malformed flow stats response. What >>>> OF switch you use? >>> >>> >>>------------------------------------------------------------------------ >>>-- >>> ------------ >>> >>> And, which FlowStats message do you mean? >>> It seems 3 FlowStats messages are included in your attached file. >>> Is it the 1st one or the 2nd one? >>> >>> On 2014年11月12日 11:16, Ashok Jude wrote: >>>> Hi RYU team, >>>> >>>> I am seeing following issue with RYU. I am testing flow stats request >>>> with vendor hardware switch using OF1.3.1 >>>> >>>> Step 1 : Pushed the below flow from RYU to switch. The flow gets >>>> installed rightly. >>>> >>>> curl -X POST -d '{"dpid": "71145865295808","priority":"1","match": >>>> {"in_port": "2","dl_type":"34525","ipv6_src":"2001::/64","ipv6_dst": >>>> "1001::1","nw_proto":"6","tcp_src":"1"},"actions": [{"type": "OUTPUT", >>>> "port": "1"}]}' http://localhost:8080/stats/flowentry/add >>>> >>>> >>>> This can be any type of flow for this matter. >>>> >>>> >>>> Step2: Using the below curl command requested for flow stats. >>>> >>>> >>>> curl -X GET http://localhost:8080/stats/flow/71145865295808 >>>> >>>> >>>> At this point, RYU cored with traceback and reseted the controller >>>> connection. Attached the PCAP as well. Can you help troubleshoot or >>>>fix >>>> this issue w.r.t to RYU? >>>> >>>> >>>> 127.0.0.1 - - [11/Nov/2014 20:11:15] "GET /stats/flow/110533271024824 >>>> HTTP/1.1" 404 122 0.000394 >>>> (1968) accepted ('127.0.0.1', 48296) >>>> Error in the datapath 000040b4f00737c0 from ('10.102.143.26', 54049) >>>> EVENT ofp_event->dpset EventOFPStateChange >>>> hub: uncaught exception: Traceback (most recent call last): >>>> File "/usr/local/lib/python2.7/dist-packages/ryu/lib/hub.py", line >>>> 52, in _launch >>>> func(*args, **kwargs) >>>> File >>>> "/usr/local/lib/python2.7/dist-packages/ryu/controller/controller.py", >>>> line 306, in datapath_connection_factory >>>> datapath.serve() >>>> File >>>> "/usr/local/lib/python2.7/dist-packages/ryu/controller/controller.py", >>>> line 226, in serve >>>> self._recv_loop() >>>> File >>>> "/usr/local/lib/python2.7/dist-packages/ryu/controller/controller.py", >>>> line 102, in deactivate >>>> method(self) >>>> File >>>> "/usr/local/lib/python2.7/dist-packages/ryu/controller/controller.py", >>>> line 157, in _recv_loop >>>> version, msg_type, msg_len, xid, buf) >>>> File >>>> >>>>"/usr/local/lib/python2.7/dist-packages/ryu/ofproto/ofproto_parser.py", >>>> line 63, in msg >>>> version, msg_type, msg_len, xid, utils.bytearray_to_hex(buf)) >>>> File "/usr/local/lib/python2.7/dist-packages/ryu/utils.py", line >>>>103, >>>> in bytearray_to_hex >>>> return ' '.join(hex(ord(byte)) for byte in data) >>>> File "/usr/local/lib/python2.7/dist-packages/ryu/utils.py", line >>>>103, >>>> in <genexpr> >>>> return ' '.join(hex(ord(byte)) for byte in data) >>>> TypeError: ord() expected string of length 1, but int found >>>> >>>> >>>> >>>> >>>> _ >>>> _ >>>> >>>> >>>> >>>> >>>> >>>>----------------------------------------------------------------------- >>>>-- >>>> ----- >>>> Comprehensive Server Monitoring with Site24x7. >>>> Monitor 10 servers for $9/Month. >>>> Get alerted through email, SMS, voice calls or mobile push >>>> notifications. >>>> Take corrective actions from your mobile device. >>>> >>>> >>>>http://pubads.g.doubleclick.net/gampad/clk?id=154624111&iu=/4140/ostg.c >>>>lk >>>> trk >>>> >>>> >>>> >>>> _______________________________________________ >>>> Ryu-devel mailing list >>>> [email protected] >>>> https://lists.sourceforge.net/lists/listinfo/ryu-devel >>>> >> ------------------------------------------------------------------------------ Comprehensive Server Monitoring with Site24x7. Monitor 10 servers for $9/Month. Get alerted through email, SMS, voice calls or mobile push notifications. Take corrective actions from your mobile device. http://pubads.g.doubleclick.net/gampad/clk?id=154624111&iu=/4140/ostg.clktrk _______________________________________________ Ryu-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/ryu-devel
