[ovs-dev] [RFC PATCHv2] ofp-actions: Add clone action.

Ben Pfaff blp at ovn.org
Mon Dec 5 07:20:34 UTC 2016


I sent out a series based on this, but it appears to reveal a bug in the
clone action that causes segfaults.  Try the series without the patch
"XXX Fix segfault in clone action" applied and you should get test
failures in several tests, e.g. 2249 2251 2252 2253 2254 2256 2259 2260
2266 2268 2277 2278

The series starts at:
        https://patchwork.ozlabs.org/patch/702602/

Thanks,

Ben.

On Fri, Dec 02, 2016 at 01:00:26PM -0800, William Tu wrote:
> 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 <blp at ovn.org> 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.


More information about the dev mailing list