vswitchd: Eliminate "can't forward to bad port" when interfaces disappear.
authorBen Pfaff <blp@nicira.com>
Fri, 9 Jan 2009 20:51:19 +0000 (12:51 -0800)
committerBen Pfaff <blp@nicira.com>
Fri, 9 Jan 2009 20:51:19 +0000 (12:51 -0800)
commit150ac45a8df99addd0ca84dced57b61b95b648f3
treec83af3bb8ff7af6b2451a4b8885d8bede32a2f33
parentdb3dae1ab3fc0e9a4eb7b6ed456966971d942961
vswitchd: Eliminate "can't forward to bad port" when interfaces disappear.

When an interface was deleted from a datapath by a process other than
vswitchd (which is not supposed to happen), vswitchd would not realize it
and would continue to set up flows for that interface (and leave in place
existing flows).  This caused the kernel to complain "can't forward to bad
port" for each packet on these flows.

Xen triggered this by destroying vifs that were on vswitchd-controlled
datapaths (which removes them from any datapath that they are on).

This fixes the problem, by making vswitchd notice when interfaces
disappear and fixing up the flow table.
vswitchd/bridge.c