Added a timer that randomizes the retransmission of an incoming new trickle version to avoid broadcast collisions
This commit is contained in:
parent
be1c8ccec9
commit
ace6567815
2 changed files with 5 additions and 4 deletions
|
@ -33,7 +33,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: trickle.c,v 1.16 2009/03/12 21:58:21 adamdunkels Exp $
|
* $Id: trickle.c,v 1.17 2009/04/06 21:20:35 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -164,7 +164,8 @@ recv(struct broadcast_conn *bc, rimeaddr_t *from)
|
||||||
c->q = queuebuf_new_from_packetbuf();
|
c->q = queuebuf_new_from_packetbuf();
|
||||||
c->interval_scaling = 0;
|
c->interval_scaling = 0;
|
||||||
reset_interval(c);
|
reset_interval(c);
|
||||||
send(c);
|
ctimer_set(&c->first_transmission_timer, random_rand() % c->interval,
|
||||||
|
send, c);
|
||||||
c->cb->recv(c);
|
c->cb->recv(c);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -45,7 +45,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: trickle.h,v 1.10 2009/03/12 21:58:21 adamdunkels Exp $
|
* $Id: trickle.h,v 1.11 2009/04/06 21:20:35 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -74,7 +74,7 @@ struct trickle_callbacks {
|
||||||
struct trickle_conn {
|
struct trickle_conn {
|
||||||
struct broadcast_conn c;
|
struct broadcast_conn c;
|
||||||
const struct trickle_callbacks *cb;
|
const struct trickle_callbacks *cb;
|
||||||
struct ctimer t, interval_timer;
|
struct ctimer t, interval_timer, first_transmission_timer;
|
||||||
struct pt pt;
|
struct pt pt;
|
||||||
struct queuebuf *q;
|
struct queuebuf *q;
|
||||||
clock_time_t interval;
|
clock_time_t interval;
|
||||||
|
|
Loading…
Reference in a new issue