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

Reply via email to