summaryrefslogtreecommitdiff
path: root/zebra/interface.c
diff options
context:
space:
mode:
Diffstat (limited to 'zebra/interface.c')
-rw-r--r--zebra/interface.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/zebra/interface.c b/zebra/interface.c
index 719cf05db1..4eec435f1c 100644
--- a/zebra/interface.c
+++ b/zebra/interface.c
@@ -69,6 +69,7 @@ static int if_zebra_speed_update(struct thread *thread)
struct interface *ifp = THREAD_ARG(thread);
struct zebra_if *zif = ifp->info;
uint32_t new_speed;
+ bool changed = false;
zif->speed_update = NULL;
@@ -79,8 +80,12 @@ static int if_zebra_speed_update(struct thread *thread)
new_speed);
ifp->speed = new_speed;
if_add_update(ifp);
+ changed = true;
}
+ if (changed || new_speed == UINT32_MAX)
+ thread_add_timer(zrouter.master, if_zebra_speed_update, ifp, 5,
+ &zif->speed_update);
return 1;
}