Send no-path DAO only when the dag has a preferred parent

This commit is contained in:
Laurent Deru 2014-01-15 16:22:39 +01:00
parent 7286c9a635
commit 81a92bd692

View file

@ -765,7 +765,6 @@ rpl_nullify_parent(rpl_parent_t *parent)
/* This function can be called when the preferred parent is NULL, so we /* This function can be called when the preferred parent is NULL, so we
need to handle this condition in order to trigger uip_ds6_defrt_rm. */ need to handle this condition in order to trigger uip_ds6_defrt_rm. */
if(parent == dag->preferred_parent || dag->preferred_parent == NULL) { if(parent == dag->preferred_parent || dag->preferred_parent == NULL) {
rpl_set_preferred_parent(dag, NULL);
dag->rank = INFINITE_RANK; dag->rank = INFINITE_RANK;
if(dag->joined) { if(dag->joined) {
if(dag->instance->def_route != NULL) { if(dag->instance->def_route != NULL) {
@ -775,7 +774,11 @@ rpl_nullify_parent(rpl_parent_t *parent)
uip_ds6_defrt_rm(dag->instance->def_route); uip_ds6_defrt_rm(dag->instance->def_route);
dag->instance->def_route = NULL; dag->instance->def_route = NULL;
} }
dao_output(parent, RPL_ZERO_LIFETIME); /* Send no-path DAO only to preferred parent, if any */
if(parent == dag->preferred_parent) {
dao_output(parent, RPL_ZERO_LIFETIME);
rpl_set_preferred_parent(dag, NULL);
}
} }
} }