Hey Iwase,

 "*using the group table with openflow 1.3 with no sucess*" means that I am
using the group table as i said before and it is not working, means that I
am using the group specification and it doens't work.

and about your topology: It has only 2 switches or 4???

i don't know if my code is right or if i am missing something else.




2018-03-25 21:40 GMT-03:00 Iwase Yusuke <iwase.yusu...@gmail.com>:

> Hi Carlos,
>
> For such purpose, OFPGT_SELECT is appropriate, I guess.
>
> With the topology;
>
>               +--------+             +--------+
>               |   s1   |             |   s2   |
> +----+        |      (port 2)---(port 2)      |        +----+
> | h1 |---(port 1)      |             |      (port 1)---| h2 |
> +----+        |      (port 3)---(port 3)      |        +----+
>               |        |             |        |
>               +--------+             +--------+
>
>
> I can install groups and flows entries, then can ping between h1 and h2
> with the
> following app.
>
>
> $ git diff
> diff --git a/ryu/app/simple_switch_13.py b/ryu/app/simple_switch_13.py
> index 06a5d0e..e1a5c3b 100644
> --- a/ryu/app/simple_switch_13.py
> +++ b/ryu/app/simple_switch_13.py
> @@ -48,6 +48,30 @@ class SimpleSwitch13(app_manager.RyuApp):
>                                            ofproto.OFPCML_NO_BUFFER)]
>          self.add_flow(datapath, 0, match, actions)
>
> +        buckets = [
> +            parser.OFPBucket(
> +                50, ofproto.OFPP_ANY, ofproto.OFPG_ANY,
> +                [parser.OFPActionOutput(2)]),
> +            parser.OFPBucket(
> +                50, ofproto.OFPP_ANY, ofproto.OFPG_ANY,
> +                [parser.OFPActionOutput(3)]),
> +        ]
> +        mod = parser.OFPGroupMod(
> +            datapath, ofproto.OFPGC_ADD, ofproto.OFPGT_SELECT, 1, buckets)
> +        datapath.send_msg(mod)
> +
> +        match = parser.OFPMatch(in_port=1)
> +        actions = [parser.OFPActionGroup(1)]  # from host to switch
> +        self.add_flow(datapath, 1, match, actions)
> +
> +        match = parser.OFPMatch(in_port=2)
> +        actions = [parser.OFPActionOutput(1)]  # from switch to host
> +        self.add_flow(datapath, 1, match, actions)
> +
> +        match = parser.OFPMatch(in_port=3)
> +        actions = [parser.OFPActionOutput(1)]  # from switch to host
> +        self.add_flow(datapath, 1, match, actions)
> +
>      def add_flow(self, datapath, priority, match, actions,
> buffer_id=None):
>          ofproto = datapath.ofproto
>          parser = datapath.ofproto_parser
>
>
> I don't know what "using the group table with openflow 1.3 with no sucess"
> means, but please confirm your group and flow table again.
>
> Thanks,
> Iwase
>
>
> On 2018年03月23日 21:11, Jose Carlos Ferreira de Melo Junior wrote:
>
>> Hey Iwase,
>>
>>
>> Split means really divide the flow I dont know if would be like a load
>> balancing (I think it is)
>>
>> For example the image below
>>
>>
>>
>>
>> But I dont know if this would be possible using the group table.
>>
>> 2018-03-23 4:04 GMT-03:00 Iwase Yusuke <iwase.yusu...@gmail.com <mailto:
>> iwase.yusu...@gmail.com>>:
>>
>>
>>     Hi Carlos,
>>
>>     What does "split flows" exactly mean?
>>
>>      > req = parser.OFPGroupMod(datapath, ofp.OFPFC_ADD, ofp.OFPGT_SELECT,
>>      >                          group_id, buckets)
>>
>>     If you specify OFPGT_SELECT, switch will execute "one" bucket in the
>> group and
>>     not copied like the port mirroring. If you intend to do port
>> mirroring, you need
>>     to specify OFPGT_ALL. For other available group types, please refer
>> to the
>>     OpenFlow spec and your switch's specification.
>>
>>     Thanks,
>>     Iwase
>>
>>
>>     On 2018年03月21日 04:02, Jose Carlos Ferreira de Melo Junior wrote:
>>
>>         Hi there,
>>
>>         I know this topic was discussed before but I would like just a
>> simple
>>         explanation about it.
>>
>>         Because I am using the group table with openflow 1.3 with no
>> sucess.
>>
>>
>>         My purpose is to split one flow in two flows and forward on port
>> 3 and 4
>>         using the group table.
>>
>>         My code is as follows:
>>
>>
>>         *def group_mod(self, datapath):*
>>         *        global ofp, _parser_, dp*
>>         *        port_1 = 4*
>>         *        queue_1 = _parser_.OFPActionSetQueue(0)*
>>         *        actions_1 = [queue_1, _parser_.OFPActionOutput(port_1)]*
>>         *
>>         *
>>         *
>>         *
>>         *        port_2 = 3*
>>         *        queue_2 = _parser_.OFPActionSetQueue(0)*
>>         *        actions_2 = [queue_2, _parser_.OFPActionOutput(port_2)]*
>>         *
>>         *
>>         *        weight_1 = 50*
>>         *        weight_2 = 50*
>>         *
>>         *
>>         *        watch_port = ofproto_v1_3.OFPP_ANY*
>>         *        watch_group = ofproto_v1_3.OFPQ_ALL*
>>         *
>>         *
>>         *        buckets = [*
>>         *                _parser_.OFPBucket(weight_1, watch_port,
>> watch_group,
>>         actions_1),*
>>         *                _parser_.OFPBucket(weight_2, watch_port,
>> watch_group,
>>         actions_2)]*
>>         *
>>         *
>>         *        group_id = 50*
>>         *
>>         *
>>         *        req = _parser_.OFPGroupMod(datapath, ofp.OFPFC_ADD,
>>         ofp.OFPGT_SELECT,*
>>         *                group_id, buckets)*
>>         *
>>         *
>>         *        datapath.send_msg(req)*
>>         *
>>         *
>>         *
>>         *
>>         *
>>         *
>>         Hope this is right.
>>
>>         Could anyone help me with this issue?
>>
>>
>>
>>
>>         --         Best regards,
>>         José Carlos Ferreira
>>         Msc student in Computer Science
>>         System and Network Analyst at PoP-PE/RNP
>>
>>
>>         ------------------------------------------------------------
>> ------------------
>>         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 <mailto:Ryu-devel@lists.source
>> forge.net>
>>         https://lists.sourceforge.net/lists/listinfo/ryu-devel
>>         <https://lists.sourceforge.net/lists/listinfo/ryu-devel>
>>
>>
>>
>>
>> --
>> Best regards,
>> José Carlos Ferreira
>> Msc student in Computer Science
>> System and Network Analyst at PoP-PE/RNP
>>
>>
>> ------------------------------------------------------------
>> ------------------
>> 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
>>
>>


-- 
Best regards,
José Carlos Ferreira
Msc student in Computer Science
System and Network Analyst at PoP-PE/RNP
------------------------------------------------------------------------------
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