Ignore No-Path DAO if target is already reachable through a different route than the DAO sender

This commit is contained in:
Sébastien Dawans 2013-07-25 11:21:04 +02:00
parent c4a121bf18
commit 0bd26d83c8

View file

@ -655,7 +655,7 @@ dao_input(void)
if(lifetime == RPL_ZERO_LIFETIME) { if(lifetime == RPL_ZERO_LIFETIME) {
/* No-Path DAO received; invoke the route purging routine. */ /* No-Path DAO received; invoke the route purging routine. */
if(rep != NULL && rep->state.saved_lifetime == 0 && rep->length == prefixlen) { if(rep != NULL && rep->state.saved_lifetime == 0 && rep->length == prefixlen && uip_ipaddr_cmp(&rep->nexthop, &dao_sender_addr)) {
PRINTF("RPL: Setting expiration timer for prefix "); PRINTF("RPL: Setting expiration timer for prefix ");
PRINT6ADDR(&prefix); PRINT6ADDR(&prefix);
PRINTF("\n"); PRINTF("\n");