diff --git a/core/net/rpl/rpl-timers.c b/core/net/rpl/rpl-timers.c index d2eebea5e..fc584e0bd 100644 --- a/core/net/rpl/rpl-timers.c +++ b/core/net/rpl/rpl-timers.c @@ -168,7 +168,9 @@ handle_dio_timer(void *ptr) void rpl_reset_periodic_timer(void) { - next_dis = RPL_DIS_INTERVAL - RPL_DIS_START_DELAY; + next_dis = RPL_DIS_INTERVAL / 2 + + ((uint32_t)RPL_DIS_INTERVAL * (uint32_t)random_rand()) / RANDOM_RAND_MAX - + RPL_DIS_START_DELAY; ctimer_set(&periodic_timer, CLOCK_SECOND, handle_periodic_timer, NULL); } /*---------------------------------------------------------------------------*/