TestSimComm, 5/22/07 This application tests the TOSSIM radio model by setting up a simple hidden terminal case. It checks whether packets collide correctly and whether SNR thresholds work correctly.. The relevant output channel is "TestComm". There are three test cases: test-equal.py: Tests whether two nodes that are hidden terminals cause collisions. The two nodes have equal signal strengths, so a collision should corrupt both packets. If one packet is lost due to a collision, the other should be too. Note that packets can be lost in the absence of collisions due to external interference. test-unequal.py: Tests whether two nodes that are hidden terminals cause collisions. The two nodes have signal strengths that differ by 10dB, and node 1 is stronger. This means that node 2 should hear node 1's packets if they start first, but not second. If a packet from node 1 is lost, the packet from node 3 should be as well. However, a loss from node 3 does not imply a loss from node 1, as it is stronger. test-asym.py: Tests whether asymmetric links can have high delivery rates but low acknowledgement rates. Checks that acknowledgements follow SNR curves properly. In this test, both 1 and 3 have high quality links (-60 dBm) to node 2, but the reverse links (2 to 1 and 2 to 3) are much worse (-80 dBm). You should see packet deliveries like test-equal.py but few acknowledgements. The ./run script runs all the three tests and counts the number of ACKed and non-ACKed send packets. The output will look something like this: test-equal.log ACK NOACK total 1 21197 19666 40863 3 21320 19543 40863 test-asym.log ACK NOACK total 1 4930 35923 40853 3 4983 35870 40853 test-unequal.log ACK NOACK total 1 27619 12966 40585 3 21040 19545 40585 ACK is the number of acknowledged packets from that node to node 2; NOACK is the number of unacknowledged packets. Total is the sum. The output should show three things: 1) In test-equal, both node 1 and node 3 have very similar delivery ratios, losing about half of their packets. 2) In test-asym, the number of ACKs is much less than in test-equal because the reverse links are poor. 3) In test-unequal, node 1 has more acknowledged packets than node 3, because it has a higher SNR link. Philip Levis