I tried another program that doesn't use sendfile(), but write() from a
mmap()'ed file. The checksums are reported to be correct for that
program's packets.
I also tried executing my program across a LAN with only an ethernet
switch between the two machines. The checksums were reported correct for
this situation as well.
This leads me to the conclusion that using sendfile() on a loopback
interface over a TCP connection generates packets with incorrect checksums
in the TCP headers.
I do not know if ethereal is falsely reporting that the checksums are
incorrect, but it's a very limited scope of the source of packets with
incorrect checksums (only sendfile-generated to loopback).
Is this something that even needs to be addressed, since the receiver
would discard the packet if the checksum is incorrect, but since it's over
loopback, there's no chance of receiving data corrupted by the transport
medium and loopback ignores the checksum?
System information: 2.4.20 on both machines, ia32 CPUs, ethereal 0.9.10
with libpcap 0.7.
Please reply directly, as I am not subscribed to the list. Thanks.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/