WARP Project Forums - Wireless Open-Access Research Platform

You are not logged in.

#1 2010-Apr-13 22:01:58

Gallon
Member
From: SMU
Registered: 2010-Feb-04
Posts: 37

How to get the packet content even when CRC check fails?

From the reference design, we can see that only when phyRx_goodHeader_callback() is called and warpmac_finishPhyRecv() returns a good state can the PPC get the packet from rx_buffer. Does the PHY still copy the packet content to rx_buffer when CRC check fails? If not, how can I set WARP to do that?

I notice that there is an option to reset PHY when the CRC fails. Should I turn that off in order to get the packet content?

Thanks!

Offline

 

#2 2010-Apr-13 22:26:05

murphpo
Administrator
From: Mango Communications
Registered: 2006-Jul-03
Posts: 5159

Re: How to get the packet content even when CRC check fails?

One clarification that will help- there are two checksums per packet:
  -16-bit CRC covering just the header
  -32-bit CRC covering the full packet, including the header

The reset option you're referring to halts the receiver when the header checksum fails. This is critical- if the header is bad, the rate/length fields can't be trusted, so the Rx pipeline terminates so it doesn't base its operation on bogus values.

If the header checksum passes but the payload fails (i.e. warpmac_finishPhyRecv returns bad), the full packet is already in the Rx buffer (the checksum values are the last 4 bytes of the payload; by that point, the PHY has already written the previous payload bytes to memory). You can definitely access the known-bad payload from software.

Offline

 

#3 2010-Apr-13 22:36:35

Gallon
Member
From: SMU
Registered: 2010-Feb-04
Posts: 37

Re: How to get the packet content even when CRC check fails?

Thank you for your fast reply, murphpo.

I am sorry that I didn't mention that I am trying to send a fixed packet to test the channel condition, so I know the packet length in advance. Can I just turn that off to get the payload from the rx buffer? In other words, are the header and the payload already in the rx buffer before the two CRC check?

Offline

 

#4 2010-Apr-14 10:25:44

murphpo
Administrator
From: Mango Communications
Registered: 2006-Jul-03
Posts: 5159

Re: How to get the packet content even when CRC check fails?

The PHY writes received data to the Rx buffer on the fly. When it checks the header checksum, the received header is already in the buffer. If the header checksum passes, it continues processing and writes the received payload, then checks the payload checksum. If the header checksum fails, the PHY doesn't attempt to receive the payload, since it can't be sure of the payload length or modulation rate.

Offline

 

Board footer