On Tue, Sep 6, 2022 at 4:12 AM Ales Musil <[email protected]> wrote:
>
> We shouldn't run the MAC binding aging if the waker did not
> expire. This wouldn't cause any issue if the bulk removal limit
> is not configured. When the limit is configured and hit there
> will be some MAC bindings expired, just waiting for the
> bulk removal delay. If something wakes up the aging run earlier
> it could remove those rows without respecting the delay.
> Add check if we are past the next wake to prevent that.
>
> Signed-off-by: Ales Musil <[email protected]>
> ---
>  northd/mac-binding-aging.c | 7 ++++---
>  1 file changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/northd/mac-binding-aging.c b/northd/mac-binding-aging.c
> index 0196a116b..f65353a69 100644
> --- a/northd/mac-binding-aging.c
> +++ b/northd/mac-binding-aging.c
> @@ -91,9 +91,12 @@ en_mac_binding_aging_run(struct engine_node *node,
void *data OVS_UNUSED)
>  {
>      const struct engine_context *eng_ctx = engine_get_context();
>      struct northd_data *northd_data = engine_get_input_data("northd",
node);
> +    struct mac_binding_waker *waker =
> +        engine_get_input_data("mac_binding_aging_waker", node);
>
>      if (!eng_ctx->ovnsb_idl_txn ||
> -        !northd_data->features.mac_binding_timestamp) {
> +        !northd_data->features.mac_binding_timestamp ||
> +        time_msec() < waker->next_wake_msec) {
>          return;
>      }
>
> @@ -101,8 +104,6 @@ en_mac_binding_aging_run(struct engine_node *node,
void *data OVS_UNUSED)
>      int64_t now = time_wall_msec();
>      uint32_t removal_limit = get_removal_limit(node);
>      uint32_t removed_n = 0;
> -    struct mac_binding_waker *waker =
> -        engine_get_input_data("mac_binding_aging_waker", node);
>      struct ovsdb_idl_index *sbrec_mac_binding_by_datapath =
>          engine_ovsdb_node_get_index(engine_get_input("SB_mac_binding",
node),
>                                      "sbrec_mac_binding_by_datapath");
> --
> 2.37.2
>
> _______________________________________________
> dev mailing list
> [email protected]
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Thanks Ales. Applied to main and branch-22.09.

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

Reply via email to