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.sourceforge.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
------------------------------------------------------------------------------
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