Hi, I tried to check the CRC32 computation of WLAN MAC frames by the CRC32 function in the Wireshark code. For this test, I am using the test packets in Annex G of the 802.11 2007 spec, and the vector in H.6.4 CCMP of the same spec. However, I don't get the result as written there, and I don't understand what I am doing wrong. I used Matlab to generate the FCS as follows:
The test data I am using is the following (except for the last 4 bytes, which are the CRC)
In binary, this gives:
(this is ‘04’ ‘02’` ‘00’ ‘2e’, written as ‘4’ first, the ‘0’, then ‘2’, then ‘0’, etc… I have checked this binary sequence by successfully generating the PHY baseband signal from it which is identical to the reference in Annex G. But I can’t get the CRC32 computation right (the last 4 bytes in the mpdu above, listed in the spec as ‘da’ ‘57’ ‘99’ ‘ed’). I tried swapping the nibbles, reversing the nibbles, … but nothing works, I just don’t get the same CRC bytes as in the spec. Can anybody tell me what I am doing so wrong? Many thanks for your help!!! Karen asked 02 Aug ‘11, 18:50 Karen edited 08 Aug ‘11, 22:08 helloworld |
One Answer:
I suggest reading section 7.1.3.7 very carefully and then examining the Wireshark source code to see how it computes the CRC32. In particular, have a look at the implementation of answered 04 Aug '11, 18:53 cmaynard ♦♦ |