Ben Pfaff <b...@ovn.org> wrote on 02/25/2016 03:31:56 PM: > From: Ben Pfaff <b...@ovn.org> > To: Ryan Moats/Omaha/IBM@IBMUS > Cc: dev@openvswitch.org > Date: 02/25/2016 03:32 PM > Subject: Re: [ovs-dev] [PATCH v7 4/6] [ovn-controller] Persist ports > simap in logical_datapath > > 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.
Yes, that's a mistake that will get fixed in v8. > > > 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. Hmm... I remember having something that took care of that case, but since I don't see it in the above, that is now on the gating list for the v8 patch set. Ryan _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev