Hi Iwase,

I just tested this, It works neatly.

Thanks
Suresh


On Thu, Mar 1, 2018 at 10:32 AM, Iwase Yusuke <iwase.yusu...@gmail.com>
wrote:

> Hi,
>
> Excuse me for jumping in.
>
> How about sending OFPAggregateStatsRequest in synchronous way?
> You can use "ryu.app.ofctl.api" to send an OpenFlow message synchronously.
> http://ryu.readthedocs.io/en/latest/app/ofctl.html
>
>
> $ git diff
> diff --git a/ryu/app/simple_switch_13.py b/ryu/app/simple_switch_13.py
> index 06a5d0e..04c0463 100644
> --- a/ryu/app/simple_switch_13.py
> +++ b/ryu/app/simple_switch_13.py
> @@ -21,6 +21,7 @@ from ryu.ofproto import ofproto_v1_3
>  from ryu.lib.packet import packet
>  from ryu.lib.packet import ethernet
>  from ryu.lib.packet import ether_types
> +from ryu.app.ofctl import api as ofctl_api
>
>
>  class SimpleSwitch13(app_manager.RyuApp):
> @@ -74,6 +75,28 @@ class SimpleSwitch13(app_manager.RyuApp):
>          datapath = msg.datapath
>          ofproto = datapath.ofproto
>          parser = datapath.ofproto_parser
> +
> +        flags = 0
> +        cookie = 0
> +        cookie_mask = 0
> +        match = parser.OFPMatch()
> +        req = parser.OFPAggregateStatsRequest(
> +            datapath=datapath,
> +            flags=flags,
> +            table_id=ofproto.OFPTT_ALL,
> +            out_port=ofproto.OFPP_ANY,
> +            out_group=ofproto.OFPG_ANY,
> +            cookie=cookie,
> +            cookie_mask=cookie_mask,
> +            match=match)
> +        rep = ofctl_api.send_msg(
> +            app=self,
> +            msg=req,
> +            reply_cls=parser.OFPAggregateStatsReply,
> +            reply_multi=True)
> +        if rep:
> +            self.logger.info("*** flow_count=%d", rep[0].body.flow_count)
> +
>          in_port = msg.match['in_port']
>
>          pkt = packet.Packet(msg.data)
>
>
> $ ryu-manager ryu/app/simple_switch_13.py
> loading app ryu/app/simple_switch_13.py
> loading app ryu.controller.ofp_handler
> loading app ryu.app.ofctl.service
> loading app ryu.controller.ofp_handler
> instantiating app ryu/app/simple_switch_13.py of SimpleSwitch13
> instantiating app ryu.controller.ofp_handler of OFPHandler
> instantiating app ryu.app.ofctl.service of OfctlService
> *** flow_count=1
> packet in 1 2e:89:11:b9:d8:15 ff:ff:ff:ff:ff:ff 1
> *** flow_count=1
> packet in 1 4e:4b:8e:90:6a:f8 2e:89:11:b9:d8:15 2
> *** flow_count=2
> packet in 1 2e:89:11:b9:d8:15 4e:4b:8e:90:6a:f8 1
>
>
> Thanks,
> Iwase
>
>
> On 2018年03月01日 13:07, knet solutions wrote:
>
>> The counter has to be incremented when you  add the flows add_flows(not
>> packet-in) and to be decremented flow-removed event message.
>>
>> On Wed, Feb 28, 2018 at 7:39 PM, ‏Eman ‏ Bany salameh <
>> banysalam...@yahoo.com <mailto:banysalam...@yahoo.com>> wrote:
>>
>>     Hi all,
>>
>>     Thanks for your replays.
>>
>>     Yes, I decrement the counter when the flow removed by idle_timeout
>> and used
>>     flow-removed_handler to know this. But the problem in this case is the
>>     packet-in generated more than once for the same packet but the flow
>> is added
>>     once and this increments the counter more than one time for the same
>> flow,
>>     which is incorrect.
>>
>>     I can’t understand why there is multiple packet-in generated??
>>
>>     Regards,
>>
>>     Eman Bany Salameh
>>
>>
>>     On Feb 28, 2018, at 2:56 PM, Vasu Dasari <vdas...@gmail.com
>>     <mailto:vdas...@gmail.com>> wrote:
>>
>>     You could look for flow-removed messages from switch and use that to
>>>     adjust flows installed in your app accordingly.
>>>
>>>     In OpenFlow version >= 1.4 you could use flow monitoring as well.
>>> This
>>>     way you can keep a check on flows in the switch.
>>>
>>>     7.3.5.19 Flow Monitoring
>>>     https://www.opennetworking.org/images/stories/downloads/sdn-
>>> resources/onf-specifications/openflow/openflow-switch-v1.5.
>>> 0.noipr.pdf#page149
>>>     <https://www.opennetworking.org/images/stories/downloads/sdn
>>> -resources/onf-specifications/openflow/openflow-switch-v1.5.
>>> 0.noipr.pdf#page149>
>>>
>>>     On Feb 28, 2018, at 12:49 AM, knet solutions <
>>> knetsolutio...@gmail.com
>>>     <mailto:knetsolutio...@gmail.com>> wrote:
>>>
>>>     If we maintain the count in SDN controller, There is a possibility of
>>>>     mismatch in the count between the switch and controller .
>>>>     Each flow has a timeout(idle and hard), it will be flushed out
>>>> after the
>>>>     timeout period.
>>>>
>>>>     On Wed, Feb 28, 2018 at 1:59 PM, Moh'd Reza Abbasi <
>>>> mr.mrabb...@gmail.com
>>>>     <mailto:mr.mrabb...@gmail.com>> wrote:
>>>>
>>>>         I don't think OpenFlow v.1.3 has such a feature, but how about
>>>> adding
>>>>         a counter in your Ryu app to keep track of added/removed
>>>> rules...
>>>>
>>>>         On Wed, Feb 28, 2018 at 11:53 AM, ‏Eman ‏ Bany salameh via
>>>> Ryu-devel
>>>>         <ryu-devel@lists.sourceforge.net
>>>>         <mailto:ryu-devel@lists.sourceforge.net>> wrote:
>>>>
>>>>             Hi,
>>>>
>>>>             I need to know the number of flows installed on the switch
>>>> before
>>>>             adding new one. What I did before is to request stat from
>>>> the
>>>>             switch then read the length of the list returned.
>>>>             This way is not useful for me.
>>>>             Is there any way to count them inside packet-in handler
>>>> before
>>>>             adding new flow? I want to limit the number of flows added
>>>> to 1500.
>>>>
>>>>             Regards,
>>>>             Eman Bany Salameh
>>>>
>>>>
>>>>
>>>>             ------------------------------
>>>> ------------------------------------------------
>>>>             Check out the vibrant tech community on one of the world's
>>>> most
>>>>             engaging tech sites, Slashdot.org <http://Slashdot.org>!
>>>>             http://sdm.link/slashdot
>>>>             _______________________________________________
>>>>             Ryu-devel mailing list
>>>>             Ryu-devel@lists.sourceforge.net
>>>>             <mailto:Ryu-devel@lists.sourceforge.net>
>>>>             https://lists.sourceforge.net/lists/listinfo/ryu-devel
>>>>             <https://lists.sourceforge.net/lists/listinfo/ryu-devel>
>>>>
>>>>
>>>>
>>>>         ------------------------------------------------------------
>>>> ------------------
>>>>         Check out the vibrant tech community on one of the world's most
>>>>         engaging tech sites, Slashdot.org <http://Slashdot.org>!
>>>>         http://sdm.link/slashdot
>>>>         _______________________________________________
>>>>         Ryu-devel mailing list
>>>>         Ryu-devel@lists.sourceforge.net <mailto:Ryu-devel@lists.source
>>>> forge.net>
>>>>         https://lists.sourceforge.net/lists/listinfo/ryu-devel
>>>>         <https://lists.sourceforge.net/lists/listinfo/ryu-devel>
>>>>
>>>>
>>>>
>>>>
>>>>     --     */Regards,
>>>>     /*
>>>>     */Knet solutions./*
>>>>
>>>>     https://github.com/knetsolutions/KNet <
>>>> https://github.com/knetsolutions/KNet>
>>>>     http://knet-topology-builder.readthedocs.io/
>>>>     <http://knet-topology-builder.readthedocs.io/>
>>>>     http://knetsolutions.in/
>>>>
>>>>     ------------------------------------------------------------
>>>> ------------------
>>>>     Check out the vibrant tech community on one of the world's most
>>>>     engaging tech sites, Slashdot.org <http://Slashdot.org>!
>>>>     http://sdm.link/slashdot
>>>>     _______________________________________________
>>>>     Ryu-devel mailing list
>>>>     Ryu-devel@lists.sourceforge.net <mailto:Ryu-devel@lists.source
>>>> forge.net>
>>>>     https://lists.sourceforge.net/lists/listinfo/ryu-devel
>>>>     <https://lists.sourceforge.net/lists/listinfo/ryu-devel>
>>>>
>>>
>>
>>
>>
>> --
>> */Regards,
>> /*
>> */Knet solutions./*
>>
>> https://github.com/knetsolutions/KNet
>> http://knet-topology-builder.readthedocs.io/
>> http://knetsolutions.in/
>>
>>
>>
>> ------------------------------------------------------------
>> ------------------
>> Check out the vibrant tech community on one of the world's most
>> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
>>
>>
>>
>> _______________________________________________
>> Ryu-devel mailing list
>> Ryu-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/ryu-devel
>>
>>


-- 

*Regards, *
*Knet solutions.*

https://github.com/knetsolutions/KNet
http://knet-topology-builder.readthedocs.io/
http://knetsolutions.in/
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Ryu-devel mailing list
Ryu-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ryu-devel

Reply via email to