Subject: [Roll] DAG hop timers

From: Mukul Goyal <[email-masked]>
Date: Sat, 3 Oct 2009 13:45:09 -0500 (CDT)

Hi Pascal

Current RPL specs require a separate DAG hop timer for each neighbor in held_up state. All these timers are stopped as soon as one of the timers fires. There is no guarantee that the timer for the neighbor with minimum rank will fire first. If the timer for some other neighbor fires first, the node will have to wait for next RA from minimum-rank neighbor to include it as a parent.

How about running just one timer. When a neighbor with lower rank is discovered, the current timer is stopped and restarted with a delay proportional to this lower rank. This ensures that the neighbor with lowest rank will be chosen as parent. Also, only one timer will be required.

Thanks
Mukul

---

From: "Pascal Thubert (pthubert)" <[email-masked]>
Date: Mon, 5 Oct 2009 16:33:27 +0200

Hi Mukul,

Yes, that is conceptually identical. There's a real need for one timer per DAG that the node might want to jump onto. 

When a timer elapses, the node joins the best position that it knows of in the new DAG. That can be done because regardless of the candidate parent for which the timer fired that just elapsed, the node is now allowed to join that DAG. Since moving inwards can be done without delay the node can pick the best position it sees right away.

Pascal

>-----Original Message-----
>From: Mukul Goyal [mailto:[email-masked]]
>Sent: samedi 3 octobre 2009 20:45
>To: Pascal Thubert (pthubert)
>Cc: roll
>Subject: DAG hop timers
>
>Hi Pascal
>
>Current RPL specs require a separate DAG hop timer for each neighbor in held_up state. All these timers are
>stopped as soon as one of the timers fires. There is no guarantee that the timer for the neighbor with minimum
>rank will fire first. If the timer for some other neighbor fires first, the node will have to wait for next RA
>from minimum-rank neighbor to include it as a parent.
>
>How about running just one timer. When a neighbor with lower rank is discovered, the current timer is stopped
>and restarted with a delay proportional to this lower rank. This ensures that the neighbor with lowest rank
>will be chosen as parent. Also, only one timer will be required.
>
>Thanks
>Mukul