Note that there are some differences between kernel datapath and userspace datapath, when using the SAMPLE action. For userspace, we execute the nested actions inside SAMPLE inline/immediately, while in kernel datapath, we defer the nested actions to a fifo queue and execute in the end.
For example: actions=output:1, clone(output:2), clone(output:3), output:4 Execution sequence seen from kernel DP: output:1, output:4, output:2, output:3 Sequence of packet seen from userspace DP: output:1, output:2, output:3, output:4 Regards, William On Fri, Dec 2, 2016 at 9:09 AM, Ben Pfaff <[email protected]> wrote: > On Wed, Nov 30, 2016 at 01:35:49PM -0800, William Tu wrote: >> This patch adds OpenFlow clone action with syntax as below: >> "clone([action][,action...])". The clone() action makes a copy of the >> current packet and executes the list of actions against the packet, >> without affecting the packet after the "clone(...)" action. In other >> word, the packet before the clone() and after the clone() is the same, >> no matter what actions executed inside the clone(). > > I'm experimenting with using this to eliminate most of the patch ports > that ovn-controller creates. I'm planning to get that work at least > mostly done before I do the full review here. _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
