fixed so that rpl avoids sending no-path DAOs when changing parent when in NO_DOWNWARD mode of operation
This commit is contained in:
parent
cf61e522a8
commit
17bbb1f1c1
|
@ -355,9 +355,10 @@ rpl_select_parent(rpl_dag_t *dag)
|
||||||
}
|
}
|
||||||
|
|
||||||
if(dag->preferred_parent != best) {
|
if(dag->preferred_parent != best) {
|
||||||
|
if(dag->mop != RPL_MOP_NO_DOWNWARD_ROUTES) {
|
||||||
PRINTF("RPL: Sending a No-Path DAO to old DAO parent\n");
|
PRINTF("RPL: Sending a No-Path DAO to old DAO parent\n");
|
||||||
dao_output(dag->preferred_parent, ZERO_LIFETIME);
|
dao_output(dag->preferred_parent, ZERO_LIFETIME);
|
||||||
|
}
|
||||||
dag->preferred_parent = best; /* Cache the value. */
|
dag->preferred_parent = best; /* Cache the value. */
|
||||||
dag->of->update_metric_container(dag);
|
dag->of->update_metric_container(dag);
|
||||||
rpl_set_default_route(dag, &best->addr);
|
rpl_set_default_route(dag, &best->addr);
|
||||||
|
@ -378,7 +379,9 @@ rpl_select_parent(rpl_dag_t *dag)
|
||||||
dag->min_rank = dag->rank;
|
dag->min_rank = dag->rank;
|
||||||
} else if(!acceptable_rank(dag, best->rank)) {
|
} else if(!acceptable_rank(dag, best->rank)) {
|
||||||
/* Send a No-Path DAO to the soon-to-be-removed preferred parent. */
|
/* Send a No-Path DAO to the soon-to-be-removed preferred parent. */
|
||||||
|
if(dag->mop != RPL_MOP_NO_DOWNWARD_ROUTES) {
|
||||||
dao_output(best, ZERO_LIFETIME);
|
dao_output(best, ZERO_LIFETIME);
|
||||||
|
}
|
||||||
|
|
||||||
remove_parents(dag, 0);
|
remove_parents(dag, 0);
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
Loading…
Reference in a new issue