ofproto-dpif: Restore former NORMAL action behavior when revalidating.
authorBen Pfaff <blp@nicira.com>
Fri, 22 Jul 2011 22:31:32 +0000 (15:31 -0700)
committerBen Pfaff <blp@nicira.com>
Wed, 27 Jul 2011 00:09:07 +0000 (17:09 -0700)
commit4cd78906a0c30cc2de0a6a0370c6b2cf1b7853b2
treeb3e741aeec582cc503e3acf88a406eccd575a858
parentfc3d74089cea8f4f7d026daf922d2b89305a7364
ofproto-dpif: Restore former NORMAL action behavior when revalidating.

Before commit fa066f015 "bridge: Move packet processing functionality into
ofproto," the code that called into what became xlate_normal() prevented
a flow from being installed if it was called at revalidation time and
the MAC learning table lacked an entry for the flow's destination MAC.
That commit instead started dropping packets in that case (because it
incorrectly ignored xlate_normal()'s return value).

This restores the former behavior.  It's not clear that the former behavior
is the best possible, but it is strictly better than starting to drop
packets at revalidation time.

Along with the previously fixed problem where flood_vlans were interpreted
incorrectly, this bug broke controller connectivity when flood_vlans was
set to any nonempty value that did not include the VLAN used for the
controller connection (that is, when flood_vlans was interpreted as
flooding the controller VLAN).

Reported-by: David Tsai <dtsai@nicira.com>
ofproto/ofproto-dpif.c