Content originally posted in LPCWare by DMH on Sat May 30 17:58:20 MST 2015
Hi.
I have a LPC1769 board and i'm trying to use the uIP stack to achieve ethernet connectivity so that I can access the board through ethernet connection.
Everything seems to be working perfectly except the CRC part.
I've configured the MAC2 to pad to 64bytes and append the CRC. Wireshark indicates the packet has been received but the CRC is invalid (the value reported by Wireshark is of 0 when it should be a certain value).
So I noticed that the descriptors also have a padding and appending CRC flags so enabled those as well and the problem remains.
The entire packet is exactly as expected except for the frame check sequence.
I've enabled (and disabled) pretty much any option regarding the padding and CRC parts of the Ethernet block and it won't work. If only the padding and appending CRC flags are enabled (MAC2 flags off) the packet will be sent but discarded by Wireshark as its size is inferior to the required minimum (42 bytes vs 64 bytes).
In my attachment is the Ethernet device driver. (Please take into consideration that I'm still in college so my code isn't up to professional standards).
Thank you.
Hi.
I have a LPC1769 board and i'm trying to use the uIP stack to achieve ethernet connectivity so that I can access the board through ethernet connection.
Everything seems to be working perfectly except the CRC part.
I've configured the MAC2 to pad to 64bytes and append the CRC. Wireshark indicates the packet has been received but the CRC is invalid (the value reported by Wireshark is of 0 when it should be a certain value).
So I noticed that the descriptors also have a padding and appending CRC flags so enabled those as well and the problem remains.
The entire packet is exactly as expected except for the frame check sequence.
I've enabled (and disabled) pretty much any option regarding the padding and CRC parts of the Ethernet block and it won't work. If only the padding and appending CRC flags are enabled (MAC2 flags off) the packet will be sent but discarded by Wireshark as its size is inferior to the required minimum (42 bytes vs 64 bytes).
In my attachment is the Ethernet device driver. (Please take into consideration that I'm still in college so my code isn't up to professional standards).
Thank you.
Original Attachment has been moved to: EMAC.zip
This is an 'issue' with your PC's network driver.
'Checksum offload' is enabled, so Wireshark never sees the CRC.
There is a Wireshark help or faq or wiki about this.
Got to the network options (can't remember where they are this week), but probably
somewhere in Device Mangler Network Adapters <device name> Properties Advanced
On mine there is "IPv4 Checksum Offload" which needs to be disabled for Wireshark
to see the packet CRCs.
Cheers, Mike