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 <[email protected]> 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
[email protected]
http://openvswitch.org/mailman/listinfo/dev