On Wed, Dec 14, 2016 at 06:41:46PM -0800, William Tu wrote:
> >> actions=
> >> clone(truncate(100), push_vlan, resubmit, ...)
> >> where we don't need to worry about missing the truncate_unset() because
> >> truncated packet is not visible outside the clone().
> >
> > I see how "clone" helps with this conceptually, but I'm not sure why the
> > "sample" is necessary. I think that the proposed value here is that
> > "sample" allows the truncate to be canceled if no output occurs after
> > "truncate" and before the end of the "sample" action. But it's also
> > possible for the translation code to see whether there's an output
> > action within the clone and, if there is none, then to refrain from
> > emitting the datapath "truncate" action entirely. That seems like a
> > more efficient way to implement it. Will that work?
>
> Yes that will work, but we have to add a new datapath clone action.
> The reason I use "sample" is try not to add another new datapath
> action to kernel. Current "sample" action happens to provide a list
> of actions to execute, so I repurpose it to clone.
I still don't understand.
Here are some examples of translations from OpenFlow to datapath
actions, the way I would expect them to happen:
OF: 1, clone(truncate(100), push_vlan, 2), 3
dp: 1, truncate(100), push_vlan, 2, pop_vlan, 3
OF: 1, clone(truncate(100), push_vlan), 2
dp: 1, 2
Where does the sample action help?
Thanks,
Ben.
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev