FreeRTOS + TCP/: IPv6 support

heinbali01 wrote on Saturday, March 16, 2019:

Hi Dave,

We had contact through email already, but here some more information that may be interesting for other users as well.

I just tried out FreeRTOS+TCP /multi /IPv6 on my STM32F407 board.

I managed to ping my board, and also to connect to TCP port 80 for a surf session.

I’m attaching ‘IPv6_conversaion.pcap’, which shows that the SYN-ACK is accepted my the browser. The conversation is very short because /index.html does not exist.

When opening your PCAP file, WireShark reports CRC errors. These errors are often caused by the fact that checksums are “offloaded”, i.e. they are checked by the hardware, and when that happens, WireShark will show strange values.

While developing, I recommend to switch off all CRC offloading ( UDP, TCP, IPv4, IPv6 ). It doesn’t really affect the network performance because laptop CPU’s are extremely fast.

Could you check who sets the TCP checksum in your project?

If you have:

#define ipconfigDRIVER_INCLUDED_TX_IP_CHECKSUM        ( 1 )

either networkInterface.c must calculate the CRC’s, or the hardware. Is your (Atmel?) EMAC capable of calculating the IPv6 checksum?