Ethereal-dev: Re: [ethereal-dev] tcp header checksum validation

Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.

From: "Skip Hansen" <shansen@xxxxxxxxxxxxx>
Date: Fri, 9 Jun 2000 22:42:07 -0700
> Presumably you mean "TCP checksums"; the checksum includes the TCP
> payload as well as the header.

Yup.

>  ...except that most big-endian machines require strict alignment of
> integral data types bigger than one byte, so it's probably more likely ...

My lack of experience on non-Intel is showing, red face glowing.

> I've done a similar patch, that checksums the header+body of both TCP

Outstanding, thanks for the patch ! 

> segments and UDP datagrams; however:
> 
> 	1) it doesn't check whether the IP datagram containing the TCP
> 	   segment or UDP datagram is fragmented - currently, if it is,
> 	   the checksum couldn't be computed, as we currently don't
> 	   reassemble fragmented IP datagrams, so we'd have to punt on
> 	   those;

I didn't even consider that case.

> 	   which apparently conflicts with this clause of the GPL ...

I'm not a GPL (or BSD for that mater) lawyer ... Shakespeare was right.

> My patch also handles IPv6 as well as IPv4, and the BSD checksum code

What I don't know about IPv6 exceeds what I don't now about big endian 
machines !

I had been following the mailing list for a while, but dropped off about a month 
ago.  I checked out the current code today and didn't see any checksum 
code so I thought I had done something new.  Sorry to pollute the list with a 
poor clone of what had already been done.

Skip