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>
Thu, 4 Aug 2011 03:51:19 +0000 (20:51 -0700)
commit6da1e8091eb2e19de7ba5e0c73ac3e7dd437743d
tree0a82a71d8418d30831d9ba567c184c41792c781c
parent2bd5b8145b7cf1851d51e258ab614414f2496aae
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