RPL global repair: log new version rather than old one. Re-init DTSN instead of incrementing it. Log format fixes.
@@ -198,15 +198,16 @@ void
rpl_global_repair(const char *str)
{
if(rpl_dag_root_is_root()) {
- LOG_WARN("initiating global repair (%s), version %u, rank %u)\n",
+ RPL_LOLLIPOP_INCREMENT(curr_instance.dag.version); /* New DAG version */
+ curr_instance.dtsn_out = RPL_LOLLIPOP_INIT; /* Re-initialize DTSN */
+
+ LOG_WARN("initiating global repair (%s), version %u, rank %u\n",
str, curr_instance.dag.version, curr_instance.dag.rank);
if(LOG_INFO_ENABLED) {
rpl_neighbor_print_list("Global repair (before)");
}
- /* Initiate global repair */
- RPL_LOLLIPOP_INCREMENT(curr_instance.dag.version); /* New DAG version */
- RPL_LOLLIPOP_INCREMENT(curr_instance.dtsn_out); /* Request new DAOs */
+ /* Now do a local repair to disseminate the new version */
rpl_local_repair("Global repair");
}
}
@@ -215,8 +216,8 @@ static void
global_repair_non_root(rpl_dio_t *dio)
{
if(!rpl_dag_root_is_root()) {
- LOG_WARN("participating in global repair, version %u, rank %u)\n",
- curr_instance.dag.version, curr_instance.dag.rank);
+ LOG_WARN("participating in global repair, version %u, rank %u\n",
+ dio->version, curr_instance.dag.rank);
if(LOG_INFO_ENABLED) {
rpl_neighbor_print_list("Global repair (before)");
}
