Ben Pfaff <b...@ovn.org> wrote on 07/03/2016 04:35:10 PM: > From: Ben Pfaff <b...@ovn.org> > To: Ryan Moats/Omaha/IBM@IBMUS > Cc: dev@openvswitch.org > Date: 07/03/2016 04:35 PM > Subject: Re: [ovs-dev,v21,4/8] Refactor lflow.c > > On Sun, Jul 03, 2016 at 10:35:29AM -0500, Ryan Moats wrote: > > Refactor code block inside of SBREC_LOGICAL_FLOW_FOR_EACH > > loop in add_logical_flow so that this can be reused when > > incremental processing is added. > > > > The is_new parameter is added for use in a later patch set. > > > > Signed-off-by: Ryan Moats <rmo...@us.ibm.com> > > Applied, thanks! >
Since parts 3 and 4 have merged and part 2 didn't it looks like you will be asking for a v22 of that patch. If so, you are likely to get the same code with different explanations, so let me try the new explanations on you in advance :) Starting at L509 of the ofctrl.c (as it looks after applying patch 2): /* This is a modification operation, so check to see if there * is a duplicate flow. If not, see if there is a flow whose * match criteria is either more or less specific then this flow. * If we find a duplicate flow or a flow that this flow should * replace (because we are adding or removing match criteria), * then drop the new flow as superseded. */ The new description of ovn_flow_lookup_by_uuid (which can have it's name changed if you'd like, I'm still not sure what a good name for it would be...) /* Find the flow that the target flow can replace. The target flow * can replace a flow in the flow table that: * 1) has the same uuid as the target flow (i.e. comes from the same * ovsdb table row), * 2) has the same table_id and priority as the target flow, * 3) either has the same match criteria as the target flow, or * has a match criteria that is either a proper subset or proper * superset of the target flow. * * The reason for the proper set and proper subset part of condition 3 * is that modifying logical flow criteria (for example adding an * IP address to an already existing logical port) will lead to new * match criteria being added to the flow, so we want to find the * flow with the old match criteria to avoid having duplicate flows. * * A flow is considered a proper subset of a second flow (with respect * to match criteria) if the first flow has wildcards that the * second flow does not, the second flow does not have wildcards that the * first flow does not, and the two flows are identical with the * exception of the first flow's wildcards. */ Ryan _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev