The actual case I found this bug is more complicated to explain, but the
following made up example can illustrate the problem. Consider we have 2
kernel mega flows:

1)  in_port(1/0xffff),  *
2)  in_port(2/0xffff),  src_ip(1.1.1.1/255.255.255.255)

They are not overlapping flows, however, when the following packet arrives
(in_port(2), src_ip(2,2,2,2)). if we apply mask of 1), it could match flow
2). But it should not.

Adding the mask check would have prevented this false match.

--andy


On Mon, Jul 22, 2013 at 9:57 AM, Jesse Gross <je...@nicira.com> wrote:

> On Fri, Jul 19, 2013 at 11:11 AM, Andy Zhou <az...@nicira.com> wrote:
> > A mega flow matches when the masked key matches and the mask applied
> > is the same as the mask used to create the mega flow.
> >
> > This patch adds the implementation of the second match condition
> > mentioned above. Without this fix, mega flow lookup may result false
> > match.
> >
> > Bug #18584
> >
> > Signed-off-by: Andy Zhou <az...@nicira.com>
>
> Can you explain the conditions under which this can occur? It seems to
> imply the overlapping flows are being installed, which is not supposed
> to happen.
>
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to