Hi, Thank you for testing my patch.
Because this patch does not include unit tests, I will post patches for this problem later. Thanks, Iwase On 2015年08月25日 08:44, Liu, Weijie wrote: > Thanks. > > That works! Please apply this patch. > > Weijie > > ________________________________________ > From: Yusuke Iwase [iwase.yusu...@gmail.com] > Sent: Wednesday, August 19, 2015 20:37 > To: Liu, Weijie > Cc: ryu-devel@lists.sourceforge.net > Subject: Re: [Ryu-devel] A bug of ofctl_rest.py > > Hi, > > On 2015年08月20日 01:15, Liu, Weijie wrote: >> Hi, >> >> I am using ofctl_rest.py and maybe find a bug. >> >> I used "match = parser.OFPMatch(metadata=(15,255), tunnel_id=(31,255))" as >> the match with OpenFlow 1.3. >> >> After that, I used "/stats/flow/<dpid>" of ofctl_rest.py to see the flow >> rules. But it returned: >> >> Traceback (most recent call last): >> File "/home/weijie/.local/lib/python2.7/site-packages/eventlet/wsgi.py", >> line 454, in handle_one_response >> result = self.application(self.environ, start_response) >> File "/usr/local/lib/python2.7/dist-packages/ryu/app/wsgi.py", line 201, >> in __call__ >> return super(wsgify_hack, self).__call__(environ, start_response) >> File "/home/weijie/.local/lib/python2.7/site-packages/webob/dec.py", line >> 130, in __call__ >> resp = self.call_func(req, *args, **self.kwargs) >> File "/home/weijie/.local/lib/python2.7/site-packages/webob/dec.py", line >> 195, in call_func >> return self.func(req, *args, **kwargs) >> File "/usr/local/lib/python2.7/dist-packages/ryu/app/wsgi.py", line 263, >> in __call__ >> return controller(req) >> File "/usr/local/lib/python2.7/dist-packages/ryu/app/wsgi.py", line 125, >> in __call__ >> return getattr(self, action)(req, **kwargs) >> File "/home/weijie/ryu/ryu/app/ofctl_rest.py", line 202, in get_flow_stats >> flows = _ofctl.get_flow_stats(dp, self.waiters, flow) >> File "/usr/local/lib/python2.7/dist-packages/ryu/lib/ofctl_v1_3.py", line >> 482, in get_flow_stats >> match = match_to_str(stats.match) >> File "/usr/local/lib/python2.7/dist-packages/ryu/lib/ofctl_v1_3.py", line >> 380, in match_to_str >> value = value + '/' + mask >> TypeError: unsupported operand type(s) for +: 'int' and 'str' >> >> >> I think the reason is because the type of mask is integer here. Did I do >> anything wrong? Or is it a bug of ofctl_rest.py? > > Thank you for reporting the bug. > I think it is a bug of ofctl_v1_3.py which used by ofctl_rest.py. > > How about the following patch? > If it works well, I will post this patch later. > > diff --git a/ryu/lib/ofctl_v1_3.py b/ryu/lib/ofctl_v1_3.py > index 5b709f3..83a07c9 100644 > --- a/ryu/lib/ofctl_v1_3.py > +++ b/ryu/lib/ofctl_v1_3.py > @@ -250,7 +250,7 @@ def to_match(dp, attrs): > 'mpls_tc': int, > 'mpls_bos': int, > 'pbb_isid': int, > - 'tunnel_id': int, > + 'tunnel_id': to_match_masked_int, > 'ipv6_exthdr': to_match_masked_int} > > keys = {'dl_dst': 'eth_dst', > @@ -377,7 +377,7 @@ def match_to_str(ofmatch): > value = match_masked_int_to_str(value, mask) > else: > if mask is not None: > - value = value + '/' + mask > + value = str(value) + '/' + str(mask) > else: > value = value > match.setdefault(key, value) > > Thanks, > Iwase > >> >> >> -- >> Weijie Liu >> Department of Computer Science >> University of Illinois at Urbana-Champaign >> (217)819-6113 >> ------------------------------------------------------------------------------ >> _______________________________________________ >> Ryu-devel mailing list >> Ryu-devel@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/ryu-devel >> > > ------------------------------------------------------------------------------ > _______________________________________________ > Ryu-devel mailing list > Ryu-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/ryu-devel > ------------------------------------------------------------------------------ _______________________________________________ Ryu-devel mailing list Ryu-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/ryu-devel