On Thu, Oct 30, 2014 at 12:06:30PM +0100, Thomas Graf wrote:
> On 10/29/14 at 11:46pm, Ben Pfaff wrote:
> > A "conjunctive match" allows higher-level matches in the flow table, such
> > as set membership matches, without causing a cross-product explosion for
> > multidimensional matches.  Please refer to the documentation that this
> > commit adds to ovs-ofctl(8) for a better explanation, including an example.
> 
> High level remark before I dig into the code:
> 
>         conjunction(id, k/n)
> 
> I like n being the number of dimensions. I wonder whether we should
> have k start at 1 instead of 0 though. It would read as 1/2 - "1st
> dimension out of 2", 2/2 - "2nd dimension out of 2".

I'd be happy with that as the formatted syntax, but due to the use of
bitmaps for the dimensions it would either cause extra +1/-1 in
different places, or change the limit from 64 to 63 dimensions (which is
probably still about 60 more than actually useful).

I'll think about it for the next version.

> > - Fixing reg0 as the field to use for conjunctive match lookup doesn't seem
> >   too great.  We could make it configurable per-flow, or we could add a new
> >   field specifically for this purpose.  I am not sure that it should be
> >   fixed to 32 bits, either.
> 
> I guess we can't go wrong with a separate 64 bits field.

We're starting to have a lot of fields.  When struct flow exceeds 252
(63 * 4) bytes, we'll have to change how struct miniflow works because
we can't make the 'map' member wider than 63 bits.  Still, we do have
some room.
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to