Thank you. That was helpful. I found that using the default ofpact_put* failed. And I used ofpact_put_raw() instead. I don¹t know why. But I kept getting illegal length not %8 from ovs-ofctl.
Now I see some compose_* actions in the ofproto-dpif-xlate.c But I don¹t see how anything turns from a OFPACT_* into an OVS_ACTION_ATTR_* ? Where does this part of the translation from openflow action to datapath action happen. I don¹t see any tables, or comparison items that would lead me to be able to match my OVS_ACTION_ATTR_FOO_MY_PKTS against my new ofp_raw_action_type Value DE_RAW_FOO_MY_PKTS action. I think do_xlate_actions is supposed to build a ctx for this but I am at a loss to understand how I do the above. Regards, Dave. On 5/6/15, 12:40 PM, "Ben Pfaff" <[email protected]> wrote: >On Wed, May 06, 2015 at 08:00:07AM -0500, David Evans wrote: >> I have gotten a little further. >> My new flow action registers ok in ovs, but when i use ovs-ofctl to dump >> the flows, the reply message parser in ovs-ofctl bails out trying to >>read >> the instruction/actions from the message saying that they're an invalid >> length. >> Do i need a vendor_id specific stats reply or something like that to fix >> this? > >It seems likely that the encode_*() function that you wrote does not >properly encode the new action. Does it use the generated >ofpact_put_*() function to encode the action? I would also check the >hexdump for the action to make sure that it has the expected format. > >You do need a "vendor extension" or "experimenter" action but the >generated ofpact_put_*() function should take care of that for you. _______________________________________________ discuss mailing list [email protected] http://openvswitch.org/mailman/listinfo/discuss
