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