The code you've copied is *not* the address recognition occurring in the CC2420 hardware; instead, it's the software address recognition to determine if we need to send back an acknowledgement.
By the time we've begun receiving a single packet into the CC2420ReceiveP module, that packet has already undergone address checking. Again, there's a possibility of setting up a sniffer / base station that accepts any and all packets to any address - i.e. the hardware address checks are disabled. But we could still have acknowledgements enabled, and we should only acknowledge packets that are truly destined for the node's local address in software. That's why the code you copied double checks the address before acknowledging. -David -----Original Message----- From: André Cunha [mailto:[EMAIL PROTECTED] Sent: Friday, December 14, 2007 6:15 AM To: David Moss; TinyOS ML Subject: Re: [Tinyos-help] Hardware Address Recognition Hello David The next code is in the RXFIFO.readDone function in the CC2420ReceiveP. From what I can understand when we activate the hardware address recognition and provide the device short address and activate the transceiver address recognition field, this address is used in the CC2420ReceiveP to compare with the destination address of the received message. Is this the hardware address recognition? Any comments? if(call CC2420Config.isAutoAckEnabled() && !call CC2420Config.isHwAutoAckDefault()) { if (((( header->fcf >> IEEE154_FCF_ACK_REQ ) & 0x01) == 1) && (header->dest == call CC2420Config.getShortAddr()) && ((( header->fcf >> IEEE154_FCF_FRAME_TYPE ) & 7) == IEEE154_TYPE_DATA)) { Regards, André David Moss wrote: > The base station does not automatically retransmit failed packets. > > There could be a lot of issues here: interference, collisions, range, > mismatched duty cycling parameters, etc. Did you modify your base station > application to configure the outbound packet for delivery to a duty cycling > receiver? > > -David > > > -----Original Message----- > From: André Miguel de Almeida Marrão Rodrigues > [mailto:[EMAIL PROTECTED] > Sent: Thursday, December 13, 2007 11:20 AM > To: David Moss; 'André Cunha'; 'TinyOS ML' > Subject: Re: [Tinyos-help] Hardware Address Recognition > > Hi > > I would like to know why in a simple configuration like > > BS <---> Node > > I have packet loss when the acks are enabled and the code in the node > retransmits > the packed if it get lost. We are using 2% low power listening mode in T2 / > TMote. > > Any ideias would be very apreciated. > > Regards, > > André Rodrigues > > PS: If a packet get lost in the BS -> node direction, the 2.02 basestation > code does > the retransmission? > > > ----- Original Message ----- > From: "David Moss" <[EMAIL PROTECTED]> > To: "'André Cunha'" <[EMAIL PROTECTED]>; "'TinyOS ML'" > <[email protected]> > Sent: Thursday, December 13, 2007 5:16 PM > Subject: RE: [Tinyos-help] Hardware Address Recognition > > > >> Address recognition is in both hardware and software. You can disable >> address recognition in hardware to sniff packets, but with software >> acknowledgements enabled you don't want to send an ack back unless you've >> received a packet to your local address or to the broadcast address. >> That's >> why there's a redundant check. >> >> Hardware address recognition is enabled by default, and the redundant >> software address check performed for acknowledgements doesn't change that. >> >> Note at the top of CC2420ControlP the compile time options you have >> available (you should be able to configure these at runtime as well) >> >> #if defined(CC2420_NO_ACKNOWLEDGEMENTS) >> autoAckEnabled = FALSE; >> #else >> autoAckEnabled = TRUE; >> #endif >> >> #if defined(CC2420_HW_ACKNOWLEDGEMENTS) >> hwAutoAckDefault = TRUE; >> #else >> hwAutoAckDefault = FALSE; >> #endif >> >> // This changes the hardware address recognition. >> #if defined(CC2420_NO_ADDRESS_RECOGNITION) >> addressRecognition = FALSE; >> #else >> addressRecognition = TRUE; >> #endif >> >> -David >> >> >> >> -----Original Message----- >> From: [EMAIL PROTECTED] >> [mailto:[EMAIL PROTECTED] On Behalf Of André >> Cunha >> Sent: Thursday, December 13, 2007 9:21 AM >> To: TinyOS ML >> Subject: [Tinyos-help] Hardware Address Recognition >> >> Hello all, >> I was looking at the hardware recognition in the CC2420 in the file >> CC2420ControlP and, if fact, the CC2420 register (MDMCTRL0->ADDR_DECODE) >> is enabled. Looking at the CC2420ReceiveP in the RXFIFO.readDone I >> realized that the address verification is by software. Can anyone >> clarify this? I have changed the code of RXFIFO.readDone to only signal >> data reception but I would like to activate the hardware address >> recognition. >> >> Best Regards, >> >> André >> _______________________________________________ >> Tinyos-help mailing list >> [email protected] >> https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help >> >> >> >> _______________________________________________ >> Tinyos-help mailing list >> [email protected] >> https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help >> > > > > > _______________________________________________ Tinyos-help mailing list [email protected] https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
