On 1/11/25 10:13, Smirnov Aleksandr (K2 Cloud) wrote:
> Hi,
> 
> Could you help me understand ovn-controller SB db data retrieve with 
> monitor-all=false.
> 
> In our work we want to catch the moment when no more monitored updates 
> will be received, i.e. ovn-controller finally catch all data it needs to 
> make complete open flow.
> 
> I made some code investigation and I guess a good candidate is
> 
> ovn-controller.c:main()
> 
> 
>                         /* Updating monitor conditions if runtime data or
>                           * logical datapath goups changed. */
>                          if (engine_node_changed(&en_runtime_data)
>                              || 
> engine_node_changed(&en_sb_logical_dp_group)) {
>                              ovnsb_expected_cond_seqno =
>                                  update_sb_monitors(
>                                      ovnsb_idl_loop.idl, chassis,
> &runtime_data->local_lports,
> &runtime_data->lbinding_data.bindings,
> &runtime_data->local_datapaths,
>                                      sb_monitor_all);
>                          }
> 
> I guess if we are not falling into update_sb_monitors() no more changes 
> comes in during ovsdb_idl_loop_run() called above.
> 
> However I am not sure because the main() function is complicated.
> 
> Could you please explain how to catch desired condition properly?

Hi, Alexander.  This is a little more complicated due to staged condition
changes and some other factors.  I suggest you to read this discussion
thread for more context:
  
https://patchwork.ozlabs.org/project/ovn/patch/[email protected]/
It was a relatively low priority and then I forgot about the change, so
didn't follow up.  Though, may be worth reviving.

Best regards, Ilya Maximets.

> 
> Thank you,
> 
> Alexander

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

Reply via email to