mirror of
https://github.com/openvswitch/ovs
synced 2025-09-01 06:45:17 +00:00
bridge: Refactor bridge_reconfigure().
The existing bridge_reconfigure() implementation is suboptimal. When adding lots of new ports, on every pass through the run loop it allocates a bunch of "struct iface"s and "struct port"s, only to destroy them when out of time. Additionally, when there are errors adding or deleting ports, it can fail to converge. Instead it will attempt and fail to add the same set of ports forever. This patch rewrites bridge_reconfigure() using a new strategy. Whenever the database changes, some initial bookkeeping is done, and a list of future work is compiled. The bridge begins whittling down this list, and stops processing database changes until finished. Bug #10902. Signed-off-by: Ethan Jackson <ethan@nicira.com>
This commit is contained in: