I am using openwrt and yes I can recompile the error I though I was having was because of wireshark dissector, I didn't add how to parse type 12 so i was seeing wrong my flow mod request, ty El 11/07/2013 17:55, "Murphy McCauley" <murphy.mccau...@gmail.com> escribió:
> On Jul 11, 2013, at 8:31 AM, adria sole wrote: > > > Thank you Murphy for the information, I solved my error. > > > > Now I am trying to create my own action but I get: > > > > ERROR:openflow.of_01:[00-23-20-12-b2-91 1] OpenFlow Error: > > [00-23-20-12-b2-91 1] Error: header: > > [00-23-20-12-b2-91 1] Error: version: 1 > > [00-23-20-12-b2-91 1] Error: type: 1 (OFPT_ERROR) > > [00-23-20-12-b2-91 1] Error: length: 108 > > [00-23-20-12-b2-91 1] Error: xid: 7825 > > [00-23-20-12-b2-91 1] Error: type: OFPET_BAD_ACTION (2) > > [00-23-20-12-b2-91 1] Error: code: OFPBAC_BAD_TYPE (0) > > [00-23-20-12-b2-91 1] Error: datalen: 96 > > > > I created in libopenflow_01.py my: > > > > @openflow_action('OFPAT_SET_COMPTADOR', 12) > > class ofp_action_comptador (ofp_action_base): > > ... > > Its code is a copy of class ofp_action_dl_addr (ofp_action_base) > > > > > > And I try to run in my app: > > > msg.actions.append(of.ofp_action_comptador.set_dst(EthAddr("01:02:03:04:05:06"))) > > > > I think it is because I missed some part of code in another file or in > the same libopenflow_01.py, or because I put my own type_val and > action_type that are defined somewhere where I cannot find... > > > > Do you know where is the mistake? > > Adding this to libopenflow in POX just allows you to send the message to > the switch. But you haven't said anything to make me think that you've > actually added the functionality you want to the switch itself (and the > error message backs me up -- the switch is saying that it doesn't > understand action type 12). How you do this depends on the switch you're > using. If it's a proprietary hardware switch, you're probably out of luck. > If it's the POX switch (unlikely), it's in datapaths/switch.py. If it's > Open vSwitch (common with Mininet), you'll need to modify OVS and recompile > it. And so on. > > Also, I'd point out that rather than just adding a new value (12), > OpenFlow has a "vendor" action type which is meant for non-standard > additions. > > -- Murphy