Added support for multiple objective functions.

Extended the objective function API with a callback function that receives link-layer neighbor information.

Throttled DAO transmissions to one per DEFAULT_DAO_LATENCY period.

Added support for an ETX objective function (hysteresis control still lacking though).

Fixed a leak of routes installed by DAOs.

Control that dst_adv_supported is set before sending DAOs.

Improved debugging output.
This commit is contained in:
nvt-se 2010-05-29 22:23:21 +00:00
parent f6e0b46f38
commit f135105567
8 changed files with 172 additions and 32 deletions

View file

@ -32,7 +32,7 @@
*
* This file is part of the Contiki operating system.
*
* $Id: rpl-timers.c,v 1.6 2010/05/25 21:58:54 nvt-se Exp $
* $Id: rpl-timers.c,v 1.7 2010/05/29 22:23:21 nvt-se Exp $
*/
/**
* \file
@ -210,14 +210,13 @@ rpl_schedule_dao(rpl_dag_t *dag)
expiration_time = etimer_expiration_time(&dag->dao_timer.etimer);
if(!etimer_expired(&dag->dao_timer.etimer) &&
(expiration_time - clock_time()) < (DEFAULT_DAO_LATENCY / dag->rank)) {
if(!etimer_expired(&dag->dao_timer.etimer)) {
PRINTF("RPL: DAO timer already scheduled\n");
} else {
PRINTF("RPL: Scheduling DAO timer %u ticks in the future (%u %u)\n",
(unsigned)DEFAULT_DAO_LATENCY / dag->rank,
(unsigned)DEFAULT_DAO_LATENCY, (unsigned)dag->rank);
ctimer_set(&dag->dao_timer, DEFAULT_DAO_LATENCY / dag->rank,
ctimer_set(&dag->dao_timer, DEFAULT_DAO_LATENCY,
handle_dao_timer, dag);
}
}