On Tue, Nov 22, 2011 at 04:29:35PM -0800, Ethan Jackson wrote: > Before executing an output action, ofproto-dpif must commit the > changes it's made to the flow so they are reflected in the > packet. This code has been unnecessarily complex. This patch > attempts to simplify the code in the following ways. > > - Commit in fewer places. > In an attempt to provide some optimization, the ofproto-dpif code > separated the commit and output composition steps so things like > flood actions could avoid redundant commits. This is a case of > premature optimization that makes the code significantly more > difficult to reason about. With this patch, commits happen only > when really necessary. > > - Only perform full commits. > In an attempt to provide some optimization, the ofproto-dpif code > would allow callers to only commit the part of the flow that they > had modified by directly calling the relevant subroutine. This > practice made the code difficult to reason about and is thus > discontinued. > > - Perform all output logic in one function. > All of the logic surrounding the datapath output action has been > placed in the compose_output_action__() function. Most callers > will use the compose_output_action() function which simply passes > reasonable defaults through to compose_output_action__().
It's a good cleanup. We could now shorten ofproto.c a bit by moving commit_odp_actions() and all of its helpers to odp-util.c. Thanks, Ben. _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev