On Fri, Sep 9, 2011 at 11:57 AM, Christian <christ...@wwad.de> wrote:
> Dear TinyOS community,
>
> I have a problem understanding, how CTP's updateRouteTask() works, if
> the 4-Bit Link Estimator is used.
>
> Consider the following example:
> Node 2 with costs 70 is currently using node 1 (costs 20) as parent.
> He could also choose node 3, that has costs 60 over a link of costs 10.
>
> (1:20)
>  ^
>  |
>  |50
>  |
> (2:70) -------> (3:60)
>          10
>
> If I understand it correctly, when node 1 gets down, the costs of the
> link to node 1 will reach the maximum value of DLQ_PKT_WINDOW * 10
> = 50 (LinkEstimatorP.nc l. 296 in updateDETX()), because no acks can be
> received from node 1 as well as no beacons, that could update beacon
> based link etx.
> The problem, that I see here, is, that the link's costs cannot get
> worse than 50 (limited by DLQ_PKT_WINDOW) and that updateRouteTask()
> would not change to node 3, because the path over node 3 is not
> "significantly" (PARENT_SWITCH_THRESHOLD) better than the path over
> node 1.
> So it will stay with node 1 as parent even if node 1 isn't available
> anymore.
>
> Please explain: is this really the case or what do I miss out?

If more than MAX_PKT_GAP beacons are lost, the code will reinitialize
the link information. The code is in the same file.

> Just in case I'm right, one could solve this problem by requiring every
> parent's link costs to be below DLQ_PKT_WINDOW*10 and changing to
> another node in updateRouteTask(), if this is not the case.

But first you should convince yourself that beacons will not kick in
and drive the link cost up for the scenario you are thinking.

If you notice improvement in experiments, I am happy to consider
changes. Let me know.

- om_p

_______________________________________________
Tinyos-help mailing list
Tinyos-help@millennium.berkeley.edu
https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help

Reply via email to