Hi Mark
I think one of the great but unknown features of our Kinetis ENET controller is the IP/TCP/UDP/ICMP automatic checksum generation/checking in hardware. According to a document I read once, this is one of the main performance bottlenecks TCP/IP stacks have.
I only found a small reference in the Kinetis doc for uTasker:
"An interesting feature in the EMAC is the new support for IP checksum offloading. This
allows the HW to automatically check or generate checksums for IP, ICMP, TCP and UDP
frames (IPv4 and IPv6), which make the operation much more efficient than when SW needs
to do this – see the following for some figures showing the loading of check sum calculation:
http://www.utasker.com/docs/uTasker/uTaskerBenchmarks.PDF"
BTW, the benchmark reference is out of date :smileysad:
I did a small benchmark using a TCP/IP stack with/without checksum in hardware and software and I have an average performance increase of 25% (incoming and outgoing packets) when this feature was turned on. Some other HW features were turned on as well like Ethernet header alignment from 14 bytes to 16 bytes, for example. Another great feature, btw.
This considering you have IPv6 support (I checked 3 other TCP/IP stacks and 2 of them don't have this yet, the third one is still in experimental stage), this is a very good feature to add in your document, in my humble opinion. Would contact you by a private message to continue discussing about this
There are many other features our ENET controller has such as: IEEE1588 support, dma requests and a great FIFO handling by the use of a few registers, that unfortunately many users don't know. But this will be in another thread. Enough for now :smileyhappy:
Great work btw
Thanks!