> On Mar 17, 2015, at 2:08 PM, Ben Pfaff <b...@nicira.com> wrote: > > On Fri, Mar 13, 2015 at 04:52:01PM -0700, Jarno Rajahalme wrote: >> Prior to this patch MPLS recirculation was not performed on a table >> lookup following an MPLS_POP action. This patch refactors MPLS >> recirculation triggering so that a table action can be re-done after >> recirculation if that table action follows an MPLS_POP action. >> >> Recirculation for a patch port traversal (which also does a table >> lookup) after an MPLS_POP action does not need to store the output >> action, as recirculation without any post-recirculation actions causes >> the table lookup to happen anyway. >> >> Furthermore, the stack actions now have the same post-MPLS_POP >> optimization as the SET_FIELD and MOVE actions had already: >> recirculation is triggered only if the register in the action is L3 or >> higher. >> >> Signed-off-by: Jarno Rajahalme <jrajaha...@nicira.com> > > This could be implemented as just CHECK_MPLS_RECIRCULATION_COND(true): >> +#define CHECK_MPLS_RECIRCULATION() \ >> + if (ctx->was_mpls) { \ >> + ctx_trigger_recirculation(ctx); \ >> + break; \ >> + } > > I might consider naming this CHECK_MPLS_RECIRCULATION_IF instead:
Agreed, _IF is a better suffix here. >> +#define CHECK_MPLS_RECIRCULATION_COND(COND) \ >> + if (ctx->was_mpls && (COND)) { \ >> + ctx_trigger_recirculation(ctx); \ >> + break; \ >> + } > or even wrap CHECK_MPLS_RECIRCULATION() with an "if" statement. > Wrapped CHECK_MPLS_RECIRCULATION() with an “if” statement. > Acked-by: Ben Pfaff <b...@nicira.com <mailto:b...@nicira.com>> Thanks for the review! Jarno _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev