Hello everyone, Normally, if a packet is corrupted, the CRC is supposed to detect and discard it, at least with very high probability. However, if the corruption happens on the length field, are these issues handled by the radio stack?
1) the corrupted length is larger than the actual bytes buffered in RXFIFO, and RXFIFO.beginRead() or RXFIFO.continueRead() is called to read rxFrameLength bytes from it. What could happen in this case? Underflow? 2) the CRC is read at the wrong offset ((buf[rxFrameLength] >> 7)). And it can happen to be 1, causing the corrupted packet to be signaled to upper layers as a correct packet even though it is not. 3) this has a cascade effect if there are additional packets buffered in RXFIFO after this corrupted one. Their lengths can also be mistaken because the previous packet uses a wrong boundary, identified by the wrong length field. This seems a severe issue but I haven't found any measure to cope with it in the stack. Can anyone please give me a hint? Thanks sincerely in advance. -- TelosB -Xiaohui Liu
_______________________________________________ Tinyos-help mailing list [email protected] https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
