Getting CRC OK from radio

Hey everyone,

I try to get CRC information for the received packet with the CC2420. When searching for CRC_OK there isn't really a way in RIOT.

I've looked at the *cc2420_rx* method and found that rssi is already extracted. The same can be applied easily for the CRC of the last packet.

I've also seen that there is the *info argument which is nothing else than *netdev2_radio_rx_info* from drivers/include/net/netdev2.h. Would it makes sense to add a "unsigned int crc_ok : 1" bit field to that struct to indcate the CRC status or should it be implemented as a NETOPT?

Best Regards, Robert

Hi Robert,

First, to read and use the CRC_OK bit we will have to generate it. Apparently that slipped through and we didn't notice so far, anyhow I opened PR #6015 [1] to fix that. Thank you for leading us in that direction!

Regarding a `crc_ok` bitfield I don't have a strong opinion.

Best, Thomas

[1] https://github.com/RIOT-OS/RIOT/pull/6015

Dear Thomas,

the CRC was generated already, also I need it for an evaluation and I am interested in packets with wrong CRC, so in my opinion the packet should be forwarded to the user, but with flag CRC_OK=0 set.

Best Regards, Robert

Hi Robert,

You are right, `AUTOCRC` is on after reset, so `CRC_OK` gets appended to the frame but is currently not checked.

I understand that corrupted packets with CRC errors are interesting if you are doing research, in general I am not convinced handing those on to upper layers though. Would it be sufficient for you to include CRC errors in netstats?

Best, Thomas