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
