Thank you so much. It worked. I just removed  command_bucket_id parameter
and it started working.

Best Regards,
Ramzah Rehman


On Tue, Jan 8, 2019 at 5:48 PM Artem Gromov <artyomgro...@gmail.com> wrote:

> I guess you actually mean the code from your first letter with
> ofproto_v1_5_parser.OFPBucket class:
>
> def send_group_mod(self, datapath):
>         ofp = datapath.ofproto
>         ofp_parser = datapath.ofproto_parser
>
>         port = 1
>         max_len = 2000
>         actions = [ofp_parser.OFPActionOutput(port, max_len)]
>
>         weight = 100
>         #watch_port = ofproto_v1_5.OFPP_ANY
>         #watch_group =  ofproto_v1_5.OFPQ_ALL
>
>         bucket = datapath.ofproto_parser.OFPBucket(bucket_id=1, 
> actions=actions, properties=None, len_=32,action_array_len=None)
>         buckets = [bucket]
>         #buckets = [ofp_parser.OFPBucket(weight, watch_port, 
> watch_group,actions)]
>
>         group_id = 1
>         command_bucket_id = 1
>         req = ofp_parser.OFPGroupMod(datapath, ofp.OFPGC_ADD,
>                                      ofp.OFPGT_SELECT, group_id,
>                                      command_bucket_id, buckets)
>         datapath.send_msg(req)
>
> Its important because struct ofp_bucket was changed dramatically in OFP
> 1.5.x:
>
> https://www.opennetworking.org/wp-content/uploads/2014/10/openflow-switch-v1.5.1.pdf
> (OFP 1.5.1 switch spec., page 115)
>
> Here is the OVS src line from which you've got the error:
> https://github.com/openvswitch/ovs/blob/master/lib/ofp-group.c#L2195
>
> So, you shouldn't set command_bucket_id in OFPGroupMod constructor (it
> defaults to OFPG_BUCKET_ALL) (spec., page 115).
> And after that you should read Ryu docs and OFP 1.5 specs to form correct
> bucket properties with desired behavior (watch_port and watch_group)
>
> I hope this would help.
>
>
>
> Also, as a sidenotes:
> - len_ and action_array_len arguments of OFPBucket.__init__ are not used
> for now, and I hope will not be ever;
> - you probably shouldn't use max_len for OFPActionOutput when you dont
> forward packet to a controller.
>
>
>
> On Tue, Jan 8, 2019 at 2:33 PM Ramzah Rehman <ramzahreh...@gmail.com>
> wrote:
>
>> I made sure OpenFLow1.5 is enabled in switch and I'm running ovs 2.10.90
>> now. I checked the ovs-vswitchd.log file and got.
>>
>> ovs-vswitchd.log:
>> 2019-01-08T11:25:09.292Z|00182|rconn|INFO|br0<->tcp:10.0.0.6:6633:
>> connected
>> 2019-01-08T11:25:09.300Z|00183|fail_open|WARN|No longer in fail-open mode
>> 2019-01-08T11:25:17.476Z|00184|ofp_group|WARN|group command bucket id (1)
>> is out of range
>> 2019-01-08T11:25:17.476Z|00185|connmgr|INFO|br0<->tcp:10.0.0.6:6633:
>> sending OFPGMFC_BAD_BUCKET error reply to OFPT_GROUP_MOD message
>>
>> code:
>>
>> def send_group_mod(self, datapath):
>>     ofp = datapath.ofproto
>>     ofp_parser = datapath.ofproto_parser
>>
>>     port = 1
>>     max_len = 2000
>>     actions = [ofp_parser.OFPActionOutput(port, max_len)]
>>
>>     weight = 100
>>     watch_port = 0
>>     watch_group = 0
>>     buckets = [ofp_parser.OFPBucket(weight, watch_port, watch_group,
>>                                     actions)]
>>
>>     group_id = 1
>>     command_bucket_id=1
>>     req = ofp_parser.OFPGroupMod(datapath, ofp.OFPGC_ADD,
>>                                  ofp.OFPGT_SELECT, group_id,
>>                                  command_bucket_id, buckets)
>>     datapath.send_msg(req)
>>
>> Please let me know what's wrong here? I have tried bucket command id of 0 
>> and hundred, nothing works.
>>
>>
>>
>>
>> On Mon, Jan 7, 2019 at 12:52 PM IWAMOTO Toshihiro <iwam...@valinux.co.jp>
>> wrote:
>>
>>> On Fri, 04 Jan 2019 20:32:14 +0900,
>>> Ramzah Rehman wrote:
>>> > I tried to add a Group Entry in my OVS version 2.8.6 switch via RYU
>>> > controller using ofproto_v1_5 (switch has been configured to support
>>> > OpenFlow 1.5 ). I found send_group_mod
>>> > <https://ryu.readthedocs.io/en/latest/ofproto_v1_5_ref.html> function
>>> here.
>>> > I used the exact code to check if it's working but got this
>>> > OFPGMFC_BAD_BUCKET(12) error.
>>>
>>> > Anyhow, since I had been initializing my OFPButcket wrongly, I
>>> > modified my code as follows. This time, the actions list was being set
>>> > properly in the bucket but  still, I got bad_BUCKET(12) error. Please
>>> > help.
>>> > *Modified Code:*
>>> >
>>> > def send_group_mod(self, datapath):
>>> >         ofp = datapath.ofproto
>>> >         ofp_parser = datapath.ofproto_parser
>>> >
>>> >         port = 1
>>> >         max_len = 2000
>>> >         actions = [ofp_parser.OFPActionOutput(port, max_len)]
>>> >
>>> >         weight = 100
>>> >         #watch_port = ofproto_v1_5.OFPP_ANY
>>> >         #watch_group =  ofproto_v1_5.OFPQ_ALL
>>> >
>>> >         bucket = datapath.ofproto_parser.OFPBucket(bucket_id=1,
>>> > actions=actions, properties=None, len_=32,action_array_len=None)
>>> >         buckets = [bucket]
>>> >         #buckets = [ofp_parser.OFPBucket(weight, watch_port,
>>> > watch_group,actions)]
>>> >
>>> >         group_id = 1
>>> >         command_bucket_id = 1
>>> >         req = ofp_parser.OFPGroupMod(datapath, ofp.OFPGC_ADD,
>>> >                                      ofp.OFPGT_SELECT, group_id,
>>> >                                      command_bucket_id, buckets)
>>> >         datapath.send_msg(req)
>>> >
>>> > *Error:*
>>> >
>>> > EventOFPErrorMsg received.
>>> > version=0x6, msg_type=0x1, msg_len=0x3c, xid=0x1d46ee73
>>> >  `-- msg_type: OFPT_ERROR(1)
>>> > OFPErrorMsg(type=0x6, code=0xc,
>>> >
>>> data=b'\x06\x0f\x00\x30\x1d\x46\xee\x73\x00\x00\x01\x00\x00\x00\x00\x01\x00\x18\x00\x00\x00\x00\x00\x01\x00\x18\x00\x10\x00\x00\x00\x01\x00\x00\x00\x10\x00\x00\x00\x01\x07\xd0\x00\x00\x00\x00\x00\x00')
>>> >  |-- type: OFPET_GROUP_MOD_FAILED(6)
>>> >  |-- code: OFPGMFC_BAD_BUCKET(12)
>>> >  `-- data: version=0x6, msg_type=0xf, msg_len=0x30, xid=0x1d46ee73
>>> >      `-- msg_type: OFPT_GROUP_MOD(15)
>>>
>>> ovs-vswitchd should emit warn logs when returning those BAD_BUCKET
>>> errors, if the verbose level is set appropriately.
>>>
>>> Please check ovs-vswitchd log level settings and its log file.
>>>
>>> --
>>> IWAMOTO Toshihiro
>>>
>>>
_______________________________________________
Ryu-devel mailing list
Ryu-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ryu-devel

Reply via email to