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