/*---------------------------------------------------------------------------*/ static void handle_periodic_timer(void *ptr) { rpl_purge_routes(); rpl_recalculate_ranks(); /* handle DIS */ #if RPL_DIS_SEND next_dis++; if(rpl_get_any_dag() == NULL && next_dis >= RPL_DIS_INTERVAL) { next_dis = 0; dis_output(NULL); } #endif ctimer_reset(&periodic_timer); }
/*---------------------------------------------------------------------------*/ static void handle_periodic_timer(void *ptr) { rpl_purge_routes(); rpl_recalculate_ranks(); /* handle DIS */ #if UIP_ND6_ENGINE != UIP_ND6_ENGINE_RPL #if RPL_DIS_SEND next_dis++; if(rpl_get_any_dag() == NULL && next_dis >= RPL_DIS_INTERVAL) { next_dis = 0; dis_output(NULL); } #endif #else if(rpl_get_any_dag() == NULL && stimer_expired(&uip_ds6_timer_dis)) { discount++; dis_output(NULL); stimer_set(&uip_ds6_timer_dis, rs_rtx_time(discount)); } #endif ctimer_reset(&periodic_timer); }