laugenslug wrote on Sunday, October 14, 2018:
I have integrated FreeRTOS-TCP into my project, and now I am trying to get it to communicate with my PC. When I try to ping the embedded device, the PC sends an arp request as expected. This is received and processed correctly by the embedded code, but Wireshark reports a problem with the Frame Check Sequence of the arp reply.
At some point, FreeRTOS-TCP sends a gratuitous arp, and after that the PC is able to communicate with the embedded code. I suspect that the PC is rejecting the arp reply, due to the invalid checksum.
I have attached a screenshot of Wireshark, showing the incorrect arp reply.
In this screenshot, the PC has IP address 192.168.1.10 and the embedded code has 192.168.1.2
The relevant portion of my FreeRTOSIPConfig. is
#define ipconfigIP_TASK_PRIORITY TASK_PRIORITY_IP
#define ipconfigIP_TASK_STACK_SIZE_WORDS configMINIMAL_STACK_SIZE
#define ipconfigUSE_NETWORK_EVENT_HOOK 1
#define ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS 45
#define ipconfigEVENT_QUEUE_LENGTH (ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS + 5)
#define ipconfigENABLE_BACKWARD_COMPATIBILITY 0
#define ipconfigREPLY_TO_INCOMING_PINGS 1
#define ipconfigNETWORK_MTU 1500
#define ipconfigUSE_DHCP 0
#define ipconfigRAND32() rand()
#define ipconfigDRIVER_INCLUDED_TX_IP_CHECKSUM 0
Thank you,
Peter