joe hinkle

K64F ENET Autochecksum ICMP incorrect

Discussion created by joe hinkle on Jul 9, 2016
Latest reply on Jul 9, 2016 by joe hinkle

I'm porting the ENET driver I wrote and had running on a K60F12 Tower board about 4 years ago to a FRDM-K64F board to prove out the software on the K64F micro.


I have ENET_TACC set for both PROCHK and IPCHK (auto calc and insert checksum into IP header and known protocol headers (UDP, TCP, ICMP).


The K60 micro properly inserted the checksum in all 4 instances (IP, TCP, UDP, and ICMP).


The issue I am trying to resolve is that the calculated checksum for a ICMP packet is being calculated incorrectly (verified by wireshark).


The IP and UDP checksums are correct - have not tested TCP yet.


The only requirement I'm aware of to have the ICMP checksum calculated properly and inserted into the packet is that the ICMP header's checksum is ZERO when delivered to the ENET.


Has silicon changed in this area from the K60F mask to the K64F mask?


Is this a known issue?


I don't want to resort to manually calculating the headers checksums if I don't have to.


Any info in this area is appreciated.


Thanks in advance for your reply.