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