Important changes to forums and questions
All forums and questions are now archived. To start a new conversation or read the latest updates go to forums.mbed.com.
9 years, 5 months ago.
Ping on Arch Max does not work
Hi,
Ping on Arch Max does not work. On the Arch Pro it works just fine. Both boards have the same Ethernet Transceiver chip, the DP83848J.
While the Arch Max cannot be pinged, it just works fine with the TCP server/client, NTP, etc., as expected.
Is this a bug?
Kind regards, Jack.
Question relating to:
1 Answer
9 years, 5 months ago.
Hi, this is due to conflict with hardware checksum generation of STM32. You need to patch lwIP modification from ST.
Modify EthernetInferface/lwip/core/ipv4/icmp.c file like following.
in icmp_input() function
/* adjust the checksum */ if (iecho->chksum >= PP_HTONS(0xffffU - (ICMP_ECHO << 8))) { iecho->chksum += PP_HTONS(ICMP_ECHO << 8) + 1; } else { iecho->chksum += PP_HTONS(ICMP_ECHO << 8); }
modify it like below
/* adjust the checksum */ /* if (iecho->chksum >= PP_HTONS(0xffffU - (ICMP_ECHO << 8))) { iecho->chksum += PP_HTONS(ICMP_ECHO << 8) + 1; } else { iecho->chksum += PP_HTONS(ICMP_ECHO << 8); } */ iecho->chksum = 0;
For more information regarding this issue, googling with keyword "CHECKSUM_GEN_ICMP".