[Tinyos-devel] 2.0.2 CC2420

Razvan Musaloiu-E. razvanm at cs.jhu.edu
Tue Feb 12 15:08:10 PST 2008


Hi!

The format of an ack frame is depicted in Figure 23 on page 42 in the 
CC2420 datasheet:
 	http://focus.ti.com/lit/ds/symlink/cc2420.pdf

All the best!
Razvan ME

On Tue, 12 Feb 2008, Jun wrote:

> Phil,
>
> Thank you very much for your clarification. I remember 802_11 is taking the
> same approach by only including destination address in an ACK frame,
> which suffers from the same problem you described.
>
> We are trying to develop a "pure" software ACK now, but we don't know
> how to "format" an ACK. The only information we have on the format is
> from CC2420ReceiveP.nc as follows
>      if (((( header->fcf >> IEEE154_FCF_ACK_REQ ) & 0x01) == 1)
>          && (header->dest == call amAddress())
>          && ((( header->fcf >> IEEE154_FCF_FRAME_TYPE ) & 7) == IEEE154_TYPE_DATA)) {
>          ...
>      }
>
> In order to generate a legitimate ACK in software, is it enough to just fill in
> the header->fcf,  header->dest fields in cc2420_header_t structure as
> indicated by the above code. Any advice or suggestion will be greatly
> appreciated.
>
> Thank you,
>
> Jun
>
> On Feb 12, 2008 3:20 PM, Philip Levis <pal at cs.stanford.edu> wrote:
>
>>
>> On Feb 12, 2008, at 12:58 PM, Jun wrote:
>>
>>> Hi David,
>>>
>>> Thank you very much for your prompt response.
>>> Could you explain more on "the current ACK frame is inherently
>>> broken"?
>>
>> The ACK does not contain the source address, only the sequence
>> number. So you don't know who is acking. This means that you can get
>> false positives. Some other node happened to receive a packet with
>> the same sequence number and ACKs it; you think your destination
>> received the packet when it didn't.
>>
>> Phil
>>
>
>
>
> --
> --
> Mailto: yanjunrockets at gmail.com
>


More information about the Tinyos-devel mailing list