in-band: Delete remaining rules when disabling in-band control.
authorBen Pfaff <blp@nicira.com>
Wed, 3 Aug 2011 22:01:11 +0000 (15:01 -0700)
committerBen Pfaff <blp@nicira.com>
Wed, 10 Aug 2011 16:28:42 +0000 (09:28 -0700)
commitb0d3305cdf1503e9d31054ba3b533e7ac6dbfde1
treeabbdeb80fda87e86178354ca8b545281f23535a1
parentad996d50facdc0b57313f56e72f5c341e5754818
in-band: Delete remaining rules when disabling in-band control.

in_band_destroy() doesn't remove all of the rules that in-band control
adds (and it cannot, because that might require waiting for an existing
asynchronous flow modification or addition to complete), so turning on
other-config:disable-in-band or deleting all of the OpenFlow controllers
did not delete all of the in-band rules.

This commit fixes the problem by making the in-band control object hang
around until all of the flows that it set up have actually been deleted.

This problem was introduced as part of commit 7ee20df "ofproto: Implement
asynchronous OFPT_FLOW_MOD commands."

Reported-by: Brad Hall <brad@nicira.com>
ofproto/connmgr.c
ofproto/in-band.c
ofproto/in-band.h