[ovs-dev] implementation details on megaflows ?

Reid Price rprice at nicira.com
Thu Oct 10 01:22:25 UTC 2013


Hi Luigi,

At some level it is a logical error to create flows that:
- have the same priority
- have overlapping match criteria
- have different actions

You are already in trouble if you have

  priority=100, nw_src=1.2.3.0/24,actions=1
  priority=100, nw_dst=5.6.7.0/24,actions=2

Since the action performed for 1.2.3.X->5.6.7.X be arbitrary,
most likely based upon the ordering of some internal hash.

For your above confusion, then:

        A: 1.2.3.4 -> 5.6.7.8 (matches flow 1)
        B: 1.2.5.6 -> 5.6.7.8 (matches flow 3)

if you have different actions:
- there is already a problem, the action is arbitrary regardless
if you have the same actions:
- there is no problem, the action would be the same

Hope this helps!

  -Reid


On Wed, Oct 9, 2013 at 6:15 PM, Luigi Rizzo <rizzo at iet.unipi.it> wrote:

> On Wed, Oct 09, 2013 at 05:59:43PM -0700, Ben Pfaff wrote:
> > Your question deserves a more detailed answer, but here's an easy part.
> >
> > On Thu, Oct 10, 2013 at 02:54:19AM +0200, Luigi Rizzo wrote:
> > > Perhaps a simple example could help me -- e.g. say you have these
> > > four flow entries, how many hash tables are created with megaflows ?
> > >
> > >         (1) nw_src=1.2.3.0/24 ...
> > >         (2) nw_src=1.2.4.0/24 ...
> > >         (3) nw_dst=5.6.7.0/24 ...
> > >         (4) nw_src=1.2.5.0/24 ...
> >
> > Two, one for flows 1, 2, and 4 (since they match on the same bits of the
> > same field), and one for flow 3 (which matches on a different field
> > entirely).
>
> thanks.
> the thing i do not understand is, these two packets
>
>         A: 1.2.3.4 -> 5.6.7.8 (matches flow 1)
>         B: 1.2.5.6 -> 5.6.7.8 (matches flow 3)
>
> match different flows, but if we only have two hash tables in the kernel
> (and they match both) how do we make sure that they are classified
> properly (A could be misclassified as flow 3 if the table for nw_dst/24
> comes first; conversely, B could be misclassified as flow 4 if
> the other hash table comes first)
>
> I suppose I am missing some details in my description of the scheme.
>
> cheers
> luigi
>
> > The megaflows kernel design is similar to the userspace classifier.  The
> > main difference is that overlapping flows aren't allowed, so that any
> > match that is found can be accepted.
> _______________________________________________
> dev mailing list
> dev at openvswitch.org
> http://openvswitch.org/mailman/listinfo/dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openvswitch.org/pipermail/ovs-dev/attachments/20131009/1b60d8a2/attachment-0003.html>


More information about the dev mailing list