/*---------------------------------------------------------------------------*/ void rpl_local_repair(rpl_instance_t *instance) { int i; if(instance == NULL) { PRINTF("RPL: local repair requested for instance NULL\n"); return; } PRINTF("RPL: Starting a local instance repair\n"); for(i = 0; i < RPL_MAX_DAG_PER_INSTANCE; i++) { if(instance->dag_table[i].used) { instance->dag_table[i].rank = INFINITE_RANK; nullify_parents(&instance->dag_table[i], 0); } } rpl_reset_dio_timer(instance); RPL_STAT(rpl_stats.local_repairs++); }
/*---------------------------------------------------------------------------*/ void rpl_local_repair(rpl_instance_t *instance) { int i; if(instance == NULL) { PRINTF("RPL: local repair requested for instance NULL\n"); return; } PRINTF("RPL: Starting a local instance repair\n"); for(i = 0; i < RPL_MAX_DAG_PER_INSTANCE; i++) { if(instance->dag_table[i].used) { instance->dag_table[i].rank = INFINITE_RANK; nullify_parents(&instance->dag_table[i], 0); } } rpl_reset_dio_timer(instance); /* Request refresh of DAO registrations next DIO */ RPL_LOLLIPOP_INCREMENT(instance->dtsn_out); RPL_STAT(rpl_stats.local_repairs++); }