Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
ovn-controller: Assume well-known tables are in the SB schema.
If no monitor condition is set then the IDL layer assumes the user wishes to monitor all records of a given table. Since 1b0dbde ("ovn-controller: Only set monitor conditions on available tables.") ovn-controller doesn't set monitor conditions for tables that are not part of the schema received from the server; ovn-controller doesn't get a chance to update conditions between the moment when the schema was received from the Southbound and the monitor_cond_since request. That essentially means that ovn-controller ends up downloading all remote SB content at start up, significantly increasing memory usage. It's safe to assume that tables that existed in the previous LTS branch first release (currently 22.03.0) can be monitored directly. Do so and only "optionally" monitor the ones that have been added since. This way we avoid the need for the IDL to expose an API to change the default condition for monitored tables. It also avoids complex code in ovn-controller because we'd otherwise have to explicitly re-initialize conditions to a non-default (false) value after every SB reconnect. NOTE: In order to make sure that pre-existing L3 and L2 gateways are not initially considered "non-local" we explicitly request for all port bindings of this type to be monitored in the startup stage (before we got the initial contents of the database and our chassis record). Fixes: 1b0dbde ("ovn-controller: Only set monitor conditions on available tables.") Reported-at: https://mail.openvswitch.org/pipermail/ovs-dev/2023-July/406201.html Reported-by: Vladislav Odintsov <[email protected]> CC: Ales Musil <[email protected]> CC: Han Zhou <[email protected]> Signed-off-by: Dumitru Ceara <[email protected]> Acked-by: Han Zhou <[email protected]> Acked-by: Ales Musil <[email protected]> (cherry picked from commit f66abc5)
- Loading branch information