On Wed, Jun 07, 2017 at 11:26:56AM -0700, Andy Zhou wrote:
> On Tue, Jun 6, 2017 at 4:55 PM, Ben Pfaff <[email protected]> wrote:
> > On Fri, May 26, 2017 at 08:47:44PM -0700, Andy Zhou wrote:
> >> There are three methods of translating openflow layer clone action.
> >> Using datapath clone action, datapath sample action or using actions
> >> to negating the any changes within a clone.  Xlate logic selects
> >> a specific method depends on datapath features detected at the boot time.
> >>
> >> Currently only xlate_clone() implements the selection logic since it
> >> is the solo user, but patches will add more users. Introduce
> >>  new APIs that hide the details of generating datapath clone action.
> >>
> > A possible improvement to the implementation would be to keep track of
> > the nesting level and fall back from COMPOSE_CLONE_USING_SAMPLE to
> > COMPOSE_CLONE_USING_ACTIONS when it exceeds the datapath's capability.
> >
> If datapath is actually required, then the translation won't be
> correct. Should we just abort the translation
> and log an error?

That would imply that we should not provide any support for datapaths
that don't support COMPOSE_CLONE_USING_SAMPLE or
COMPOSE_CLONE_USING_CLONE, because translation might not be correct in
any case.  I think it is obvious that that position is too extreme.

I would argue that it is ideal if:

        - We only use "sample" or "clone" in cases where it is actually
          warranted based on the actions that would be nested inside.

        - We log an error (and abort?) if we need to use "sample" or
          "clone" and the datapath can't implement it correctly to the
          needed depth.

Is it difficult to identify cases where we really need "sample" or
"clone"?
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to