Always use sb_table_set_req_mon_condition macro in update_sb_monitors routine even for optional tables (e.g. advertised_mac_binding or advertised_route) since OvS IDL layer will take care of creating proper monitor requests according to the real db schema. This patch fixes the conditional monitor support for optional tables since sb_table_set_opt_mon_condition macro will not properly enable conditional monitoring until we run update_sb_monitors() in the ovn-controller main loop. As result we will always receive notifications for all the columns of optional tables (even if monitor-all is not enabled) until we modify a monitor conditions.
Reported-at: https://issues.redhat.com/browse/FDP-3114 Signed-off-by: Lorenzo Bianconi <[email protected]> --- This patch depends on the following OvS patch: https://mail.openvswitch.org/pipermail/ovs-dev/2026-March/431054.html --- controller/ovn-controller.c | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/controller/ovn-controller.c b/controller/ovn-controller.c index 4161fe2b3..9e6089017 100644 --- a/controller/ovn-controller.c +++ b/controller/ovn-controller.c @@ -211,13 +211,6 @@ static char *get_file_system_id(void) free(filename); return ret; } -/* Only set monitor conditions on tables that are available in the - * server schema. - */ -#define sb_table_set_opt_mon_condition(idl, table, cond) \ - (sbrec_server_has_##table##_table(idl) \ - ? sbrec_##table##_set_condition(idl, cond) \ - : 0) /* Assume the table exists in the server schema and set its condition. */ #define sb_table_set_req_mon_condition(idl, table, cond) \ @@ -430,11 +423,11 @@ out:; sb_table_set_req_mon_condition(ovnsb_idl, ip_multicast, &ip_mcast), sb_table_set_req_mon_condition(ovnsb_idl, igmp_group, &igmp), sb_table_set_req_mon_condition(ovnsb_idl, chassis_private, &chprv), - sb_table_set_opt_mon_condition(ovnsb_idl, chassis_template_var, &tv), - sb_table_set_opt_mon_condition(ovnsb_idl, ecmp_nexthop, &nh), - sb_table_set_opt_mon_condition(ovnsb_idl, advertised_route, &ar), - sb_table_set_opt_mon_condition(ovnsb_idl, learned_route, &lr), - sb_table_set_opt_mon_condition(ovnsb_idl, advertised_mac_binding, + sb_table_set_req_mon_condition(ovnsb_idl, chassis_template_var, &tv), + sb_table_set_req_mon_condition(ovnsb_idl, ecmp_nexthop, &nh), + sb_table_set_req_mon_condition(ovnsb_idl, advertised_route, &ar), + sb_table_set_req_mon_condition(ovnsb_idl, learned_route, &lr), + sb_table_set_req_mon_condition(ovnsb_idl, advertised_mac_binding, &amb), }; -- 2.53.0 _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
