On Fri, Feb 19, 2016 at 11:25:10AM -0600, Ryan Moats wrote: > From: RYAN D. MOATS <rmo...@us.ibm.com> > > Persist across runs so that a change to this simap can be used > as a trigger for resetting incremental processing. > > Signed-off-by: RYAN D. MOATS <rmo...@us.ibm.com> > --- > ovn/controller/lflow.c | 18 ++++++++++++------ > 1 files changed, 12 insertions(+), 6 deletions(-) > > diff --git a/ovn/controller/lflow.c b/ovn/controller/lflow.c > index d53213c..18f0970 100644 > --- a/ovn/controller/lflow.c > +++ b/ovn/controller/lflow.c > @@ -231,21 +231,27 @@ static void > ldp_run(struct controller_ctx *ctx) > { > struct logical_datapath *ldp; > - HMAP_FOR_EACH (ldp, hmap_node, &logical_datapaths) { > - simap_clear(&ldp->ports); > - } > +// HMAP_FOR_EACH (ldp, hmap_node, &logical_datapaths) { > +// simap_clear(&ldp->ports); > +// }
Please don't comment out code. Just remove it, if it is no longer needed. > const struct sbrec_port_binding *binding; > SBREC_PORT_BINDING_FOR_EACH (binding, ctx->ovnsb_idl) { > struct logical_datapath *ldp = > ldp_lookup_or_create(binding->datapath); > - > - simap_put(&ldp->ports, binding->logical_port, binding->tunnel_key); > + struct simap_node *old = simap_find(&ldp->ports, > + binding->logical_port); > + if (!old || old->data != binding->tunnel_key) { > + simap_put(&ldp->ports, binding->logical_port, > binding->tunnel_key); > + } > } > > const struct sbrec_multicast_group *mc; > SBREC_MULTICAST_GROUP_FOR_EACH (mc, ctx->ovnsb_idl) { > struct logical_datapath *ldp = ldp_lookup_or_create(mc->datapath); > - simap_put(&ldp->ports, mc->name, mc->tunnel_key); > + struct simap_node *old = simap_find(&ldp->ports, mc->name); > + if (!old || old->data != mc->tunnel_key) { > + simap_put(&ldp->ports, mc->name, mc->tunnel_key); > + } > } I don't see anything in the new logic that will ever clear a port or a multicast group that has disappeared. _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev