Hi everyone,

Why should broadcast be acknowledged? If multiple recipients receive a
broadcast packet, they will ack it at very close time instant, which can
cause ack collision. But the following snippet is found in CC2420ReceiveP.
Can anyone help me understand why broadcast can be acked? Thanks.

      if(call CC2420Config.isAutoAckEnabled() && !call
CC2420Config.isHwAutoAckDefault()) {
        if (((( header->fcf >> IEEE154_FCF_ACK_REQ ) & 0x01) == 1)
            && ((header->dest == call CC2420Config.getShortAddr())
                || (header->dest == AM_BROADCAST_ADDR))
            && ((( header->fcf >> IEEE154_FCF_FRAME_TYPE ) & 7) ==
IEEE154_TYPE_DATA)) {
          // CSn flippage cuts off our FIFO; SACK and begin reading again
          call CSN.set();
          call CSN.clr();
          call SACK.strobe();
          call CSN.set();
          call CSN.clr();
  call RXFIFO.beginRead(buf + 1 + SACK_HEADER_LENGTH,
rxFrameLength - SACK_HEADER_LENGTH);
          return;
        }
      }

-- 
-Xiaohui Liu
_______________________________________________
Tinyos-help mailing list
[email protected]
https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help

Reply via email to