On Mon, Apr 04, 2016 at 05:16:35PM +0900, Simon Horman wrote:
> Until 8bf009bf8ab4 ("xlate: Always recirculate after an MPLS POP to a
> non-MPLS ethertype.") the translation code took some care to only
> recirculate as a result of a pop_mpls action if necessary. This was
> implemented using per-action checks and resulted in some maintenance
> burden.
> 
> Unfortunately recirculation is a relatively expensive operation and a
> performance degradation of up to 35% has been observed with the above
> mentioned patch applied for the arguably common case of:
> 
>       pop_mpls,set(l2 field),output
> 
> This patch attempts to strike a balance between performance and
> maintainability by special casing set and output actions such
> that recirculation may be avoided.
> 
> This partially reverts the above mentioned commit. In particular most
> of the C code changes outside of do_xlate_actions().
> 
> Signed-off-by: Simon Horman <simon.hor...@netronome.com>
> ---
> * Lightly tested using test-suite portion of this patch

I think that recirculation is necessary for output to patch ports.

I think that recirculation is necessary for output to a group that
chooses a bucket based on L3+ fields, even if the actions in the group
do not otherwise require recirculation.

Thanks,

Ben.
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to