[Tinyos-devel] PacketLink interface, CC2420 impl, problems with Broadcast packets TinyOS 2.0.2.2

J. Ryan Stinnett jryans at rice.edu
Thu Sep 6 11:24:49 PDT 2007


Alright, that may be true, as I haven't check the CC2420 specs in a 
while.  However, in most cases it is not useful to ACK a broadcast 
packet (at least with a hardware ACK), since multiple nodes would try to 
send an ACK to the same node at about the same time, causing a 
collision.  Perhaps this was in mind when the ACK handling for 
broadcasts in the radio stack was written?  I imagine David will have 
some input here.

- Ryan

Razvan Musaloiu-E. wrote:
> Hi!
> 
> On Thu, 6 Sep 2007, J. Ryan Stinnett wrote:
> 
>> Avinash -
>>
>> Broadcast packets are not ACKed at all.
> 
> If a broadcast packet has the 'Acknowledge request' set then it will be 
> acked by the CC2420 chip.
> 
> -- 
> Razvan ME
> 
>> If I understand correctly, you are checking in the sendDone event 
>> whether or not the packet was ACKed, and retrying if it was not, 
>> correct?  This check should not be performed on broadcast packets 
>> since ACKs are never sent for them.
>>
>> - Ryan
>>
>> Avinash Sridharan wrote:
>>> Hi All,
>>>  I am not sure if this is the right forum to send this mail, or 
>>> should I be sending it to the TinyOS-help mailing list.
>>>
>>> I was using the the PacketLink interface on the Tmote Sky's with the 
>>> CC2420 stack. In my code I have broadcast beacons that are send out 
>>> at periodic intervals. When I started using the PacketLink interface 
>>> I started seeing a considerable drop in my throughput (this is 
>>> observed using logs from the mote).
>>>
>>> I added some code to see the number of retransmission attempts for 
>>> each packet being sent out. In my test case I had a fully connected 
>>> network (with all links having a PRR of ~ 1). Ideally I should be 
>>> seeing all packets being ACKED and the number the sent attempts on 
>>> packets being 1. This was the case for the packets that were being 
>>> unicasted however for the broadcast packets the transmission attempts 
>>> were always the maximum number of retries and they were never ACKED 
>>> (this was true for all broadcast packets).
>>>
>>> On digging a bit deeper I realised that the CC2420PacketC (which 
>>> provides the PacketAcknowledgement interface) does not check for the 
>>> destination address and simply returns the ACK field in the metadata. 
>>> Once I added a condition for the checking the broadcast address (and 
>>> always returning true for BROADCAST), performance returned to normal.
>>>
>>> Is this a valid bug ? Is the fix correct, or should this condition be 
>>> handled at some other point ?
>>>
>>> regards,
>>> Avinash
>>>
>>>
>>> -- 
>>> Phd Dept. of Electrical Engineering
>>> University of Southern California
>>> http://www-scf.usc.edu/~asridhar
>>>
>>>
>>
> 
> 


More information about the Tinyos-devel mailing list