Hi, Thank you for your reply. I will post this patch to Ryu later.
thanks, On 2015年05月18日 11:12, Liu, Weijie wrote: > Look good to me! Thanks a lot! > > > ________________________________________ > From: Minoru TAKAHASHI [[email protected]] > Sent: Sunday, May 17, 2015 21:04 > To: Liu, Weijie > Cc: [email protected] > Subject: Re: [Ryu-devel] [Ryu] Output from ryu.app.ofctl_rest > > Hi, > > Thanks for the report. > > On 2015年05月15日 05:57, Liu, Weijie wrote: >> I suggest that we add the field "wildcards" in the function "match_to_str" >> of "ryu/ryu/lib/ofctl_v1_0.py". That is, >> >> ----- >> in ryu/ryu/lib/ofctl_v1_0.py: >> def match_to_str(m): >> return { >> 'wildcards': m.wildcards, # add it for showing wildcards >> 'dl_dst': haddr_to_str(m.dl_dst), >> ... >> ... >> ... >> 'tp_dst': m.tp_dst} >> >> Then we can use the binary form of 'wildcards' to decide which fields are >> wildcarded or exactly matched. >> > > I think good. > > On the other hand, to make it easier to understand the results, I've created > a patch for omitting the wild card. > What do you think of the follwoing? > > def match_to_str(m): > - return {'dl_dst': haddr_to_str(m.dl_dst), > - 'dl_src': haddr_to_str(m.dl_src), > - 'dl_type': m.dl_type, > - 'dl_vlan': m.dl_vlan, > - 'dl_vlan_pcp': m.dl_vlan_pcp, > - 'in_port': m.in_port, > - 'nw_dst': nw_dst_to_str(m.wildcards, m.nw_dst), > - 'nw_proto': m.nw_proto, > - 'nw_tos': m.nw_tos, > - 'nw_src': nw_src_to_str(m.wildcards, m.nw_src), > - 'tp_src': m.tp_src, > - 'tp_dst': m.tp_dst} > + > + match = {} > + > + if ~m.wildcards & ofproto_v1_0.OFPFW_IN_PORT: > + match['in_port'] = m.in_port > + > + if ~m.wildcards & ofproto_v1_0.OFPFW_DL_VLAN: > + match['dl_vlan'] = m.dl_vlan > + > + if ~m.wildcards & ofproto_v1_0.OFPFW_DL_SRC: > + match['dl_src'] = haddr_to_str(m.dl_src) > + > + if ~m.wildcards & ofproto_v1_0.OFPFW_DL_DST: > + match['dl_dst'] = haddr_to_str(m.dl_dst) > + > + if ~m.wildcards & ofproto_v1_0.OFPFW_DL_TYPE: > + match['dl_type'] = m.dl_type > + > + if ~m.wildcards & ofproto_v1_0.OFPFW_NW_PROTO: > + match['nw_proto'] = m.nw_proto > + > + if ~m.wildcards & ofproto_v1_0.OFPFW_TP_SRC: > + match['tp_src'] = m.tp_src > + > + if ~m.wildcards & ofproto_v1_0.OFPFW_TP_DST: > + match['tp_dst'] = m.tp_dst > + > + if ~m.wildcards & ofproto_v1_0.OFPFW_NW_SRC_ALL: > + match['nw_src'] = m.nw_src_to_str(m.wildcards, m.nw_src) > + > + if ~m.wildcards & ofproto_v1_0.OFPFW_NW_DST_ALL: > + match['nw_dst'] = nw_dst_to_str(m.wildcards, m.nw_dst) > + > + if ~m.wildcards & ofproto_v1_0.OFPFW_DL_VLAN_PCP: > + match['dl_vlan_pcp'] = m.dl_vlan_pcp > + > + if ~m.wildcards & ofproto_v1_0.OFPFW_NW_TOS: > + match['nw_tos'] = m.nw_tos > + > + return match > > before applying this patch: > > $curl http://127.0.0.1:8080/stats/flow/1 > { > "1": [ > { > "actions": [ > "OUTPUT:1" > ], > "byte_count": 238, > "cookie": 0, > "duration_nsec": 585000000, > "duration_sec": 154, > "hard_timeout": 0, > "idle_timeout": 0, > "match": { > "dl_dst": "00:00:00:00:00:01", > "dl_src": "00:00:00:00:00:00", > "dl_type": 0, > "dl_vlan": 0, > "dl_vlan_pcp": 0, > "in_port": 2, > "nw_dst": "0.0.0.0", > "nw_proto": 0, > "nw_src": "0.0.0.0", > "nw_tos": 0, > "tp_dst": 0, > "tp_src": 0 > }, > "packet_count": 3, > "priority": 32768, > "table_id": 0 > }, > { > "actions": [ > "OUTPUT:2" > ], > "byte_count": 140, > "cookie": 0, > "duration_nsec": 583000000, > "duration_sec": 154, > "hard_timeout": 0, > "idle_timeout": 0, > "match": { > "dl_dst": "00:00:00:00:00:02", > "dl_src": "00:00:00:00:00:00", > "dl_type": 0, > "dl_vlan": 0, > "dl_vlan_pcp": 0, > "in_port": 1, > "nw_dst": "0.0.0.0", > "nw_proto": 0, > "nw_src": "0.0.0.0", > "nw_tos": 0, > "tp_dst": 0, > "tp_src": 0 > }, > "packet_count": 2, > "priority": 32768, > "table_id": 0 > } > ] > } > > after applying this patch: > > $curl http://127.0.0.1:8080/stats/flow/1 > { > "1": [ > { > "actions": [ > "OUTPUT:1" > ], > "byte_count": 238, > "cookie": 0, > "duration_nsec": 593000000, > "duration_sec": 12, > "hard_timeout": 0, > "idle_timeout": 0, > "match": { > "dl_dst": "00:00:00:00:00:01", > "in_port": 2 > }, > "packet_count": 3, > "priority": 32768, > "table_id": 0 > }, > { > "actions": [ > "OUTPUT:2" > ], > "byte_count": 140, > "cookie": 0, > "duration_nsec": 591000000, > "duration_sec": 12, > "hard_timeout": 0, > "idle_timeout": 0, > "match": { > "dl_dst": "00:00:00:00:00:02", > "in_port": 1 > }, > "packet_count": 2, > "priority": 32768, > "table_id": 0 > } > ] > } > > thanks > >> >> >> ________________________________________ >> From: Liu, Weijie >> Sent: Wednesday, May 13, 2015 23:31 >> To: [email protected] >> Subject: RE: [Ryu-devel] [Ryu] Output from ryu.app.ofctl_rest >> >> Because from what I saw, the outputs of "exactly matching dl_vlan as value >> zero" and "dl_vlan wildcard matching" are the same! :( >> >> how can I tell the correct meaning from the output of ryu.app.ofctl_rest >> with OpenFlow 1.0? >> >> ________________________________________ >> From: Liu, Weijie >> Sent: Wednesday, May 13, 2015 23:30 >> To: Minoru TAKAHASHI >> Subject: RE: [Ryu-devel] [Ryu] Output from ryu.app.ofctl_rest >> >> Thanks. >> >> Now comes the question: how can I tell the correct meaning from the output >> of ryu.app.ofctl_rest with OpenFlow 1.0? >> >> >> >> ________________________________________ >> From: Minoru TAKAHASHI [[email protected]] >> Sent: Wednesday, May 13, 2015 23:25 >> To: Liu, Weijie >> Subject: Re: [Ryu-devel] [Ryu] Output from ryu.app.ofctl_rest >> >> Hi, >> >> On 2015年05月14日 12:54, Liu, Weijie wrote: >>> Hi, Minoru, >>> >>> (1) Are you sure about that? I disagree with your answer of "exactly >>> matching dl_vlan as value zero is correct". >>> >>> Because this flow rule is from simple_switch.py; there is no dl_vlan >>> matching here. Therefore, I think "It should be considered as a wildcard >>> matching". >> >> Oh, Sorry! >> I was talking about OpenFlow1.2 and later. >> "It should be considered as a wildcard matching" is correct. >> >> thanks, >> >>> >>> (2) Actually, I am using Openflow 1.0. I am not sure whether you are >>> saying about other version of Openflow. >>> >>> >>> Thanks a lot. >>> Weijie >>> >>> >>> ________________________________________ >>> From: Minoru TAKAHASHI [[email protected]] >>> Sent: Wednesday, May 13, 2015 20:19 >>> To: Liu, Weijie; [email protected] >>> Subject: Re: [Ryu-devel] [Ryu] Output from ryu.app.ofctl_rest >>> >>> Hi, >>> >>> On 2015年05月14日 01:44, Liu, Weijie wrote: >>>> Hi, >>>> >>>> I have a question when I read the output of 'GET /stats/flow/1' of >>>> ryu.app.ofctl_rest. You know, I want to use this command to see the flow >>>> rules in a switch's flow table. >>>> >>>> My question: In "match", there is a field like "dl_vlan: 0". It can be >>>> considered as a wildcard matching; but it can also be considered as >>>> exactly matching dl_vlan as value zero. >>>> >>>> How can I tell which of the two is correct? >>> >>> "exactly matching dl_vlan as value zero" is correct. >>> >>> Just for your infomation, how to read of "dl_vlan" field is as follows. >>> >>> "match": {"dl_vlan": "0-4095"} >>> -> Only packets with VLAN tag and VID equal >>> >>> "match": {"dl_vlan": "0x0000"} >>> -> Only packets without a VLAN tag >>> >>> "match": {"dl_vlan": "0x1000/0x1000"} >>> -> Only packets with a VLAN tag regardless of its value >>> >>> thanks, >>> >>>> >>>> Thanks. >>>> -- >>>> Weijie Liu >>>> Department of Computer Science >>>> University of Illinois at Urbana-Champaign >>>> (217)819-6113 >>>> >>>> >>>> ------------------------------------------------------------------------------ >>>> One dashboard for servers and applications across Physical-Virtual-Cloud >>>> Widest out-of-the-box monitoring support with 50+ applications >>>> Performance metrics, stats and reports that give you Actionable Insights >>>> Deep dive visibility with transaction tracing using APM Insight. >>>> http://ad.doubleclick.net/ddm/clk/290420510;117567292;y >>>> >>>> >>>> >>>> _______________________________________________ >>>> Ryu-devel mailing list >>>> [email protected] >>>> https://lists.sourceforge.net/lists/listinfo/ryu-devel >>>> ------------------------------------------------------------------------------ One dashboard for servers and applications across Physical-Virtual-Cloud Widest out-of-the-box monitoring support with 50+ applications Performance metrics, stats and reports that give you Actionable Insights Deep dive visibility with transaction tracing using APM Insight. http://ad.doubleclick.net/ddm/clk/290420510;117567292;y _______________________________________________ Ryu-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/ryu-devel
