On Thu, Jun 19, 2025 at 11:08 PM Dumitru Ceara via dev <
ovs-dev@openvswitch.org> wrote:

> The route_table_change() callback is currently used to determine if any
> locally relevant routing table has changed since the last time the
> notifier was run.
>
> If we already found at least one relevant changed routing table we can
> avoid lookups for each and every subsequent route events in the current
> run.
>
> Signed-off-by: Dumitru Ceara <dce...@redhat.com>
> ---
>  controller/route-table-notify.c | 7 +++++++
>  1 file changed, 7 insertions(+)
>
> diff --git a/controller/route-table-notify.c
> b/controller/route-table-notify.c
> index 9f66a645ac..a052a7e8df 100644
> --- a/controller/route-table-notify.c
> +++ b/controller/route-table-notify.c
> @@ -134,6 +134,13 @@ find_watch_entry(uint32_t table_id)
>  static void
>  route_table_change(const void *change_, void *aux OVS_UNUSED)
>  {
> +    /* We currently track whether at least one recent route table change
> +     * was detected.  If that's the case already there's no need to
> +     * continue. */
> +    if (any_route_table_changed) {
> +        return;
> +    }
> +
>      const struct route_table_msg *change = change_;
>      if (change && change->rd.rtm_protocol != RTPROT_OVN) {
>          if (find_watch_entry(change->rd.rta_table_id)) {
> --
> 2.49.0
>
> _______________________________________________
> dev mailing list
> d...@openvswitch.org
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
>
>
Looks good to me, thanks.
Acked-by: Ales Musil <amu...@redhat.com>
_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to