secchan: Make fail-open work using a wildcard rule (and flush the flow table).
authorBen Pfaff <blp@nicira.com>
Thu, 19 Mar 2009 20:56:08 +0000 (13:56 -0700)
committerBen Pfaff <blp@nicira.com>
Thu, 19 Mar 2009 20:56:08 +0000 (13:56 -0700)
commitcbb72c968d8607554f0818b8f6e2ee41e0c6e3e2
tree5c5e4312cf852386fb1e53f0f5743197cf78d0d1
parentdf6a2e1961749356b6ad9158b322516f035003fa
secchan: Make fail-open work using a wildcard rule (and flush the flow table).

Fail-open was implemented by grabbing packets as they came in and then
shoving them into a learning switch, but this interacted badly with
vswitch.  First, it didn't respect the vswitch architecture; e.g. VLAN
and bonding settings were ignored.  Second, it didn't override any rules
that were still in the flow table from the last time we were connected to
a controller, which could cause other things to break if those rules were
bad (or if some host just wasn't authenticated etc.)

This commit fixes these problems by making fail-open use a wildcard rule
and OFPP_NORMAL, so that vswitch then implements VLANs etc., and by
flushing the flow table when we go into fail-open, getting rid of any
bad rules.
secchan/fail-open.c
secchan/fail-open.h
secchan/ofproto.c