Based on various feedback, on my RH Linux 2.4.18 kernel I tried the following:
Set "features" bit NETIF_F_IP_CSUM set (the only feature bit set). In my network driver start-transmit check for "CHECKSUM_HW" in ip_summed. Using a small test program, use "sendfile" to copy a file to a network socket FD. Result is none of the packets presented to my network adapter driver have ip_summed set to CHECKSUM_HW, so the SW IP stack has already computed checksums.
CHECKSUM_HW is for receive, not transmit. Read the comments at the top of include/linux/skbuff.h.
Is this mechanism possibly broken on kernel 2.4?
it works quite well.
Jeff
-- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ FAQ: http://kernelnewbies.org/faq/