Thanks, I applied the patch to master.

On Tue, Dec 02, 2014 at 07:25:41PM +0000, Zolt?n Balogh wrote:
> Hi Ben,
> 
> It's ok. I also applied the patch and run 'make check'. All tests passed.
> 
> Regards,
> Zoltan
> 
> -----Original Message-----
> From: Zolt?n Balogh 
> Sent: Tuesday, December 02, 2014 8:01 PM
> To: 'Ben Pfaff'
> Cc: dev@openvswitch.org
> Subject: RE: [ovs-dev] adding new ofproto provider
> 
> Hi Ben,
> 
> Yes, I will review it.
> 
> Regards,
> Zoltan
> 
> -----Original Message-----
> From: Ben Pfaff [mailto:b...@nicira.com] 
> Sent: Tuesday, December 02, 2014 7:56 PM
> To: Zolt?n Balogh
> Cc: dev@openvswitch.org
> Subject: Re: [ovs-dev] adding new ofproto provider
> 
> On Tue, Dec 02, 2014 at 01:41:10PM +0000, Zolt?n Balogh wrote:
> > Dear Sirs,
> > 
> > I'm working on a project in which the goal is to add a new ofproto provider 
> > to ovs while keeping ofproto_dpif. We use ovs version  I created a new 
> > ofproto _class (ofproto_new) and I register an instance of  this new type 
> > of ofproto class in ofproto_init() the same way as the existing 
> > ofproto_dpif_class:
> > 
> > void
> > ofproto_init(const struct shash *iface_hints) {
> >     struct shash_node *node;
> >     size_t i;
> > 
> >     ofproto_class_register(&ofproto_dpif_class);
> >     ofproto_class_register(&ofproto_new_class);
> > 
> >     ...
> > }
> > 
> > In my implementation enumerate_types() of the new class returns only a 
> > single type, let's call it "new".  Similarly to ofproto_dpif implementation 
> > the passed sset pointed by types will be cleared before adding the new 
> > member.
> > 
> > I observed that when bridge_run__() is invoked only the type_run() of 
> > ofproto_new_class is invoked, type_run() of ofproto_dpif_class will never 
> > be called.  If my interpretation is correct then ofproto_enumerate_types() 
> > invoked in bridge_run__() should go through the registered ofproto provider 
> > classes and collect the "types".
> > 
> > void
> > ofproto_enumerate_types(struct sset *types) {
> >     size_t i;
> > 
> >     sset_clear(types);
> >     for (i = 0; i < n_ofproto_classes; i++) {
> >         ofproto_classes[i]->enumerate_types(types);
> >     }
> >   }
> > 
> > But since the enumerate_types() functions (both of ofproto_dpif and 
> > similarly ofproto_new) clear the passed sset only the types of the last 
> > ofproto_class will be collected and provided to bridge_run__().
> > 
> > Maybe my interpretation is wrong but I guess the types retrieved by each 
> > call of ->enumerate_types() in ofproto_enumerate_types() should be merged. 
> > Is there any reason why this is not done in your ofproto_enumerate_types() 
> > implementation?
> 
> I think you're right.
> 
> I sent out a patch:
>         http://openvswitch.org/pipermail/dev/2014-December/049350.html
> Will you review it?  Thanks.
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to