On Fri, Jun 2, 2023 at 8:05 AM Numan Siddique <num...@ovn.org> wrote: > > On Fri, Jun 2, 2023 at 12:13 AM Han Zhou <hz...@ovn.org> wrote: > > > > For changes such as nb_cfg related columns, don't trigger recompute. > > > > Signed-off-by: Han Zhou <hz...@ovn.org> > > Reviewed-by: Ales Musil <amu...@redhat.com> > > Acked-by: Numan Siddique <num...@ovn.org> > > Numan > Thanks Numan. I applied to main.
Han > > --- > > northd/en-northd.c | 26 ++++++++++++++++++++++++++ > > northd/en-northd.h | 1 + > > northd/inc-proc-northd.c | 3 ++- > > tests/ovn-northd.at | 6 +++--- > > 4 files changed, 32 insertions(+), 4 deletions(-) > > > > diff --git a/northd/en-northd.c b/northd/en-northd.c > > index e8f3a844af71..a3dc37e198e3 100644 > > --- a/northd/en-northd.c > > +++ b/northd/en-northd.c > > @@ -20,6 +20,7 @@ > > > > #include "en-northd.h" > > #include "lib/inc-proc-eng.h" > > +#include "lib/ovn-nb-idl.h" > > #include "openvswitch/list.h" /* TODO This is needed for ovn-parallel-hmap.h. > > * lib/ovn-parallel-hmap.h should be updated > > * to include this dependency itself */ > > @@ -122,6 +123,31 @@ void en_northd_run(struct engine_node *node, void *data) > > engine_set_node_state(node, EN_UPDATED); > > > > } > > + > > +bool > > +northd_nb_nb_global_handler(struct engine_node *node, > > + void *data OVS_UNUSED) > > +{ > > + const struct nbrec_nb_global_table *nb_global_table > > + = EN_OVSDB_GET(engine_get_input("NB_nb_global", node)); > > + > > + const struct nbrec_nb_global *nb = > > + nbrec_nb_global_table_first(nb_global_table); > > + > > + if (!nb) { > > + static struct vlog_rate_limit rl = VLOG_RATE_LIMIT_INIT(1, 1); > > + VLOG_WARN_RL(&rl, "NB_Global is updated but has no record."); > > + return false; > > + } > > + > > + /* We care about the 'options' and 'ipsec' columns only. */ > > + if (nbrec_nb_global_is_updated(nb, NBREC_NB_GLOBAL_COL_OPTIONS) || > > + nbrec_nb_global_is_updated(nb, NBREC_NB_GLOBAL_COL_IPSEC)) { > > + return false; > > + } > > + return true; > > +} > > + > > void *en_northd_init(struct engine_node *node OVS_UNUSED, > > struct engine_arg *arg OVS_UNUSED) > > { > > diff --git a/northd/en-northd.h b/northd/en-northd.h > > index 0e7f76245e69..8d8343b459a6 100644 > > --- a/northd/en-northd.h > > +++ b/northd/en-northd.h > > @@ -13,5 +13,6 @@ void en_northd_run(struct engine_node *node OVS_UNUSED, void *data OVS_UNUSED); > > void *en_northd_init(struct engine_node *node OVS_UNUSED, > > struct engine_arg *arg); > > void en_northd_cleanup(void *data); > > +bool northd_nb_nb_global_handler(struct engine_node *, void *data OVS_UNUSED); > > > > #endif /* EN_NORTHD_H */ > > diff --git a/northd/inc-proc-northd.c b/northd/inc-proc-northd.c > > index d54aa19c7749..863c9323c444 100644 > > --- a/northd/inc-proc-northd.c > > +++ b/northd/inc-proc-northd.c > > @@ -141,7 +141,8 @@ void inc_proc_northd_init(struct ovsdb_idl_loop *nb, > > { > > /* Define relationships between nodes where first argument is dependent > > * on the second argument */ > > - engine_add_input(&en_northd, &en_nb_nb_global, NULL); > > + engine_add_input(&en_northd, &en_nb_nb_global, > > + northd_nb_nb_global_handler); > > engine_add_input(&en_northd, &en_nb_logical_switch, NULL); > > engine_add_input(&en_northd, &en_nb_port_group, NULL); > > engine_add_input(&en_northd, &en_nb_load_balancer, NULL); > > diff --git a/tests/ovn-northd.at b/tests/ovn-northd.at > > index 79b5ba63ac8e..6736429ae201 100644 > > --- a/tests/ovn-northd.at > > +++ b/tests/ovn-northd.at > > @@ -8899,11 +8899,11 @@ wait_column '20.0.0.4' Address_Set addresses name=pg1_ip4 > > recompute_stat=$(as northd ovn-appctl -t NORTHD_TYPE inc-engine/show-stats sync_to_sb_addr_set recompute) > > AT_CHECK([test $recompute_stat -ge 1]) > > > > -# Any change to northd engine node should result in full recompute of sync_to_sb_addr_set node. > > +# No change, no recompute > > check as northd ovn-appctl -t NORTHD_TYPE inc-engine/clear-stats > > check ovn-nbctl --wait=sb sync > > -recompute_stat=$(as northd ovn-appctl -t NORTHD_TYPE inc-engine/show-stats sync_to_sb_addr_set recompute) > > -AT_CHECK([test $recompute_stat -ge 1]) > > +AT_CHECK([as northd ovn-appctl -t NORTHD_TYPE inc-engine/show-stats sync_to_sb_addr_set recompute], [0], [0 > > +]) > > > > AT_CLEANUP > > ]) > > -- > > 2.30.2 > > > > _______________________________________________ > > dev mailing list > > d...@openvswitch.org > > https://mail.openvswitch.org/mailman/listinfo/ovs-dev > > _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev