The tables have different purposes. A flow in the classifier is an OpenFlow flow that may contain wildcards. A flow in the datapath (e.g. dp_netdev) is always exact-match (to allow hashing).
On Thu, Sep 08, 2011 at 07:13:24PM +0500, Bibrak Qamar wrote: > But when dpif-netdev is used does it store flows in both of the tables? I > mean why are we maintaining two tables? > > > > struct classifier { > int n_rules; /* Total number of rules. */ > struct hmap tables; */* Contains "struct cls_table"s. */* > }; > > struct dp_netdev { > .. > .. > struct hmap flow_table; * /* Flow table. */* > .. > } > > When a new flow (packet) is received does it look_up in classifier's table > or netdev's flow_table for match? > > Thanks for your help > Bibrak > > On Thu, Sep 8, 2011 at 7:04 PM, Ben Pfaff <b...@nicira.com> wrote: > > > On Thu, Sep 08, 2011 at 06:10:45PM +0500, Bibrak Qamar wrote: > > > Ok now I have got some idea. In the classifier there is a data structure > > > which stores the rules, i.e > > > > > > struct classifier { > > > int n_rules; /* Total number of rules. */ > > > struct hmap tables; /* Contains "struct cls_table"s. */ > > > }; > > > > > > And in the netdev there is also a data structure which stores the flows, > > i.e > > > > > > > > > > > > dp_netdev_lookup_flow > > > > That's the userspace implementation of the datapath. If you're using > > the Linux kernel module, nothing in dpif-netdev.c is used; the code in > > dpif-linux.c is used instead. > > _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev