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

Reply via email to