Hi,

I am doing it the following way:

def _timer_func ():

  for connection in core.openflow._connections.values():
    #log.debug("timer function called")
    msg = of.ofp_flow_mod()
    msg.command = of.OFPFC_MODIFY_STRICT
    msg.match.dl_src = "00:00:00:00:00:01"
    msg.match.dl_src = "00:00:00:00:00:02"
    msg.actions.append(of.ofp_action_enqueue(port = 1, queue_id=4))
    connection.send(msg)

def launch():
     from pox.lib.recoco import Timer
     Timer(4, _timer_func, recurring=True)

but it gives me the following error:

ERROR:openflow.of_01:[00-00-00-00-00-01 1] OpenFlow Error:
[00-00-00-00-00-01 1] Error: header:
[00-00-00-00-00-01 1] Error:   version: 1
[00-00-00-00-00-01 1] Error:   type:    1 (OFPT_ERROR)
[00-00-00-00-00-01 1] Error:   length:  76
[00-00-00-00-00-01 1] Error:   xid:     9
[00-00-00-00-00-01 1] Error: type: OFPET_BAD_ACTION (2)
[00-00-00-00-00-01 1] Error: code: OFPBAC_BAD_LEN (1)
[00-00-00-00-00-01 1] Error: datalen: 64
[00-00-00-00-00-01 1] Error: 0000: 01 0e 00 58 00 00 00 09  00 10 00 1b 00
00 30 30   |...X..........00|
[00-00-00-00-00-01 1] Error: 0010: 3a 30 30 3a 30 30 3a 30  30 3a 30 30 3a
30 32 00   |:00:00:00:00:02.|
[00-00-00-00-00-01 1] Error: 0020: 00 00 00 00 00 00 00 00  00 00 00 00 00
00 00 00   |................|
[00-00-00-00-00-01 1] Error: 0030: 00 00 00 00 00 00 00 00  00 00 00 00 00
00 00 00   |................|
INFO:openflow.of_01:[00-00-00-00-00-01 1] closed

A bad action; is there a way to rewrite queue-id in installed flow-entries
on switch?

Thank you for any hint/help/suggestion.

Kind regards;



On Mon, Dec 16, 2013 at 11:57 AM, Sadia Bashir
<11msccssbas...@seecs.edu.pk>wrote:

> Thank you Murphy, It gave me a fair idea to precede.
>
>
> On Mon, Dec 16, 2013 at 11:29 AM, Murphy McCauley <
> murphy.mccau...@gmail.com> wrote:
>
>> Set your flow-mod's .command attribute to OFPFC_MODIFY (or
>> OFPFC_MODIFY_STRICT).  If you've imported libopenflow as "of" (the POX
>> convention), it's something like:
>>
>> fm = of.ofp_flow_mod()
>> ...
>> fm.command = of.OFPFC_MODIFY_STRICT
>> ...
>> connection.send(fm)
>>
>>
>> -- Murphy
>>
>> On Dec 15, 2013, at 10:16 PM, Sadia Bashir <11msccssbas...@seecs.edu.pk>
>> wrote:
>>
>> Thank you Junaid Khalid and Murphy!
>>
>> I just got this from pox.openflow.libopenflow_o1
>>
>> ofp_flow_mod_command_rev_map = {
>>   'OFPFC_ADD'           : 0,
>>   'OFPFC_MODIFY'        : 1,
>>   'OFPFC_MODIFY_STRICT' : 2,
>>   'OFPFC_DELETE'        : 3,
>>   'OFPFC_DELETE_STRICT' : 4,
>> }
>>
>>
>> I am not getting clear how do I use it in flow-mods. Please refer me to
>> some example for it. Thank you for your guide and help. Thanks a lot!
>>
>> sadia
>>
>>
>> On Mon, Dec 16, 2013 at 7:20 AM, Murphy McCauley <
>> murphy.mccau...@gmail.com> wrote:
>>
>>> On Dec 14, 2013, at 1:56 PM, Sadia Bashir <11msccssbas...@seecs.edu.pk>
>>> wrote:
>>>
>>> > Hi,
>>> >
>>> > I want to modify queue_id in installed flows on a switch periodically
>>> by sending a flow_mod message from controller(i.e., controller-to-switch
>>> message) I tried it using this way on pox-controller:
>>> >
>>> > def _timer_func ():
>>> >     for connection in core.openflow._connections.values():
>>> >            connection.send(of.ofp_action_nw_tos(port = 1, queue_id =
>>> 2))
>>>
>>> This isn’t a flow-mod.  This is just an action!  Construct flow mods for
>>> the flows you want to change and include the new action.
>>>
>>> > def launch():
>>> >      from pox.lib.recoco import Timer
>>> >      Timer(4, _timer_func, recurring=True)
>>> >
>>> > Please tell me if there is a way to modify a value in already existing
>>> flow entries on the switch.
>>> >
>>> > Thanks in advance for any hint or help.
>>> > --
>>> > sadia
>>>
>>> Hope that helps.
>>>
>>> — Murphy
>>
>>
>>
>>
>> --
>>
>>
>>
>>
>>
>
>
> --
>
>
>



--

Reply via email to