Hi Shivani,
Sorry for the delay.
I sniffed the OpenFlow messages which the "ovs-ofctl" command sent.
The "ovs-ofctl" command seems to send the OFPGC_ADD message with
"command_bucket_id=ofproto.OFPG_BUCKET_ALL" when you invoked:
$ ovs-ofctl -O openflow15 add-group br_test
group_id=3,type=all,bucket=output:2
But, Ryu will send the OFPGC_ADD message with "command_bucket_id=0" (by the
default),
so the first OFPGC_ADD message from Ryu will fail and also fail the following
OFPGC_INSERT_BUCKET
message.
I guess we need to specify "command_bucket_id=ofproto.OFPG_BUCKET_ALL" to send
the OFPGC_ADD
message, and then send the OFPGC_INSERT_BUCKET message after that.
Example:
buckets = [
parser.OFPBucket(
bucket_id=0,
actions=[parser.OFPActionOutput(1)],
),
parser.OFPBucket(
bucket_id=1,
actions=[parser.OFPActionOutput(2)],
),
]
req = parser.OFPGroupMod(
datapath,
command=ofproto.OFPFC_ADD,
type_=ofproto.OFPGT_SELECT,
group_id=1,
command_bucket_id=ofproto.OFPG_BUCKET_ALL,
buckets=buckets)
datapath.send_msg(req)
match = parser.OFPMatch(in_port=3)
actions = [parser.OFPActionGroup(1)]
self.add_flow(datapath, 0, match, actions)
buckets = [
parser.OFPBucket(
bucket_id=2,
actions=[parser.OFPActionOutput(3)],
),
]
req = parser.OFPGroupMod(
datapath,
command=ofproto.OFPGC_INSERT_BUCKET,
type_=ofproto.OFPGT_SELECT,
group_id=1,
command_bucket_id=ofproto.OFPG_BUCKET_LAST,
buckets=buckets)
datapath.send_msg(req)
Hmmm... I think it better to change the default value of "command_bucket_id" to
"OFPG_BUCKET_ALL".
Thanks,
Iwase
On 2017年11月17日 17:32, shivani dommeti wrote:
Hi Iwase Yusuke,
Thank you for responding.
I have tried the way suggested
command_bucket_id= ofp.OFPG_BUCKET_LAST
i still see an issue, when i see the logs i get the following error :
2017-11-17T08:21:19.080Z|07049|fail_open|WARN|No longer in fail-open mode
2017-11-17T08:21:27.219Z|07050|ofp_util|WARN|group command bucket id
(4294967294) is out of range
2017-11-17T08:21:27.219Z|07051|connmgr|INFO|br0<->tcp:127.0.0.1:6633 <http://127.0.0.1:6633>:
sending OFPGMFC_BAD_BUCKET error reply to OFPT_GROUP_MOD message
the OpenFlow version is 1.5.
Thanks,
Shivani
On Thu, Nov 16, 2017 at 12:01 PM, Iwase Yusuke <iwase.yusu...@gmail.com
<mailto:iwase.yusu...@gmail.com>> wrote:
Hi Shivani,
You seems to specify "command_bucket_id" field like;
command_bucket_id='last'
but I guess you need to specify one of the following constants for this
field.
https://github.com/osrg/ryu/blob/6ec8802a00723758f255dea1a0be7456bb3e3bb4/ryu/ofproto/ofproto_v1_5.py#L698-L710
<https://github.com/osrg/ryu/blob/6ec8802a00723758f255dea1a0be7456bb3e3bb4/ryu/ofproto/ofproto_v1_5.py#L698-L710>
Example)
command_bucket_id = ofp.OFPG_BUCKET_LAST
Thanks,
Iwase
On 2017年11月14日 20:38, shivani dommeti wrote:
Hi,
I am using OpenFlow Version 1.5 and I have tried to use the
Insert_Bucket and Remove_Bucket
commands which are supported in the following version,
On the OVS side i have followed the following steps:
ovs-ofctl -O openflow15 add-group br_test
group_id=3,type=all,bucket=output:2
ovs-ofctl -O openflow15 insert-buckets br_test
group_id=3*,command_bucket_id=first,*bucket=bucket_id:1,actions=output:1
But when i try insert a bucket from RYU I see following issues when
I am try to set
value for command_bucket_id as 'last/first' in my code:
group_id = 1
command_bucket_id='last'
actions = [parser.OFPActionOutput(2)]
buckets = [parser.OFPBucket(actions= actions,bucket_id =1)]
req = ofp_parser.OFPGroupMod(datapath, ofp.OFPGC_INSERT_BUCKET,
ofp.OFPGT_SELECT, group_id,
command_bucket_id, buckets)
datapath.send_msg(req)
it throws the following error:
When I try to set command_bucket_id value as ‘last’ it throws
File
"/usr/local/lib/python2.7/dist-packages/ryu/app/indentedServer.py", line 136, in
cp_instruction_processor
self.op_group_add(instruction)
File
"/usr/local/lib/python2.7/dist-packages/ryu/app/indentedServer.py", line 1099,
in
op_group_add
dp_info.send_msg(mod)
File
"/usr/local/lib/python2.7/dist-packages/ryu/controller/controller.py", line
347, in
send_msg
msg.serialize()
File
"/usr/local/lib/python2.7/dist-packages/ryu/ofproto/ofproto_parser.py", line
270,
in serialize
self._serialize_body()
File
"/usr/local/lib/python2.7/dist-packages/ryu/ofproto/ofproto_v1_5_parser.py",
line
6181, in _serialize_body
self.bucket_array_len, self.command_bucket_id)
File
"/usr/local/lib/python2.7/dist-packages/ryu/lib/pack_utils.py", line 25, in
msg_pack_into
struct.pack_into(fmt, buf, offset, *args)
error: cannot convert argument to integer
When I try to set command_bucket_id value as integer 1 it throws:
group_id = 1
command_bucket_id=1
actions = [parser.OFPActionOutput(2)]
buckets = [parser.OFPBucket(actions= actions,bucket_id =1)]
req = ofp_parser.OFPGroupMod(datapath, ofp.OFPGC_INSERT_BUCKET,
ofp.OFPGT_SELECT, group_id,
command_bucket_id, buckets)
datapath.send_msg(req)
I don't see any error message but the group is not getting added on the
OVS if i check the
logs i see the following error:
Error from the logs :
command_bucket_id (1) is out of range
sending OFPGMFC_BAD_BUCKET error reply to OFPT_GROUP_MOD message
Kindly suggest the correction that need to be make to overcome the
following issue.
Thanks,
Shivani.
------------------------------------------------------------------------------
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>
------------------------------------------------------------------------------
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