Hi,

Digging deeper into CpmModelC, I think there is missing a safety
statement in the shouldReceive function.

I think many people use the link gain generator based on a topology
file (see TOSSIM tutorial on the wiki). The tool output a link gain
for every pair of nodes in the network, thus the SNR for some of these
links is negative (for nodes that are very far apart).

Alas, the CpmModelC file in TOSSIM does not check that, and even call
the PER function for such a SNR, which obviously should never yield a
successfully decoded packet (the receiver would not even sync on the
preamble, since it's just noise..).

The effect is that it creates wormholes, specially with extremly bad
links. i.e. WIth a SNR of -50 db, the probability of passing the
packet is 1 %. Here is an excerpt of the CpmModel output:

DEBUG (33): SNR is 3.520000, PRR is 0.066555
DEBUG (29): SNR is 0.600000, PRR is 0.000001
DEBUG (27): SNR is -25.840000, PRR is 0.010087
DEBUG (26): SNR is 6.990000, PRR is 0.877191
DEBUG (28): SNR is 15.200000, PRR is 1.000000
DEBUG (32): SNR is -12.300000, PRR is 0.007021
DEBUG (31): SNR is -13.620000, PRR is 0.007780

Simple fix would be to check the SNR for positivity before calling the
rather computationally expensive prr_estimate_from_snr() function. Any
negative SNR should yield a probability of zero for receiving the
packet.

Please, can someone confirm what I just stated?

Thank you,

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

Reply via email to