RE: Cursed Checksums

From: Alan Cox
Date: Sun Aug 22 2004 - 16:48:39 EST


On Sul, 2004-08-22 at 22:03, Josan Kadett wrote:
> Perhaps there is a way to recompute IP header checksums before they get into
> the interface? As I outlined, I have found a way to manipulate IP source
> address before the packet is flushed to system, but a means of recalculating
> the IP header checksum after that manipulation should be found. Because even
> if I ignore IP header CRC in one system, all other boxes connected to this
> machine has to be patched the same. That is impossible anyway.
>
> Only if I could find a way to recalculate the checksum in IP headers by
> doing a simple hack to the kernel, everything would be alright.

Providing your hardware isn't doing the checksums then you can do
this. Each ethernet packet driver with pass packets up to the
layer above (netif_rx()). Something like

skb->protocol = eth_type_trans(...)
/* Check packet here */
whack_packet(skb->h.raw skb->len);
netif_rx(skb);

in the driver. Before the netif_rx you can validly mangle the bits


-
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/