Hi

I was tracing the code of 4bit link estimator in LinkEstimatorP.nc when I came 
to the following 2 statements which can'tbe satisfied.

In the function updateNeighborEntryIdx the following if statement calls the 
function updateNeighborTableEst

if (NeighborTable[idx].rcvcnt >= BLQ_PKT_WINDOW) 

{

updateNeighborTableEst(NeighborTable[idx].ll_addr);

}

Inside the updateNeighborTableEst function we have the statements

minPkt = BLQ_PKT_WINDOW;

totalPkt = ne->rcvcnt + ne->failcnt;

then we have the condition 

if (totalPkt < minPkt) 

{

totalPkt = minPkt; //statement 1

}

which will never be satisfied because, at least, rcvcnt = BLQ_PKT_WINDOW (from 
the if in updateNeighborEntryIdx) . So, always total >= BLQ_PKT_WINDOW 'minPkt'



The second statement is right after statement 1 in updateNeighborTableEst 

if (totalPkt == 0) 

{

ne->inquality = (ALPHA * ne->inquality) / 10; //statement 2

}

This statement is never satisfied because statement 1 always set totalPkt > 0. 
Another main reason for not satisfying this statment, updateNeighborTableEst 
will never be called if rcvcnt < BLQ_PKT_WINDOW which means totalPkt > 0 
(remember totalPkt = ne->rcvcnt + ne->failcnt).

I searched the code for other calls to updateNeighborTableEst  but I didn't 
find any. I'd appreciate it if someone can highlight the importance of these 2 
statements.

Regards

Islam Hegazy
_______________________________________________
Tinyos-help mailing list
[email protected]
https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help

Reply via email to