Re: Cursed Checksums

From: Alan Cox
Date: Sun Aug 22 2004 - 07:45:16 EST


On Sad, 2004-08-21 at 03:37, Josan Kadett wrote:
> When I manually calcaulate the checksum in the incoming TCP and UDP packets
> and re-inject them back to the socket, everything works fine. That is, the
> data integrity is not damaged or corrupted at all.

At least for the few you looked at. That proves nothing.

> I tried to investigate the code in tcp_input.c and udp.c to see if I can
> disable the checksum control for inbound packets entirely. No use it was
> since I need to do this urgently.

It depends on your hardware. With modern network cards we do the
checksum processing in hardware. For older setups passing a packet
through a Linux box won't directly help as the ttl recomputation is done
without recalculation from scratch.

We also have a pile of paths for checksumming including copy/checksum
rolled into one so it isn't easy to remove there.

I'd take up the issue with the vendor of the broken object. If its
something like an internal prototype you need to test then you'll
probably have to write a user space application using raw sockets to
communicate with it and do the fixups/passthrough in use space. Pretty
horrible either way.

Alan


Alan
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/