On 3/12/26 10:02 PM, Lorenzo Bianconi wrote:
> 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
> ---

Hi Lorenzo,

This looks good to me.  I think it's fine to repost this once the final
version of the OVS counterpart, currently [0] is accepted.

I'll mark this one as "Deferred" in patchwork but like I said, the
actual non-RFC patch should probably be exactly what the RFC patch is
doing (additionally bumping the OVS submodule version).

Regards,
Dumitru

[0]
https://patchwork.ozlabs.org/project/openvswitch/patch/bb8da68751ae411ee62c09ee1840fd01c0307bf1.1773327482.git.lorenzo.bianc...@redhat.com/

>  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),
>      };
>  

_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to