Hi, > Den 11. mai 2014 kl. 04:19 skrev Ben Pfaff <b...@nicira.com>: > >> On Sat, May 10, 2014 at 06:11:29PM +0200, Christian Stigen Larsen wrote: >> >> Ben Pfaff <b...@nicira.com>: >>>> Is do_xlate_actions ("translate actions"?) the wrong place for this kind of >>>> stuff? How can I get a pointer to the raw packet data? >>> >>> Usually, ofproto-dpif-xlate should not actually implement the OpenFlow >>> actions. >> >> Sorry for being trigger-happy, but even if I chose to implement datapath >> actions, how can I inspect the packet data? For some reason I get a >> NULL-pointer in ctx->xin->packet, while, e.g., OFPACT_OUTPUT in >> do_xlate_actions gets the full packet. > > Often the packet data is not available because userspace is not > processing a particular packet. Instead, it is deciding what to do with > the entire class of packets specified by the flow data. You are only > guaranteed to get full packets if during processing you add a flag for > "slow" processing as I described earlier.
Quick question: In odp-execute I call set_ether_type (cant remember the exact name at the moment) on the ofpbuf packet. In my example this buffer has size=81. That is all I do in my action, and I can clearly see that it's working -- it sets the correct place under offset 12 in packet->l2 w/right number of bytes. The action after mine is a simple output:1 action, and works too. However, wireshark reports that the packet is now 67 bytes (from l2 and up) -- and my testing shows it indeed is. Strangely enough, data is capped from L3, i.e. its tail is truncated. And 81-67=14, which is too much of a coincidence as the eth hdr is exactly 14 bytes. Again, all I do is set the ether type. Do you find this strange, or do you immediately know that I must have forgotten setting any magic flags or fields? If you can't think of anythinh it could be my code, but I've gone through it several times, and I don't do any bad memmoves or stuff like that. Regards, Christian _______________________________________________ discuss mailing list discuss@openvswitch.org http://openvswitch.org/mailman/listinfo/discuss