I patched the function
prvProcessEthernetPacket
as follows:
case ipARP_FRAME_TYPE:
/* The Ethernet frame contains an ARP packet. */
if( pxNetworkBuffer->xDataLength >= sizeof( ARPPacket_t ) )
{
eReturned = eARPProcessPacket( ( ARPPacket_t * )pxNetworkBuffer->pucEthernetBuffer );
pxNetworkBuffer->xDataLength = sizeof( ARPPacket_t ); /* NEW CODE */
}
else
{
eReturned = eReleaseBuffer;
}
break;
I no longer get FCS errors reported in Wireshark, so it looks better. I have some remaining problems with my network interface driver, but this is a step forards.