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