On Fri, Jan 29, 2016 at 03:38:12PM -0800, Jarno Rajahalme wrote: > Handle implicit recirculation explicitly for each action type, so that > it is easier to follow what is happening. > > Signed-off-by: Jarno Rajahalme <ja...@ovn.org>
I think this would benefit from passing 'end' instead of 'rem_len' to xlate_implicit_recirculation(). I think the code would be clearer. Another argument is microoptimization: the compiler could in theory factor calculating 'rem_len' out into xlate_implicit_recirculation() anyway, but that would take a fair amount of insight, and it might even conclude that it is commonly needed and always calculate it because it is used so much. I think this is the third way we've dealt with deciding when MPLS needs recirculation. The first way was, if I recall correctly, an MPLS specific switch function in the spirit of recirc_unroll_actions(). The second way is the current one. But both of them make me unhappy. Really, I find myself wondering whether this optimization is worth it. How common do you think it is that a flow table pops off the last MPLS label and then directly outputs to a port, without any resubmit or goto_table intervening? That's basically all you can do. So I'm inclined to drop this optimization and make compose_mpls_pop_action() always recirculate if it pops off the last MPLS label. It will be a code cleanup and totally more maintainable. What do you think? _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev